[an error occurred while processing this directive]
In order to correctly understand the role of an Operating System (OS), we first need to explain "levels." It can be sometimes convenient to think of a computer in terms of levels. Each level's language is converted to a language of a lower level. The lowest of these levels is the actual transistors, resistors, and other basic electronic components. We can call this the first level. This first level can be programmed in its own "language."
Then there is the second level. This level's programming language is commonly called assembly language, which we explain in a different part of the site. In general, this is the lowest level that a programmer is allowed to program in. With this programming level, the programmer can do anything that can be done with the computer. However, it is not commonly convenient to program in assembler because of the complexity and the need of familiarity with the specific hardware that the created software will be running on. Thus there is a need for another level.
The next level is that of the OS. The OS is mainly there to control the execution of other programs (such as a word processor). The OS allows multiple programs to be running at the same time. The OS also provides the management of memory as well as a file system. The management of memory is very important such that if two programs are running at the same time, they do not try to use the same part of memory. A file system is just as important as the memory management system, if not more. A file system provides a standard way of storing and accessing files on the hard disk. A file system is important, because it allows for a standardized way of organizing files on a hard drive. Without a file system, programs would have to chaotically and randomly access the hard drive, most likely overwriting parts of the hard drive where other programs had already stored data.
Other than providing these basics, current OSs also provide drivers for various hardware. A driver is a piece of software that allows other software to communicate with a certain physical device, such as a video card or sound card. With the help of a driver, a programmer does not need to worry about the specific hardware that his/her software would be running on. As a more specific example, there are many video cards on the market. None of them are identical. Without a driver, programmers would have to make the software account for each one of them in their code, making the program much more complex. With a driver, on the other hand, programmers do not need to account for different hardware models, but instead use the driver (which would be already loaded) in order to communicate with a video card.
The currently best known OS on the market is Windows '98 (and soon Windows 2000). However this OS has multiple flaws. For one thing it is full of bugs, and has poor multi-tasking (the ability to run multiple programs at the same time). Windows also tends to crash rather often. On the other hand, Windows provides a very user friendly interface and a large variety of programs. Windows also provides wide support for hardware. There is another set of OSs which are categorized as UNIX. UNIX is used on high performance computers, or by advanced users. UNIX almost never crashes, and has few bugs. However, there is not a wide variety of applications available for UNIX that are "commercial quality," and little of the latest hardware is supported. There is an OS called Linux, which is part of the UNIX set of operating systems, which is available for free with the source code included such that you can change the way it works to your own pleasure. Many people, however, feel lost in Linux and other UNIXs because they are very different from the Windows OS.[an error occurred while processing this directive]