The greatest open source software of all time

InfoWorld's Open Source Hall of Fame recognizes the 36 most important free open source software projects in history (and today)

Every year InfoWorld painstakingly selects its Bossie Award winners -- the best open source software for business -- and every year we have shamefully neglected the very cream of the open source crop. While we've awarded the Dojos, Xens, and SugarCRMs, we've ignored Linux, GNU, and the *BSDs -- because, well, don't their excellence and importance go without saying? In other cases, where open source giants did receive our award (Snort and Wireshark come to mind), a "mere" Bossie almost seems like faint praise.

This year we strive to make amends. In advance of our 2009 Bossies (check on Monday, August 31), we finally give the true legends of open source their just and overdue due. No longer will we neglect the superlative and truly essential for the sake of the merely excellent and highly valuable. In recognition of the greatest open source software projects of all time, we bring to you the InfoWorld Open Source Hall of Fame.

[ Which of these legendary open source solutions are the very greatest of all? See InfoWorld's companion slideshow, "Top 10 Open Source Hall of Famers." ]

The 36 inaugural members of our hallowed hall of course include many familiar names and famous successes, as well as others that often slip under the radar or are taken too much for granted. All are mature and well-established projects that have served as the foundations of software development projects, business networks, datacenters, and the public Internet for years. They are the proven and trustworthy longtime favorites that have propelled the open source movement into the spotlight.

Led by Linux
The Linux kernel was not the first open source software (some argue that GNU Emacs was), but it is certainly the most famous and successful -- the prime mover behind the popularization of open source development and the use of free open source products. Today the Linux kernel is the foundation of a rich variety of operating system distributions, the poster penguin of open source software, and the number one inductee into our open source hall of fame.

If the Linux kernel is the star of the Linux scene, the underappreciated redheaded stepchild of the Linux family is the collection of GNU tools and utilities that transform the Linux kernel into a full operating system. From code that manipulates the contents of a hard drive to utilities essential for server automation, the GNU commands and utilities are as necessary for the Linux operating system as the Linux kernel itself.

No less essential are the GNU Compiler Collection (GCC) and the rest of the GNU toolchain. A common set of compilers available on most Linux and *BSD systems under the GPL, the GCC supports quite a few languages including C, C++, Java, Objective-C, and even Fortran. With the Linux kernel and the GNU system utilities, the GCC completes the Linux holy trinity.

Because most Unix-like systems and the programs that run on them are managed from the command line via text files, we would be remiss to exclude the all important Emacs and Vi text editors. Few subjects in the open source community stir up quick tempers and strong opinions as reliably as the age-old Emacs versus Vi debate. Both of these highly configurable text editors boast large populations of loyal users. Regardless of your preference or ours, both have earned hall of famer status.

A few special Linux distributions have earned a place in our hall. Topping the list is CentOS, a free enterprise-class operating system derived from Red Hat and that maintains full binary compatibility with Red Hat. In a nutshell, you get a free, unadulterated edition of Red Hat Enterprise Linux, without the cost of a Red Hat support contract.

Another favorite distribution is Debian GNU/Linux. Debian is one of the few Linux distributions that is community controlled and not steered by a commercial venture. Debian may be the only Linux distribution that still gives a tip of the hat to the hard work of the GNU maintainers by calling itself GNU/Linux. Most of the user-friendly Linux distributions that have popped up in recent years are based on Debian, whose apt-get software installation and update system remains a blessing to system administrators the world over.

The most celebrated of the newfangled user-friendly distros is Ubuntu, and for good reason. When you want to introduce a friend or family member to Linux, you can't do better than to give them Ubuntu. You can even install and run Ubuntu from inside Windows!

To make any Linux distribution easy to use, you have to bring a good graphical user interface to the party. Gnome and KDE are the Linux stalwarts in the GUI department. These projects incorporate not just the basic GUI, but also a full suite of user applications and APIs that other programmers can use to make their applications work with the Gnome or KDE wares. How good are these GUI environments? Just look at what happened when some Aussies presented KDE as Windows 7 to unsuspecting computer users.

Open source operating systems are not all about Linux. There are several open source variations of BSD Unix available as well. We must make room in our hall for the super-reliable and high-performance FreeBSD and siblings NetBSD and OpenBSD. NetBSD brings BSD Unix to a wide variety of computing platforms, including embedded systems and PDAs. OpenBSD's focus is security. The OpenBSD developers and maintainers spend a lot of their time looking over other people's programming code to make sure that applications ported to OpenBSD are free of bugs and vulnerabilities that could be used to compromise the host.

Working with Windows
As much as we love Linux and *BSD, some folks just can't get around having to run Windows applications. So what's a Linux user to do? Well, there's a good chance that Wine can run that crucial Windows application. Wine is a software application that will execute many Windows applications "natively" on Linux and other Unix-like operating systems. Ironically, it has been observed that Wine can launch many Microsoft programs (such as Outlook and Word) faster than those programs launch on Windows!

Whereas Wine provides Linux and Unix-like systems the ability to run Windows applications, Samba provides the ability for Linux and company to talk to Windows computers for file and print sharing. With Samba and its derived utilities, a Linux computer can connect to a Windows file server and share documents just like a Windows workstation can do. Even better, Samba allows a Linux server to act as a file and print server for Windows computers. Samba even lets a Linux computer serve as a Windows domain controller, offering Windows domain logons and roaming profiles for Windows PCs.

One last note on the subject of Windows: Linux and *BSD users enjoy a great set of powerful utilities and commands for free -- but what happens when Linux and *BSD users get stuck working on a Windows computer? Why, look no further than Cygwin. A port of the Unix POSIX system calls to the Win32 environment, Cygwin allows you to run the GNU Compiler Collection and many GNU utilities on a Windows machine.

Full compiled programming languages aren't for everyone, and several popular open source scripting languages are remaking the application development landscape. These include Perl, Python, PHP, and Ruby, all of which can be used to help with systems administration tasks or create rich Internet applications. A salute to Sun is also in order, for releasing its Java language and JIT compiler under the GPL, bringing them into the open source community.

To make full use of scripting languages, it is often necessary to bring a database along for the ride -- and open source has you covered. The open source community has two 800-pound gorillas in the database category: MySQL and PostgreSQL. Both of these are strong database servers that can handle heavy loads, supporting clustering and including a wide range of enterprise-level features. And let's not forget a database scripter's best friends, phpMyAdmin and phpPgAdmin. These Web-based front ends (for MySQL and Postgres, respectively) make it easy for a programmer or DBA to easily set up a database and table structure, run queries, and of course add, delete, or manipulate the data.

Making connections
Perhaps the most venerable of our revered hall of famers is the BIND (Berkeley Internet Name Domain) domain name server, which dates from the pioneer days of the Internet. The Internet runs on DNS, and DNS runs on BIND. There is probably no more important technology to enable the many various Internet applications that we all enjoy today. From Web pages to Internet VoIP telephony to the new social media applications such as Twitter and Facebook, almost everything we do on the Internet depends on DNS. The last numbers we've seen on the subject estimate that approximately 85 percent of DNS servers are running BIND.

The most pervasive form of communication on the Internet is still e-mail. Thus we must pay homage to three of the most widely used open source mail servers: Sendmail, Qmail, and Postfix. The oldest of the three, Sendmail, was the Internet MTA (mail transfer agent) for years, and is still one of the most pervasive. Sendmail was never for amateurs, as configuration was significantly complex, nor was it built with strong security in mind. Along came Qmail, an even more powerful and flexible MTA that made security a top priority. Finally, we were blessed with Postfix. Though not as powerful and adaptable as Sendmail or Qmail, Postfix was oh-so-easy to configure, and still had the chops to perform most any task that an administrator would ask of it. These three MTAs still make up the majority of the Internet's mail servers today.

What do you do when you need access to your workstation but you're away from the office? It is, was, and perhaps always will be VNC to the rescue. VNC (Virtual Network Computing) is GPL-licensed software that gives a user remote access to a computer, much like pcAnywhere and Microsoft's remote desktop protocol. VNC was originally developed by Olivetti Research Laboratory in Cambridge, UK, in the mid 1990's. Several derivatives of the original VNC project exist, adding features such as connection encryption, lower bandwidth requirements, SSH tunneling, and even file transfers. Versions are available for various flavors of Windows, Mac OS X, and most Unix-like operating systems.

What good network or systems admin hasn't used Wireshark (formerly Ethereal) to troubleshoot a network bottleneck or a sluggish client/server application? Wireshark captures network traffic, then provides a helpful interface to analyze the data, letting you view an entire conversation between two computers down to the network packet level. Despite the presence of several big commercial tools for network protocol analysis, many top network consultants choose to use Wireshark instead.

Another old standby of network admins is the Snort intrusion detection system, by far the most popular way to keep a constant watch over network traffic. Snort can perform real-time protocol analysis and content matching to identify all sorts of attacks on your network. A number of helpful modules are built into Snort, and many third-party plug-ins are available to extend the functionality.

For instance, if you want Snort to serve as an in-line intrusion prevention system, you could use Snort-Inline to automatically drop offending packets. With the SnortSam plug-in, Snort can communicate with Cisco, Check Point, Juniper/Netscreen, and other firewalls to automatically block IP addresses when Snort identifies an incoming attack. The front end of choice for Snort is BASE, which gives you an easy Web interface to review and analyze attacks. And the company behind Snort, Sourcefire, has a vulnerability research team that maintains a set of Snort rules that are available by subscription at a very reasonable rate.

OpenSSH and OpenSSL are two other indispensible security tools that make it into our inaugural hall of fame. Many of the tools (such as telnet and rlogin) used to connect to older Unix systems sent usernames, passwords, and data over the network in clear text. OpenSSH encrypts shell connections to remote computers so that someone sniffing network traffic won't be able to see your sensitive information. OpenSSL is a software library that enables all sorts of applications to use encryption when sending data across the network. OpenSSL is most often used to create VPN tunnels and to secure data between a Web browser and a Web server.

Asterisk, the open source VoIP phone system, also makes the cut in our networking wing. As it has matured over the years, Asterisk has not only gathered advanced telephony features but also become easier to manage, with several Web-based interfaces now available. The result is that adoption of Asterisk has exploded. Asterisk is backed by an extremely active community, with plenty of commercial support available, and it boasts compatibility with a wide range of VoIP gear. A sizable industry has now grown up around Asterisk, and improvements and additions seem almost constant.

1 2 Page 1
Page 1 of 2