An operating system is a set of basic software that allows computers to perform basic tasks for people. The most common operating systems today are Microsoft Windows, Google's Android (a Linux variant), Apple's Mac OS, and Linux / Unix / BSD
An operating system is defined into a few basic parts:
- The BIOS, which handles all hardware related things. Often a computer has a BIOS integrated within its hardware, though some operating systems such as Linux are independent of this BIOS.
- The Kernel, which handles all software related operations and acts as an interpreter between applications and the hardware.
- The shell or User Interface - Software that draws forms, toolbars, menus, main task bar, typing commands for the computer to execute, etc. Shells typically provide a primitive programming capability, called scripting, such as DOS command scripts, JCL, DCL, and Windows script.
- System programs that come packaged with the operating system, such as browsers, file backup/restore, sorting utilities, login/logout programs, etc.
General-purpose operating systems are designed to be flexible in what applications they can run, provide a user-friendly interface, support multitasking, offer feature-laden file systems, and most of them support multiple users. These are the operating systems with which most people are familiar.
Real-Time operating systems (RTOS) are designed to have minimal overhead so that they can respond immediately to events. As such, they tend to have no file system, or a simple file system optimized for speed. Real-time operating systems are typically used for such tasks as industrial automation. A RTOS that ran on the popular pdp/11 minicomputers was RT-11.
General-purpose operating systems typically offer the following features:
- Hardware Abstraction, which allows programs to make use of hardware without having to know about the specifics of any given hardware device. It is responsible for displaying the graphics on screen and outputting sound to the speakers, controlling input from the mouse and keyboard, and allowing hardware to work properly. Usually this is implemented in the BIOS or a separate HAL (Hardware Abstraction Layer).
- File Systems, which handle storing and retrieving files stored on hard disks, USB drives, magnetic tapes, and CDROM/DVDROMs.
- Security. Prevent unauthorized access to system resources.
- Multiprocessing. Allow multiple programs to run simultaneously.
- Networking. Allows interfacing with other computers on a network.
- User interfaces, such as a Graphical User Interface (GUI), and system programs that provide users way of accessing hardware, files, programs, processes, and networks.