Essential Knowledge: Operating Systems
In Chap. 2, we discussed the CPU and how it executes a sequence of assembly language instructions. This suggests the following model: a programmer writes a computer program as a sequence of assembly language instructions, loads them into memory, and instructs the CPU to execute them one by one by pointing the program counter at the relevant memory address. Unfortunately, there are many problems with this scheme: only one program can run at any particular time, one programmer may overwrite information important for another programmer, and it is hard to reuse instructions implementing common tasks. The operating system mediates between the computer hardware and programmers, and resolves difficulties such as the ones mentioned above. This chapter describes the concepts of an operating system, then delves into the Linux and Windows operating systems in some detail as concrete examples; in addition, it explores command-line interfaces like bash, Command Prompt, and PowerShell, which are essential for developers to know intimately.
- A. Silberschatz, P. B. Galvin, and G. Gagne. Operating System Concepts. Wiley, eighth edition, 2008.Google Scholar
- M. G. Sobell. Practical Guide to Ubuntu Linux. Prentice Hall, third edition, 2010.Google Scholar
- C. Newham. Learning the BASH Shell. O’Reilly Media Inc., third edition, 2005.Google Scholar