3 ms·
In my opinion OS's should only give you mapped buffers of memory, where it defines the source.. a network driver or a file in the disk, a gpu memory, or simply
by oscargrouch 6y ago
In my opinion OS's should only give you mapped buffers of memory, where it defines the source.. a network driver or a file in the disk, a gpu memory, or simply the heap and the userspace applications would deal with.
OS's are doing too much in my opinion and the problem is that the status-quo of applications expect them to do it, so theres no clear way out of this.
If im not mistaken, theres a paper with the 'exokernel' design from the late nineties, built from a NetBSD, that describes a little bit about this approach, if you are curious.
Our OS's should be like that, and i bet they would be so much better giving they would be able to concentrate in being good in a much smaller spectrum, while applications would probably negotiate less with the kernel, giving us a better performance and stability overall.
TPC and sockets would be a library, and once we need to prototype new shiny stuff, it would be much better to get the needed adoption by just linking to the appropriate library.
Projects like QUIC and gRPC would be much more viral, and i bet they could even appear earlier if some part of the stack were not frozen right on the kernel.
I guess, this will become more evident with time, as a lot of those technologies on the kernel will become deprecated, while in the heat of modernism it look a great idea to stuck that thing that "everybody uses" on kernel space.