Abstraction
We began going over VT100, and then moved on to X library, then PostScript, PDF to make the point of operating system is a complex mixture of cooperating processes in these processes play different roles in the providing different levels of interfaces so that various resources can be managed, accessed and effectively used.
This brings us to the concept of abstraction, which is important because operating system separates mechanisms from policies. Mechanisms are actually abstracted ways of using a lower-level resource, in that regard, it always implements a certain policy. Having the right kind of mechanism enables a natural separation of functionality. With such separation you can then design modules and with that, we can design how each modules work together. From a process's point of view, an interesting question is whether a mechanism it needs can appear internally or externally. That affects how the IPC or API calls are utilized.
Abstraction is one of the most powerful idea in computer science. In your previous courses, oftentimes abstraction appeared in the context of data structure. Separate from that perspective, abstraction also takes on a powerful meaning in the context of mechanism in versus policy. Although the hardware capability has increased leaps and bounds during the past 40 years, the principle of using abstraction as the basic method of analyzing a complex problem and coming up with a manageable design - this principle has been proven useful and timeless. Throughout the semester we will come back to the subject over and over again.
Now with that in mind, we can go over the top subjects that we will cover this semester. This discussion involved drawing on the board. Omitted in this writeup.