Design Principles

Linux Design Principles and components of Linux system

Posted on Updated on

Design Principles

Linux is a multiuser, multitasking system with a full set of UNIX-compatible tools.

Its file system adheres to traditional UNIX semantics, and it fully implements the standard UNIX networking model.

Linux is designed to be compliant with the relevant POSIX documents; at least two Linux distributions have achieved official POSIX certification.

The Linux programming interface adheres to the SVR4 UNIX semantics, rather than to BSD behavior.

As PCs became more powerful and as memory and hard disks became cheaper, the original, minimalist Linux kernels grew to implement more UNIX functionality.

Speed and efficiency are still important design goals, but much recent and current work on Linux has concentrated on a third major design goal: standardization. One of the prices paid for the diversity of UNIX implementations currently available is that source code written for one may not necessarily compile or run correctly on another.

Even when the same system calls are present on two different UNIX systems, they do not necessarily behave in exactly the same way.

Linux is designed to be compliant with the relevant POSIX documents; at least two Linux distributions have achieved official POSIX certification.

1) Components of a Linux System

The Linux system has three main bodies of code, in sequence with, most conventional UNIX implementations.

1- THE KERNEL: “The kernel” is in charge for maintaining all the vital abstractions of the operating system, together with such things as virtual memory and processes. The Linux kernel forms the central part of Linux operating system. It provides all the functionality compulsory to run processes, and it also provides “system services” to give arbitrated and sheltered or protected access to hardware resources. The kernel implements every feature that is required to be eligible as an operating system.

1- THE SYSTEM LIBRARIES: “the system libraries” describe a typical set of functions through which applications can interrelate through the kernel. And which apply much of the operating system functionality that does not require the full rights or privileges of kernel code.

2- THE SYSTEM UTILITIES: “the system utilities” are the programs that execute individual, particular and specialized managing tasks.

some of the system utilities may be invoked just once to initialize and configure some features of the system; others (known as daemons in UNIX language ) may run enduringly, conducting such tasks as responding to inward or incoming network connections, accepting logon requests terminals or updating log records and files.

The whole kernel code executes in the privileged mode of processor along with the full access to all the physical resources of the computer. This privileged mode in Linux is referred as “kernel mode”, equal to the monitor mode.

In Linux user-mode code is not built into the kernel. Any operating-system-support code that does not require to execute in kernel mode is located into the system libraries as an alternative.

Because all kernel code and data structures are kept in a single address space, no context switches are necessary when a process calls an operating-system function or when a hardware interrupt is delivered.

clip_image002

Fig: Components of the Linux system.

This single address space contains not only the core scheduling and virtual memory code but all kernel code, including all device drivers, file systems, and networking code.

Even though all the kernel components share this same melting pot, there is still room for modularity.

The Linux kernel forms the core of the Linux operating system.

The system libraries provide many types of functionality. At the simplest level, they allow applications to make kernel-system service requests. Making a system call involves transferring control from unprivileged user mode to privileged kernel mode; the details of this transfer vary from architecture to architecture. The libraries take care of collecting the system-call arguments and, if necessary, arranging those arguments in the special form necessary to make the system call.

The libraries may also provide more complex versions of the basic system calls. For example, the C language’s buffered file-handling functions are all implemented in the system libraries, providing more advanced control of file I/ 0 than the basic kernel system calls.

The LINUX system includes a wide variety of user-mode programs-both system utilities and user utilities.

The system utilities include all the programs necessary to initialize the system, such as those to configure network devices and to load kernel modules. Continually running server programs also count as system utilities; such programs handle user login requests, incoming network connections, and the printer queues.

Posted By-: Vissicomp Technology Pvt. Ltd.

Website -: http://www.vissicomp.com