Interrupts, firmware, and I/O 19 Interrupts, firmware, and I/O We're nearing the end of the general CS subjects in this book, and we'll start to dig our way out of the rabbit hole soon. This part tries to tie things together and look at how the whole computer works as a system to handle I/O and concurrency. Let's get to it! A simplified overview Let's look at some of the steps where we imagine that we read from a network card: Remember that we're simplifying a lot here. This is a rather complex operation but we'll focus on the parts that are of most interest to us and skip a few steps along the way. Step 1-Our code We register a socket. This happens by issuing a syscall to the OS. Depending on the OS, we either get a file descriptor (mac OS/Linux) or a socket (Windows). The next step is that we register our interest in Read events on that socket. 