An operating system's primary purpose is to support programs that actually do the work you're insterested in. For instance, you may be using an editor so you can create a document. This editor could not do its work without help from the operating system--it needs this help for interacting with your terminal, your files, and the rest of the computer.
If all the operating system does is support your applications, why do you need a whole book just to talk about the operating system? There are lots of routine maintenance activities (apart from your major programs) that you also need to do. In the case of Linux, the operating system also contains a lot of ``mini-applications'' to help you do your work more efficently. Knowing the operating system can be helpful when you're not working in one huge application.
Operating systems (OS, for short) can be simple and minimalist, like
DOS;, or big and complex, like OS/2; or
VMS;. Unix tries to be a
middle ground. While it supplies more resources and does more than
early operating systems, it doesn't try to do everything like
some other operating systems.
The original design philosophy for Unix was to distribute
functionality into small parts, the programs. That way, you can relatively easily achieve new
functionality and new features by combining the small parts (programs)
in new ways. And if new utilities appear (and they do), you can
integrate them into your old toolbox. Unfortunately, programs grow
larger and more feature-packed on Unix as well these days, but some
of the flexibility and interoperability is there to stay. When I write
this document, for example, I'm using these programs actively;
fvwm to manage my ``windows'', emacs to edit the text,
LaTeX to format it, xdvi to preview it, dvips to prepare
it for printing and then lpr to print it. If I got a new, better
dvi previewer tommorow, I could use it instead of xdvi without
changing the rest of my setup.
When you're using an operating system, you want to minimize the amount of work you put into getting your job done. Unix supplies many tools that can help you, but only if you know what these tools do. Spending an hour trying to get something to work and then finally giving up isn't very productive. Hopefully, you already know how to use the correct tools--that way, you won't use the hammer to try and tighten a screw.
The key part of an operating system is called the ``kernel.''kernel In many operating systems, like Unix, OS/2;, or VMS;, the kernel supplies functions for running programs to use, and schedules them to be run. It basically says program A can get so much time, program B can get this much time, etc. One school of thought says that kernels should be very small, and not supply a lot of resources, depending on programs to pick up the work. This allows the kernel to be small and fast, but may make programs bigger. Kernels designed like this are called micro-kernels. Another group of people believe that kernels that offer more services to applications are better and make more efficent operating systems. Most versions of Unix are designed like this, including . While it may seem at first that all micro-kernels should be smaller than all macro-kernels, the terms ``micro'' and ``macro'' really aren't referring to size of the kernel but a philosophy of operating system design.