Skip to main content

I/O

We know that a compute system is a collection of hardware and software that modifies data. This data has to come from somewhere. This somewhere is always outside the compute system: files, network packets, radio signals, sensor data.

A compute system without output is nearly useless. It will always run the same code on the same data and, thus, produce the same result. This may be useful in some narrow cases, such as calculating the decimals of Pi. However, for more real-world-facing applications such as web servers, operating systems and databases inputs and outputs are mandatory.

The most simplistic representation of a compute system is a black box that receives some input and delivers some output.

Compute System - Oversimplified

In this session, we will look into how a compute system interacts with the outside world to get and produce these inputs and outputs.

  1. File Handlers
  2. File Descriptors
  3. Redirections
  4. Pipes
  5. Local I/O in Action
  6. Remote I/O
  7. Networking 101
  8. Client-Server Model
  9. Beyond Network Sockets
  10. File Mappings
  11. IO Internals
  12. Zero-copy
  13. Asynchronous I/O
  14. I/O Multiplexing
  15. Arena