Subscribe to the Free Software Supporter — the monthly update from the Free Software Foundation

Brave GNU World

 [image of a world with a GNUs horns] (jpeg 7k) (jpeg 17k) logo from "We run GNU" initative no gifs due to patent problems


Brave GNU World

Permission statement below

Issue #7

[DE | ES | FR | JA]

Welcome to Georgs Brave GNU World. Ill begin this issue with an addition to last months GNU and Java topic that definitely deserves its own headline.


Tom Tromey of Cygnus [5] contacted me by mail to inform me about the advances of gcj [6]. This is a Java frontent for the gcc [7], which has been merged with the egcs a while ago. Gcj natively understands Java sourcecodes as well as bytecodes and besides creating executables it is also possible to output class files.

Thanks to gcj Java can now be treated like any other programming language and compilation significantly increases performance. The implementation treats C++ and Java objects in the same way which so they can easily be interwoven. Additional advantages are the extreme portability since it is based on the very platform-independent gcc and the GNU Debugger gdb has already been modified for gcj compiled programs.

Of course the project still has a few weaknesses. The biggest problem is definitely the lack of AWT and Swing, followed by the inability to work with compressed classes and the JDK 1.1 extensions. Top priority is to get gcj JDK 1.1 and JDK 1.2 compliant and the inclusion of GUI toolkits. But this may not take too long; there are rumors about a GTK+ based AWT already.

At the moment five people from Cygnus and three net contributors are working on gcj. By the way: when telling me this, Tom Tromey did emphasize the fact that the net contributors did very important parts of the work; one of them has written the interpreter, for instance.

The next project is also based more or less in the developers realm but it may also be interesting for "normal users" who like to peek behind the courtain.


GNU Pth [8] by Ralf S. Engelschall stands for GNU Portable Threads and is a library for non-preemptive priority-based multithreading on UNIX systems. Until now pretty much all implementations had serious drawbacks; either they werent completely POSIX Thread compliant or very platform-specific and very often they were both. This was a reason for many programmers to refrain from using threads in order to achieve a better portability.

The top priority in the development of GNU Pth is platform-independence. This goal is being pursued by avoiding any assembler solutions or platform specific tricks. Additionally only functions that are available on all UNIX derivates have been used; not even functions from the Unix95/98 specification are assumed to exist. The second priority is completeness. Most of the thread implementations - for instance the Linuxthreads - are only incomplete realizations of the POSIX Thread standard. By now the implementation of GNU Pth is already more complete than the native FreeBSD implementation uthread and it is planned for GNU Pth to cover the shared memory standards which have not yet been realized in any implementation.

Just to throw in some technical details for the developers among us Id like to say that GNU Pth is based completely on ANSI-C and does a real userspace M:1 mapping. This means the kernel will only see one normal process regardless of the number of threads the program actually has.

By now version 1.1 of GNU Pth has already passed some performance tests with very satisfying results: Peter Erikssons Multithreaded-FTP server pftpd ran successfully and an experimental Apache version (Apache/MPM) performed very well under high loads. Thanks to GNU Pth Apache/MPM - MPM stands for "multi process model" - can be used on pretty much all platforms even if they do not support POSIX threads natively.

Ill continue with another project that Ralf S. Engelschall contributed to the GNU Project this year.

GNU Shtool

The GNU Shell Tool [9] is a compilation of small, stable and very portable shellscripts into a single shell tool.

Nowadays a lot of people like to use GNU Autoconf [10] and GNU Automake for the automated cusomization and installation of software packages. During this process at least the installation heavily relies on a lot of shellscripts whose main purpose it is to provide certain functionality that some platforms lack. After a while this lead to a zoo of small scripts, many of them residing in different locations. GNU Shtool seeks to solve the resulting problems in maintenance and distribution this zoo created. Its main purpose is to serve as a "black box" which provides the means to do several shell tasks in a source tree. This makes it the complement to the GNU Libtool [11] which simplifies the creation of shared libraries.

Everyne should read the next part because the significance of cryptography related Free Software cannot be emphasized enough.


For quite a while Werner Koch has been working on the GNU Privacy Guard [12], a free replacement for PGP with several advantages. Other people involved in the project were Michael Roth, Rmi Guyomarch, Matthew Skala and many more. After a long development and trial period version 1.0 has finally been released beginning of this September.

Why should you switch to GPG? First of all GPG has been developed in Germany, so U.S. export restrictions do not apply to it; the slow and inconvenient printing, mailing and scanning are spared. GnuPG sticks to the Open PGP standard (RFC2440) and does not use any patent-restricted algorithms. The native algorithms used by GPG are DSA and ElGamal for public-key and 3DES, CAST5, Blowfish and Twofish for symmetric encryption. Additionally it is very easy to include other crypto-modules in GnuPG in case there is need for more.

Clearly the biggest advantage is the fact that GnuPG is Free Software, though. This doesnt only mean that firms may use it without cost; much more important is that the amount of trust that can be put into it is much higher compared to non-free software.

There is also a pretty big group of applications around GPG already. Werner Koch himself is working on a GNU Cryptography Library and the GNU Secure Transport Initiative, a free SSH v2 replacement. His plans for the next development cycle also contain storing the private keys in a daemon that can be included in a hardware token if required.

Brian Warner wrote the Entropy Gathering Daemon (EGD) that allows to create good random numbers on systems like Solaris and HP. The program pgpgpg by Michael Roth allows to translate PGP commandline parameters for GPG to allow older programs to use GPG without modification. He also works on Privacy Guard Glue (PGG), a high-level library for GnuPG.

A good part of the mail programs does already support GPG and frontends for GNOME, KDE and Tcl/Tk exist already, so switing to GPG should not cause big problems. Another interesting fact is that we may for GPG never to be restricted by the German government: the German Ministry BMWi considers funding a GnuPG based cryptography project because only Free Software can provide security.

The next project stems from the area of mailinglist managers.


Mailman [13] is a mailinglist manager that has originally been written by John Viega in Python. The circle of developers grew to become the "Mailman Cabal" when Barry Warsaw, Harald Meland, Ken Manheimer and Scott Cotton joined in.

Although this may seem as a well-covered area with long-used programs Mailman is definitely worth a close look. Apart from the usual features everything can be adminstered via a web-interface, it has a built-in spam protection and integrated mail to news gateway. It also allows for several administrators or moderators on a list and the digests that so many people like can be sent in MIME format. All stressed mailinglist-administrators should definitely consider checking it out.

Before finishing this months column Id like to remark a few things.

This is the end...

First of all it seems that the reasons to use the GNU/Linux nomenclature have gained more weight because Amiga announced they would create another operating system based on the Linux kernel. Apparently this system will not be free. Besides the point that I think this is a step back in evolution it shows that our system should carry a different name to make the difference visible. This lets GNU/Linux seem like an even better choice.

Id also like to thank everyone for the positive feedback after the introduction of the "We run GNU" initative [4]. During the last two weeks there has not been a day where I didnt have to update the website because another picture has been sent in - this is what I hoped for. :-) This time Id like to especially thank Stefan Kamphausen who created the logo above.

Finally Im looking for volunteers. End of October there will be the "Systems" in Munich (Germany) with a big "Linux-Park." On this occasion I will be giving a speech about the GNU Project on Wednesday and a GNU/Debian/GNOME stand is planned that still needs volunteers to watch over it for a day or two.

Everyone who would like to help and of course all ideas, comments, questions and feature requests should go to the email address below [1].


[1] Send ideas, comments and questions to Brave GNU World <>
[2] Homepage of the GNU Project
[3] Homepage of Georg's Brave GNU World
[4] "We run GNU" Initiative
[5] Cygnus Homepage:
[6] gcj Homepage:
[7] gcc Homepage:
[8] GNU Pth Homepage:
[9] GNU Shtool Homepage:
[10] GNU Autoconf Homepage:
[11] GNU Libtool Homepage:
[12] GNU Privacy Guard Homepage:
[13] Mailman Homepage:

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 There are also other ways to contact the FSF.

Please send comments on the Brave GNU World column to, send comments on these web pages to, and send other questions to

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: Last modified: Fri Oct 15 17:46:33 CEST 1999