Download the Tom's Hardware App from the App Store
The reference for current tech news
Yes No

How Linux Can Achieve Faster World Domination

Today we have Keith Curtis returning for a new discussion on Linux. Curtis spent 11 years as a Software Design Engineer at Microsoft before examining Linux and the open source side of things, which resulted in a change of perspective and a published book.

"The future is open source everything."
—Linus Torvalds

I find it interesting that the idea of Linux on the desktop is responded to by either yawns or derision. I think it depends on whether you see Linux as a powerful operating system built by a million-man army, or one filled with bugs and missing the cool stuff like speech recognition.

I’ve been using Linux since mid-2005, and considering how much better things everywhere are now compared to then, it surely is an interesting time to be involved with free software. From no longer having to compile my Intel wireless driver or hack the xorg.conf, to the 3-D desktop, to better Flash and WMV support, to the countless kernel enhancements like OSS -> ALSA and better suspend/resume, things are moving along nicely. But this is a constant battle as there must be 10,000 devices, with new ones arriving constantly, that all need to just work. Being better overall is not sufficient, every barrier needs to be worked on.

The Linux kernel:

The lack of iPod & iTunes support on Linux is not a bug solved by the kernel alone, but Step 1 of Linux World Domination is World Installation. Software incompatibilities will be better solved as soon as the hardware incompatibilities become better solved. The only problem you can’t work around is a hardware problem.

If you hit a kernel bug, it is quite possible the rest of the free software stack cannot be used. That is generally not the case for other software. Fixing kernel bugs faster will increase the pace of Linux desktop adoption, as each bug is a potential barrier. If you assume 50M users running Linux and each bug typically affects 0.1 percent of those users, that is 10's of thousands of people. Currently, the Linux kernel has 1,700 active bugs. Ubuntu has 76,371 bugs. I think bug count goals of some kind would be good.

In general, Linux hardware support for the desktop is good, but it could be better and get better faster. From Intel, to Dell, to IBM and Lenovo, to all of their suppliers, the ways in which they are all over-investing in the past at the expense of the future should be clear; the Linux newswires document them in detail on a daily basis. I was told by an Intel engineer that his company invests 1 percent of the resources into Linux as it does to Windows. It is only because writing Linux drivers is so much easier that Intel is seen as a quite credible supporter of it. The few laptops by Dell that even ship with Linux still contain proprietary drivers, drivers that aren’t in the kernel, and so forth.

Peter Drucker wrote: “Management is doing things right, leadership is doing the right things.” Free software is better for hardware companies because it allow for more money to go into their pocket. Are they waiting for it to hit 10 percent marketshare first? I recommend senior IBM employees be forced to watch their own 2003 Linux “Prodigy” video over and over like in Clockwork Orange until they promise free, feature-complete drivers for every piece of hardware in the kernel tree before the device ships. How hard can it be to get companies to commit to that minuscule technical goal?

It is amazing that it all works as well as it does right now given this, and this is a testament to the general high standard of many parts of the free software stack, but every hardware company could double their Linux kernel investment without breaking a sweat. The interesting thing is that PC vendors that don’t even offer Linux on their computers have no idea how many of its customers are actually running it. It might already be at the point that it would make sense for them to invest more, or simply push their suppliers to invest more. In fact, it is hard to imagine you can be happy with a device without having a production Linux driver to test it with.

There are more steps beyond Step 1, but we can work on all of them in parallel.

And to the outside community:

  • Garbage collection is necessary but insufficient for reliable code. We should move away from C/C++ for user-mode code. For new efforts, I recommend Mono or Python. Moving to fewer languages and runtimes will increase the amount of code sharing and increase the pace of progress. There is a large bias against Python in the free software community because of performance, but it is overblown because it has multiple workarounds. There is a large bias against Mono that is also overblown.
  • The research community has not adopted free software and shared codebases sufficiently. I believe there are enough PhDs today working on computer vision, but there are 200+ different codebases plus countless proprietary ones. I think scientists should move to SciPy.
  • I don’t think IBM would have contributed back all of its enhancements to the kernel if it weren’t also a legal requirement. This is a good argument for GPL over BSD.
  • Free software is better for the free market than proprietary software.
  • The idea of Google dominating strong AI is scarier than Microsoft’s dominance with Windows and Office. It might be true that Microsoft doesn’t get free software, but neither does Google, Apple and many others. Hadoop is good evidence of this.
  • The split between Ubuntu and Debian is inefficient as you have separate teams maintaining the same packages, and no unified effort on the bug list.
  • The Linux desktop can revive the idea of rich applications. HTML and Ajax improve, but the web defines the limits of what you can do, and I don’t think we want to live in a world of HTML and Javascript.
  • OpenOffice is underfunded. You wonder whether Sun ever thought they could beat Microsoft if they only put 20 developers on it. Web + OpenOffice + a desktop is the minimum, but the long tail of applications which demonstrate the power of free software, all need a coat of polish. Modern tools, more attention to detail, and another doubling of users will help. But for the big apps like OpenOffice, it will take paid programmers to work on those important beasts.


There are other topics, but these are the biggest ones. (I give away my book in PDF.) I’ve talked to a number of kernel and other hackers while researching this and it was enjoyable and interesting. I cite Linus a fair amount because he is quotable and has the most credibility with the outside world ;-) Although, Bill Gates has said some nice things about Linux as well.

This content originally appeared on Keith Curtis' blog.

Share:
8
Comments
Read more
X
Submit

Comments
Add your comment
Repelsteeltje 06/03/2010 04:59
Hide
-0+

As a long time Linux (and other open-source operating system) user, I agree with most points you make. I think hardware support has always been the biggest factor in Linux uptake. Vendor support still is an important issue, and one that's not so easy to solve. If companies would spend a bit more time in either making sure their hardware works in Linux or at least deliver some support for others to make it happen, more people (professional or personal users) would get into Linux and open-source software. I also agree with companies needing a push by e.g. the GPL to stay fair and to ensure a two-way street effort instead of taking advantage of the open-source movement without contributing something useful back.

Openoffice does need more attention, and while it's hard to force people to merge their own pet projects, some consolidation, stamina and code reuse could bring higher quality software instead of lots of small projects that feel half-done.

I don't agree with using Mono, Python or other scripting code for user-space software though. While I think plain old C is getting really rather outdated for developing modern GUI interfaces, C++/Qt/KDE and perhaps Gnome/Vala (which I haven't looked at so far) can deliver powerful high-performance code relatively easy. While Python is a great programming language, I'm not so convinced about the performance impact and resource consumption of higher-level scripting languages when used for large GUI projects. And at the risk of sounding elitist, requiring some serious effort upfront might result in better code down the line – sure more people could contribute sooner with less hardcore knowledge when using higher-level languages, but this will probably do more harm than good in the long run.

Interesting article.

Silmarunya 06/03/2010 08:37
Hide
-0+

Excellent article. But of all the solutions offered here, not a single one looks like it will happen anytime soon.

If only multiple Linux teams that work on similar products would be merged (like suggested here), I'd personally use Linux and I think a vast amount of people with me. Right now, there's a vast amount of viable distro's that are often different only in small details.

How can a person with average computing skills (the mainstream market in other words) choose from this vast list?

If similar distro's would merge, the list would be narrowed to a more workable, say, 5 or something? And they would be of higher quality too. When will all these little islands form a big continent that's visible even from Windows space?

mi1ez 06/03/2010 10:13
Hide
-0+

completely disjointed. why is this news? it should be an article.

Lord-Ilpolazzo 06/03/2010 12:35
Hide
--1+

Why bother trying to make linux work for the common man (by which i include myself), its a waste of resources, basically no one is going to care unless it does everything and i mean EVERYTHING that windows does plus a little extra to sweeten the deal.

Rather than trying to make it match up to windows just accept its a different beast and leave it to the geeks, masochists, and embedded system developers. Fow which it serves its purpose perfectly. It keeps the geeks happy.. beacuse there is always a problem to solve and for some people I get the impression they like it that way. They dont just want to use their PC they want to spend hours trying to do some clever thing just to get a video to play or something everyone else takes for granted. Itskind of like people who are into vintage cars.. the enjoyment is in continual maintanance and problem solving, but completely hopeless for everyday use.

kyzar 08/03/2010 14:56
Hide
-0+

Interesting points.

As a heavy Debian user for the server-side of things, I have to agree that it does seem odd that there is very little joint-effort between Debian and Ubuntu. The point has to be made though that they approach the Linux solution from very different angles. Debian is extrememly stable, developed slowly for maximum reliability in the server role. Ubuntu is (to some extent) dumbed down and has a much faster release schedule. It might be an idea if they combined to develop the RedHat / Fedora model of stable vs bleeding edge versions. Of course I'd be gutted if Debian proper became chargeable, I use it everywhere and it would get expensive in a hurry!

The desktop generally still seems to be a veneer that is too easily broken. When problems occur, it is usually much easier to fix a Windows issue without going into config files or leaving the point n' click experience. To my experience there still isn't that layer of depth to the Linux desktop so while it is certainly excellent for my needs, it doesn't 'just work' like Windows does at the moment.

Anonymous 08/03/2010 15:58
Hide
-0+

"We should move away from C/C++ for user-mode code. For new efforts, I recommend Mono or Python."

Only my opinion, but I strongly disagree.

Python and other similar languages do not give the efficient, streamlined execution properties of C/C++. Start moving away from that, and you'll end up with a Windows-like situation where people bash something together in VB "because it's easy" and the performance of the overall system goes down.

Don't get me wrong, they have their place, as do Java, Perl etc. But the correct tool has to be chosen for the job, and Python will not cut it for everything. This is one of the beauties of FOSS. There is such a wealth of different options for you to choose from, you can get the tool you need. Code quickly in a scripting language, produce fast, efficient code in C, hack a bash script together to do the job... the choice is yours.

A blanket "move away from C/C++ for user-mode code" would be disastrous.

Anonymous 27/04/2010 13:47
Hide
-0+

linux philosophy reminds me of soviet union, evrytings free but hard to use

Best offers

Newsletters


OK