3 ms·
By that measure, a passenger bus is a modern sports car, because you can lower its suspension to be close to the road at the push of a button…
by anyfoo 2y ago
By that measure, a passenger bus is a modern sports car, because you can lower its suspension to be close to the road at the push of a button…
- perihelions 2y ago(That's a feature for helping wheelchair-type passengers board at ground-level without assistance—just to explain for those who live in places without public transit).
- renonce 2y agoThanks for the explanation. I live in a place with lots of public transit but no suspension in any passenger bus. Fortunately I've been to the US before so I now know what it is.
- renonce 2y agoFrom wikipedia: > A sports car is a car designed with an emphasis on dynamic performance, such as handling, acceleration, top speed, the thrill of driving, and racing capability. How would lowering suspension turn a passenger bus to a sports car?
- anyfoo 2y agoThat’s my point.
- nimish 2y agoWell, what are we missing if networking, file systems and human IO are now run as user space servers? Process management? Graphics (ignoring X)? What low-level hardware interaction can't be done microkernel style? It's a bad analogy unless the button makes the bus change Transformers style into a completely different car.
- anyfoo 2y agoYour "userspace filesystem implementation" is still entirely dependent on the giant VFS layer of the kernel. The situation is similar for networking. And a large portion of human I/O still depends on a very large kernel surface as well. That's not even beginning to touch on pretty much all things related to virtual memory. Just because you've delegated some small parts into userspace, does not mean that you don't still have a massive monolithic kernel with metric tons of infrastructure and subsystems all running in the same kernel address space, oftentimes not even as dedicated threads. A monolithic kernel is a tiny kernel that does not do much more than message passing. Linux is very far away from that, your "userspace servers" for FUSE and similar things are better called "delegates" for subsystems that still reside in the kernel itself. > It's a bad analogy unless the button makes the bus change Transformers style into a completely different car. That is not what the analogy was about at all.
- nimish 2y agoOK, change FUSE to SPDK, you get your userspace VFS layer: https://github.com/Saltflow/spdk_blob_top_fs https://github.com/Saltflow/spdk_blob_top_fs > Just because you've delegated some small parts into userspace, does not mean that you don't still have a massive monolithic kernel with metric tons of infrastructure and subsystems all running in the same kernel address space, oftentimes not even as dedicated threads. That's up to you to keep around. No need to compile in subsystems and drivers you don't need. HID is pushed userspace by HID-BPF and it works great. USB, I2C, SPI can all be handled by direct messages to the device. These objections are pedantry around what exactly is micro about a microkernel. UIO lets you drive any hardware via userspace memory maps, it's just usually easier to slap it into a pre-built kernel subsystem more than any need for code to be in kernel mode. > A monolithic [sic] kernel is a tiny kernel that does not do much more than message passing. Linux is very far away from that, your "userspace servers" for FUSE and similar things are better called "delegates" for subsystems that still reside in the kernel itself. Your message passing is my delegation through, say, netlink. Perhaps you are describing an exokernel concept where only the barest minimum is run in kernel mode? Mach runs a lot more in kernel mode than necessary, even L4 isn't a "true" microkernel if you are ultra-pedantic and run on processors with, say, userspace interrupts.