An operating
system is the software on a computer that manages the way
different programs use its hardware, and regulates the ways that
a user controls
the computer. It is considered the backbone of a computer, managing both
software and hardware resources. Operating systems are responsible for
everything from the control and allocation of memory to recognizing input from
external devices and transmitting output to computer displays. They also manage
files on computer hard drives and control peripherals, like printers and
scanners. Some popular modern operating systems for personal computers
include Microsoft Windows, Mac OS X, and Linux.
Key
features of Linux Operating System:
Following are the
key features of the Linux operating system:
- Multitasking:
several programs running at the same time.
- Multiuser: several
users on the same machine at the same time (and no two-user licenses!).
- Multiplatform: runs
on many different CPUs, not just Intel.
- Multiprocessor/multithreading:
it has native kernel support for multiple independent threads of control within
a single process memory space.
- It has memory
protection between processes, so that one program can't bring the whole system
down.
- Demand loads
executables: Linux only reads from disk those parts of a program that are
actually used.
- Shared copy-on-write
pages among executables. This means that multiple process can use the same
memory to run in. When one tries to write to that memory, that page (4KB piece
of memory) is copied somewhere else. Copy-on-write has two benefits: increasing
speed and decreasing memory use.
- Virtual memory using
paging (not swapping whole processes) to disk: to a separate partition or a
file in the file system, or both, with the possibility of adding more swapping
areas during runtime (yes, they're still called swapping areas). A total of 16
of these 128 MB (2GB in recent kernels) swapping areas can be used at the same
time, for a theoretical total of 2 GB of useable swap space. It is simple to
increase this if necessary, by changing a few lines of source code.
- A unified memory
pool for user programs and disk cache, so that all free memory can be used for
caching, and the cache can be reduced when running large programs.
- All source code is
available, including the whole kernel and all drivers, the development tools
and all user programs; also, all of it is freely distributable. Plenty of
commercial programs are being provided for Linux without source, but everything
that has been free, including the entire base operating system, is still free.
- Multiple virtual
consoles: several independent login sessions through the console, you switch by
pressing a hot-key combination (not dependent on video hardware). These are
dynamically allocated; you can use up to 64.
- Supports several
common file systems, including minix, Xenix, and all the common system V file systems,
and has an advanced file system of its own, which offers file systems of up to
4 TB, and names up to 255 characters long.
- Many networking protocols: the base protocols
available in the latest development kernels include TCP, IPv4, IPv6, AX.25,
X.25, IPX, DDP (AppleTalk), Netrom, and others. Stable network protocols
included in the stable kernels currently include TCP, IPv4, IPX, DDP, and
AX.25.