5 ms·
I'm pretty excited about Fuchsia. Just the fact that, if successful, it will be the first true production-quality general-purpose microkernel-based OS in the ma
by lobster_johnson 9y ago
I'm pretty excited about Fuchsia. Just the fact that, if successful, it will be the first true production-quality general-purpose microkernel-based OS in the mainstream. (QNX and Minix are of course also successful microkernels, but both are pretty niche at the moment; are there any others?)
The design also seems extremely sensible and modern: Everything is namespaced and sandboxed (there's no default "/"), everything is an "object" (sounds similar to Plan 9's file descriptors), capabilities from the ground up, standard RPC between OS components (FIDL, similar to COM or XPC), built-in package management (looks like apps aren't globally installed by unpacking archives, but rather they're run directly from packages, and the process gets the archive file system mounted in its namespace), etc.
While Google seems to be aiming for phones, I wouldn't surprised if this ends up as an option on Google Cloud Platform in a few years' time.
- fiddlerwoaroof 9y agoWasn't the XNU kernel a microkernel originally?
- lobster_johnson 9y agoXNU uses a heavily modified Mach 3.0, which is a microkernel, but it doesn't use it as a microkernel, and never has. In XNU, things like file systems, graphics and device drivers are all running in kernel mode, in the same address space as the kernel. The Windows kernel has the same design -- it's designed as a microkernel, with separate modules internally that communicate via a form of IPC, but everything is running in one process (as opposed to a real microkernel architecture where file systems etc. are userland processes). With XNU, Apple forked Mach 3.0 and have been making a lot of changes to it over the years, even though Mach itself has progressed since then. On the other hand, XNU inherited Mach's high syscall overhead (considerably higher than Linux), and to my knowledge Apple has moved a lot of stuff into ordinary syscalls rather than Mach messages to remove this overhead. Edit: Interestingly, around the time before Leopard, when Darwin was still a thing, there was a research project called Darbat [1] that tried to supplant parts of Mach with L4, a more modern microkernel, and actually run XNU as a userland process on top of it. Unfortunately, nothing came of that project. [1] https://arstechnica.com/staff/2006/06/4407/ https://arstechnica.com/staff/2006/06/4407/
- bpye 9y agoWindows has made some effort to split components into user space from Vista onwards, they introduced the User Mode Driver Framework allowing for some drivers to be written in user space [1], it doesn't give access to all of the functionality in the Kernel Mode Driver Framework (KMDF) though [2]. [1] https://en.wikipedia.org/wiki/User-Mode_Driver_Framework https://en.wikipedia.org/wiki/User-Mode_Driver_Framework [2] https://docs.microsoft.com/en-us/windows-hardware/drivers/wdf/comparing-umdf-2-0-functionality-to-kmdf https://docs.microsoft.com/en-us/windows-hardware/drivers/wd...
- Crontab 9y agoI just hope that it is something that an OS hobbyist like me can play with. It's been a long time since I got to play with a new OS.
- eikenberry 9y ago> everything is an "object" (sounds similar to Plan 9's file descriptors) The nice thing about Plan 9's everything-is-a-file setup is that everything has the same file-like interface. Saying everything is an object does nothing to convey any sort of standard interface.
- fh973 9y agoThere is probably at least a uinform handle.
- pjmlp 9y agoWhich is good in theory but fails flat when we put graphics and the required performance into it, as Carmack argued about. https://marc.info/?a=111558719100068&r=1&w=4 https://marc.info/?a=111558719100068&r=1&w=4 http://rmitz.org/carmack.on.operating.systems.html http://rmitz.org/carmack.on.operating.systems.html
- dullgiulio 9y agoI can't really find the failures you mention in the links you provided, can you point me to a more definitive source? Rob Pike replies here[1] that direct framebuffer access and networking are easy to get as new devices, although they need to be made available by the kernel. The "everything is a file" mantra doesn't fail, why would it? In the second link, Carmack just notices that plan9 is pretty dead, and we all know it is :) [1] https://marc.info/?l=9fans&m=111558695515846&w=4 https://marc.info/?l=9fans&m=111558695515846&w=4
- pjmlp 9y agoIt fails because it doesn't match the performance that other approaches are able to achieve. Everything is a file is how X Windows over network kind of works. For real graphics performance that can match other systems, xshm and DRM had to be developed.
- bitmapbrother 9y ago>While Google seems to be aiming for phones According to Google, Fuchsia is designed for: modern phones and modern personal computers with fast processors, non-trivial amounts of ram with arbitrary peripherals doing open ended computation.