Brave GNU World

 [image of the Head of a GNU] (jpeg 7k) (jpeg 21k) no gifs due to patent problems


Georg's

Brave GNU World

Permission statement below

Issue #3

[DE | FR | JA | ES]

Welcome to the third edition of Georg's Brave GNU World. The name of the column seems well-chosen. After the French translation has been taken over by Francois Thunus and Hurd hacker OKUJI Yoshinori added a Japanese translation to the webpage [3].

A French GNU/Linux magazine showed interest in also printing the column. Amazed by these developments, I am now thinking about a logo for the Brave GNU World. Ideas and suggestions are very welcome - just send them via e-mail [1].

Many people have heard of the Hurd [4], but few of them know what it really is. Since I consider the Hurd very important, I will start this issue with a little longer-than-usual report about it.

The Hurd

The Hurd is a kernel for a Unix system -- more precisely speaking, the Hurd is an set of servers running on top of the GNU Mach, an improved Mach 4 microkernel [5]. Whereas Linux is a monolithic kernel, incorporating all drivers and system routines in one huge chunk of memory, the Mach microkernel only supplies a basis for communication and organisation of kernel servers and hardware. The Hurd builds upon this to create the functionality that users expect from a kernel.

What does this mean ? A regular user will hardly detect any difference - modular applications will run faster, monolithic ones slower, and the rest will be about the same. More advanced users have the possibility to securely override Hurd's kernel servers with their own, without risking stability or functionality - other users won't even notice. A veritable paradise opens up for kernel hackers who want to make wild changes to the kernel and try them out on a working node. The worst-case scenario is a core dump, which requires you to restart your server program, but does not affect other users.

Work on the Hurd started before object-oriented models were en vogue, so the Hurd still uses the Mach Interface Generator (MiG) and CMU C threads (cthreads). Switching to CORBA [6] and POSIX threads (pthreads) is one of the current goals. Only a few people know how to use MiG and cthreads, so there is a high demand for volunteers to help overcome this bottleneck.

Once the switch to CORBA and pthreads is complete, working on the Hurd will become much easier. CORBA-based applications (like GNOME) will need less "glue code" (sourcecode that intermediates between the requests of the programs and the functionality of the system). Applications will become faster, leaner and simpler.

What has been achieved so far? In conjunction with the Hurd team, Marcus Brinkmann of the Debian distribution did a lot of work on a Debian GNU/Hurd distribution [8] and in January 1999 he offered a minimal system for developers to download. Thomas Bushnell and Roland McGrath were joined by Mark Kettenis, and are working together to do heavy Hurd and glibc development. OKUJI Yoshinori worked on porting Linux device drivers, so gnumach-1.1.92 has about the same hardware support as Linux 2.0.36. Together with Gordon Matzigkeit, he also updated GRUB [7] which is a multiboot-capable bootloader with many nice features.

Gordon Matzigkeit, the GNU Release Coordinator recently hired by the Free Software Foundation, hopes that Debian GNU/Hurd will be comparable to Debian GNU/Linux in stability and usability by January 2000. His current task is to reorganise the development community to be more open, making it easier for others to take part. He also asked me to point out that these goals can only be reached by the cooperation of many people, and so everyone is welcome to participate. You can find out how to help by writing to the Debian GNU/Hurd mailing list [9].

I'll continue with a related topic; what does "official GNU project" mean, and how does a project become one?

Official GNU Projects

First of all, a project becomes an "official GNU Project" by agreeing to this together with the Free Software Foundation. Each project under the GPL or LGPL that the FSF considers useful may become a GNU Project.

All GNU Projects stick to certain standards [11] in order to create a homogenous system; one example is the support of long command-line options. Very often the first step in joining the GNU system is to make a program comply with these standards when it becomes part of the GNU system. Apart from these minor coordinating efforts the GNU Project believes in the freedom and responsibility of each user. Everyone working on a GNU Project can get an account on the GNU machines and use the other resources (CVS, www.gnu.org, ftp.gnu.org).

A developer whose project has been made "officially GNU" won't notice much of a change. He/she may still work alone or together with others on the project, and as long as the developer has interest in it, he or she will stay responsible for the project. Sometimes developers lose interest and the project is halted for a long time (even years). Then the GNU Project tries to find a new maintainer so the project doesn't die.

It is also possible to become a "GNU" without a project and even without programming skills - the information can be found on the webpage [12] or you can directly ask the GNU Project how you may contribute [13].

GNU User Group

I'll close this month's issue with a question by Wei-Lun Chao from Taiwan: "Why is there no GNU User Group ?". I'd like to pass this question on. Apart from the fact that one may find nice recursive acronyms like "GNU Networked Users of Germany" or some such, a GNU User Group is overdue, and the first one to write me will definitely get a feature in the Brave GNU World.

As usual, don't feel you should hold back criticism, ideas or questions; the address can be found in the info box [1].

Info

[1] Send ideas, comments and questions to Brave GNU World <column@gnu.org>
[2] Homepage of the GNU Project http://www.gnu.org/
[3] Homepage of Georg's Brave GNU World http://www.gnu.org/brave-gnu-world/
[4] GNU Hurd Homepage http://www.gnu.org/software/hurd/hurd.html
[5] Mach 4 Project Homepage http://www.cs.utah.edu/projects/flexmach/mach4/html/Mach4-proj.html
[6] CORBA Homepage http://www.omg.org/corba/
[7] GRUB Homepage http://www.uruk.org/grub/
[8] Debian GNU/Hurd http://www.gnu.org/software/hurd/debian-gnu-hurd.html
[9] Debian GNU/Hurd mailing list debian-hurd@lists.debian.org
[10] Marcus Brinkmann: Marcus.Brinkmann@ruhr-uni-bochum.de
[11] GNU Coding Standards http://www.gnu.org/prep/standards_toc.html
[12] GNU Development Resources http://www.gnu.org/software/devel.html
[13] The GNU Projekt: gnu@gnu.org


Go to next issue

Return to previous issue / Brave GNU World home page

Return to GNU's home page.

Please send FSF & GNU inquiries & questions to gnu@gnu.org. There are also other ways to contact the FSF.

Please send comments on the Brave GNU World column to column@gnu.org, send comments on these web pages to webmasters@www.gnu.org, send other questions to gnu@gnu.org.

Copyright (C) 1999 Georg C. F. Greve, German version published in the Linux-Magazin

Permission is granted to make and distribute verbatim copies of this transcript as long as the copyright and this permission notice appear.

Updated: 16 Jun 1999 greve