Friday, 28 December 2007

Design

Linux is a modular Unix-like operating system. It derives much of its basic design from principles established in Unix during the 1970s and 1980s. Linux uses a monolithic kernel, the Linux kernel, which handles process control, networking, and peripheral and file system access. Device drivers are integrated directly with the kernel.
Much of Linux's higher-level functionality is provided by separate projects which interface with the kernel. The GNU userland is an important part of most Linux systems, providing the shell and Unix tools which carry out many basic operating system tasks. Atop these tools graphical user interfaces can be placed, usually running via the X Window System.



User interface
Linux can be controlled by one or more of a text-based command line interface (CLI), graphical user interface (GUI) (usually the default for desktop), through controls on the device itself (common on embedded machines).
On desktop machines, KDE, GNOME and Xfce are the most popular user interfaces, though a variety of other user interfaces exist. Most popular user interfaces run on top of the X Window System (X), which provides network transparency, enabling graphical apps running on one machine to be displayed and controlled from another.
Earlier GUIs were based on a stand-alone X window managers such as FVWM, Enlightenment, or Window Maker, plus additional applications running under it. The window manager provides a means to control the placement and appearance of individual application windows, and interacts with the X window system.
As with other platforms, there are a number of toolkits, however these are commonly themed similarly in order to maintain desktop . For example, while Evolution is based on GTK, Firefox is based on XUL, OpenOffice.org is based on its own toolkit, and Azureus is a Java app, each uses the same GTK theme and is similar in appearance.
Linux systems usually provide a CLI of some sort through a shell, the traditional way of interacting with Unix systems. Even on modern desktop machines, some form of CLI is almost always accessible. Linux distributions specialized for servers may use the CLI as their only interface, and Linux machines can run without a monitor attached. Such “headless systems” may be controlled by command line via a protocol such as SSH or telnet.
Most low-level Linux components, including the GNU Userland, use the CLI exclusively. The CLI is particularly suited for automation of repetitive or delayed tasks, and provides very simple inter-process communication. Graphical terminal emulator programs can be used to access the CLI from a Linux desktop.

No comments: