Hacker News new | ask | show | jobs
by anonymousiam 374 days ago
I have the same gripe about QUIC, but nobody seems to care. QUIC moves part of the network stack into the application layer.
2 comments

It is bad on a server, but good on a mobile device. I hate QUIC too, but I'm Server guy.
That's a good thing.
Please elaborate. Why is it "good" to have a separate network stack element in each application, and what does this mean for legacy applications that will never support QUIC?
Because different applications have different needs and there is nothing intrinsically safer or better about having the stack be kernel-resident and, in fact, a lot to recommend moving things out of the kernel and into userland, which has a better application cotenancy model (full cr3 context switches between different users).
Circumventing the role of the operating system in the name of improved efficiency and duplicating a once-centralized function in (some) applications doesn't seem like a well thought out course of action. Why have an operating system at all? Why not just boot your computer to each application you want to run, as was done on the early PCs of the 1980's?

Perhaps we shouldn't use computers to run our applications anymore. Everything could run on a gaming console. That would certainly be more efficient for the applications.

"The role of the operating system" is whatever we decide it is. The operating system exists to serve applications, not the other way around. This isn't an aesthetic thing; it's an engineering choice. Moving parts (or all) of the networking stack into userland is often better engineering, for the reasons I just supplied, any of which I'm happy to go further into.
It's "better" for the application, but not necessarily better for the whole system, or the users. I'm sure it makes perfect sense from the (selfish) application developer point of view, but it goes against the philosophy that defines the roles of the OS vs. the applications.
Considering that a lot of people use their OS just to navigate the web, you could use the logic you are applying here to argue that the browser should be an OS provided component. Plus, networking is one of the easiest things to move to userland. An OS is still extremely useful for everything else, so I'm not sure I see your point
I don't believe it's my responsibility to cover these basic concepts here, but the role of the OS is to abstract the hardware from the applications.

All browsers are applications, regardless of what Microsoft argued in their 1998 anti-trust suit defense.

The OS knows how to talk to your networking hardware, and it provides services for the applications to do so, and even implements some standard protocols so the applications don't need to do that.

This is all very basic stuff, but I've been out of school for many decades, so maybe they don't teach it anymore.

https://www.theringer.com/2018/05/18/tech/microsoft-antitrus...