Welcome back, my greenhorn hackers!
As hackers, we often take for granted that nearly all of our hacking tools and operating system are free and open source. I think it's important to examine a bit of background on how we arrived at this intriguing juncture in the history of computer software. After all, we pay for nearly all of our other software (Microsoft, Adobe, etc.) and nearly everything else we use in life, so how is it that Linux and all our hacking tools are free?
Free and open-source software is computer software that is developed and licensed so that anyone can use, copy, study, and edit it. People are encouraged to contribute and enhance the software in a continuous process of improvement.
Contrast this with proprietary, closed-source software. This software is licensed under a copyright that limits its use and hides its source code. Users are dependent upon the software developers to improve it and make it more secure, rather than doing it themselves.
- Linux: the world's best operating system
- OpenOffice: a Microsoft Office clone
- MySQL: the widely used online database now owned and supported by Oracle
- GIMP: the excellent photo editing software similar to Photoshop
- TrueCrypt: the whole drive encryption software that is giving law enforcement fits
- Blender: an excellent animation software
- VLC: the widely used video player capable of playing nearly any video format
- FileZilla: the FTP client
- Firefox: the widely used browser
- Wordpress: blogging and web content management system
- Metasploit: the exploitation framework
- PostgreSQL: the advanced database management system used in many applications including Metasploit
- Paint.net: an excellent graphics editing program for Windows.
- Wireshark: the most widely used sniffing and packet analysis software
- SugarCRM: the widely used customer relationship management package
- Snort: the world's most widely used Intrusion Detection System (IDS) now owned by Cisco but still open source
Although the concept that software and information should be "free" (as in free speech) goes back quite a way in the history of computing, most people point to one very quirky professor of computer science at the Massachusetts Institute of Technology (MIT) by the name of Richard Stallman.
Stallman was adamant that software should be free and open source. In 1983, Stallman began the GNU project to develop a free and open-source UNIX (UNIX was developed by AT&T for mainframe computers and was very expensive and not ported to PCs) that he called GNU. GNU stands for "GNU is Not UNIX." Most of us have seen this familiar acronym in the licensing of Linux. Stallman then quit his cushy and lucrative job at MIT so that the university couldn't claim ownership of his code.
When he did so, he published what has become known as the GNU Manifesto.
"I consider that the Golden Rule requires that if I like a program I must share it with other people who like it. Software sellers want to divide the users and conquer them, making each user agree not to share with others. I refuse to break solidarity with other users in this way. I cannot in good conscience sign a nondisclosure agreement or a software license agreement. For years I worked within the Artificial Intelligence Lab to resist such tendencies and other inhospitalities, but eventually they had gone too far: I could not remain in an institution where such things are done for me against my will.
"So that I can continue to use computers without dishonor, I have decided to put together a sufficient body of free software so that I will be able to get along without any software that is not free. I have resigned from the AI Lab to deny MIT any legal excuse to prevent me from giving GNU away."
Then, in 1985, Stallman started the Free Software Foundation or FSF. Its mission remains today to keep software free and open.
Stallman formalized the concept of free and open software in his GNU Public License (GPL). He referred to it as "copyleft," as opposed to copyright. GPL is now in its third iteration (GPLv3) and from the GNU's own website, the foundational concepts behind copyleft and GPL are:
Nobody should be restricted by the software they use. There are four freedoms that every user should have:
- the freedom to use the software for any purpose,
- the freedom to change the software to suit your needs,
- the freedom to share the software with your friends and neighbors, and
- the freedom to share the changes you make.
When a program offers users all of these freedoms, we call it free software.
Developers who write software can release it under the terms of the GNU GPL. When they do, it will be free software and stay free software, no matter who changes or distributes the program. We call this copyleft: the software is copyrighted, but instead of using those rights to restrict users like proprietary software does, we use them to ensure that every user has freedom.
Although Stallman's concepts of free and open-source software (FOSS) gained a few adherents in the late 1980s, one man adopted it wholeheartedly and changed the world. In 1991, Linus Torvalds was graduate student at the University of Helsinki when he started on a project to reverse engineer Unix for the x86 (PC) platform.
He developed a tiny kernel and then released it on the Internet on August 25, 1991 for anyone to use and assist in the development. He wrote then:
"Hello everybody out there using minix -
"I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things)."
Although he did not immediately license Linux under GPL, in February 1992, Linus Torvalds made the fateful decision to license his operating system under GPL and thus ushered in the golden era of free and open-source software that we now live in.
This was the humble beginnings of Linux. In the intervening 24 years, it has become one of the most important software developments in world history.
In this way, Linus Torvalds not only boosted an entire ecosystem of free and open-source software (Linux), but he legitimized the concept of collaborative development of software.
Before Torvalds, "collaborative software development" had been more talk than actual coding. Torvalds took that concept and made it real, as he invited everyone to participate in the development of Linux. Then, to assist in the development of collaborative software, Torvalds developed Git.
Although Stallman and Torvalds gave us Linux and the whole free and open-source software, they did much more. While many in our capitalist societies will insist that people will only work for private compensation, the free and open-source software model defies this dictate. Software projects around the world have dedicated and talented software developers behind them working diligently, without compensation, to turn out high-quality projects.
It's clear that Stallman and Torvalds began something unique and incredible that all of us are the beneficiaries of. We all need to give thanks and gratitude to these two software "gods" and to the many software developers who give freely of their time and expertise to keep our software free and open, my greenhorn hackers!