next up previous contents index
Next: What's Unixanyway? Up: Introduction Previous: What's the Linux Documentation

Operating Systems

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 .gif 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.gif 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.


next up previous contents index
Next: What's Unixanyway? Up: Introduction Previous: What's the Linux Documentation

Converted on:
Mon Apr 1 08:59:56 EST 1996