Operating System: Difference between revisions

Content added Content deleted
(clean up)
m (clean up)
Line 4: Line 4:
Before a computer can do much, it'll need some software to provide basic system services. This is basically what an operating system (or OS for short) does; it manages devices and memory, keeps applications from stepping on each other's toes, and provides an [[Application Programming Interface]] (sometimes many APIs) for applications to use.
Before a computer can do much, it'll need some software to provide basic system services. This is basically what an operating system (or OS for short) does; it manages devices and memory, keeps applications from stepping on each other's toes, and provides an [[Application Programming Interface]] (sometimes many APIs) for applications to use.


In the early days of computing (and even now, on special applications like microcontrollers), computers didn't have OSes; you programmed them directly in [[Binary Bits and Bytes]], and on some ''really'' old machines (including ENIAC, the first practical electronic computer, and IBM's old card-counting machines), you didn't have program memory at all -- you ''had to rewire them'' on a device not unlike an old-time telephone switchboard. Starting in the early 1960s (but not immediately showing up everywhere), the advent of ''time sharing'' (what we'd now just call ''multitasking'') led to huge advances in what computers were capable of, and the first modern OSes date from this era. Later, when microcomputers became common, they had much smaller operating systems of their own, such as CP/M, Apple DOS, ProDOS and MS-DOS; since microcomputers didn't have special hardware to manage and protect memory, most of the time a microcomputer OS simply wrapped the machine's [[Read Only Memory|ROM]] libraries with disk I/O functions, something that was especially true on the [[Apple II]] and the [[IBM Personal Computer]].
In the early days of computing (and even now, on special applications like microcontrollers), computers didn't have OSes; you programmed them directly in [[Binary Bits and Bytes]], and on some ''really'' old machines (including ENIAC, the first practical electronic computer, and IBM's old card-counting machines), you didn't have program memory at all—you ''had to rewire them'' on a device not unlike an old-time telephone switchboard. Starting in the early 1960s (but not immediately showing up everywhere), the advent of ''time sharing'' (what we'd now just call ''multitasking'') led to huge advances in what computers were capable of, and the first modern OSes date from this era. Later, when microcomputers became common, they had much smaller operating systems of their own, such as CP/M, Apple DOS, ProDOS and MS-DOS; since microcomputers didn't have special hardware to manage and protect memory, most of the time a microcomputer OS simply wrapped the machine's [[Read Only Memory|ROM]] libraries with disk I/O functions, something that was especially true on the [[Apple II]] and the [[IBM Personal Computer]].


As PCs got cheaper and more powerful, full operating systems started being written for them, with richer APIs, actual memory protection and "demand paging" (which allowed applications to use "virtual" memory that actually lived in a file on disk). Pretty much all PC OSes now include this as a matter of course.
As PCs got cheaper and more powerful, full operating systems started being written for them, with richer APIs, actual memory protection and "demand paging" (which allowed applications to use "virtual" memory that actually lived in a file on disk). Pretty much all PC OSes now include this as a matter of course.


Most operating systems work as four separate layers of software running in the computer. The lowest layer, the one that interacts directly with the hardware, is known as the ''kernel'', the core of the operating system, which handles stuff like memory management, program input and output, communication with your hardware, and might have other additional functions -- the Linux kernel, for example, has built-in networking support. The next layer is the ''driver'' layer, which is where your hardware drivers -- programs specially created to handle and communicate with your hardware -- are being run; for performance reasons, drivers run without memory management or protection, which means a bug in a driver will probably crash your entire system (which is why blue screens are usually caused by faulty drivers). The third layer is the ''service'' layer. A service is a program that you can't interact with directly, but which provides functions such as audio support, network security, data safety, or maybe even a Web server. The top-most layer, finally, is the ''application'' layer, where most user applications are run. This layer usually has tons of features aimed at improving the system's stability and security, which means greater reliability at the cost of performance.
Most operating systems work as four separate layers of software running in the computer. The lowest layer, the one that interacts directly with the hardware, is known as the ''kernel'', the core of the operating system, which handles stuff like memory management, program input and output, communication with your hardware, and might have other additional functions—the Linux kernel, for example, has built-in networking support. The next layer is the ''driver'' layer, which is where your hardware drivers—programs specially created to handle and communicate with your hardware—are being run; for performance reasons, drivers run without memory management or protection, which means a bug in a driver will probably crash your entire system (which is why blue screens are usually caused by faulty drivers). The third layer is the ''service'' layer. A service is a program that you can't interact with directly, but which provides functions such as audio support, network security, data safety, or maybe even a Web server. The top-most layer, finally, is the ''application'' layer, where most user applications are run. This layer usually has tons of features aimed at improving the system's stability and security, which means greater reliability at the cost of performance.


See also:
See also: