1. In the program, call the function that makes the system call happen (read, open, etc) 2. The userspace function will execute interrupt 0x80 by using syscall 3. In the kernel, we wake up in the interrupt handler, in entry_64.S 4. After that, we can look up the system call in the table 5. In architecture-independent code, we can run the read routine 6. (read-specific) Figure out what filesystem the file being read is from 7. (read-specific) Run the read function from the associated file_operations structure