|
|
Introduction
This collection of short stories about Linux is just that: short, possibly disconnected tales of operating systems, computer hardware, and their melding into what we know as "the computer." We don't pretend to tell the whole story here. Rather we choose to focus on various components of operating systems, such as schedulers, virtual memory, system calls, and others. In each case we provide a brief reminder of the purpose of each component as it might be studied in a general undergraduate textbook on operating systems. Then we examine how these components are actually implemented in a real operating system, namely one of the recent releases of Linux. We do this through an examination of the Linux source code. Since operating systems have an intimate relationship with the processor upon which they run, studies of Linux source code invariably lead to examinations of the underlying computer hardware, in our case the Intel family of processors. Operating SystemsWhy do we need operating systems? Computers are basically just machines that carry out instructions fed to them in the form of programs. An operating system is itself a program, but we don't buy a computer because we want a particular operating system, whether that be Windows, Linux, Mac OS 9, or any other operating system. As computer users, all we really want to do with a computer is run programs that perform the work or play we desire. Ironically, this very desire to just run programs of interest to us individually without worrying about other details is precisely what has led to the need for an operating system. As noted, an operating system is itself just a program, but it is a special program. It is the program that makes it possible for users to run the other programs for which they really bought the computer--whether they be web browsers, home finance programs, compilers, or word processors--without being required to worry about many important details. The operating system makes it possible for user programs to access disk drives and other external hardware without knowing how that is done. It maintains user files and directories. On multi-user systems, it makes it possible for more than one user to use a single computer without interfering with other users. In other words, the operating system shields users from the complexity of dealing with computer hardware and many bookkeeping tasks (although it sometimes does not seem like it). Most people don't need to know anything about an operating system except how to use one to launch the programs they really want to run and to perform bookkeeping tasks on their files. If you are reading this you obviously want to know more about operating systems. Perhaps you are a computer science student who is required to learn about operating systems. To most, the operating system can be viewed as magic. For you the magic must be replaced with knowledge. We hope the short stories we tell here help in this process.
|
|
|