Open Source Comes to Campus/Curriculum/History and Ethics of Free Software/Lecture

From OpenHatch wiki
  1. Preface
    1. Should all software be open source?
    2. Richard Stallman, creator of the term "free software" and the ethics behind the term "open source" would say that users ought to demand it. Others like the idea of some software being open source, but don't insist that it all is. So we'll talk about what the terms free software and open source mean, where they came from, and what their implications are for society as a whole.
  2. History
    1. RMS and his printer
      1. The story of free software, the term, which more recently became known as open source, began in the early 1980s with Richard Stallman. He was a staff programmer at MIT AI Lab, and he lived in a culture where people just shared software. If a program was good enough for you, and it could help someone else, you'd give them a copy.
      2. Companies were in the habit of donating cool technology to the lab. One day, Xerox donated a new printer. These were the world's latest laser printers. The only problem was that the printer was really more of a photocopier, and it would jam all the time.
      3. Richard wasn't much of a hardware engineer, but he took great pride in making technology work better. He couldn't stop the jamming, but he "hacked" the printer driver so it could detect jams. Then the driver would notify everyone who had a job waiting to print.
      4. "If you got that message, you couldn't assume somebody else would fix it."
      5. Anyway, so Xerox donated this new printer, and like the old one, it jammed all the time. So Richard went to look at the printer driver to see if he could make the same change.
      6. What he found... was that there was no source code this time. There was a binary, compiled program, in a form he couldn't easily change. But he knew the binary had to have come from somewhere, so he asked around, and it turned out it was written by someone at Carnegie Mellon in Pittsburgh.
      7. He happened to be visiting Carnegie Mellon in a few weeks, so he just dropped in on the professor and asked. Then he got an answer he wasn't expecting at all: a simple "no."
      8. This was the first time that anyone ever said "no" to him, for a request for some source code so he could make a program better for his own use.
      9. Initially, he was just kind of shocked. But as he thought about that over the coming years, he realized that the culture he was a part of was just fading away, being replaced with a world where software was owned, restricted, and where even if you knew how, the programmers would actually not permit you to modify software so it would be more useful to you.
    2. By the mid-1980s, Richard came up with a definition for the kind of freedom he wanted. Software gives its users freedom if a person using it can do all the following things.
      1. 0. The freedom to run the program for any purpose. If you're a programmer, he considered it unethical to not permit people to use the program however they want.
      2. 1. The freedom to study the program and change it.
      3. 2. The freedom to share copies of the program with others, if you want to help them out, and
      4. 3. The freedom to share your modified program, so your improvement can benefit everyone, too.
      5. And with this definition, he began working on a fully free operating system, so all the software on his own computer would comply with it. He asked other people to join in, too - this is the GNU project, standing for GNU's Not Unix.
      6. Probably you've only ever seen GNU as part of GNU/Linux, if you've heard of it at all...
    3. In 1991, a college student named Linus Torvalds...
      1. released a small, barely working operating system called Linux. It didn't do very much, but it did let him get the kind of command line he found at the university computer lab on his own personal computer. Linux was the kernel, which makes the PC boot up, but he actually needed some commands to run. That's where GNU came in handy.
      2. So he and the GNU team worked to make sure the GNU tools and his system worked together.
      3. As the '90s rolled on, more and more people became interested in running Linux and GNU on their computers. How many people have an Android phone in the room? That runs Linux, as you probably know. And anyone with Ubuntu or another Linux distribution is using both GNU and Linux.
    4. (Copyleft)
      1. There's one other bit of legal ninjitsu worth mentioning here.
      2. When Richard wrote the programs that he shared, he accompanied them with a promise to people who used it that they would get all four of these freedoms - use,study, change, and share. He also created what was new at the time, something built on top of copyright, called copyleft, where if you modified the program and gave it to someone, that new someone could also exercise all of those freedoms.
      3. He called this the GNU General Public License, and it's used with Linux and most GNU software today.
      4. This copyleft arrangement isn't essential; it's still free software for you if it comes with all four freedoms for you but doesn't insist that downstream users are also free in the same way. But he thought it was a way to build more of a community of sharing, and also that he didn't want his software to be co-opted by a world where sharing and modifying software was disallowed.
    5. 1998, open source
      1. So by the late '90s, lots of people were professing all the benefits of free software. Linux showed that free software enabled people all over the world to collaborate on a computer program, and there were plenty of people and companies who were enthusiastic users.
      2. But there were also people and companies who were just scared off by the term "free." So a group of free software enthusiasts, famously Eric S. Raymond, created the term "open source" - which means the very same thing as Richard's "free software" term - and dropped all the talk about ethics. That was in 1998, and they convinced a flagship software company, Netscape, to release their browser as open source. The term quickly caught on, and it's definitely the more popular term today.
    6. Mozilla story... leading to Firefox
      1. So in 1998, Netscape released the source code to their browser. Internally, the project had always been known as Mozilla, so that's what they called it in the source release, too.
      2. They made it so anyone could build it, share it, modify it, and use it. But it didn't get all that popular.
      3. That is... until a high school student named Blake Ross took the big Mozilla project, removed the parts that weren't a browser, and wrapped it in a new bit of code called Phoenix, and shipped it. Phoenix had to rename itself to avoid confusion with a program called Phoenix BIOS, and it became known as... anyone know? Firefox.
    7. There are lots of other stories to tell, of collaboration or conflict, but I only gave myself fifteen minutes. For example, Google Chrome is open source - and it's the combination of Google's own code, plus WebKit, which is written by volunteers and professionals, all around the world, at companies like Apple and communities like KDE. But anyway, that's enough history for now.
  3. Ethics
    1. It's time to briefly discuss the ethics of open source and free software. We've talked a bit about Richard Stallman's ethic - first, share; and second, share alike. Two big questions that people differ on are,
    2. Is there consensus that the GPL, and share-alike, are essential? And should all software be free (as in, open source)?
    3. Well, for the question of share alike, there are lot of different feelings about it. Some people don't really care so much about making sure every user of their code has all four freedoms; they care more about getting their code to be widely used. So those people pick what we call permissive licenses, where the recipient of a copy has all four freedoms but can also add further restrictions for downstream users. Even Richard Stallman and the Free Software Foundation publish code under other licenses than the GPL. Code under these more permissive licenses finds its way into lots of proprietary software - for one example, it's widely said that Windows contains the BSD Unix's implementation of the Internet protocol.
    4. So I think the big question is, Should all software be free? Or at least, should users demand software that is free? And to consider that, I want to talk briefly about one example.
    5. Skype is my first example. How many of you use Skype? Yeah, me too. It's proprietary - the software is owned, and restricted, like what Richard feared. But it's super useful, and it helps us connect with friends, so on the whole, maybe it makes society better off.
    6. Activists have actually long used Skype because the makers of it promised it's secure - it's encrypted, is what the manufacturer has said for years. So journalism organizations would recommend it to Chinese dissidents.
    7. They... stopped recommending it a few years ago. The story there is revealing.
    8. Then in 2007, a Canadian researcher noticed that the version of Skype you download in China would not only block certain chat messages, it actually would randomly send SQL queries logging the date and time, your username, and who you were chatting with, to a mysterious database server in China. He knew for sure that's what they were logging because he could actually log in to the database server and download the entire database. Bad security.
    9. So...technology is power, and communication technology especially so. And it seems to me that when organizations recommended Skype to those dissidents, they put dissidents in harm's way. And the only way anyone could know if Skype was safe is by having, and reading, the source code; and perhaps by making changes to remove dangerous misfeatures like that.
  4. Economics
    1. I've talked a lot about what software should exist, or what users ought to demand, and it's worth talking about how people can actually make a living writing software that anyone can give away for free.
    2. The most obvious model of creating free software is probably volunteerism.
      1. Lots of people just want to learn a new skill, or to fix a bug in a program they use every day. People like that end up contributing changes to an open source project, or making a personal project and sharing it as free software.
    3. But as the software industry has grown, lots of people are being paid to work on open source professionally. Over 70% of the Linux kernel is written by people while at work. That's them contributing to open source without sacrificing hobbies or family or friend time. Companies that make hardware, like Intel, invest in staff time to make sure their hardware works great on Linux.
    4. There are, accordingly, lots of companies that release part of the software they write in-house as open.
    5. Another model is being paid to build new features into open source projects. I don't have exact numbers, but if you think consumers buy a lot of software, you should know that the vast majority of the software market is actually custom software that's only ever used within one company. For that code, the buyer increasingly insists that they get all four freedoms - so that if the builders of the software goes away, or charges too much, the buyer can find someone new to make improvements.
  5. With all that said, I want to transition to our career panel.