Sunday, August 21, 2016

Why On Earth Is Google Building A New Operating System From Scratch?

Its latest operating system experiment throws out decades of software history in pursuit of smaller-scale devices.


Last week, a group of Googlers did something strange: They quietly revealed a new operating system that theoretically competes with Google's own Android OS.

Dubbed Fuchsia, the open-source OS-in-progress could run on everything from lightweight, single-purpose devices (think ATMs and GPS units) all the way up to desktop computers. But unlike Android, Fuchsia isn't based on Linux, nor is it derived from any of the other software that underpins nearly all personal computing and communications today. Instead, it's an attempt to start from scratch.

Google has yet to make any big announcements about how it might use Fuchsia, which is still in early development and could be nothing more than an experiment. Still, Google has plenty of reasons to hit reset on decades of software history.

CRUSTY KERNELS

Here's something you might not realize about your phones, tablets, and laptops: For the most part, they're adaptations of software "kernels" that are quite old. Android uses the Linux kernel, which began development in 1991. Mac OS X, iOS, and other Apple platforms are based on Unix, which originated at AT&T's Bell Labs in 1969. Windows computers are based on the Windows NT kernel, which dates back to 1993.

The purpose of a kernel is to manage the deepest levels of an operating system. It handles requests from hardware devices such as keyboards, schedules tasks, and manages files and memory. In doing so, it abstracts the intricacies of the operating system, which is helpful, say, for allowing an app to print without its developers having to know anything about specific printer models.

The resilience of old kernels like Unix, Linux, and Windows NT may seem paradoxical for an industry obsessed with the state of the art, but industry analyst Horace Dediu argues that that at its lowest levels, computing is fundamentally the same as it was a few decades ago. For instance, today's Windows computers use chips that are direct descendants of the Intel processor in the first IBM PC. In that sense, the kernel is just a commodity.

"We are still using exactly the same architecture, we're using exactly the same notions of computing—registers, gates, transistors—so for that reason, there's no need to make a better kernel," Dediu says. "Kernels have been figured out."

Or so we thought. These days we're packing sensors and computing power into more things, turning ordinary homes, for instance, into smart ones, and generally making everything more connected (Internet of Things, in industry jargon). The thinking behind Fuchsia may be that aging kernels such as Linux are inadequate for this new wave of devices. As such, its creators are imagining a new one for modern times. (The kernel itself is called Magenta, which is based on another recent Google experiment called LittleKernel.)

Zach Supalla, whose company Particle offers hardware kits and developer tools for the Internet of Things, notes that Linux poses a couple of problems for these small-scale computing devices.

A general-purpose operating system like Linux can also be less secure for Internet of Things applications.

For one thing, Linux is large for this type of application. Even though the Linux kernel is modular, allowing developers to strip away unnecessary parts, it still ends up occupying megabytes' worth of space. That means it's harder to cram the Linux kernel onto cheap microcontrollers, which in turn necessitates processors that are much larger, pricier, and more power-hungry.

"You haven't jumped the gap into this whole other supply chain of stuff that's manufactured at much higher qualities, and for much, much cheaper," Supalla says.

The other problem is that Linux isn't "real-time." Unlike the embedded operating systems found in ATMs, medical products, and other single-purpose devices, Linux uses a schedule to handle a multitude of tasks. While this can maximize performance in general-purpose computers, it causes problems for devices that require precise timing, like 3D printers or the many motorized controls inside automobiles.

"If you want to make sure that this thing fires at exactly the right microsecond, you don't really want to have a process in there deciding what runs when," Supalla says.

A general-purpose operating system like Linux can also be less secure for Internet of Things applications, Supalla says. There's more code, which means more potential security loopholes that need to be addressed or locked down through firewalls and virtual private networks.

"One of the values of running a [real-time operating system] or embedded system is, there's nothing to lock down," Supalla says. "It's not running a bunch of stuff you have to be concerned about. It isn't running anything at all except the software that you write."

Supalla speculates that Fuchsia is an attempt to get the best of both worlds between Linux—which is still better at allowing apps and hardware to communicate through the operating system—and today's embedded systems, such as FreeRTOS and ThreadX.

"They'd probably like to have something that has the level of abstraction of a Linux, but the performance, the small size, and the real-time nature of an RTOS," Supalla says. "That would be a very valuable thing for one to have, and I think in theory it can be done. It's just never been done before."

SCALING UPWARD

If Fuschia only targeted small-scale devices, it might not be that noteworthy. But Fuchsia's developers have broader ambitions in mind, claiming that the operating system can scale to smartphones and desktop computers. In theory, that would make Fuchsia a direct alternative to Google's Android and Chrome OS.

What's the motivation? According to Supalla, it's possible that starting from scratch would allow for a more efficient operating system, which in turn could power more efficient servers—something Google is always interested in. He also notes that desktop compatibility could help with simulating a large number of smaller devices running at once, to ensure they work at scale.

"It's much easier to have a thousand servers that you spin up, that are each running a thousand copies of the software application at the same time, than it is to go get a million chips and boot them all up, so it's better for testing," Supalla says.

Fuchsia's developers say they'll document and announce the operating system eventually.

Dediu has a different theory: A fresh operating system could be free of the intellectual property licensing issues that have hounded Google with Android. "Because it's a clean-sheet design, it doesn't have any IP that anybody else is going to line up for," he says. "That might be a reasonable assumption, because Linux does have some hairy IP issues."

Keep in mind this could all be academic. Fuchsia's developers say they'll fully document and announce the operating system eventually, but that could be a long way off, and it's unclear whether Google will throw any weight behind the effort. The Android ecosystem is already huge (and is starting to merge with Chromebooks). Meanwhile, Google is also scaling a version of Android down to Internet of Things devices with an embedded variant called Brillo—downsides of Linux be damned—and it's shaping up to be a full-blown platform, not just a bare-bones operating system.

Then again, Unix got its start as a volunteer project with no organizational recognition from Bell Labs, and Linux Torvalds started working on Linux as a hobby. Maybe in a few decades we'll be talking about Fuchsia's unlikely origins within the Googleplex.

Source: Fast Company
Author: Jared Newman

Activity by Apptimo