本文へスキップ
linux/internals
← マップへ戻る

read() — システムコールを丸ごと追う

1 つのプロセス、1 バイトの要求。libc からディスクまでと戻りを追跡します。

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
ステップ 1 / 6