So for an I/O heavy program like a web browser, what percentage of CPU time is spent in syscalls? Someone must have that data for Firefox. 1%? 10%? And then that moves to 1.1% (or 11%)? And then every other program is even less affected? Curious if anyone is in the know.
It depends on the OS, some OS have some way to do IO that gets around that. iouring or things like that. I don't know how Hurd does IO.
Most microkernals have methods to do IO in a different way. If they don't then likely they would pretty slow when doing I/O heavy operations.
Firefox isn’t io bound it is spending a ton of CPU parsing network buffers and rendering UI.
Nginx is IO bound in general - for my headless go stateful server, i could get syscall6 up to 20% of the profile time. It was a fight between GC in the gRPC code allocating for headers and the syscall6 for top single profile footprint.
Making that fast is fundamental to any OS.