Skip to comments.Linux succeeded thanks to selfishness and trust
Posted on 06/13/2012 9:13:56 AM PDT by ShadowAce
Linus Torvalds developed Linux in 1991 while at the University of Helsinki, Finland. He became a US citizen in 2010.
Linux creator Linus Torvalds has won the Millennium Technology Prize and an accompanying cheque for 600,000 euros ($756,000; £486,000) from the Technology Academy of Finland.
He was nominated for the award in recognition of the fact he had created the original Linux operating system and has continued to work on it, deciding what modifications should be made to its kernel - the code that lets software and hardware work together.
Today variants of the system power much of the world's computer servers, set-top boxes, smartphones, tablets, network routers, PCs and supercomputers.
Ahead of the announcement Mr Torvalds gave a rare interview to the BBC.
When you posted about the original system kernel on Usenet in 1991 what did you think would happen to it?
I think your question assumes a level of planning that simply didn't really exist. It wasn't so much about me having any particular expectations of what would happen when I made the original kernel sources available: a lot of the impetus for releasing it was simply a kind of "hey, look at what I've done".
I was definitely not expecting people to help me with the project, but I was hoping for some feedback about what I'd done, and looking for ideas of what else people would think was a good idea.
The success of Linux is in large part due to its open source nature. Why do you think people have been willing to give up so much time without financial reward?
In many ways, I actually think the real idea of open source is for it to allow everybody to be "selfish", not about trying to get everybody to contribute to some common good.
In other words, I do not see open source as some big goody-goody "let's all sing kumbaya around the campfire and make the world a better place". No, open source only really works if everybody is contributing for their own selfish reasons.
Now, those selfish reasons by no means need to be about "financial reward", though.
The early "selfish" reasons to do Linux tended to be centred about just the pleasure of tinkering. That was why I did it - programming was my hobby - passion, really - and learning how to control the hardware was my own selfish goal. And it turned out that I was not all that alone in that.
Big universities with computer science departments had people who were interested in the same kinds of things.
And most people like that may not be crazy enough to start writing their own operating system from scratch, but there were certainly people around who found this kind of tinkering with hardware interesting, and who were interested enough to start playing around with the system and making suggestions on improvements, and eventually even making those improvements themselves and sending them back to me.
And the copyright protected those kinds of people. If you're a person who is interested in operating systems, and you see this project that does this, you don't want to get involved if you feel like your contributions would be somehow "taken advantage of", but with the GPLv2 [licence], that simply was never an issue.
The fundamental property of the GPLv2 is a very simple "tit-for-tat" model: I'll give you my improvements, if you promise to give your improvements back.
It's a fundamentally fair licence, and you don't have to worry about somebody else then coming along and taking advantage of your work.
And the thing that then seemed to surprise people, is that that notion of "fairness" actually scales very well.
Sure, a lot of companies were initially fairly leery about a licence that they weren't all that used to, and sometimes doubly so because some portions of the free software camp had been very vocally anti-commercial and expected companies to overnight turn everything into free software.
But really, the whole "tit-for-tat" model isn't just fair on an individual scale, it's fair on a company scale, and it's fair on a global scale.
Once people and companies got over their hang-ups - renaming it "open source" and just making it clear that this was not some kind of anti-commercial endeavour definitely helped - things just kind of exploded.
And the thing is, if your competition doesn't put in the same kind of effort that you do, then they can't reap the same kinds of rewards you can: if they don't contribute, they don't get to control the direction of the project, and they won't have the same kind of knowledge and understanding of it that you do.
So there really are big advantages to being actively involved - you can't just coast along on somebody else's work.
7,800 developers across 80 countries contributed to the last version of the Linux kernel. But as it becomes more complex is there a danger it become less accessible for new people to get involved?
So the kernel has definitely grown more complex, and certain core areas in particular are things that a new developer should absolutely not expect to just come in and start messing around with.
People get very nervous when somebody they don't see as having a solid track record starts sending patches to core - and complex - code like the VM subsystem.
So it's absolutely much harder to become a core developer today than it was 15 years ago.
At the same time, I do think it's pretty easy to get into kernel development if you don't go for the most complex and central parts first. The fact that I do a kernel release roughly every three months, and each of those releases generally have over 1,000 people involved in it, says that we certainly aren't lacking for contributors.
You have previously mentioned that you can't check that all the code that gets submitted will work across all hardware - how big an issue is trust in an open source project like this?
Oh, trust is the most important thing. And it's a two-way street.
It's not just that I can trust some sub-lieutenant to do the right thing, it's that they in turn can trust me to be impartial and do the right thing.
We certainly don't always agree, and sometimes the arguments can get quite heated, but at the end of the day, you may not even always like each other, if you can at least trust that people aren't trying to screw you over.
And this trust issue is why I didn't want to ever work for a commercial Linux company, for example.
I simply do not want people to have even the appearance of bias - I want people to be able to trust that I'm impartial not only because they've seen me maintain the kernel over the years, but because they know that I simply don't have any incentives where I might want to support one Linux company over another.
These days, I do work full-time on Linux, and I'm paid to do it, but that didn't happen until I felt comfortable that there was a way that could be pretty obviously neutral, through a industry non-profit that doesn't really sell Linux itself.
And even then, in order to allay all fears, we actually made sure that my contract explicitly says that my employment does not mean that the Linux Foundation can tell me what to do.
So exactly because I think these kinds of trust issues are so important, I have one of the oddest employment contracts you've ever heard of.
It's basically one paragraph talking about what I'm supposed to do - it basically boils down to the fact that everything I do has to be open source - and the rest of the contract is about all the ways that the company I work for cannot influence me.
"Trust" is not about some kind of absolute neutrality, or anything like that, but it's about a certain level of predictability and about knowing that you won't be shafted.
Linux is popular in many areas of computing including smartphones and servers, but it has never had quite the same breakthrough on desktops - do you think it will ever happen?
So I think that in order to make it in a consumer market, you really do need to be pre-installed. And as Android has shown, Linux really can be very much a consumer product. So it's not that the consumer market itself would necessarily be a fundamentally hard nut to crack, but the "you need to come preinstalled" thing is a big thing.
And on the laptop and desktop market, we just haven't ever had any company making that kind of play. And don't get me wrong - it's not an easy play to make.
That said, I wouldn't dismiss it either. The whole "ubiquitous web browser" thing has made that kind of consumer play be more realistic, and I think that Google's Chrome push (Chromebox and Chromebooks) is clearly aiming towards that.
So I'm still hopeful. For me, Linux on the desktop is where I started, and Linux on the desktop is literally what I still use today primarily - although I obviously do have other Linux devices, including an Android phone - so I'd personally really love for it to take over in that market too.
But I guess that in the meantime I can't really complain about the successes in other markets.
Steve Ballmer once described Linux as a "cancer", but in recent months we've heard that Microsoft is running its Skype division off Linux boxes, and it's now offering a Linux-based version of its Azure cloud service - does this give you satisfaction?
Well, let's say that I'm relieved that Microsoft seems to have at least to some degree stopped seeing Linux as the enemy. The whole "cancer" and "un-American" thing was really pretty embarrassing.
The recent launch of the Raspberry Pi, running on Linux, has attracted a lot of attention. Are you hopeful it will inspire another generation of programmers who can contribute to the Linux kernel?
So I personally come from a "tinkering with computers" background, and yes, as a result I find things like Raspberry Pi to be an important thing: trying to make it possible for a wider group of people to tinker with computers and just playing around.
And making the computers cheap enough that you really can not only afford the hardware at a big scale, but perhaps more important, also "afford failure".
By that I mean that I suspect a lot of them will go to kids who play with them a bit, but then decide that they just can't care.
But that's OK. If it's cheap enough, you can afford to have a lot of "don't cares" if then every once in a while you end up triggering even a fairly rare "do care" case.
So I actually think that if you make these kinds of platforms cheap enough - really "throw-away cheap" in a sense - the fact that you can be wasteful can be a good thing, if it means that you will reach a few kids you wouldn't otherwise have reached.
You work from home - how hard is it to avoid being distracted by family life and focusing on what must be very abstract concepts?
Oh, I'm sure it can be hard for some people. It's never been a problem for me.
I've always tended to find computers fascinating, often to the point where I just go off and do my own thing and am not very social.
Having a family doesn't seem to have made that character trait really any different.
I'll happily sit in front of the computer the whole day, and if the kids distract me when I'm in the middle of something, a certain amount of cursing might happen.
In other words: what could be seen as a socially debilitating failure of character can certainly work to your advantage too.
Anyone get a Rasberry Pi yet? Last I checked, the waiting time on one of those was about five months!
I remember buying a brand new Gateway PC that was loaded with Windows and having it delivered to my office for the express purpose of installing Slackware ... for fun, heh. (We were exclusively a Unix shop developing software for AIX, Xenix, NCRUNIX, HP-UX and Solaris)
After work, a crowd gathered in my office to watch a buddy and me install Slackware. We had to crack the case to find the card manufacturers so we could download the code and compile device drivers for everything. Sometimes we had to modify the code, sometimes not. Seven keyboard commandos trading places to try this or that fix. There were lots of “ooohs and aaahs” as we’d get another device working. We were tweaking config parameters until late into the night. Empty Coke cans and Fritos bags littered the desk and floor. :)
There’s a video out there somewhere of the installation. It was a big deal back then. We felt like pioneers. Now anyone can install Linux. Ain’t that somethin’?
Linux has come a long, long way.
Those were the days. Good in some ways, bad in others. I burned through a wife (ex #2) during that time with 17 hour days at the office.
Good in that I got to be there for a lot of foundational RFCs and innovations.
Who knows what at TIFF is anymore? I was there when JPEG arguments were getting kicked around on Usenet.
Easier to be a cook. ;)
“It’s just an upgrade.”
Four little words that can cause soooooo much work.
One of the real breakthroughs in the *IX/Open Source world was Larry Wall's "configure."
So often we see the same thing - the guy at the epicenter of greatness - is just a regular, put-one-foot-in-front-of-another guy. Beware of those that aren’t that way I say.
While i had often seen it promoted as a Windows equivalent, and every distro i have tried (and i have tried all the major ones and ten some) was fine for the Internet (once you figured out how to get Flash installed) or or writing (thank God for Firefox and OpenOffice/LibreOffice, yet they all had configuration issues or other problems which were far more than Windows (since W/ME), and required a far greater learning curve. An examination of the many Linux forums bears this out (and advice almost always seems to require one be a Geek).
I would like to see it be a more switchable alternative for Windows users, but my opinion, for what its worth (as a Windows power user but Linux novice), is that until Linux reduces (even more) the great reliance upon run scripts, and becomes more uniform in how to configure, with detailed customization and configuration easily found more in one main place, but with expanded GUI capabilities (i do like the KDE interface more), and even enables most of the same program files to be downloaded and installed on different distros just like they can be for Windows, then it will remain overall an OS for Geeks.
My latest installs were of Linux Mint 12, which i commented on here, regarding the above, and OpenSuse 12, which required much assistance to get my printer installed, and to get full R+W rights to my Windows drives.
It's made me more conservative, in some ways.
I do have a trash box that I use to surf the bleeding edge, but I don't use it for regular day-to-day stuff.
Oh - a noobie! ;-) You can’t call yourself a Linux geek unless the first floppies you downloaded where SLS! ;-)
I saw Linus announce the kernel on comp.os.minix, and observed the flame war between Andrew Tannenbaum and Linus. I downloaded version 0.12 onto a 386 box which already had a minix file system (required if you wanted to play with the early kernels.) You had to use a binary editor to change the default boot disk. Once it booted, you found yourself with a bash prompt and not a whole lot more. It was interesting in that it already had the Virtual consoles of System V, and could do job control just like BSD -both in one box! Then I spent alot of time downloading all of the different GNU tools and compiling stuff to build-out a Unix box.
My biggest challenge was to get “rogue” on it. I got hold of the Rogue sources that were running around on the net and tried to compile it. Well - it used the BSD version of Terminal I/O while the first version of Linux had the System V model (Posix I think). So I spent some time changing the rogue code to use the other terminal model.
I found that there was one bug in the serial console driver code when it was talking to a VT-100 - and added one line to the kernel which fixed the problem. That is my entire contribution to the kernel to this day!
Once I got Rogue working I published the new version. I got requests about that for 15 years after the fact! This after it had been completely redone by none other than Alan Cox who was for a time the #2 guy in the linux world.
So what did the first Linux kernel have that was so amazing? Well - beyond job control and virtual consoles - it had a 64Mbyte process space, and room for 64000 processes. That sounds puny by today’s standards -but you have to compare that against 64Kbytes for Minix, or maybe 16Mb for a virtual 80286! It just blew me away! And WOW - it was FAST! Just ran circles around DOS. It was also limited. It had to be run on a 386. It had to have the standard disk drives (no SCSI for instance)
When they finally ported X windows, you had to have one of a maybe a dozen video cards to run X - and it ran TWM (barf!) But a little 386 with 4Mb of memory was really peppy!
I miss those days!
In many ways, I actually think the real idea of open source is for it to allow everybody to be "selfish", not about trying to get everybody to contribute to some common good.IOW, it's just like everything else. Thanks ShadowAce.