Linux architecture
From Wikipedia, the free encyclopedia
Linux is a unix-like based computer operating system. It has been ported to a vast variety of computer architectures.
[edit] File System
Its file system like all unix systems is based on one root directory, or hierarchial top point with subdirectories underneath it. Some sub-directories act as mount points, where different physical or networked file systems may be incorporated.
The hardware is also incorporated into the file hierarchy. Device drivers interface to user applications via an entry in the /dev directory. Process information as well is mapped to the file system through the /proc directory.
It is interesting to note that unix security systems were designed into the architecture. Raw hardware devices are protected from direct access, and the file system has an inbuilt security system giving individual access to files on three levels, user only, group membership, and world access. Each category has read, executable and write flags that may be set in any combination.
[edit] Kernel -or- System Software
The Linux kernel includes true multitasking, virtual memory, shared libraries, demand loading, shared copy-on-write executables, proper memory management, and TCP/IP networking.
Today Linux is a module-loading monolithic kernel. Device drivers and kernel extensions typically run in ring 0, with full access to the hardware, although some run in user space. Unlike standard monolithic kernels, device drivers are easily configured as modules, and loaded or unloaded while running the system. Also unlike standard monolithic kernels, device drivers can be pre-empted under certain conditions. This latter feature was added to handle hardware interrupts correctly, and to improve support for symmetric multiprocessing. Preemption also improves latency, increasing responsiveness and making Linux more suitable for real-time applications.
The complete source code of various versions of the Linux kernel can be browsed at http://lxr.linux.no .
The complete source code of the latest versions of the Linux kernel can be downloaded from http://www.kernel.org .