The Linux kernel is what everything else runs on top of, so it's the key to everything that a Linux device can do.
It's in your Android phone. It's in the computers that run the servers at Google, Amazon and all the other web services that we take for granted.
It powers the database that US immigration uses to decide if you are who you say you are, it's deep under the Alps searching for new particles at CERN, and it's even on unmanned drones searching for drugs traffickers in the Caribbean.
Linux is everywhere.
We at Linux Format were lucky enough to speak to Linus Torvalds, the man who wrote the original Linux kernel and still works as its maintainer.
We went to his house, we stroked his dog, we almost killed his wife in an embarrassing car crash, but despite that socially awkward automotive incident, he didn't seem overly annoyed by our presence.
Although he could have been rich beyond the dreams of most (and he could still use his position as kernel maintainer to make potloads of cash), he's more concerned with putting food on the table and a roof over his head.
Instead of buying a Hawaiian island or an enormous yacht, he's happy arguing with people on the internet.
And instead of getting his Google Nexus 7 delivered by helicopter straight from Google HQ (he did write the guts of its operating system, after all) he has to sit at home all day and wait for the postman to turn up, just like everyone else.
Thanks Linus; we love your work...
Linus Torvalds began work on Linux around April 1991, but he didn't announce it to the world until 25 August 1991, when he sent this message to the comp.os.minix Usenet newsgroup:
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).
I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that ''ll get something practical within a few months, and I'd like to know what features most people would want.
Any suggestions are welcome, but I won't promise I'll implement them :-)
Linus (email@example.com) PS. Yes' it's free of any minix code, and it has a multi-threaded fs.
It is NOT portable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(.
Minix is another Unix-like operating system. It was created by Andrew S Tanenbaum in 1987, but was made available only for use by universities.
Linus was a Minix user, but found it had limitations. It was designed to work on 16-bit processors, so wasn't adapted well to the 32-bit instructions on the increasingly popular Intel 386 processors.
So, Linus set about creating a Minix-like operating system that would let him take advantage of the extra features it provided.
New Chrome OS review
Another striking feature of this message is how low and humble his expectations were.
Linus never set out to change the world, and he just wanted to make something cool that would be useful to him.
Too much choice
Choice is good - or so the free software mantra goes.
But choice leads us to RPM vs Debs, to a proliferation of desktop options, and to the internet being clogged with hundreds of practically identical Ubuntu respins.
What does Linux's end-of-level boss think?
LXF: Has the Linux desktop failed because there's too much choice? [Laughter]
Linus Torvalds: I don't think the desktop is doing too well, and there's technical reasons.
You've probably seen my rants about how, to some degree, I think the desktop is going in the wrong direction, but the big reason is normal people don't want to install an operating system.
You can't get a desktop unless you have pre-installs, and that hasn't happened.
There are cases where, if you knew where to look, you could get Linux pre-installed if you bought Dell.
But, realistically, nobody has done pre-installs.
LXF: But if the KDE teams and the Gnome teams hadn't spent so much effort creating failed first versions of their desktops?
LT: I think that's maybe more painful for people who... I know people who decided to give up on the Linux desktop even though they're technical people, just because they got so fed up with Gnome and KDE, so that has been a negative.
But at the same time, even if they hadn't done that, I don't think you'd get the normal... the grandmas, people who don't actually like computers, wouldn't have used the Linux desktop.
Even if we wouldn't have had these painful 'change everything' moments.
I'm very unhappy with what Gnome and KDE have done, but in the big picture, I think that's a small, small detail.
LXF: We've always wondered why you don't use the Linux trademark to create a default Linux environment.
LT: I'm not interested. I never wanted to do anything about the technical side.
I'm perfectly happy complaining, because it's cathartic, and I'm perfectly happy arguing with people on the internet because arguing is my favourite pastime - not programming.
But at the same time the trademark, in particular, I want to have as little as humanly possible to do with that because it's just been a huge pain.
It was a pain from the very first, when we had the whole trademark squatter person, but trademarks are ludicrously bad.
And, in fact, the legal situation in trademarks encourages corporations to do stupid things, because their lawyers feel if they don't do the stupid things they will lose control of the trademark, and it's bullshit, but lawyers are paid to be anal about things.
So I wouldn't want to use the trademark anyway. Plus, I actually enjoy the situation where... like some people complain about how Google and Ubuntu don't say 'Linux', but just say 'Android' or 'Ubuntu'.
Technical people will complain 'it's Linux, and now people don't know they're using Linux'. Which is true, a lot of people don't even know they're using Linux.
LXF: And that doesn't bother you?
LT: And that doesn't bother me at all, because I'm interested in the technical side. And I actually think it's the right thing to do, to say: "Hey, we're doing our OS".
And when they say OS, they mean more than just a kernel, and when I say OS I usually mean just the kernel.
But if you're doing your OS, Linux is a central, but it's still just a small part of the overall thing - you shouldn't need to name your stuff just because you use the Linux kernel.
So, I actually wouldn't want to use the trademark thing, plus I think it would be stupid anyway because I think people should just rename their things.
LXF: What we were getting at was we think the LSB has been a bit of a failure in kind of defining, I mean RPM is still the default package manager on the LSB, and whether there was some other way...
LT: Yeah, but there hasn't been anything better. The Debian people will point to the advantages of Debs, but technically, they're different but not better.
People have strong opinions about it. Debian people had serious problems with things like signing because the Deb packages didn't have the capability.
So they had some things they did better and some worse.
So to some degree packaging isn't easy, and at the same time nobody really cares. The bugs people have in the packaging format...
LXF: Users care.
LT: Yes, but I mean, they don't... the bugs they see aren't the bugs of the packaging format.
The bugs they see are things like "Oops, the package is technically correct, but it doesn't actually specify all the dependencies".
LXF: But they want to install the latest Firefox, and they don't want to know what a packaging manager is.
LT: Right, and they shouldn't...
LXF: What we're saying is the LSB would be the ideal way of solving that problem.
LT: Yes, and to some degree the LSB tried to do that, but the LSB tried to aim for a smaller thing than Firefox.
So the problem, when you mention Firefox or Chrome, they are particularly nasty packages. Which is true of games, too.
They need more than just the Linux standard base. They need to be huge. They need sound, and static linking won't help them. Sound is a systems issue.
LXF: But not if it was a standard system.
LT: Right, but nobody can force that. If we had tried it wouldn't have worked anyway.
Some of the things that people hated, like PulseAudio...
LXF: But it is awful. It's really powerful, but have you tried to configure it?
LT: These days it actually works.
LXF: But it's hideously complicated.
LT: So is every alternative. Have you tried Jack? It's better in some respects, but worse in the hideously complicated aspects.
LXF: One of the things Apple gets right is CoreAudio, since the user sees nothing.
LT: Right, and that's the advantage, but it's the disadvantage too. This was Microsoft's big advantage.
They were the one-stop shop.
LXF: Do you think that's still their advantage, with Windows 8?
LT: I think they clearly lost a lot of the advantage. They lost the momentum, their user base hated them for a lot of reasons.
People are so happy to jump ship when they can, and Apple is obviously taking a lot of that jumping ship, but they still... I mean, people love to say how Apple is doing great, Apple is like 10% now.
It's much better than it used to be, but Microsoft are still huge.
LXF: Maybe it's a personal thing, but we feel if Linux provided PulseAudio tools as a volume control, and everyone had to conform to that, things would be better.
LT: Well, yes, some things would be easier if there was no choice, I agree with you.
The benevolent dictator
Apart from feeding the sharks with laser beams on their heads in his hollowed-out volcano, what does Linus do with his time nowadays?
He could have made billions, like Paul Allen and Bill Gates of Microsoft, Larry Ellison of Oracle, or the late Steve Jobs.
Instead, he just wants to fix code. And argue, of course...
LXF: We read that you mostly spend your time committing the merges to the kernel. How do you manage to stay enthusiastic when it's not coding anymore?
LT: Most of my merges, technically they take two seconds to do the actual merge.
It takes me more time to actually read and copy and paste the Git address, and read what's going on. I mean, the merge itself takes no time.
LXF: Right, but we imagine you having some understanding of what it's going to do.
LT: In most cases, I don't even care. When I get a merge from a sub-system maintainer for an area that I'm not that into, I mean especially if the sub-system maintainer is a good one.
I mean I used to care deeply about networking, 15 years ago. I don't anymore because David Miller, I trust him and he does a really good job, and networking, to some degree, is not something I'm fundamentally interested in.
It's not like the VM layer, or the MM layer, where it's really my kind of thing. So I don't get excited about those.
I don't have to think about it, I look at what he's doing because I want to have a high-level view of the changes, so two weeks from now when someone sends me a bug report... it's not that I remember that line, but I remember there's something changed in this area, kind of thing.
So most of the stuff, once I've found a maintainer who works well, I don't have to do that much (other) than have an overview idea of what's going on.
LXF: And that's enough?
LT: That's enough for most of the code. I get more excited about the... I mean when I get really upset about something, it's when someone does something stupid.
Especially from a developer standpoint. It's seldom even from a code standpoint anymore.
It's like sometimes I send out these emails saying "this code really sucks, don't ever send me code again because you're too stupid to live", but the things that tend to worry me most are things like... somebody sends me big changes outside the merge window and clearly didn't think the impact outside the code thing through at all.
I mean the code is important, but realistically what I maintain these days is not the code but the workflow for people.
And that sometimes gets my goat in a big way when somebody does something stupid in a big way, and then I get really excited, and by excited I mean I curse at people.
LXF: What happens when Google drops a big Android [update], as it did early this year after being separate, do you get a heads up on this?
LT: That was surprising, I expected it to be much more contentious.
We discussed this before it happened, and I mean a lot of Google Android issues were not so much Google issues as kernel developer issues.
That was one of the big things we discussed at the last kernel summit, it was 'what should we do about Android?'.
And the consensus, and maybe I pushed it through but there were other people who agreed with me, was that hey, the people who didn't like some of the Android approaches were wrong, and you were proven wrong by acclamation.
Android is doing really well and it's working, and nobody actually had alternative working code that was really something Google would accept, because they had issues that nobody else was solving for them.
LXF: Was there any pressure on Google to remerge the Android kernel they were working on?
LT: Kernel developers inside Google hated the fact they had their own patches. I mean, they hated it because they don't like being outside the kernel in the first place, and they hated (it) because it's extra work, too.
Every time they update, it was a huge pain for them to bring their patches forward. So there was a huge pressure on Google to merge their changes back.
But the Google people were also very frustrated with the fact that they couldn't always... because people wouldn't accept their code because sub-maintainers in their area didn't like the way they did it.
And that was one of the things we said last kernel summit - we just have to accept that Google ships however many millions of devices a day.
LXF: So is it the people responsible for those separate sub-systems that take on the responsibility for Google's part?
LT: Once Google stuff gets working, most of it, so for example [Linus reaches for the phone we're using to record the interview]... "Oh, it's an iPhone... screw you! I'm not talking to you anymore".
So one of the things that Android had as an issue was the whole wake clock thing, where they want from the system standpoint, to go very aggressively to sleep; but at the same time, they have to be very careful with an application that's just about to do something that will wake it up.
So you have this situation where the system decides nothing has happened in the last two seconds, so I will not go to sleep.
So if the system goes to sleep just as an application wants to wake up, that's annoying. The system may stay asleep and not wake up until a user taps the screen or something.
So that was (all) the whole wake clock infrastructure was.
It meshed not very nicely with some of the other power management code, and it didn't really fit some of the theory.
And it impacted a lot of the drivers because they were often the ones saying 'hey, something happened', and they got impacted.
So, not merging it, it's not that Google wants to maintain this, or anybody wanted to maintain this - there was this cascading effect of having this interface that Google needed, that they'd done their way that was not in the standard kernel, and then that affected driver writers, especially in embedded, because they wanted to write drivers for Android, because they may be someone like Samsung, who want to do stuff for Android, but they're using an interface that doesn't even exist in the standard kernel.
And it's like a two-liner change, but it's two lines in a driver that makes it inconvenient to use the standard kernel if you aim to go in to Android.
Nobody really minds being told what to do. People really minded that the split itself caused pain for no real reason except for some minor disagreement.
So we decided 'hey, screw it, maybe we don't love everything Google does or the way they do it', but on the other hand, people didn't really hate it hate it...
What's in a name?
To the wider world, the two most visible aspects of Linux are its strange name and slightly overweight penguin mascot.
Neither of these were of Linus' making, however. He'd originally intended to call his new operating system Freax, a portmanteau of freak, free and the letter X (Unix clones often append an x to the end of their names to indicate their lineage).
After other users got involved with development of the new kernel, however, source code was put on to an FTP server in order to make it easier for everyone to work together.
The administrator of the server that first hosted Linux code, Ari Lemmke, disliked the name Freax and so put the code in a folder called Linux on the server. He didn't tell Linus, and eventually the name stuck.
If you've ever struggled to pronounce the name Linux, know that you're not alone. Linus had to include an audio file with the source code for a while to demonstrate how to pronounce it correctly!
You can still hear it here.
With regards to Tux, the famous mascot of Linux, it was indeed Linus who originally suggested a penguin might be a suitable mascot, but it was left to Larry Ewing to draw the sketches that formed the basis for the Tux we know today.
Reportedly, Linus' infatuation with penguins came about after being bitten by one on a trip to Australia in 1993.
He jokes that after the bite, he was infected with 'penguinitis' that "makes you stay awake at nights just thinking about penguins and feeling great love towards them."
We can confirm that he owns many toy penguins.
When Linux was created, the developers used relatively simple tools to work together.
Using an FTP server for collaboration wasn't a big problem when there were only a few people working on the kernel and it was relatively small. As the project increased in scope, the developers began to use more powerful tools.
Source code management (SCM) systems were one such category of tools that make their lives easier.
These track revisions to the code and enable developers to work on different versions of the software, then merge their changes together.
For a while, the kernel team used a proprietary SCM called BitKeeper, the creator of which had offered them use of the software for free.
Following a dispute, the offer of free use was withdrawn and the kernel team needed a new SCM. None of the other existing systems, such as CVS and SVN, met Linus' high standards for speed, efficiency and a robust, distributed workflow (he has said that he hates both systems).
Frustrated by the lack of options, on 3 April 2005 Linus started writing his own SCM, which was later named Git.
Despite Linus saying how hard a problem to solve this was, the 2.6.12 release of the Linux kernel, released on the 16 June, was managed by Git - just two months later.
It wasn't just released quickly, but it met its performance goals. Linus had noted BitKeeper taking 10-15 seconds per email patch, during development Git was recorded as applying patches at 6.7 per second.
On the name, Linus said "I'm an egotistical bastard, and I name all my projects after myself. First 'Linux', now 'Git'."
To get hardware certified as being ready for Windows 8, Microsoft is demanding that manufacturers enable something called Secure Boot, which is a function designed to stop malicious code being loaded into the operating system at boot time.
Quite by coincidence, this function could also be used to stop non-Microsoft operating systems from being loaded. But Linus doesn't seem too bothered by this.
LXF: Do you have a solution for how the Secure Boot problem should be solved?
LT: I actually like Secure Boot. Signed kernels are a good idea. We're going to be doing signed kernel modules, and we should have done that 10 years ago, but nobody wanted to do that and take the flak from the crazies.
LXF: It's a good idea that everything is signed. What we don't understand is, is Verisign controlling the signing process? Do you have some kind of say?
LT: We don't have any say. The argument is that it's a slippery slope, which is not necessarily a real argument - you can argue it for anything.
The worry people have is the device manufacturer, right now you have EFI and you're supposed to have a way to insert your own keys or say 'don't bother with the signed stuff', so you can install other things.
LXF: That's the answer?
LT: That's the answer, but right now Microsoft says you need to support signing. Five years from now, what if Microsoft says 'this is the only key you can support'.
My argument is why would the market want that? And if the market doesn't want that, why would anybody do it?
LXF: We don't understand why Secure Boot can't be used just to boot Windows with a signed key, and then anything else you can boot anyway?
LT: The problem is it will refuse to boot if it's not signed.
If you were Microsoft and you wanted to make sure that you were the only thing that's installed on that, then... Microsoft's not all powerful, but they're powerful enough that they may be able to convince a few device manufacturers to say 'if it isn't signed by our key, you're not going to boot'.
It's a real worry, and at the same time to me, I don't think it's going to happen because I don't see the point for anybody but Microsoft.
And if it happens on a small scale, we have that right now in every single area, except for PCs anyway. Cellphones all work that way.
LXF: But it's what has made PCs, and Linux successful...
LT: I agree, and if people start limiting their PCs it's actually a self-defeating move. This is why I'm not nervous, because I think you'd be crazy to do it.
That's not to say there aren't tons of crazy people, so it will be done, but I don't think it's going to be this all-encompassing thing, where every PC sold will come with 'you have to run Microsoft or Apple'.
Apple, I would be much more worried about.
LXF: The thing that also worries us with Apple is the way they're making sandboxes out of developers.
LT: Right, and Microsoft are much more open than Apple. I actually use Apple hardware because I tend to like it...
LXF: It does just work.
LT: It doesn't just work, the hardware design is fine; the hardware itself, they're often doing stupid things.
I like the Macbook Air, but I don't use OS X on it obviously; but they did stupid things, so it's more inconvenient than a PC.
Torvalds the philosopher
This year, Linus was declared joint winner of the Millennium Technology Prize.
This is the largest technology prize in the world, and celebrates innovations that have a positive impact on quality of life, well-being or sustainable development.
It's worth about $1.3 million, and is awarded by the Technology Academy Finland.
The Academy, when awarding the prize, said that Linus' work had "had a great impact on shared software development, networking and the openness of the web".
The President of the Academy went on to add that "Linus Torvalds' work has kept the web open for the pursuit of knowledge and the benefit of humanity - not simply for financial interests".
There's no denying that the free software movement represents a community coming together, collaborating rather than competing, to make something that everyone can benefit from.
Many hold this up to be an example of people overcoming selfishness and greed, of doing something for others rather than just themselves.
However, following the award of the Millennium Technology Prize, the BBC asked Linus about how the open source model can be successful, and in his answer he challenged this belief:
8 of the best tiny Linux distros
How to dual-boot Linux and Windows
24 things we'd change about Linux
Beginner's guide to Linux
"In many ways, I actually think that 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."
That answer alone sounds counter-intuitive, but he went on to qualify what he'd said and revealed a rather nuanced position on the issue. "The early 'selfish' reasons to do Linux centred about the pleasure of tinkering...
If you're a person who's interested in operating systems... you don't want to get involved if you feel like your contributions would simply be 'taken advantage o'', but with the GPLv2, that simply was never an issue."
He shared the prize with Shinya Yamanaka, a Japanese stem cell researcher, who was recognised for his work with adult stem cells.
Both men received around $600,000, but Linus seemed more annoyed at having to fly halfway round the world to collect it.
Linus has a long history of being dissatisfied with the state of Linux desktops, a problem that seems to have got worse for him with the move to the next generation of desktops.
Originally, he was a big advocate of KDE and couldn't stand Gnome.
In a post to the Gnome usability mailing list, he said:
"I personally just encourage people to switch to KDE. This 'users are idiots, and are confused by functionality' mentality of Gnome is a disease. If you think your users are idiots, only idiots will use it. I don't use Gnome, because in striving to be simple, it has long since reached the point where it simply doesn't do what I need it to do."
Fast forward to KDE 4.0, however, and Linus revised his opinions.
When asked in an interview how, as a KDE user, the move had affected him, he said:
"I used to be a KDE user. I thought KDE 4.0 was such a disaster, I switched to Gnome... I realise the reason for the 4.0 release, but I think they did it badly."
Fast forward once more to the release of Gnome 3.0, and is Linus still a Gnome user? No, he's now using Xfce.
On Google+, he said that the way Gnome 3 handles multiple windows is "an example of the kind of 'head up the arse' behaviour of Gnome 3".
LXF: What distribution do you run?
LT: Fedora, on everything. I tried to run openSUSE, but I get so fed up at some of the things they do.
LXF: Have you tried KDE recently?
LT: I tried KDE, not recently recently, over a year ago I guess.
I don't think it can be made good again.
It's not about technology, and the same is true that I hate about Gnome, is that the people who decide on the interfaces are visual people who like this notion of big... and they think the visual part is important because that's what they work on, but for someone who uses it for real work like me, I don't care about the visual part - I want it to be out of the way, and everything KDE did since version 3 or whatever, made the visuals more interesting and more in your face.
And the Plasmoids now are all these active things, so when you touch them they get borders around them, and I don't want that. I want to get my work done.
LXF: We think the problem is free software attracts developers because there's something good about writing and sharing code, but it doesn't do the same for user interface people and designers, who seem really reluctant to do their work for free.
The ones who do their work for free don't seem to be the ones who make a good job of it.
LT: A lot of them do good jobs too, but to some degree UI people seem to have turned to caring more about the UI than the work you actually get done.
The thing that drives me mad, KDE doesn't have this problem, but do you use Alt+Tab on Gnome?
I don't use it myself, but it's completely broken because it thinks every terminal window is one single terminal window, and that's like, 'you are a fucking moron'.
That's not how it is. And it's not even so with a browser.
Most of the time, I have everything in one browser window with tabs, but if I have two browsers open, I have them open for a frigging reason, and they're not one browser, they're two browsers.
LXF: You can turn them off with an extension, but we've read your rant about them and broken upgrades. You could work around it by having Opera, Chrome and Firefox windows open all at once.
LT: Yeah, you can solve it by using different applications, but otherwise it makes no sense at all.
And why would I want to use Firefox and Chrome separately just to get Alt+tab to work right?
And why did you do that again? They never have a reason - there's no sane reason for that except Mac OS does that, and they never used to do the whole multitasking thing, they only have one task bar.
LXF: Have you heard about the Raspberry Pi? At least in the UK, it's really captured everyone's imagination.
LT: It's slightly too slow for what I'd like to do.
The thing can actually output on to a real monitor, but then apparently it can't play YouTube, etc, and if it can't make things like that smooth, then it's a bit too slow.
LXF: The problem is it requires some firmware which isn't open source.
LT: Plus it's like two to three years old, the SoC on that board, to keep the price down.
I think it's a compelling idea.
I really like the notion of having hardware that's so cheap you can basically give it out to kids, and 99% will never use it for anything, because they'd rather play; but if you give everybody the possibility of maybe noticing that it's cool to hack on things like that, I think it's great.
I suspect that the next generation is going to be sufficiently better that you can do some things with it.
LXF: We do a podcast and have this thing called an open ballot. One of things we asked recently is: "If you were Linus Torvalds, what would you change about Linux?"
LT: I wouldn't change a thing.