When we introduced the world’s first wireless flash drive at CES 2010, my business partner and I set a target for ourselves: in five years, you would be able to buy a wireless flash drive for a minimal increase in cost and size over a wired drive, in the same retail stores worldwide. Today, with the launch of the SanDisk Connect Wireless Stick at half the price of its predecessor, we’ve hit that target. Along the way, we pre-sold a consumer electronics product on the Internet before crowdfunding became common, manufactured a product that was available in retail stores worldwide, and struck a licensing deal that resulted in the launch of the first generation SanDisk Wireless Flash Drive, all while remaining an independent, self-funded, and growing company.
It’s been a long, sometimes difficult journey, and as much as I’d like to think of today’s announcement as having reached the end of a road, the truth is that it marks the beginning of the next chapter. Over the past year, we’ve been busy reforming the software that runs our HTTP server on a stick. We’ve rewritten major portions of the code with a singular focus on software quality, including a completely new implementation of the standard IP/UDP/TCP protocol graph1. What we’ve launched today is the first instantiation of the fourth major version of our AirStash OS, which is now a library operating system that runs in multiple configurations:
natively on ARMv7-M microcontrollers as a memory protected operating system,
under a microkernel in the L4 family on ARMv7-A microprocessors, and
hosted under a POSIX system, where the system is regularly exercised with the clang undefined behavior sanitizer and a variety of other dynamic checks and analysis tools.
As a library operating system, we are able to reuse the vast majority of our code across these configurations, and in multiple ways within the same configuration: the very same scheduler that preemptively manages process execution on ARMv7-M also manages lightweight cooperative tasks within those processes, and is unit tested on POSIX. Network stack virtualization is as easy as creating another instance of the standard IP protocol graph; in fact, we have two running on the new SanDisk wireless drive2. And if, despite our best efforts, something should go wrong and a virtual filesystem driver steps on a NULL pointer, the fault will be captured and the process will be killed and restarted without bringing down the entire device.
What was launched today is the basis for our platform, but there’s much more in development that will be revealed in the coming months. Our product roadmap is full and we’re continuing to pour effort into improving product quality. We’re extending our approach to software quality beyond industry best practice of extensive testing and static analysis and into the next frontier. Our focus extends not just to the software that runs on the product itself but also through the hardware design and the manufacturing automation and testing systems that we build for our products, which made the jump from Racket to Typed Racket for this product.
I’m incredibly proud of our team and what we’ve produced here. It’s immensely gratifying to start with a vision and produce multiple products from soup to nuts (or in our case, from PCB design to firmware to apps). The next chapter starts today, and our mission is considerably more ambitious: to build trustworthy systems that protect and empower their users, and to raise the bar for software quality and security across the industry. If the last five years are any indication, it’s going to be a blast.
1 An exercise for the reader: connect two clients to the network created by drive, then assign each the same IP address, and open two connections to the drive’s HTTP port from the same source port and using the same starting sequence number. What do you expect to happen? What does happen?
2 The drive creates its own wireless network and can join an existing wireless network.