For those who haven't heard about Fuchsia, it's a brand new operating system by Google that's been under development since at least 2016, and may someday replace Android (though this is only speculation). Heck, someday it may be used as a web server, however, that doesn't appear to be Google's intention for Fuchsia. Though Fuchsia is still a work-in-progress and it appears its primary target is mobile or IOT devices, it has some people uneasy about the long-term success of Linux on the server.
Despite the enormous potential of Fuchsia, I'm betting on Linux. Linux has essentially won the competition amongst its rivals to become the de facto web server operating system. So why are some Linux users uneasy about Fuchsia? The reasons are both philosophical and technological, rooted in the spirit of free software and the technical potential of microkernel architecture. Let's briefly revisit the 80s to understand these issues better, then explore Linux's place in a post-Fuchsia world.
In 1983, Richard Stallman had the bold vision of building a world where corporate entities didn't decide what software users ran and what they could do with it. He believed in free software, or the idea that if you received software–whether for free or for a cost–you should have the freedom to use, modify and redistribute it as you wish. In pursuit of this dream, he began writing a free and open source operating system called GNU.
By 1990, Stallman and contributors had implemented much of the core functionality of GNU. The only piece left to code was the kernel, which is the most low-level piece of an operating system that interacts with the computer's hardware. In 1992, Linus Torvalds released the Linux kernel as free software, and it was integrated into GNU, realizing Stallman's vision of a free operating system. This operating system was called GNU/Linux, but most people just call this OS and its derivatives 'Linux.'
Fast forward almost 30 years, Linux-based operating systems power most of the Internet, and businesses that have invested in Linux have reaped incredible rewards from the freedoms it provides. No single corporate entity controls Linux, but countless organizations have benefited from it. The Linux kernel powers Google's Android OS, the majority of Amazon Web Services, and has been fully embraced by Microsoft, both in their Azure Cloud and in the Linux Subsystem for Windows. So what does Fuchsia OS offer that Linux doesn't?
Much of the anticipation surrounding Fuchsia revolves around its microkernel architecture. To understand what's special about microkernels, it's helpful to compare them to monolithic kernels like Linux.
In Linux, the kernel is a single large process. You can imagine the kernel as a stack of interdependent services, which manage file systems, interprocess communication, drivers, etc. These services are all tightly coupled, and if any of them fail, the entire kernel panics, throws up all over itself and crashes the machine. Applications run on top of the kernel as separate processes in an area referred to as "User Space."
Compare this to a microkernel. In a microkernel, almost everything except interprocess communication and scheduling are processes that exist in User Space. These processes are independent and loosely coupled, meaning if one crashes, the system can continue operating and potentially even restart the crashed system without restarting the entire system. The stability benefits of this–especially in a server environment–are hard to overstate. File systems could potentially be swapped in real time without restarting the server. This kind of stability is incredibly desirable on the server.
It's not hard to see why Linux users–specifically sysadmins tasked with maintaining Linux servers–might be uneasy with their operating system's long-term relevance. This unease is compounded by the fact that Fuchsia is being bankrolled and developed by Google, the exact kind of corporate entity that Stallman was trying to prevent from deciding what software ran on our digital devices and what we were allowed to do with it. Even though Fuchsia is free software, Google's control over the project still makes some in the Linux community uncomfortable.
It's somewhat unlikely that Google will use Fuchsia as a server technology: it's much more likely to be used as a replacement for Android and Chrome OS. But what if Google did decide to use Fuchsia on the server?
Despite Fuchsia's modern microkernel architecture and Google's immense development resources, I'm not worried about the long-term sustainability of Linux on the server. Why?
Software Architecture Doesn't Win: Business Value Does.
While it's easy to imagine that businesses are eager to embrace new technologies, this is rarely the case for big businesses.
Take WordPress, for example. This blogging platform from the early 2000s has grown to power 35% of sites on the Internet, and its market share continues to grow with enterprise businesses and bloggers alike. This happened in spite of WordPress accumulating 15 years of technical debt, using procedural architecture and being powered by the clunky PHP language. Where modern development rejects global state and side-effects, WordPress has been powered by these concepts since it's inception.
In fact, WordPress's success may be a result of these very things.
Businesses value stability. WordPress's success has largely been driven by its vast community and by introducing few breaking-changes from version-to-version, even if it means embracing less-than-perfect architecture. This has made it a safe bet for businesses and bloggers alike to depend on year-after-year, knowing it's unlikely they'll have to incur the cost of rearchitecting their entire stack for years to come.
All the while PHP, the language that WordPress was built on, has become the punch line of countless developer jokes because of its comparatively slow performance and inconsistent API. Yet, despite there being much more elegant web tools to choose from in 2019 (Ruby on Rails, Django, .NET, Node.js, Elixir), PHP still powers almost 80% of sites in the Internet because of its ubiquity, support and legacy. Businesses will continue to use PHP because it is a safe bet.
If you need further evidence that performance and architecture alone aren't the deciding factor when picking technologies, consider that W3Techs reports Apache powering 42% of web servers compared to Nginx powering only 31%, despite Nginx's superior performance.
In the case of WordPress, PHP and Apache: more powerful and performant alternatives have been available for each of these for over a decade, yet these alternatives have failed to overtake these technologies' dominant marketplace positions because of the business value they each offer.
Linux has an almost 30-year legacy, a thriving community and is a safe business bet. It will benefit from the same traits that have kept WordPress, PHP and Apache thriving, despite Fuchsia's potential architectural improvements from its microkernel.
Linux Supports Older Hardware. Fuchsia Probably Won't.
With all the hype around containers and cloud hosting, it's easy to imagine that any company worth their salt has migrated their software off of physical servers to the cloud and containerized their applications. This is simply not the case. Many businesses have invested heavily in their legacy hardware and are unwilling to upgrade to modern servers or cloud-based alternatives in the near-or-long-term future.
Fuchsia is a from-the-ground-up, fully modern operating system. As a result, it is unlikely it will support legacy hardware. One of Linux's strong selling points is its exceptional support for legacy hardware, sometimes long after manufacturers have decided a product has reached its end-of-life.
Tech Giants and Big Business are Invested in Linux.
Amazon, Microsoft, IBM and countless others have invested billions in Linux, and the companies that use their Linux services often have invested millions. These investments can take years of planning and execution, and companies will try to extract as much value out of these expensive investments as possible. Even if these companies were to introduce Fuchsia OS into their newer infrastructure, they'll likely continue to run Linux alongside Fuchsia.
Monolithic Kernels are Typically More Performant Than Microkernels.
Monolithic kernels are very performant. While this comes at a cost of some stability, performance matters on the web. Though it is possible that Google finds a way to keep Fuchsia as performant as its monolithic counterparts, it's likely that it will have some of the performance drawbacks as other microkernels.
While I've argued that software architecture is rarely the deciding factor when picking technologies, reduced performance can certainly be enough to dissuade an organization from migrating their infrastructure to a new platform.
Fuchsia Isn't a Safe Bet.
It is well-known in the tech community that Google regularly kills its own projects, even after investing a great deal of time, money and talent into them.
Don't believe me? Visit killedbygoogle.com. You can see the graveyard of Google projects that were supported by the tech-titan for years–sometimes for over a decade–that were eventually discontinued and abandoned.
Linux-based operating systems have been supported by the community from their inception. Even in open source projects, Google products are heavily reliant on their staff engineers, and they can fall to the wayside as soon as Google stops supporting them.
Knowing all of this, how comfortable could a CTO be recommending that her company invest heavily in migrating their core infrastructure to a platform that may be discontinued in only a matter of years? Would the benefits be worth the risk?
It would likely take over half a decade before large companies would feel comfortable migrating to a Fuchsia OS server, and it still won't be worth it for many companies because of the reasons previously listed.
I believe that if Google chooses to invest in Fuchsia OS, it will be a good thing for both consumers and free software advocates alike. We've learned a lot in the almost 30 years since Linux was created, and the cycle of innovation should continue. With Google pushing Flutter as a cross-platform development solution for Fuchsia, Android, Linux and others, it's my hope that we see downstream benefits of software on the Linux desktop that wouldn't be available otherwise. Linux will almost certainly continue to thrive alongside Fuchsia.
Linux has earned its place on the server by providing dependable business value, and it's unlikely that a new microkernel-based operating system would sway a majority of enterprise businesses, many of which are running battle-tested monolithic PHP applications on Apache and older hardware. Linux is a good business bet.
Whatever happens with Fuchsia, Stallman's vision of building a world where corporate entities don't decide what software users run and what they can do with it is safe with the GNU/Linux operating system.