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

Log in
Name

Password

 
 

History for RedHatLinux

??changed:
-
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 <a
      href="#ref1">![#1]</a>.

      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 <a
      href="#ref2">![#2]</a>.

      For synchronisation, Linux provides you with both SRV4 and POSIX
      complient APIs for semaphores, mutexes and other synchronization
      constructs <a href="#ref3">![#3]</a>, 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 <a href="#ref4">![#4]</a><a
      href="#ref5">![#5]</a>.

      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 <a href="#ref6">![#6]</a>.

    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 <a
      href="#ref7">![#7]</a>.

      Regardless of hardware support though, the page table is alsways
      a three-level structure <a href="#ref8">![#8]</a>.

      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 <a href="#ref9">![#9]</a>.

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

    - <a name="#ref1">![#1]</a> "Linux Threads FAQ":http://linas.org/linux/threads-faq.html

    - <a name="#ref2">![#2]</a> "Linux Multithreading Advances":http://www.onlamp.com/pub/a/onlamp/2002/11/07/linux_threads.html

    - <a name="#ref3">![#3]</a> "IBM !DeveloperWorks; Synchronizing
      processes and threads":http://www-106.ibm.com/developerworks/library/l-rt5/
      
    - <a name="#ref4">![#4]</a> "Understanding Linux Kernel
      Inter-process Communication, Part 1":http://linux.omnipotent.net/article.php?article_id=12504
      
    - <a name="#ref5">![#5]</a> "Understanding Linux Kernel
      Inter-process Communication, Part 2":http://linux.omnipotent.net/article.php?article_id=12505

    - <a name="#ref6">![#6]</a> "Real Time and Linux":http://www.linuxdevices.com/articles/AT5997007602.html
 
    - <a name="#ref7">![#7]</a> "Outline of the Linux Memory
      Management System":http://home.earthlink.net/~jknapka/linux-mm/vmoutline.html

    - <a name="#ref8">![#8]</a> "2.4 kernel VM Basics":http://www.csn.ul.ie/~mel/projects/vm/docs/basics.html
    
    - <a name="#ref9">![#9]</a> "Page replacement in Linux 2.4 memory
      management":http://www.surriel.com/lectures/linux24-vm.html