History of glibc and Linux libc

History of glibc and Linux libc


The “Linux libc” fork of the GNU C Library is now a mostly forgotten event. The fork lived from 1994 to 1997/8—just before my time—but I’ve found interesting accounts of it by others.

The main sources of information are:

Reasons

According to Wheeler’s appendix, the fork occurred just after February 1994, and the motivations were procedural/organisational: “the Linux kernel developers thought that the FSF’s development process for the C library was too slow and not responding to their needs”. This ties in with Bruce Perens’ comment in 2000 that the Linux libc fork “went on for years while Linux stabilized” (from the article Forking: it could even happen to you).

Moen’s article says the reason was technical: “they decided that FSF’s library (then at version 1-point-something) could/should best be adapted for the Linux kernel as a separately-maintained project”. Both reasons could have contributed.

During the fork

H. J. Lu is mentioned by a few people as being the maintainer or main contributor to Linux libc.

Elliot Lee’s article says that while the Linux kernel developers were using their fork, glibc development stalled for a time. This coincides with the time that FSF spent working on version 2.0, during which there were no official releases for two years. The development progress during this time is noted in the twice-annual GNU’s bulletins that FSF published throughout the 90s.

From the NEWS files, it seems Cygnus Solutions hired Ulrich Drepper to work on it from late 1995 onwards since the January 1996 GNU’s bulletin mentions that Drepper has contributed a lot “in the last few months”.

Glibc 2.0

It looks like glibc 2.0 was released in January or February 1997 (from the dates in the GNU ftp site, from the January 1997 GNU’s bulletin, and from some mailing list discussion archives).

By all accounts, glibc-2.0 surpassed Linux libc on features, standards, and code cleanliness. Elliot Lee’s article goes into most detail on this, citing features such as POSIX compliance, internationalisation support, multithreaded support, IPv6, and 64-bit data access, and library version migration support.

There is an 1998 interview with H.J. Lu about libc5 and glibc. The interview mostly focuses on technical differences and the transition. H.J. is quite positive about glibc 2.0.

Ending

Bruce Perens’ one line comment about the aftermath is that the projects “re-merged”, however, while the communities and contributors may have merged, according to Stallman, little or no code did. According to Stallman, the Linux libc had insufficient records of authorship or copyright ownership for the code they distributed (something the GNU project has always been very strict about), and the Linux libc maintainers were unwilling to sort this out.

In 1997 through 1998 nearly all GNU/Linux systems switched from libc back to glibc. Red Hat migrated in December 1997, and Debian was planning their migration at that time too, according to Lee. And so ended a story that is now rarely mentioned.

Ciarán O’Riordan,—Support free software: Join FSFE’s Fellowship

Category: 
Tagging: 

Comments

Laurie Langham's picture

The development of GNU/Linux has been quite a roller-coaster ride, with nearly all attention focused upon development and the future. The period, over which this has occurred, is now long enough that there is the very real risk that certain segments of the history of GNU/Linux might become lost to future users. It's good to see that some attempts are being made to address this potential problem.

Ciaran O’Riordan's picture

I agree. It's very strange how little there is written about the history of a movement that should be very simple to find old documents about.

Where are all the old release notes? announcements? mail archives of key flame wars?

There must be thousands of interesting documents out there, but we can't easily find them (maybe because they're in gzipped files on ftp sites and aren't crawled by today's search engines).

Some interesting sets of documents I've found are:

I remember finding a PDF document of a guy telling about his experience working for FSF for a few months. The main thing I remember is that he said RMS was very strict about code having to be well documented. I can't find that document anymore though.

GPLv3 - strengthening free software

Lawrence D'Oliveiro's picture
Submitted by Lawrence D'Oliveiro (not verified) on

Thanks for your item. I've added it to a list of Linux-history-related links I've been collecting here: http://wlug.org.nz/LinuxHistory .

nickh's picture

the re-merging from libc5 to glibc at that period was the last straw for me in terms of linux. having started out using the o/s in 1993, i remember counting seven different and incompatible c libraries / executable formats in the following five years.

the RH3 and RH4 boxes i was running in 1997-1998 used substantial in-house modifications to libc5 to make up for the large number of deficencies in the c library - one that particularly springs to mind was the lack of db/dbm/gdbm support for /etc/passwd, which hurt really badly on a passwd file of over 1Mb.

so it was clear that every box was going to have to be wiped and installed from scratch to support the libc5 -> glibc move properly, and even then the early versions of glibc were horrendously buggy, not having seen much production use in 3 years. in the end, i moved everything to freebsd because it had better support at the time for larger systems (32 bit UIDs, large passwd file support, stabler filesystem, usable NFS). and no history of libc problems.

Author information

Ciaran O’Riordan's picture

Biography

Free Software advocate, active on political campaigns such as that against software patents in Europea, and interested in free software licences