5 ms·
One thing I don't see addressed in the README is why? Why do we need Fuchsia? What problem are we trying to solve? Why should I use/develop for it instead of
by Khaine 9y ago
One thing I don't see addressed in the README is why? Why do we need Fuchsia? What problem are we trying to solve? Why should I use/develop for it instead of Windows/Linux/macOS?
Or is this just a research operating system designed to test new ideas out?
- akavel 9y agoThe main keywords are "capability based" and "microkernel". Those ideas bring numerous advantages over monolithic kernels (including Linux, Windows, macOS), especially humongous boost to protection against vulnerabilities, also better reliability and modularity. They are quite well researched already AFAIU, and apparently the time has come for them to start breaking through to "mainstream" (besides Fuchsia, see e.g. https://genode.org https://genode.org, https://redox-os.org https://redox-os.org) Other than that, for Google this would obviously bring total control over the codebase, allowing them to do whatever they want, and super quickly, not needing to convince Linus or anybody else.
- cm2187 9y agoAnd does a microkernel have anything to do with the ultimate capabilities of the machine or is it specifically targeted at embedded / smartphones / hypervisors, and not for running a regular server or desktop OS?
- akavel 9y agoI'm afraid I don't fully understand the question; would you care to try rephrasing? Anyway, as to what I seem to understand: - "capabilities": ok, I think I get the misunderstanding. The "capabilities" here are completely unrelated to "hardware capabilities" or "machine capabilities", a.k.a "what features does my phone have". The word has a totally different meaning in the technical jargon of OS development. It's a security architecture concept; as a first approximation, I'd say "capabilities" are somewhat akin to "permissions" on Android/iOS. You could maybe call them "permission lease": as an app, if you got some permission ("capability token"), you can choose to sublease/share/extend it to another app you run. See: https://en.wikipedia.org/wiki/Capability-based_security https://en.wikipedia.org/wiki/Capability-based_security - microkernels are a general architecture approach; they can perfectly well be used for regular server/desktop OS. It's just that writing a new OS for an embedded system is easier as a "first step", because you can start smaller. A full-blown "general purpose" server/desktop OS is much more complex; enough to say that it must have very wide driver support for shitloads of different hardware existing in the world. (But there are also other challenges, like multiple user management.) Microkernels were long believed to have worse performance than monolithic kernels in popular perception, thus their historical unpopularity. However, this notion was challenged by the L4 kernel (https://en.wikipedia.org/wiki/L4_kernel https://en.wikipedia.org/wiki/L4_kernel), which was I believe the reason for the revived interest. L4 was apparently published ~1993, and there was QNX long before that; I'm not actually sure why it hasn't become more popular earlier. Maybe unfamliarity to programmers? I believe microkernels enforce somewhat stricter development standards than monolithic kernels (where it's probably easier to "just hack around" and duct-tape a new feature), thus probably raising the perceived development costs somewhat (I believe it's similar as if we compared e.g. Rust vs. C/C++). edit: ah, a good example could be the L4-based L4Linux (https://en.wikipedia.org/wiki/L4Linux https://en.wikipedia.org/wiki/L4Linux) kernel, which is said to be a more or less "drop-in" replacement for the "classical" monolithic Linux kernel, so you should be able to run any Linux distro on it. Though I personally never tried it (yet). The GenodeOS folks are also working towards building a usable "general purpose" desktop OS based on a microkernel, see e.g. chronologically: - https://github.com/genodelabs/genode/issues/1552 https://github.com/genodelabs/genode/issues/1552 - https://github.com/genodelabs/genode/issues/2018 https://github.com/genodelabs/genode/issues/2018 - https://genode.org/documentation/articles/sculpt-ea https://genode.org/documentation/articles/sculpt-ea
- cm2187 9y agoThanks. You answered my question which was really if this would be an appropriate kernel for a fully blown OS.
- euyyn 9y agoA capability in this sense would be analogous to a bearer token in OAuth2, correct?
- akavel 9y agoSorry, can't say, I can never wrap my head around OAuth :( I'm not a security guy, just interested in some stuff, by the way.
- mathw 9y agoAs far as I'm aware Google have never actually said what they intend Fuchsia to be for. It may never become a product, or it might be the long-fabled-in-the-tech-press replacement/merge for ChromeOS and Android. It's entirely possible Google don't know either, they're just trying some things out and doing it in the open for whatever reason, and don't want to publicly commit to anything. It certainly gets them some interested coverage from time to time.
- thrillgore 9y agoI can think of a few whys: * They may find it easier to work with hardware vendors when they all aren't subject to the GPL * Oracle * The non-system calls overhead in Linux that may not be suited for mobile phones * Wanting to better couple the OS with the hardware, and not have to run in a VM on top of the Kernel * Oracle * Changing business philosophies as they start building out their own hardware * Oracle * Wanting stricter control of the OS application stack * Protecting proprietary hardware components without using blob drivers * Did I mention Oracle?