Google's not-Linux OS documentation cracks box open at last
'The Book', a first-draft programmer's Fuchsia how-to
Google has publicly revealed more files documenting its Fuchsia operating system.
The last time we updated readers on the OS it needed fair amount of work to get going.
Now, Google has decided it's time it gave the world something more informative than a bunch of Git-managed open-source code, and this week published what it calls The Book: a programmer-oriented guide to interacting with Fuchsia (which, The Book emphasized, is Not Linux).
As befits an OS that targets embedded devices, Fuchsia employs a microkernel architecture. The documentation lays out the design of the kernel; its software interfaces; the surrounding services and libraries for running programs, storing data, and accessing the network; and the ways in which you can draw stuff on a screen. This OS is still a work in progress, judging by the docs.
The files refer to lk, aka the Little Kernel microkernel developed by Travis Geiselbrecht. He joined Google in 2012, and has been working on Fuchsia with fellow Googlers since 2015, bringing his operating system design skills to the project.
The Fuchsia kernel, dubbed Zircon, is based on lk, and is written in C. It gives applications 32-bit handles to access objects via system calls. These handles, and their associated granted rights, are used to manage memory, exchange information with other running programs, and control synchronization primitives. C++ classes are provided to manipulate these objects via syscalls.
The other concepts defined in the kernel documentation are jobs, processes, and threads; signals; wait rules; and events.
Google's brand new OS could replace AndroidREAD MORE
Next up from the kernel is the Zircon Core, which handles device drivers, POSIX-compatible input and output, a C runtime, and ELF binary loading. On top of that is the Zircon Framework, which runs core libraries, applications, and provides namespaces and sandboxing. The currently-completed documentation is rounded out with storage, networking, and graphics.
The source code identifies x86-64 and arm64 as supported processor architectures.
Just how far Google will take compatibility is one as-yet-unwritten chapter in The Book: “Backwards Compatibility” is listed as a chapter but not linked, but it promises an explanation of what POSIX subset it supports, and an enigmatically titled “Web runtime."
One other thing to note about this document is that when Fuchsia broke cover in 2016, we noted that one reason for its creation could be that Google needed a spare mobile OS in case of a catastrophic loss in its long-running Java lawsuit with Oracle over Android. A spare would also be handy if Google ever got bored or frustrated with Linux, the OS on which Android is based.
Java-aaaargh! Google faces $9bn copyright bill after Oracle scores 'fair use' court appeal winREAD MORE
And as it happens, just two weeks ago Oracle did have a big win against Google when the US Court of Appeals said Google had infringed Big Red's Java copyrights in creating Android. The court ordered the internet advertising behemoth to cough up US$9bn to the database giant. Google has yet to say whether the case impacts the future of Android.
While the release of this document suggests Fuchsia has a future, we can't yet say if it also means Android's is limited. ®