What drove Linus Torvalds to create Linux, the open source kernel that turns twenty-five this week? Here are some answers from Torvalds himself about Linux's early history.
More than a year ago, I wrote an article arguing that at the outset, open source "was about saving money, not sharing code." At the time, I was just beginning a book project about the history of free and open source software.
The book is now complete, and I have learned a lot since I wrote that article. One lesson was that it's important not to mix up GNU and Linux. Both projects were crucial to forming the foundation of the free and open source platforms that power servers, clouds, containers and much more today. But philosophically, they're quite distinct.
In retrospect, what I should have argued in the article was that at birth, Linux was largely, though not totally, about saving money, rather than sharing code. Richard Stallman and the GNU project were a different story.
Torvalds on Linux Before the GPL
The GNU General Public License (GPL) has governed the Linux kernel since 1992. The GPL assures that the kernel source code will always remain available. The GPL doesn't require Linux to be free of cost, although the source code is distributed without charge.
Before the GPL, Torvalds distributed Linux under a different license of his own creation. A copy is available here. This is what Torvalds told me last May when I asked him about the original Linux license:
So that original copyright license was just me writing things up, there was pretty obviously no actual lawyerese or anything there.
The two important parts were the "full source has to be available" and "no money may be involved". The note about copyright notices was because I tended to hate the copyright boilerplate verbiage at the top of every single source file, so I knew there weren't all that many notices scattered in the sources themselves.
The "no money" part came about because I had been annoyed with (being a rather poor student) having to pay something like $169 USD for Minix, and that had been a fair amount of money to me. I felt that part of the point was to make something available to others in my situation, and that it really should be "free" in the actual money sense.
So for me, "free" as in "gratis" was actually an earlier concern than the whole "free as in freedom". I still happen to believe that being available even if you're a poor person who really doesn't have any money at all is at least as important as anything else, because that's a basic availability issue for many people.
Why Torvalds Switched to the GPL
Why did Torvalds abandon the original Linux license in favor of the GPL? This is what he told me on that point:
The "source has to be available" obviously ended up being the important thing, and what caused me to switch to the GPLv2 was that a few months later (so late 1991 or early 1992) there were people who approached me and said that they'd want to distribute copies of Linux at local unix users groups meetings etc, and said that they'd like to at least recoup their costs.
And put that way, I felt that (a) it was obviously reasonable to charge copying costs and (b) once you start doing that, there's no clear limit, so clearly it must not be about money after all. I felt that as long as people gave access to source back, I could always make it available on the internet for free, so the money angle really had been misplaced in the copyright. So in the meantime people have pointed me to the GPLv2, and I decided that rather than just change my license by editing it again, I should just use an existing one.
Part of it was also because I felt that the availability of gcc was very important to the project, so picking the GPLv2 as a homage to gcc was appropriate.
Put another way: I still think that the availability issue is very important. But I think the GPL makes that a non-issue in practice, so
making the license to be about the money side is pointless. And clearly _allowing_ the commercial side has been a very good thing for everybody.
What Did Linux Do Differently?
Linux was hardly the first free or open source software project. Much larger, more prominent and better-funded projects -- namely, the GNU team in Massachusetts and the BSD team in Berkeley -- were already trying (and, in the BSD case, had succeeded) to write a free Unix-like kernel. Torvalds had many fewer resources at his disposal. He was also someone whom no one had heard of.
So, what did Torvalds do differently from his contemporaries to make Linux so successful? This is what he remembered setting Linux apart:
here the Linux model made a difference was that it took a rather more pragmatic approach to the code sharing notion - using the license from the FSF, but believing in it as an _engineering_ choice and as a way to allow people to improve and share rather than as a moral imperative.
And also, what was different from Linux compared to most other projects at the time was how non-centralized and open to outsiders the project was. Part of that was technology - it became much easier to work together over email, as the internet was really taking off more widely rather than being an enclave of a few research universities. But a lot of it was cultural: I was basically working alone "in the fringes" in Finland, so unlike a lot of other projects there was no core team where people were physically close to each other and mostly worked with people inside the same CS department or similar).
And, to compare with the BSD's, for example, there was no historical insider group either. So we were a lot easier to approach if you came from a DOS/Windows background, for example, because there was no supercilious "here's a nickle, kid, go get a real computer" model.
So there was no cabal, it was easy to send me patches, I wouldn't have stupid paperwork rules like a lot of other projects had, and it really was a much more open project than a lot of software projects that
So I don't think Linux was unique in any particular way, but it was a combination of things that made it pretty special. I'm happy to say that a lot of those issues have just gone away, and most open source development today has a much more "Linuxy" approach to live than the horrible copyright license wars in the late eighties and early nineties.
In Torvalds's own view, then, cost was a pretty important motivation for writing Linux. The sharing of code mattered as well, but on pragmatic rather than philosophical grounds. The GPL, combined with free Internet distribution of code, ended up serving both purposes.
And that's how we ended up where we are today -- which is good, because if Torvalds had never GPL'd Linux, it's doubtful that the Linux kernel and GNU utilities would have been combined in the important ways that they are today.