From Steve Keller@21:1/5 to All on Fri Feb 8 12:39:48 2019
I'd like to understand how file I/O is typically handled on todays PCs
or servers running any modern Unix (*BSD, Linux, etc.).
How much copying is involved when I read from a file using the read
system call? And does this depend on alignment of my user space
buffer that I read into?
Can the I/O hardware and block device driver (maybe using DMA) copy
directly to user space, and if so to any address or are there
alignment constraints? Or is data copied to a kernel buffer first and
then copied to user space?