My impression when it was announced was it started as a really neat personal project by some long-time OS development nerds (I mean that in a good way) that then escaped the gates and then it became a hammer in search of nails.
It ended up eating the project I was on, and was many many years late in the process of doing so, breaking schedule promise after schedule promise. I kept waiting for management to put a lid on it, but they seemed to have infinite headcount and budget, and patience from mgmt to support their mission to rewrite the world while we struggled to get time and resources to maintain the codebase we already had which was shipped as a profitable product and sitting in millions of people's homes with good reviews.
Google has OS politics dysfunction... especially in hardware devices where there are almost a half dozen Linux distributions fighting it out for marketshare. Fuchsia just added to that craziness.
None of this changes that the rollout for these things could be done incrementally in parallel with the existing Linux based platforms, with an eye to produce shared components whenever possible instead of rewriting the world. The Fuchsia folks were notorious for their obsession with purity of essence, and because they had the headcount and $$, they just did what they wanted.
Were I to guess, the prime motivation for Fuchsia would be to have a phone or IoT device which could regularly receive kernel updates without needing hardware vendor interaction. That's the biggest sore spot for linux. (not that I think Fuchsia's kernel would require a bunch of updates due to how simple it is).
This is an outsider's perspective. Definitely a big expensive project that reminds me of other big expensive google projects which seem DoA.
And yeah I think you're pretty on about the driver/vendor comment.
How does the lack of hardware vendor cooperation get improved by moving the problem into userspace?
You still need/want the hardware vendors to create drivers and update them, which they frequently don't.
I guess it's better because you're just going to be content with binary blobs?
From the outside looking in I thought the security model could really help Google lower splash radius from zero days? The feature-set certainly sounds appealing just reading the marketing blurb. [1]
With any luck in the next iteration Google will create a Fuschia ISO or VMDK so people who want to give it a spin without building it can quickly get a taste of the environment. The fact you can at least run it in an emulator is definitely a step up from requiring dedicated hardware, which was the previous process. [2]
[1] https://fuchsia.dev/fuchsia-src/concepts/principles/secure [2] https://fuchsia.dev/fuchsia-src/development/hardware/paving
How can they solve that with software? It's an incentive/economic problem. Hardware vendors don't want to play nice, there's no incentive for them. It's better if they're jerks and never release their stuff or do it years after their hardware stops being relevant.
Now if they have Microsoft/apple level os penetration you can be damn sure it's gonna be only serving google search. Just to ensure/build more moat aroing Google search can justify infinite cost
Unless they want to do crazy things like sell to the EU market, in which case they're back to having to offer multiple search engines.
After years in this industry and seeing so many things like this just fail, my perspective is that the "right" way to do it (rewrites/replatforms) is build shared components and have teams that deploy to both and so live in both worlds.
This way the old gets the new, and the new has to live and breathe the reasons for the compromises that the old lived through the first time. And you don't end up with a "legacy" team and a "future" team.
Example: I tried (a bit half-heartedly and I was low-status so nobody cared) to pitch that we write a new screenreader for Home Hub rather than brutally kludging in the one from ChromeOS. A new screenreader that could be shared with Fuchsia, as they were writing one from scratch. If building from scratch why not build one as a component that can be shared? That approach was seen as a total non-starter by the people I talked to. Fuchsia got to write their shiny new thing basically in isolation and barely interacted with us poor folk who had to keep maintaining the actual-existing screenreader deployed on several million devices in people's homes. Mainly fell to my friend/coworker who was a hero.
BTW we both quit the same day.
https://cs.opensource.google/fuchsia/fuchsia/+/main:src/ui/a...
IBM has, what a half dozen between mainframes and AIX and older ones?
Apple has their own OS of course.
Microsoft of course.
Facebook? Netflix? Amazon? Such second-rate "tech" companies, tsk tsk.
The main advantages over Linux are a clean room design, better security-by-design (having a microkernel means the attack surface is way smaller, capabilities means sandboxing-as-a-security-mechanism becomes possible), and more control over the project.
Honestly, I think the other commenters are being way too cynical about this. If this project gains traction, even if Google goes evil with it, forks and community distributions could still happen like they do for Linux, and be immensely beneficial. The sandboxing alone is a huge benefit.
Android is also pretty unapologetically POSIX/Linux and doesn't shy away from exposing that to applications (eg https://developer.android.com/reference/android/system/Os ). So I don't think Fuchsia would replace the Linux kernel in Android. It'd have to be far more rewarding a migration to justify the massive ecosystem breakages that would result (for both apps & OEMS)
Windows XP proved you can do it, but that at least came with a massive (real world) improvement to things like security & stability that were appreciable upgrades to end users.
This is how I run services on my home server. Plex runs in a rootless container under user plex for example.
Also, 5 or 7 years from now, on which OS will Chrome or Chromium run better? Fuchsia or Linux?
For the past 12 months, I've been running Chrome "on Wayland" (without XWayland in between) and although it is definitely usable, there are many small bugs some of which has existed the entire 12 months.
(And will Firefox even be maintained 5 to 7 years from now?)
Exploits in the Linux kernel are very few & far between. How would Fuchsia represent a massive (real world) improvement in Linux over something that basically doesn't happen?
By contrast for the Windows 9x -> NT kernel transition, the 9x kernel (in Windows ME at the time) had rampant worm issues and was notoriously unstable in very significant & practical ways, like plugging in USB devices would trigger BSODs with some regularity.
These days the majority of kernels (Windows, Mac, and Linux) have vanishingly few exploits and are for the most part extremely stable. There's not much to improve on at this level.
> For the past 12 months, I've been running Chrome "on Wayland" (without XWayland in between) and although it is definitely usable, there are many small bugs some of which has existed the entire 12 months.
Note that neither ChromeOS nor Android use Wayland or X11. That compositor fight that desktop Linux can't move on from isn't something that plagues anybody else, so there's nothing for Fuchsia to "fix" there.
That's what fuchsia bullet proofs. Drivers are isolated from the kernel such that an exploitable driver doesn't also give the exploit root access.
Desktop Linux is pretty far behind the curve at this point, but Android/iOS aren't (and increasingly MacOS/Windows are fixing things up)
Fuchsia seems like it'd be an incremental improvement here at best, and "real world" improvements even less clear than that.
That's an interesting take on multiple code execution bugs per year. And not via drivers, but userland-exploitable code in general subsystems.
Unless you're referring to remote code execution, which in the era of ubiquitous web applications (often running involuntarily through advertisements, etc) seems like a distinction without a difference.
We're exclusively talking about the kernel+drivers here. User land exploits are irrelevant (and obviously not something fuchsia will be immune to).
> Unless you're referring to remote code execution
I'm referring to exploits that actually are found in the wild to have caused damage that a change in kernels would have done something to prevent.
Sure, but Android already has that via a user per application for app sandboxing & a very extensive selinux policy set[1]. Which makes the real-world benefit of that seemingly very negligible. There's a huge gap between desktop Linux & Fuschia/Zircon here, but there doesn't seem to be a particularly big gap between Fuschia/Zircon & Android Linux.
1: See all the .te files in the public & prive dirs of https://cs.android.com/android/platform/superproject/+/maste...
Hopefully! It would be a bummer to have to switch to some hipster browser like Suckless Surf (assuming browsers made by advertising companies are not candidates for obvious reasons).
Linux's GUI layer is such a huge weak spot, and it doesn't look like Wayland's gonna fix that (it seems like it's not even set up to address the most serious problems, really).
If they put Fuschia on Android devices & Chromebooks, that'll be about the end of the story for consumer-facing Linux. Then if they can make it work well as a container-hosting server OS and decide to push it for that purpose... well, the year of the Linux anything might be behind us, then.
How hard would it be to add a posix subsystem to Fucshia?
My outsider opinion is that the Oracle lawsuit increased motivation for alternatives to Java (the language), and Google decided to put more wood behind the Dart/Fuchsia arrow.
https://fuchsia.dev/fuchsia-src/contribute/governance/rfcs/0...
That said, to your bigger point -- I think the way to pull off a brand new OS in today's world is to write something that scratches an itch that a small-ish group of people have. Do it well enough, and it will grow into something bigger. In fact this is exactly how Linux got going. It will work again, guaranteed.
Currently, they're at around ~WinXP level support
[1]: https://reactos.org/
It was even on the verge of being a microkernel and it could run a super light weight virtualization (for the lack of a better word) system: OS personas.
It would be interesting to get Windows NT NextGen, true.
However, google isn't the only player in this. They need to get all their vendors to rewrite drivers for their new kernels. They'd also need everyone using android, for example, to get on board writing drivers.
Meanwhile, one of the largest players, samsung, is looking at making their own OS.
For an already fractured ecosystem, it just doesn't seem like it's something that can be successfully pulled off. Maybe if google/android was more like apple it'd be doable. But not where there are so many players that need to be brought in the mix.
Personally I think they have grander visions than just Android.
The technical reason, I'd say is that the access control model in Android is a kludge on top of the Linux kernel, and it is more difficult to sandbox apps. Fuchsia was made to support Android's model, and in a capability-oriented OS you get sandboxing by default.
A political reason is to not be dependent on Linux, but I'm sure that other people have opinions about there being more.
My second theory is that it exists as leverage, to scare the Linux kernel maintainers into thinking that they could lose their biggest userbase (Android) and make them more compliant.
Not so sure about that. It's not like any of them collect royalties. If anything it just adds to their maintenance workload.
This would give them far more control over the direction of the OS, far more control over millions of users, and allow far less tinkering by android users.
https://www.osnews.com/story/133013/fuchsia-gets-support-for...
[1]: <https://cseweb.ucsd.edu/~voelker/cse221/papers/qnx-paper92.p...>
If I'm right, the ones who should be worried are Red Hat(/IBM) and Ubuntu. Maybe Amazon, depending on what exactly Google's thinking and how much they weaponize the ability to refrain from open sourcing some of the code.
Move away from the Linux kernel, because it limits their freedom of restricting users freedoms.