6 ms·
As I can see, they use a microkernel architecture for the kernel[0]. I wonder why they need to create another microkernel OS and not re-use an existing one like
by svag 9y ago
As I can see, they use a microkernel architecture for the kernel[0]. I wonder why they need to create another microkernel OS and not re-use an existing one like MINIX 3 or QNX? What are the advantages of the Zircon Kernel compared to the MINIX 3 or QNX?
[0] https://fuchsia.googlesource.com/docs/+/master/the-book/#Zircon-Kernel https://fuchsia.googlesource.com/docs/+/master/the-book/#Zir...
- pjmlp 9y agoGoogle owns it.
- kllrnohj 9y agoThey did start with an existing one: "Zircon was born as a branch of LK" - https://fuchsia.googlesource.com/zircon/+/HEAD/docs/zx_and_lk.md https://fuchsia.googlesource.com/zircon/+/HEAD/docs/zx_and_l...
- CodeArtisan 9y agoit seems to be closer to NTOS (handles based) than UNIX (everything is a file).
- monocasa 9y agoEh, the NT handle table and Unix file table are very nearly the same thing these days. I'd say it's more like using the per process FD table for everything, rather than having global tables like for PIDs. Which is really cool, IMO. Containerization is all about adding indirection to the global tables, but of there are no global tables, you get all of that for free.
- dfox 9y agoNT is weird beast from this point of view because of how much of process state (in the sense of "on unix this is some kernel structure") is in fact implemented purely in userspace.
- monocasa 9y agoSure, I was just going on NT's system call boundary.
- CodeArtisan 9y agoLinux is still about opening, reading, and writing to files, it tries to keep a common interface; it's all about read() and write(). Looking at fuchsia's system calls, it seems to have a different interface for each types of objects.
- monocasa 9y agoLinux calls into object specific ioctls and system calls to do anything interesting.
- AnIdiotOnTheNet 8y agoTurns out you actually can't just treat everything like a file because, oddly, not everything is actually a file.
- monocasa 8y agoPlan 9 makes a strong argument that you can, just Linux doesn't.
- JdeBP 8y agoNo, they really are not the same thing, not even nearly. You yourself mention one class of handles for which Unix has no equivalent. (FreeBSD process descriptors have some gotchas that make them significiantly different; and Linux procfs descriptors do not match behaviours when it comes to the object lifetimes and handle waitability.)
- dfox 9y agoBoth Minix and QNX are handle based microkernels. Probably only one "everything is a file" "microkernel" is Plan9/Inferno, which is generally not considered a microkernel.
- pstuart 9y agoQNX is owned by Blackberry.
- snvzz 8y agoMinix3 -> NiH QNX -> Proprietary They should have used seL4.