The Most Essential Open Source Programs and Libraries

It’s often the most flashy and rapidly-developed open source applications that get the most attention. Most people focus on projects like Beryl, Metisse, Firefox, OpenOffice.org and Ubuntu. But we can’t forget the importance of the open source software an average user doesn’t see every day. This is a list of nine such programs and libraries.

9. GNU GDB
As any C or C++ developer knows, a good debugger is an essential tool. On many open source operating systems, GNU GDB plays that role. The innards of applications can be examined using GDB, allowing one to determine where in a program a bug exists, and what may need to change to fix the problem. It is without doubt that GDB has contributed greatly to the high degree of stability we experience when using systems like Linux, FreeBSD, OpenBSD and NetBSD.

8. X Window Server
The command line is all that is needed for many tasks. But others, including web browsing, image editing and video manipulation, benefit greatly from the use of a graphical environment. This is where an X Window implementation comes in. Some of the most popular implementations today include X.org and XFree86.

7. GNU Binutils
The tools of the GNU Binutils package may be among the most unknown to non-developers. But those who do implement software know the importance of tools like ld, as, and ar. Without linkers, assemblers and library archivers we likely wouldn’t be able to produce the large scale systems we have today.

6. GNU Bash
To truly make use of an open source UNIX-like system, one needs to have a good shell. GNU Bash is just such a shell. The default shell of many Linux distributions, Bash draws features from existing shells such as sh, ksh and csh, in addition to adding useful functionality of its own.

While system like FreeBSD, NetBSD and Solaris offer their own shell implementations, many users and administrators on those systems still choose to use Bash, just because it has a large feature set and is widely portable. They can learn how to use it on one system, and will be able to bring that knowledge to any other system they use that has Bash installed.

5. tar, gzip and bzip2
A major aspect of open source software is how it is distributed. In source form, a popular distribution method is that of a tar archive compressed using either bzip2 or gzip. To create and extract the actual tar files, a number of applications exist, including GNU tar, FreeBSD tar, OpenSolaris tar, and star. Without these utilities, it would be difficult and costly to share our open source software.

4. GNU GRUB
While not all open source operating systems use GNU GRUB as their bootloader, it has become a major player because it so easily allows a single PC to boot operating systems as diverse as Linux, Windows and FreeBSD.

3. C Library
The C library is one of the most essential libraries on a UNIX-like system. Without this library, the vast majority of open source applications will not run. Even applications written in languages like Python or Perl depend on a C library being present, as the standard interpreters for those languages are themselves written in C.

Being somewhat system-specific, a number of C library implementations exist. Most Linux distributions use Glibc or uClibc. FreeBSD libc, OpenBSD libc, NetBSD libc and OpenSolaris libc are also well-known C libraries used by many people every day. Thanks to these libraries, we are able to write portable C code with relative ease.

2. Open Source Operating System Kernel
The kernel of an operating system provides the basis upon which we can implement higher level functionality. For most of the major open source operating systems, the kernel provides the basic infrastructure needed for us to build device drivers, filesystems, networking support, and also the userland applications and libraries we directly interact with.

Linux distributions are clearly built around the Linux kernel. As with the C libraries mentioned above, the FreeBSD kernel, OpenBSD kernel, NetBSD kernel and OpenSolaris kernel are also frequently used by many. They form what may be among the most essential parts of an open source operating system.

1. GCC: The GNU Compiler Collection
Without a good compiler for various high level languages, it’s quite difficult to write the large scale applications that we depend on today. That’s why GCC, the GNU Compiler Collection, is listed here as the most essential open source application. Even software as essential as the Linux or FreeBSD kernels would not be usable without the presence of GCC.

GCC is truly a remarkable compiler system. It supports languages like Ada, C, C++, Fortran, Objective-C and even Java. It also includes the runtime and class libraries needed for such languages. Even more remarkable is the number of platforms that GCC not only runs on, but can generate code for. When we consider that even some of the major open source operating system kernels are useless without GCC, we can truly see how important of an application it is.

Leave a Reply

*
To protect against spam, please type the word in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word