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 WindowsAs 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.