9 ms·
I wonder if there exists a parallel dimension where linux is microkernel design and folks are pushing for monolothic citing the driver friendliness and performa
by pweissbrod 8y ago
I wonder if there exists a parallel dimension where linux is microkernel design and folks are pushing for monolothic citing the driver friendliness and performance
- andrewstuart2 8y agoIf 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.
- ngrilly 8y agoReminds me of the TV show "Counterpart"!
- pjmlp 8y agoLack of performance on microkernels is a myth nowadays. QNX and many embedded OS, some of which driving high integrity software, are all microkernel based. Including the one most likely handling the real time communication of this mobile radio.
- Vogtinator 8y ago"Fast enough design" does not equal "faster design".
- roblabla 8y agoNo, but fast enough, more secure, more flexible, easier to understand design tends to equate better design.
- KMag 8y agoParticularly if you're doing kernel bypass for performance reasons, the smaller cache footprint of a microkernel is an advantage. When I was in college, the first assignment was to run a provided benchmark program that jumped all over a gradually growing buffer and graphed average latency vs. buffer size and we had to identify the sizes of thle various caches from the generated graphs. I was tripple-booting Linux Windows, and QNX at the time and did the same assignment on each OS (identical hardware). QNX had more sudden transitions between latency levels due to delaying transition later due to smaller cache footprint. If your userspace NIC driver and TCP/IP stack are implementee as a library and you are running your high performance application on a dual NIC box, your application can be the driver for one of the NICs and the other NIC can handle everything else. It's hard to beat zero copy/zero context switch I/O. Of course, putting the application in the kernel would yet be faster, at least if in both cases the kernek's cache footpint is tiny.
- tropo 8y agoCache footprint of the OS shouldn't matter because the system should be otherwise idle and benchmark shouldn't be interacting much with the OS. The OS mostly doesn't run during the benchmark. Assuming you didn't have those mistakes, the difference was likely due to memory allocator choices. Scattering the pages of memory is very different from laying them all out one after another. Scattered pages will cause benchmark results to be less predictable, with evictions seeming to happen at random. QNX probably made one great big allocation, in both the virtual and physical address spaces.
- lainga 8y agothe Hurd-verse lives! Richard Stallman is a clean-shaven, foulmouthed autocrat, and Linus is composing folk songs about joining hands with Intel and Nvidia!
- stcredzero 8y agoWho is dressing up as a monk?
- deleted 8y ago[deleted]
- hinkley 8y agoCorey Doctorow. And Eric Raymond wears horn-rimmed glasses.
- tomcam 8y agoI think you mean Gnu/Linus
- theandrewbailey 8y agoOr, as I've recently taken to calling him, GNU plus Linus.
- JdeBP 8y agoThis would be the world of Windows NT in between version 3.5 and 4.0.
- nickpsecurity 8y agoI dont know haha. I do know most microkernels in commercial space support POSIX or Linux in user mode. OKL4 and L4Linux also supported using a minimal version of Linux just to get its device drivers. Then, a native app or other VM use them with virtual drivers.
- SkyMarshal 8y agoIt would be the dimension where Andrew Tannenbaum licensed Minix3 under a Free license back before Linus hacked up his own monolithic kernel version.
- MisterTea 8y agoYou mean a parallel universe where GNU/HURD was actually finished.
- snaky 8y agohttps://yarchive.net/comp/microkernels.html https://yarchive.net/comp/microkernels.html edit added > Guys, there is a _reason_ why microkernels suck. This is an example of how things are _not_ "independent". The filesystems depend on the VM, and the VM depends on the filesystem. You can't just split them up as if they were two separate things (or rather: you _can_ split them up, but they still very much need to know about each other in very intimate ways). https://yarchive.net/comp/linux/user_space_filesystems.html https://yarchive.net/comp/linux/user_space_filesystems.html
- Sporktacular 8y agoAnd in that dimension there would be debate about whether we should cut corners by reducing security and reliability to slightly improve speed and mollify lazy programmers. That debate would be short and the answer would be "nope, we shouldn't because that would be stupid".