Saltar al contenido
linux/internals
← Volver al mapa

read() — una syscall, de principio a fin

Un proceso. Un byte solicitado. Lo seguimos desde libc hasta el disco y vuelta.

SYSCALL · ring 3 → ring 0HARDWAREYour programread(fd, buf, 4096)glibcsyscall(SYS_read, …) → SYSCALLSyscall entryentry_SYSCALL_64 → ksys_read()VFS / ext4f_op->read_iter → ext4_file_read_iterPage cachefilemap_get_pages()Block layersubmit_bio() → mq-deadlineNVMe deviceDMA → RAM
Paso 1 de 6