This week, we will review system calls, which are the interfaces through which user applications can request services from the operating system kernel. Instead of manipulating data directly on a hard drive or directly controlling a CPU, we use the abstractions of a file and process to perform our desired actions. The OS virtualizes the physical resources of a hard drive and a CPU and allows us to access these virtual objects through system calls such as open and fork. These abstractions make it easier for us to program large applications by hiding the low-level details of interacting with hardware and by allowing our programs to be portable to different machines. Of course, with any layer of abstraction there is some trade-off, and we will be exploring the design decisions that deal with these costs in the future.
The readings for Tuesday, August 28 are:
Once you have done the readings, answer the following Reading 01 Quiz questions:
To submit you work, follow the same process outlined in Reading 00:
$ git checkout master # Make sure we are in master branch $ git pull --rebase # Make sure we are up-to-date with GitLab $ git checkout -b reading01 # Create reading01 branch and check it out $ cd reading01 # Go into reading01 folder $ $EDITOR answers.json # Edit your answers.json file $ ../.scripts/submit.py # Check reading01 quiz Submitting reading01 assignment ... Submitting reading01 quiz ... Q1 0.50 Q2 0.25 Q3 0.50 Q4 0.25 Q5 1.25 Q6 0.25 Score 3.00 $ git add answers.json # Add answers.json to staging area $ git commit -m "Reading 01: Done" # Commit work $ git push -u origin reading01 # Push branch to GitLab