top | item 30827210

Fuchsia Workstation

367 points| timsneath | 4 years ago |fuchsia.dev

445 comments

order
[+] benjaminl|4 years ago|reply
Since the build page doesn’t provide much context, Fushsia has 3 different configurations bringup, core and workstation.

The workstation configuration is described as:

> workstation is a basis for a general purpose development environment, good for working on UI, media and many other high-level features. This is also the best environment for enthusiasts to play with and explore.

From https://fuchsia.dev/fuchsia-src/development/build/fx#key-pro...

[+] miiiiiike|4 years ago|reply
Having used several Google OSS projects I would NEVER consider using an OS from Google.

The documentation structure is often atrocious, the are always dozens of recognized but unresolved bugs, those bugs often remain for years, the documentation often is not updated to reflect the state of open bugs so code samples and tutorials are often broken, the bugs are resolved slowly, non-Google pull requests are often left to die on the vine[0], no road maps, the Google employees use an internal build system and the external packages are often broken, and these three words: "Not. A. Priority." If your bug is not an internal Google priority you are basically out of luck. Hope you like maintaining your own patches, for years.

I'm not saying that OSS projects from other large projects don't have similar problems, I'm saying that every Google project I've depended on has had all of these problems.

The idea of my OS being run like this? Absurd.

This just is a guess, but, I'd wager that most Google OSS developers just wanted a fancy corporate job and got stuck interfacing with the public on an OSS project. I don't think that most of them aspired to be OSS developers and it shouldn't be a requirement.

[0]: Just today a two year old bug that I've been watching was closed by merging a pull request that was first opened in early-2020, closed as stale in mid-2021, and re-submitted/merged this week.

[+] cjbprime|4 years ago|reply
Are there screenshots or videos of Workstation?
[+] kgraves|4 years ago|reply
People are saying Fuchsia is only usable on IoT devices, not much progress, etc.

However, not many new operating systems have a Chrome browser [0] on them and Fuchsia has this, not many people realise how huge this is let alone on a new from the ground up OS.

So I don't think Fuchsia will be going away, in fact I would say it is coming pretty fast.

Whether you like it or not, this tells me that they are targeting the desktop, laptops and chromebooks next.

[0] https://youtube.com/watch?v=Rg9YgWXLfEo

[+] sidcool|4 years ago|reply
Google has been investing in Fuschia for years now. What's their end goal with it?
[+] Osiris|4 years ago|reply
This is interesting. I wonder what goal they are aiming towards.

There isn't much information about the capabilities of workstation. Is it a GUI OS? Can one run Flutter apps on it?

[+] owaislone|4 years ago|reply
Yes it has GUI. Flutter is the main/official way to build apps on it. The OS shell is also written in Flutter if I remember correctly. So far, the OS has been seen on or confirmed to release in near future on one Google Home device. Technically though, it seems to be designed for all kind of consumer devices ranging from phones to desktops.

IMO this is more or less an experiment which if successful, will end up merging/replacing Android and Chrome OS into a single OS. Android and Chrome runtimes can be ported to Fuschia and the underlying OS can be swapped on many devices. New devices can ship with Fuschia + an android compatibility layer. Developers would be able to ship native Fuschia or android apps. Would work on phones, IoT, Chromebooks and could be install-able on desktops.

This is all just speculation though and a lot of things need to go right for this to happen but I'd imagine this would be the ideal/desired outcome for its creators.

[+] p_l|4 years ago|reply
Anyone noticed how the GN tool used to build Fuchsia looks like someone really wanted to use Bazel but for whatever reason they had to use Ninja?
[+] sequence7|4 years ago|reply
Is anyone providing unofficial builds of Fuchsia? I can see from the article the requirement is to build it yourself but I'm lazy/time poor and I'd really like to try runnning Fuchsia in an emulator.
[+] est31|4 years ago|reply
Fuchsia is the most serious OS that has significant components written in Rust at this moment, so this is pretty neat!
[+] pabs3|4 years ago|reply
How much hardware support is there in the public Fuchsia source and how much of it is going to be proprietary?
[+] jillesvangurp|4 years ago|reply
I think the key thing to watch is what they will replace Qualcomm's firmware with; if at all. Apple made a move a few years ago to reduce their dependence on Qualcomm. From what I've heard, Apple is rolling out their internal replacement for their 5G modem from year or so.

Basically Android is OSS linux with a lot of proprietary drivers that are not under the control of Google. And a lot of those are provided by Qualcomm. What they provide is effectively an OS inside an OS. Linux is a somewhat hostile environment for proprietary drivers and it necessitates some technical steps to insulate against the 'viral' nature of the GPL.

Google likes their dependency on Qualcomm just about as much as Apple does. It would not surprise me if they eventually move to their own in house 5G stack and I bet that would be a proprietary fuchsia exclusive. Proprietary ensures you get your software from Google (or Qualcomm). And making it exclusive to Fuchsia ensures they have full control over the combined package.

Chinese manufacturers are also insulating against being dependent on Qualcomm. E.g. Huawei has their own 5G modem and is of course also in the base station market.

[+] vbezhenar|4 years ago|reply
I bet that most of drivers will be proprietary. It seems the main motivation for Fuchsia: to allow windows-like model for drivers with stable driver API, because Linux-like model does not work well for hardware manufacturers.
[+] KSPAtlas|4 years ago|reply
You basically need a compiler farm for fuchsia. I tried compiling it once and it took 3 hours, only to find out to need to recompile to add anything
[+] krausejj|4 years ago|reply
It's a shame fuchsia is so hard to spell. 25% of the references to "fuchsia" so far in this thread spell it incorrectly.
[+] childintime|4 years ago|reply
To get on top of your fear of the new (and other insecurities), this is the video to watch: https://youtu.be/gIT1ISCioDY.

No need for the habitual google defamation exercise here.

[+] m6w6|4 years ago|reply
Since nobody asked yet; Why explicitly Intel NUC instead of general x64?

I can only guess that it's because of HW drivers?

[+] nomercy400|4 years ago|reply
Anybody know what the license of the source code of Fuchsia is? I could not easily find it on the website.
[+] rvz|4 years ago|reply
If you have read beyond the title, I don't think this is what you think it is. (At least not yet anyway), since it is still not ready yet as a general purpose workstation.

It's more like building it, rather than using it here.

[+] kwijibob|4 years ago|reply
Would there be a growing job market for people who master the Fuschia ecosystem now?

Or is it basically just for Google employees working on Google devices?

[+] mhoad|4 years ago|reply
I think the idea of a proper production grade Fuschia workstation that you could use as a daily driver is still a few years away realistically.

However, I think when that happens a lot of interesting opportunities will I inevitably open up because it provides what I think is an extremely compelling story for a lot of people you might not initially anticipate. For example, from a security and just general maintainability point of view I would expect it to become the new obvious choice inside of organisations for those who aren’t still tied to Windows specific desktop applications.

[+] cletus|4 years ago|reply
I'm not sure people realize just how much money Google has thus far sunk into Fuchsia for (AFAICT) very little in return. It was in the billions... years ago.

I don't know if this is still the case but the mission was absolutely to replace Android. Many at Google believe Android to be unsalvageable on two fronts: drivers and the general ecosystem.

It has been pitched internally at various products and (AFAIK) only found traction thus far on Nest hubs. It was heavily pushed for Chromecast but I guess nothing came of that.

I'm not an OS expert by any means but I am unconvinced about the viability of a microkernel architecture beyond theory. Security is an often-cited issue with context switching between user and kernel space.

[+] dollop43|4 years ago|reply
Project Treble is an effort to separate driver and Linux kernel. And later Android added mechanism to upgrade kernel from play service. I guess Google is resourceful enough to hedging on different approach to solve a similar problem.

However, the crux of the problem is the Android manufacturer. You can't solve a human and incentive problem with a technical solution. Project Treble makes manufacturer easier to support their device, but they still don't motivate to do it. Google needs a tighter control on what device manufacturer should release.

Android One is a good approach, only qualify certain devices to be include for meeting certain criteria. They could actually create a watermark on unsecured device for not updating Android version, just like chromium do it to website not using https. I think this is more effective than creating a new OS just to let the manufacturer being lazy.

[+] mdasen|4 years ago|reply
> Many at Google believe Android to be unsalvageable on two fronts: drivers and the general ecosystem.

Could you elaborate? I'm simply curious why people would feel that way about Android. By the ecosystem, do you mean the fact that apps are primarily Java? That they're poorly made? What makes the drivers unsalvageable? Proprietary blobs interacting with the Linux kernel? Something else?

It seems like a new kernel would have minimal drivers, but maybe it would offer a better way of having proprietary drivers? Linux doesn't have a stable device driver ABI so maybe that is making it hard for Google to update Android without the phone manufacturer being involved in the updating?

I'm just curious what people see as the problems with Android that would require a new OS to fix. For example, if the problem is poorly made apps, that problem will follow you to a new OS if you let them publish for the new OS - and if you truly don't want them, you could remove them from the Play Store.

[+] owaislone|4 years ago|reply
As an outsider, I'd like big corps to spend billions on research projects or technologies like this than social networks like Google Plus. I feel a lot more good can come out of these projects even if the projects themselves fail.
[+] torginus|4 years ago|reply
Generally speaking the hybrid microkernel is the architecture both macOS and Windows went width, where some drivers still run in ring 0, but have some level of isolation between the core OS stuff, and driver stuff.

For example, this allows Windows to restart a crashed GPU driver.

Windows (and I think macOS as well) also has a stable kernel ABI/API for drivers, a fact that's probably appreciated by the hardware vendors.

The bad name attached to microkernels I think stems from the debate between Tanenbaum and Linus in the 90s, where Tanenbaum's microkernel was sorely lacking in performance, mostly owning to the incredibly resource intensive context switches on the CPUs of the time.

However, on newer CPUs, this cost is much less significant as CPUs are better optimized for this, making it worthwhile to revisit this issue.

[+] grumpyprole|4 years ago|reply
> unconvinced about the viability of a microkernel architecture beyond theory

QNX is an example of a real-world microkernel OS that Blackberry purchased for use in mobile phones. One could argue it had superior peformance to Linux, not because of throughput, but due to its real-time guarantees.

[+] johncolanduoni|4 years ago|reply
The idea that microkernels will have insufficient security due to additional context switching is a concern I’ve not heard before. Care to elaborate?
[+] pjmlp|4 years ago|reply
Most OS targeted to embedded space are microkernel based, while Windows and macOS have long been microkernel inspired with plenty of OS subsystems running on userspace.

UNIX FOSS clones abhor microkernels, and then run containers everywhere with a monolithic kernel stuck accessing the real hardware via a type 1 hypervisor.

It isn´t a theory for about several years already.

[+] jpkeisala|4 years ago|reply
> much money Google has thus far sunk into Fuchsia for (AFAICT) very little in return. It was in the billions... years ago.

Citation needed

[+] pch00|4 years ago|reply
It has been pitched internally at various products and (AFAIK) only found traction thus far on Nest hubs.

Since my Nest Hub received the update to Fuchsia it's been generally more laggy and unresponsive. Occasionally it needs a power cycle. I wish there was a way to downgrade to whatever it had pre-Fuchsia :(

[+] codedokode|4 years ago|reply
> with context switching between user and kernel space.

This is an issue only because today CPUs are optimized for legacy monolith kernels which rarely switch and not for microkernels.

Microkernels are very important because they allow to reduce privileged code size and move most things out of kernel. Legacy kernels like Linux or Windows are just an endless source of vulnerabilities, use legacy programming languages and have zero security. Linux doesn't even use static code analysis.

For example, in Linux a network card driver runs at kernel with maximum privileges. In a microkernel it would be a separate process without access to anything in the system (even to a file system) so exploiting it wouldn't give much to attacker.

[+] beagle3|4 years ago|reply
QNX did it right. So far, it doesn’t seem like anyone else did.
[+] nine_k|4 years ago|reply
QNX is a living proof of viability of the microkernel architecture in industrial setting.
[+] zozbot234|4 years ago|reply
Microkernels are also not very useful on hardware without IOMMU's or separate buses isolating external components (like most SoC hardware), because a rouge-acting driver can take over your system anyway, so it has to be part of your trusted base. You can make such drivers into separate kernel-side threads or tasks, as a matter of pure convenience, but implementing them in userspace adds no security value.
[+] rob74|4 years ago|reply
Some stats about the various ways of writing the project name (taken from these comments):

Fuchsia: 39

Fuschia: 19

Fushia: 1

Fuchia: 1

Other: ?

...so we can conclude that the UX of this codename is terrible. Maybe they should change it to something more easy to remember, e.g. Fuxia (Fucksya would probably also be easier to remember, but could be deemed too obscene)?

[+] naoqj|4 years ago|reply
My conclusion from reading this is that Americans can't spell.
[+] inops|4 years ago|reply
Naming it "Fucksya" wouldn't be the best advertisement either
[+] detritus|4 years ago|reply
The more popular it becomes, the more people will learn to correctly spell fooshia.
[+] catchclose8919|4 years ago|reply
...I honestly propose a new "F*ks Yeah!" spelling for this project just to mindfuck with future programmer archaeologists
[+] davnn|4 years ago|reply
The name is perfectly fine from the perspective of a german-native speaker, just like the color Fuchsia.
[+] zoltar|4 years ago|reply
...and no comments in here with either pink or Taligent?
[+] aynsof|4 years ago|reply
To be fair, I didn't think anyone would be able to spell 'kubernetes' correctly. But life found a way - thank goodness for numeronyms!
[+] ggm|4 years ago|reply
A plant family named after a person called Fuchs.
[+] lnxg33k1|4 years ago|reply
In italian the color name is fuxia
[+] pch00|4 years ago|reply
Not to mention the Fuchsia logo looks very much like the Fedora Linux logo.
[+] Razengan|4 years ago|reply
A useful mnemonic may be “Fuck Sia”, at least that was how I broke it down.