GNU Hurd operating system: first user program run using L4 microkernel
{{date|February 5, 2005}}

[[Image:HURD first program banner.jpg|thumb|right|[http://www.rt.com/man/banner.6.html banner(6)], the first user application to be successfully executed on GNU Hurd running on the L4 microkernel, the screenshot shows a [[w:GNU/Hurd|GNU/Hurd]] running on the [[w:QEMU|QEMU CPU Emulator]].]]
A collaboratively-developed [[w:Operating system kernel|operating system kernel]] known as [[w:GNU Hurd|GNU Hurd]] has been made bootable using the [[w:L4 microkernel family|L4 microkernel]], which provides room for significant speed improvements over an existing implementation using the [[w:Mach kernel|Mach]] microkernel. The newer architecture also has a more lively developer community.

Developer [http://savannah.gnu.org/users/marcus Marcus Brinkmann] made the historic step and finished the process initialization code, which enabled him to execute the first software on Hurd-L4. In a message to the [http://lists.gnu.org/mailman/listinfo/l4-hurd/ L4 port of GNU Hurd] mailing list, Brinkmann wrote, "We can now easily explore and develop the system in any way we want. The dinner is prepared!". [http://lists.gnu.org/archive/html/l4-hurd/2005-01/msg00135.html] However, the kernel's current feature set is very limited. "With my glibc port, I can already build simple applications, but most won't run because they need a filesystem or other gimmicks (like, uhm, fork and exec), and I only have stubs (dummy functions which always return an error) for that now," he added in a later posting. [http://lists.gnu.org/archive/html/l4-hurd/2005-02/msg00011.html]

[[w:Kernel (computer science)#Monolithic kernels vs. microkernels|Compared]] with Linux and [[w:BSD|BSD]] Unix's [[w:Kernel (computer science)#Monolithic kernels|monolithic kernel]] architecture, a [[w:Kernel (computer science)#Microkernels|microkernel]] based operating system provides developers greater modularity and isolation from hardware, a big win with L4 already being available for a large number of hardware varieties.

There is a cost in speed for such abstraction, and this cost was higher on Mach, at around 15%, compared with only around 5% on L4 and it's predecessor L3, both developed by Dr. Jochen Liedtke. [http://en.wikipedia.org/wiki/L4_microkernel_family]

The greater modularity and abstraction of a microkernel approach means that the microkernel itself does not need constant modification as is seen in the Linux [[w:kernel|kernel]] today, since it provides only the very minimum of services, and does so very carefully. Thus, the fact that L4 was developed in 1996 is seen as exemplifying this stability -- rather than showing its age -- since few, if any, improvements in approach have been imagined in the meantime.

However, the [[w:Mach kernel|Mach kernel]] first developed ten years earlier at [[w:Carnegie Mellon University|Carnegie Mellon University]] is seen as a flawed first implementation, with the lessons learned being implemented in microkernels like L4, known as second-generation microkernels.

The GNU Hurd forms the base of the [[w:GNU|GNU]] operating system, much of which has been widely adopted by users of other [[w:Unix|Unix]]-like operating systems, including Linux. The GNU Project has been developing the Hurd since 1983. In 1990, the GNU Project decided to use the Mach kernel, rather than writing their own. [http://www.gnu.org/software/hurd/history.html] The Hurd is released as free software under the [[w:GPL|GNU General Public License (GPL)]].

The Hurd kernel is an experiment which aims to surpass existing Unix kernels in functionality, security, and stability, while remaining largely compatible with them. It currently runs on Intel [[w:IA32|IA32]] machines. According to the GNU Hurd project, "The Hurd should, and probably will, be ported to other hardware architectures or other microkernels in the future" [http://www.gnu.org/software/hurd/hurd.html].

`Hurd' stands for `Hird of Unix-Replacing Daemons'. And, then, `Hird' stands for `Hurd of Interfaces Representing Depth' - perhaps the first software to be named by a pair of mutually recursive acronyms.

A limited port of Linux already runs on L4, known as L4Linux.

==References==
*{{source|url=http://portal.wikinerds.org/gnu-hurd-l4-first-program
|title=A historic first step for the Hurd/L4 microkernel port
|author=Nikolaos S. Karastathis
|pub=Wikinerds Portal
|date=February 3, 2005}}

*{{source|url=http://slashdot.org/articles/05/02/04/028220.shtml?tid=117&tid=190&tid=1
|title=First Program Executed on L4 Port of GNU/HURD
|author=wikinerd 
|pub=Slashdot
|date=February 4, 2005}}

*{{source|url=http://www.gnu.org/software/hurd/history.html 
|title=GNU Hurd History
|author=Free Software Foundation
|pub=The GNU Project, Free Software Foundation
|date=viewed February 5, 2005}}

*{{source|url=http://lists.gnu.org/archive/html/l4-hurd/2005-01/msg00135.html 
|title=l4-hurd mailing list archive: TLS/TSD support and startup/initialization working 
|author=Marcus Brinkmann 
|pub=Free Software Foundation
|date=January 27, 2005}}

*{{source|url=http://lists.gnu.org/archive/html/l4-hurd/2005-02/msg00011.html
|title=l4-hurd mailing list archive: Re: Status of project?
|author=Marcus Brinkmann 
|pub=Free Software Foundation
|date=February 2, 2005}}

==See also==
*[http://www.gnu.org/software/hurd/hurd.html The GNU Hurd]
*[http://www.gnu.org/software/hurd/hurd-l4.html GNU Hurd L4]

*{{source|url=http://www.kernelthread.com/mac/osx/arch_xnu.html 
|title=What is Mac OS X?: XNU: The Kernel
|author=
|pub=kernelthread.com
|date=viewed February 5, 2005}}

*{{source|url=http://kerneltrap.org/node/4658 
|title=GNU/Hurd: First Phase of L4 Port Completed 
|author=mbanck 
|pub=kerneltrap.org 
|date=February 1, 2005}}

{{publish}}

{{archive}}

[[Category:Computing]]
[[Category:Operating system]]
[[Category:Science and technology]]
[[Category:FLOSS]]
[[Category:Linux]]
[[Category:Software]]
Image:HURD first program banner.jpg|thumb|right| banner(6), the first user application to be successfully executed on GNU Hurd running on the L4 microkernel, the screenshot shows a GNU/Hurd running on the QEMU CPU Emulator.
A collaboratively-developed operating system kernel known as GNU Hurd has been made bootable using the L4 microkernel, which provides room for significant speed improvements over an existing implementation using the Mach microkernel. The newer architecture also has a more lively developer community.

Developer  Marcus Brinkmann made the historic step and finished the process initialization code, which enabled him to execute the first software on Hurd-L4. In a message to the  L4 port of GNU Hurd mailing list, Brinkmann wrote, "We can now easily explore and develop the system in any way we want. The dinner is prepared!".  However, the kernel's current feature set is very limited. "With my glibc port, I can already build simple applications, but most won't run because they need a filesystem or other gimmicks (like, uhm, fork and exec), and I only have stubs (dummy functions which always return an error) for that now," he added in a later posting. 

Compared with Linux and BSD Unix's monolithic kernel architecture, a microkernel based operating system provides developers greater modularity and isolation from hardware, a big win with L4 already being available for a large number of hardware varieties.

There is a cost in speed for such abstraction, and this cost was higher on Mach, at around 15%, compared with only around 5% on L4 and it's predecessor L3, both developed by Dr. Jochen Liedtke. 

The greater modularity and abstraction of a microkernel approach means that the microkernel itself does not need constant modification as is seen in the Linux kernel today, since it provides only the very minimum of services, and does so very carefully. Thus, the fact that L4 was developed in 1996 is seen as exemplifying this stability -- rather than showing its age -- since few, if any, improvements in approach have been imagined in the meantime.

However, the Mach kernel first developed ten years earlier at Carnegie Mellon University is seen as a flawed first implementation, with the lessons learned being implemented in microkernels like L4, known as second-generation microkernels.

The GNU Hurd forms the base of the GNU operating system, much of which has been widely adopted by users of other Unix-like operating systems, including Linux. The GNU Project has been developing the Hurd since 1983. In 1990, the GNU Project decided to use the Mach kernel, rather than writing their own.  The Hurd is released as free software under the GNU General Public License (GPL).

The Hurd kernel is an experiment which aims to surpass existing Unix kernels in functionality, security, and stability, while remaining largely compatible with them. It currently runs on Intel IA32 machines. According to the GNU Hurd project, "The Hurd should, and probably will, be ported to other hardware architectures or other microkernels in the future" .

`Hurd' stands for `Hird of Unix-Replacing Daemons'. And, then, `Hird' stands for `Hurd of Interfaces Representing Depth' - perhaps the first software to be named by a pair of mutually recursive acronyms.

A limited port of Linux already runs on L4, known as L4Linux.

*

*

*

*

*

*
Computing Operating system Science and technology FLOSS Linux Software