7 ms·
If parallel dimensions exist, then it's most certainly one of the closest dimensions to ours. If I'm sure of one thing, it's that as soon as we decided to buil
by andrewstuart2 8y ago
If parallel dimensions exist, then it's most certainly one of the closest dimensions to ours.
If I'm sure of one thing, it's that as soon as we decided to build everything as Microkernels, we'd have the same squeaky wheels touting the massive benefits of Monotlithic OS design. We're hilariously cyclical in our preferences.
"Think of all the runtime efficiencies of the shared memory, and how much easier it would be to develop on the shared codebase!"
- gregmac 8y agoThis isn't specific to software: The grass is always greener on the other side.
- bena 8y agoI think it's just a matter of being deep in the weeds on whatever thing we're currently invested in. When we choose a direction, we see all the difficulties that path provides and kind of forget about all of the things it gives us. And when looking at the other option, we see all the things that would overcome our difficulties while assuming that we get to keep everything good from the current path. Everything is a trade off.
- deleted 8y ago[deleted]
- KMag 8y agoThe dirty secret is that we take a microkernel, rename the syscalls as "upcalls", throw in some hardware emulation code as a less efficient and uglier API for software that can't be bothered to be ported, and call it a hypervisor. Also, your phone's baseband processor almost certainly runs a microkernel, and likely so does your car.
- agumonkey 8y agoand according to someone, your Nintendo console too It's quite crazy to count all the layers cpu microcode cpu isa hypervisor os kernel userspace api browser runtime js vm application your mouse I want my 386 back
- pjmlp 8y agoIf you mean the Switch, yes it is a microkernel, so fast enough to play all those flashy Vulkan/NVN games. https://media.ccc.de/v/34c3-8941-console_security_-_switch https://media.ccc.de/v/34c3-8941-console_security_-_switch
- etatoby 8y agoSoon it will be: ... webassembly vm (insert variable height custom stack) application ... Sad times.
- pjmlp 8y agoAnd what many seem to be unaware, is that project Treble made Android Linux into a microkernel where drivers use Android IPC to talk with the kernel. https://source.android.com/devices/architecture/kernel/modular-kernels https://source.android.com/devices/architecture/kernel/modul... https://source.android.com/devices/architecture/hidl/ https://source.android.com/devices/architecture/hidl/ So everyone running Android Oreo or newer on their phones, not only has a microkernel on their basebase radio, they also have a Linux tamed into a microkernel on their main ARM SOC.
- bitwize 8y agoSo, MkLinux 2?
- ysleepy 8y agoI don't see a microkernel architecture here. Requiring drivers to be loadable modules is just arriving in the 1990s of monolithic kernels. Also, only new devices with SoCs introduced for Android 9 are required to use kernel modules and kernels newer than 3.18. [1] This means most (updated) Android 8 devices in the field are not Project Treble and are running old-style module-less kernels and don't have A/B system partitions. HALs only seem to be there to abstract over the APIs of different hardware implementations and access to them. Not necessarily their drivers. I would love to be wrong about this, so I would really appreciate evidence to the contrary here. [1] https://source.android.com/devices/architecture/kernel/modular-kernels#kernel-version https://source.android.com/devices/architecture/kernel/modul...
- pjmlp 8y agoBecause you just stopped at the kernel modules part and haven't spent time reading how HAL in Android actually works, starting at the HIDL link. There are two HALs in Android. The old HAL, previous to Treble, which was hardly used by OEMs. And the new HAL, which is enforced by Treble. On the new HAL, drivers are implemented as Android services using Android IPC via interfaces defined in HIDL, or by using the new shared memory APIs introduced in Oreo as well. https://source.android.com/devices/architecture/hidl/services https://source.android.com/devices/architecture/hidl/service... https://source.android.com/devices/architecture/hidl/binder-ipc https://source.android.com/devices/architecture/hidl/binder-... https://source.android.com/devices/architecture/hidl/memoryblock https://source.android.com/devices/architecture/hidl/memoryb... https://source.android.com/devices/architecture/configstore/ https://source.android.com/devices/architecture/configstore/
- mrsteveman1 8y agoAny recent iPhone/iPad, Apple Watch, the iMac Pro, and Macbook Pro touch bar, all contain Apple's "Secure Enclave", which runs the L4 microkernel: > The Secure Enclave runs an Apple-customized version of the L4 microkernel. This microkernel is signed by Apple, verified as part of the iOS secure boot chain, and updated through a personalized software update process. https://www.apple.com/business/docs/iOS_Security_Guide.pdf https://www.apple.com/business/docs/iOS_Security_Guide.pdf
- monocasa 8y agoI wonder which L4 they use. L4 is more a family than a single kernel. The different variants are essentially totally different kernels from the same school of thought.
- namibj 8y agoFor that security I'd assume seL4, though I did not see anyone obviously apple on the devel mailing list...
- monocasa 8y agoLooking into it more, it looks like a heavily modified fork of L4Ka::Pistachio. That's pretty fun, I may have to go exploit hunting this weekend. https://www.blackhat.com/docs/us-16/materials/us-16-Mandt-Demystifying-The-Secure-Enclave-Processor.pdf https://www.blackhat.com/docs/us-16/materials/us-16-Mandt-De...
- bryanbuckley 8y agoSame for many Android phones and AMD chips with PSP (trustonic's l4 forked OS).
- msla 8y agohttps://utcc.utoronto.ca/~cks/space/blog/tech/HypervisorVsMicrokernel https://utcc.utoronto.ca/~cks/space/blog/tech/HypervisorVsMi... > Microkernels are intended to create a minimal set of low-level operations that would be used to build an operating system. While it's popular to slap a monolithic kernel on top of your microkernel, this is not how microkernel based OSes are supposed to be; a real microkernel OS should have lots of separate pieces that used the microkernel services to work with each other. Using a microkernel as not much more than an overgrown MMU and task switching abstraction layer for someone's monolithic kernel is a cheap hack driven by the needs of academic research, not how they are supposed to be. > By contrast, hypervisors virtualize and emulate hardware at various levels of abstraction. This involves providing some of the same things that microkernels do (eg memory isolation, scheduling), but people interact with hypervisors in very different ways than they interact with microkernels. Even with 'cooperative' hypervisors, where the guest OSes must be guest-aware and make explicit calls to the hypervisor, the guests are far more independent, self-contained, and isolated than they would be in a microkernel. With typical 'hardware emulating' hypervisors this is even more extremely so because much or all of the interaction with the hypervisor is indirect, done by manipulating emulated hardware and then having the hypervisor reverse engineer your manipulations. As a consequence, something like guest to guest communication delays are likely to be several orders of magnitude worse than IPC between processes in a microkernel. People never seem to want to admit that sometimes, technology just dies, or at least becomes obscure, and so will invent bizarre "connections" between what we used to be working on and what we have now.
- nickpsecurity 8y agoOKL4 was both a microkernel and hypervisor. They coined term microhypervisor to differentiate that. https://microkerneldude.wordpress.com/2008/04/03/microkernels-vs-hypervisors/ https://microkerneldude.wordpress.com/2008/04/03/microkernel... NOVA is an open-source micro-hypervisor available in GenodeOS that similarly combines hypervisor functionality with a microkernel-like design: http://hypervisor.org http://hypervisor.org The Xen hypervisor also got many of its design elements from the Nemesis OS, which had a lightweight kernel. There's plenty of overlap possible. A number of research and production systems are also both hypervisors and microkernel-like, too. So, it's more an existing concept than a bizarre, hypothetical connection. For OKL4, also deployed in over a billion phones they claim.
- ngrilly 8y agoReminds me of the TV show "Counterpart"!