Friday Faculty Lunch - January 28, 2005

My 10 Bits - A Brief Introduction to Linux


In this talk, I will cover a bit of the history and philosophy of Linux and the Open Source movement, and show a bit of the capabilities of the Linux Desktop. It will not be an in-depth look at Linux or Open Source, but instead, it is intended to satisfy a bit of curiosity for those who have heard of these phenomena, but haven't had the time to look into them. (It is also hoped that it will arouse even more curiosity.) Several resources will be provided for those who want to dig in a little deeper.


Terminology


A Brief History (and some Philosophy)

The history of Linux and Open Source traces its roots to even before the beginning of the development of the UNIX® operating system and the Internet in the late 1960's. Those are important to the story, but instead of boring you with all the details, I will highlight those that are important to my telling of it..


Free Software

In the mid 1980's Richard Stallman, a Harvard Physics graduate and programmer at MIT's Artificial Intelligence Lab, founded the GNU Project (A recursive acronym for "GNU is Not Unix") and the Free Software Foundation. The goal of the FSF was to produce a free UNIX-like operating system. The "Free" in Free Software meant "free as in free speech, not as in free beer".[2]. Stallman (called RMS in this particular world), advocated for, and created software that was free of the typical restrictions found in proprietary software.
In his philosophy, the usefulness of software could only be fully taken advantage of if programs could be modified to suit the needs of the user, and if those modifications could be shared with other users. However, to be able to modify the software, and make it more useful, the source code for the software had to be freely available.

In advancing this view of software, RMS coined the term copyleft and created a legal instrument called the GNU General Public License (GPL).

To copyleft a program, we first state that it is copyrighted; then we add distribution terms, which are a legal instrument that gives everyone the rights to use, modify, and redistribute the program's code or any program derived from it but only if the distribution terms are unchanged. Thus, the code and the freedoms become legally inseparable.
Proprietary software developers use copyright to take away the users' freedom; we use copyright to guarantee their freedom. That's why we reverse the name, changing "copyright" into "copyleft."[3]
Briefly, any program distrubuted under the GPL: The GPL is not the only Free and Open Source Software (FOSS) license, but it is the "biggie.".

By the late 80's and early 90's, RMS and the GNU Project (and others) had produced a large volume of high-quality software toward the goal of a complete and Free operating system. However, they still lacked a kernel.

Note: RMS also originated one of my favorite definitions of hacking:

Hacking means exploring the limits of what is possible, in a spirit of playful cleverness.[4]


The Linux Kernel

In 1991, a young graduate student at the University of Helsinki, named Linus Torvalds, started a revolution with a simple e-mail posted to comp.os.minix[5]:
From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
Newsgroups: comp.os.minix
Subject: Free minix-like kernel sources for 386-AT
Message-ID: <1991Oct5.054106.4647@klaava.Helsinki.FI>
Date: 5 Oct 91 05:41:06 GMT
Organization: University of Helsinki
Do you pine for the nice days of minix-1.1, when men were men and wrote their own device drivers? Are you without a nice project and just dying to cut your teeth on a OS you can try to modify for your needs? Are you finding it frustrating when everything works on minix? No more all- nighters to get a nifty program working? Then this post might be just for you :-)
...

He went on to describe a project he had been working on for a few months, to produce a minix work-alike operating system kernel. Minix was a small UNIX-like system that was written by Andrew Tanenbaum and included with his Operating Systems textbook that was used in Computer Science courses around the world.

Linus' original goal was not to produce an operating system kernel, but to dig into details of protected mode of the Intel® 386 CPU. He became frustrated with some of the limitations of minix, and found himself digging into kernel design as a result. Although at the point of the post above, his system required the use of minix to build and install, his new goal was to create a stand-alone system that could run without minix, and that used no code from minix.

He posted his source code on an ftp server, and encouraged others to download it, play with it, and contribute corrections and code. (The name Linux is actually attributed to the ftp administrator who gave it that name when Linus failed to specify a name to store it under.) This was Linux kernel version 0.02. Others on comp.os.minix who had already been communicating with Linus, answering questions, and making small contributions, downloaded and began toying with this new system. The Internet and use of e-mail was really taking off by now, and word "got around."

In December of that year, Linus released the first stand-alone version (0.11) of the Linux kernel and chunked minix completely. Up to this point, he destributed his code under a personal copyright that allowed anyone to freely distribute the code, but was more restrictive than the GPL (no money could change hands for example). Linux had been using GNU tools to develop Linux, and partly out of gratitude to the GNU project, he placed the Linux kernel under the GPL a couple of weeks later, with version 0.12. He later admitted that it was one of the smartest things he ever did.

Linux kernel development was a very rapid process. Linus' philosophy was then, as it still is today: "Release early, release often." This philosopy became a central tenet of what is today called the Open Source movement.

In the late 90's Linus moved the United States, and took a position with a technology start-up called Transmeta. Linux was becoming very popular by then, and Linus' stature was skyrocketing. There were many Linux-specific businesses springing up everywhere (RedHat, etc), and all would have paid dearly to have the head Linux kernel developer in their service. He wanted to remain agnostic toward these companies making money with Linux, partly out not wanting to "choose sides, " but as much out of fear of getting bored with Linux development. And although his job at Transmeta was not Linux-specific, the company gave him great freedom to continue working for himself on the project he loved, as well as a nice paycheck for doing work for them. A little over a year ago, however, Linus left Transmeta and joined the Open Source Development Labs in Oregon. The OSDL is a non-profit organization, supported by an international consortium of industries. They provide computing and testing resources for developers and are committed to bringing Linux and open source software to the marketplace. The move put Linus Torvalds in a position to work full-time on Linux. And it doesn't appear that he's getting bored.

Note: Linus Torvalds is also a genuinely nice guy.


Open Source

The GNU GPL is not the only "Free Software" license. There are nummerous other software licenses which qualify as Free, even as far as the FSF is concerned. [6]. The term Open Source did not exist when RMS created the GPL. It is usually attributed to (or claimed by) Bruce Perens and was further encouraged by Eric Raymond (known as ESR). However, the main features that all Open Source software share, and that are directly inherited from RMS's original vision, are that the source code must be made available, and that it must be "freely" redestributable.

These features, along with the Internet, are key to how the Open Source Movement, and the Open Source philosophy has exploded so rapidly over the last few years, and has produced such high-quality software. The Open Source Movement is not restricted to Linux. I would be willing to bet that many of you are using the Firefox browser under Windows or Mac OS X. Firefox was created by the Mozilla foundation and is released under an Open Source License. There are a number of Open Source projects that are released for all popular operating systems (Mozilla, OpenOffice, GIMP, and many others).

How does the Open Source model and philosophy produce such good software? In an important paper (and now a book), The Cathedral and the Bazaar[7], ESR presented results of his own experiment in Open Source, in which he intentionally headed a software project following the development model of the Linux kernel. The "Cathedral" model of development is that used by large companies that produce proprietary software. Source code is kept in-house, and programmers are assigned specific duties. The Bazaar model of develpment is the Open Source style where source code is released on the Internet and anyone in the world can work on any part of the source code that he or she has interest in. Cathedral workers are paid with money. Bazaar workers are paid in personal satisfaction, reputation, and standing in "the community."

The Open Source model works so well for several reasons. The pool of qualified, interested programmers, is enormous. Programmers contributing to one of these projects are not usually just looking for a project to work on. They are often users of some software that happens to be open source, and want it to do something different or better (or they find a bug). When it works for them, they submit it to the project leader, and he or she will probably include it in the project. The programmers' contribution is noted in the source code and his or her reputation is enhanced. When hundreds of interested programmer-users are contributing to a program, and the program is released often, it's features increase rapidly. Once a project reaches a critical mass of users (including non-programmers) however, the quality also increases rapidly. ESR coined Linus's Law from something Linus said (and Linus approved): "Given enough eyeballs, all bugs are shallow." Linus explained that typically someone finds a bug and reports it, and someone else understands it. And when enough people are using and working on a project, bugs are found and fixed quickly. In this bazaar style of open development, utilizing the Internet to the max, what works is: Release early. Release often. And listen to your customers.[8]


Testimonials

Linux is easy and fun to use. In my (introductory) Principles of Computer Science class, I usually introduce Linux during the 4th week of class and we use it for the remainder of the term. One assignment I give is to explore Linux and write a few paragraphs about the experience. The papers are almost always positive, and that's to be expected. After all, this is for a grade and the instructor likes Linux. Last term however, when I handed out the course evaluations (explaining as I usually do that these are anonymous comments and that no one will see them until after grades are turned in), I asked the students to comment on their overall impression of having used Linux for the term. 17 of 24 commented, and only one mentioned that s/he preferred Windows. Some of the comments were in response to the question "What did you like best about this course?" The others were in response to "Other Comments."

What did you like best about this course?

Learning a new os.

I liked learning to use Linux. It was really fun to do so.

Getting familiar with linux...

Got to work with Linux and a few other things I was not familiar with.

Learning about linux.

Using Linux (This person also made other comment below.)

It taught me how to write a website using HTML code, and gave me the chance to work with Linux.

Other Comments:

I love linux! I wish that I had it on my computer. It is so much better than Windows, with its interesting programs and less bugs and such. Excellent.

It was fun using lenox. I thought it was a good program and fairly easy to learn.

Never used linux before this class - was interesting.

I liked using linux a lot excpt I got into some issues at home.

I enjoyed using Linux, was fun to work w/ something else than Windows, which I have used my entire life.

Using Linux for the entire semester certainly made things interesting. It was fun and I liked using it.

I liked learning how to use Linux, though still prefer Windows.

Very fun to work with new operating system. A bit complicated. Some computers in lab freeze on startup. Overall enjoyable.

About Linux - I enjoyed having to work only in Linux, I had been wanting to learn how to use it for awhile.

I liked using Linux; It was good to learn about a different O.S.

I liked Linux a lot. I found it very easy to use after learning the initial differences.


Resources

Cited Resources:

  1. ESR - The Jargon File
  2. FSF - Free Software Definition
  3. RMS - Copyleft
  4. RMS personal pages - Hacking
  5. Linux History according to Linus
  6. FSF list of Free licenses
  7. ESR - The Cathedral and the Bazaar
  8. ESR - Linus's Law

Other Resources:

See additional pages on the sites listed above. Also see:

Popular Open Source Software for Windows, Mac OS X, Linux:


Linux is a registered trademark of Linus Torvalds. Other marks are indicated above.

Scotty Orr
Last modified: Fri Feb 4 11:36:48 EST 2005