Where does this course fit in?
- You're a CS major, or maybe from COE.
- You can write computer programs.
- In this course, we explore some of the details of how
actual programs run on concrete computers.
The plot:
- To do things, programs need to use hardware resources.
- 1980 personal computer: one program at a time.
- Two programs at a time means conflicts (who gets input from
keyboard? don't want to mix output to line printer!)
- Add a dedicated program to talk the the hardware: the OS. Other
programs ask the OS to access shared resources for them.
- To ask the OS to do stuff for you, you make a system call.
- This class is about writing programs that use system calls.
- System calls are different on different operating systems,
so we need to pick a specific one to use.
- We're using Linux. More specifically, Debian 10.
- Even with an OS, programs are still written to target a specific
hardware archetecture.
- Compiled programs are binary data - machine code - and different
kinds of processors have different machine codes.
- We'll be using the normal archetecture for desktop / laptop computers,
the AMD64 archetecture.
- A platform is the combination of processor archetecture and OS,
for us that's AMD64 Linux.