You are not logged in Log in Join
You are here: Home » Members » MJ's corner on Zope » HappyHackers » RedHatLinux » wikipage_view

Log in
Name

Password

 
 
FrontPage »

RedHatLinux

Red Hat Linux

Intro

Linux is the enfant terrible of the Operating Systems, the upstart Open Source platform that has brung fresh competition to the OS arena. Linux has been especially strong in the file- and web-serving roles, replacing traditional Unixes and competing head-on with Microsoft. For these roles, a wide variety of software is available, including support for file serving to Microsoft Windows clients through Samba. For web serving, the market leader Apache is always available, but many other excellent alternatives or companion application packages exist.

Linux on the desktop has seen far slower growth, as Microsoft still holds some 98% of the market, but it is expected that eventually Linux will catch on there as well, as more companies start improving the Linux Desktop offerings. Especially in the Office Suite sphere, excellent packages such as Open Office are making Linux a compelling Desktop alternative.

Linux' strong point is the alledged low cost of ownership. With the source at hand, and software freely downloadable, both internal support is easier and (through healthy competition) external support affordable. Linux runs on an astonishingly wide variety of hardware, and for all but the latest Windows-targeted gadgets drivers are available.

Technical Characteristics

Process Management

Under Linux, there is little difference between kernel threads and processes; the difference between creating a new process (a fork) and a new thread lies only in the amount of process information is shared and what is copied into a new structure, including signal handlers, open files and memory [#1].

The advantage is that kernel threads and processes are scheduled by one and the same scheduler, and both thread and process switching is fast. The GNU libc package included with Red Hat Linux includes a POSIX complient thread library built on top of the Linux kernel thread support. Future versions of Linux will include even faster POSIX thread libraries [#2].

For synchronisation, Linux provides you with both SRV4 and POSIX complient APIs? for semaphores, mutexes and other synchronization constructs [#3], but like most UNIXes?, there are few general provisions to avoid or detect deadlocks, only specific internal routines for specific cases such as file locking calls.

For Interprocess Communication, one can use the whole range of general UNIX techniques, from BSD sockets and System V shared sockets to shared memory and named pipes [#4][#5].

Linux does not, out-of-the-box, support real time scheduling of processes and threads. However, a multi-tude of additional sofwtare is available to alleviate that short-coming in various ways [#6].

Memory Management

The Linux Memory Manager is a modern Virtual Memory implementation that takes full advantage of any hardware support offered by the platform it is running on. The manager also will take advantage of features such as copy on write [#7].

Regardless of hardware support though, the page table is alsways a three-level structure [#8].

The virtual memory system uses a sophisticated page aging algorithm to determine what pages can be swapped out t omake space for other process memory, an algorithm that approaches the general LRU algorithm [#9].

Pages can be shared between processes via the System V API, and Linux supports dynamic locading and shared libraries.

Resources