Jump to content

Linux architecture

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by JamieJones (talk | contribs) at 23:40, 31 December 2005 (Copy from linux kernel). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

This is a copy from Linux Kernel. Please add more if you can.

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 fact that Linux is not a microkernel was the topic of a famous flame war between Linus Torvalds and Andy Tanenbaum on comp.os.minix in 1992. [1] [2]

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 .