Hey dev.to 👋
Post 7/8 of my Operating Systems Explained series is out.
This one is about I/O and system calls: blocking versus non-blocking I/O, multiplexing with poll and epoll, the layers of buffering along the data path, and one read from the program down to the hardware and back.
It also explains why the C library buffers, why readv exists, and why gettimeofday often never crosses into the kernel at all.
If you've ever wondered why epoll exists, this post walks the problem it solves: ten thousand connections, and why one thread per connection stops being an option.
Top comments (0)