The Fast-Food Syndrome: The Linux Platform is Getting Fat

Consider these memory requirements for Fedora Core 2, as specified by Red Hat: Minimum for graphical: 192MB and Recommended for graphical: 256MB Does that sound any alarm bells with you? 192MB minimum? I’ve been running Linux for five years (and am a huge supporter), and have plenty of experience with Windows, Mac OS X and others. And those numbers are shocking — severely so. No other general-purpose OS in existence has such high requirements. Linux is getting very fat.

I appreciate that there are other distros; however, this is symptomatic of what’s happening to Linux in general. The other mainstream desktop distros are equally demanding (even if not as much as Fedora, for example Arch Linux or Slackware run Gnome on 128 MB, but not very comfortably when you load 2-3 apps at the same time), desktops and apps are bloating beyond control, and it’s starting to put Linux in a troublesome situation. Allow me to elaborate.

A worrying tale

Recently, a friend of mine expressed an interest in running Linux on his machine. Sick and tired of endless spyware and viruses, he wanted a way out — so I gave him a copy of Mandrake 10.0 Official. A couple of days later, he got back to me with the sad news I was prepared for: it’s just too slow. His box, an 600 MHz 128MB RAM system, ran Windows XP happily, but with Mandrake it was considerably slower. Not only did it take longer to boot up, it crawled when running several major apps (Mozilla, OpenOffice.org and Evolution on top of KDE) and suffered more desktop glitches and bugs.

Sigh. What could I do? I knew from my own experience that XP with Office and IE is snappier and lighter on memory than GNOME/KDE with OOo and Moz/Firefox, so I couldn’t deny the problem. I couldn’t tell him to switch to Fluxbox, Dillo and AbiWord, as those apps wouldn’t provide him with what he needs. And I couldn’t tell him to grudgingly install Slackware, Debian or Gentoo; they may run a bit faster, but they’re not really suitable for newcomers.

Now, I’m not saying that modern desktop distros should work on a 286 with 1MB of RAM, or anything like that. I’m just being realistic — they should still run decently on hardware that’s a mere three years old, like my friend’s machine. If he has to buy more RAM, upgrade his CPU or even buy a whole new PC just to run desktop Linux adequately, how are we any better than Microsoft?

Gone are the days when we could advocate Linux as a fast and light OS that gives old machines a new boost. BeOS on an ancient box is still faster than Linux on the latest kit. And to me, this is very sad. We need REAL reasons to suggest Linux over Windows, and they’re slowly being eroded — bit by bit. Linux used to be massively more stable than Windows, but XP was a great improvement and meanwhile we have highly bug-ridden Mandrake and Fedora releases. XP also shortened boot time considerably, whereas with Linux it’s just getting longer and longer and longer…

Computers getting faster?

At this rate, Linux could soon face major challenges by the upcoming hobby/community OSes. There’s Syllable, OpenBeOS, SkyOS, ReactOS and MenuetOS — all of which are orders of magnitude lighter and faster than modern Linux distros, and make a fast machine actually feel FAST. Sure, they’re still in early stages of development, but they’re already putting emphasis on performance and elegant design. More speed means more productivity.

To some people running 3 GHz 1G RAM boxes, this argument may not seem like an issue at present; however, things will change. A 200 MHz box used to be more than adequate for a spiffy Linux desktop, and now it’s almost unusable (unless you’re willing to dump most apps and spend hours tweaking and hacking). In those times, us Linux users were drooling over the prospect of multi-GHz chips, expecting lightning-fast app startup and super-smooth running. But no, instead, we’re still waiting as the disk thrashes and windows stutter to redraw and boot times grow.

So when people talk about 10 GHz CPUs with so much hope and optimism, I cringe. We WON’T have the lightning-fast apps. We won’t have near-instant startup. We thought this would happen when chips hit 100 MHz, and 500 MHz, and 1 GHz, and 3 GHz, and Linux is just bloating itself out to fill it. You see, computers aren’t getting any faster. CPUs, hard drives and RAM may be improving, but the machines themselves are pretty much static. Why should a 1 GHz box with Fedora be so much slower than a 7 MHz Amiga? Sure, the PC does more – a lot more – but not over 1000 times more (taking into account RAM and HD power too). It doesn’t make you 1000 times more productive.

It’s a very sad state of affairs. Linux was supposed to be the liberating OS, disruptive technology that would change the playing field for computing. It was supposed to breathe new life into PCs and give third-world countries new opportunities. It was supposed to avoid the Microsoftian upgrade treadmill; instead, it’s rushing after Moore’s Law. Such a shame.

Denying ourselves a chance

But let’s think about some of the real-world implications of Linux’s bloat. Around the world in thousands of companies are millions upon millions of Win98 and WinNT4 systems. These boxes are being prepared for retirement as Microsoft ends the lifespan for the OSes, and this should be a wonderful opportunity for Linux. Imagine if Linux vendors and advocates could go into businesses and say: “Don’t throw out those Win98 and NT4 boxes, and don’t spend vast amounts of money on Win2k/XP. Put Linux on instead and save time and money!”.

But that opportunity has been destroyed. The average Win98 and NT4 box has 32 or 64M of RAM and CPUs in the range of 300 – 500 MHz — in other words, entirely unsuitable for modern desktop Linux distros. This gigantic market, so full of potential to spread Linux adoption and curb the Microsoft monopoly, has been eliminated by the massive bloat.

This should really get people thinking: a huge market we can’t enter.

The possibility of stressing Linux’s price benefits, stability and security, all gone. Instead, businesses are now forced to buy new boxes if they are even considering Linux, and if you’re splashing out that much you may as well stick with what you know OS-wise. Companies would LOVE to maintain their current hardware investment with a secure, supported OS, but that possibility has been ruined.

Impractical solutions

Now, at this point many of you will be saying “but there are alternatives”. And yes, you’re right to say that, and yes, there are. But two difficulties remain: firstly, why should we have to hack init scripts, change WMs to something minimal, and throw out our most featureful apps? Why should newcomers have to go through this trouble just to get an OS that gives them some real performance boost over Windows?

Sure, you can just about get by with IceWM, Dillo, AbiWord, Sylpheed et al. But let’s face it, they don’t rival Windows software in the same way as GNOME/KDE, Moz/Konq, OpenOffice.org and Evolution. It’s hard to get newcomers using Linux with those limited and basic tools; new Linux convertees need the powerful software that matches up to Windows. Linux novices will get the idea that serious apps which rival Windows software are far too bloated to use effectively.

Secondly, why should users have to install Slackware, Debian or Gentoo just to get adequate speed? Those distros are primarily targeted at experienced users — the kind of people who know how to tweak for performance anyway. The distros geared towards newcomers don’t pay any attention to speed, and it’s giving a lot of people a very bad impression. Spend an hour or two browsing first-timer Linux forums on the Net; you’ll be dismayed by the number of posts asking why it takes so long to boot, why it’s slower to run, why it’s always swapping. Especially when they’ve been told that Linux is better than Windows.

So telling newcomers to ditch their powerful apps, move to spartan desktops, install tougher distros and hack startup scripts isn’t the cure. In fact, it proves just how bad the problem is getting.

Conclusion

So what can be done? We need to put a serious emphasis on elegant design, careful coding and making the most of RAM, not throwing in hurried features just because we can. Open source coders need to appreciate that not everyone has 3 GHz boxes with 1G RAM — and that the few who do want to get their money’s worth from their hardware investment. Typically, open source hackers, being interested in tech, have very powerful boxes; as a result, they never experience their apps running on moderate systems.

This has been particularly noticeable in GNOME development. On my box, extracting a long tar file under GNOME-Terminal is a disaster — and reaffirms the problem. When extracting, GNOME-Terminal uses around 70% of the CPU just to draw the text, leaving only 30% for the extraction itself. That’s pitifully poor. Metacity is hellishly slow over networked X, and, curiously, these two offending apps were both written by the same guy (Havoc Pennington). He may have talent in writing a lot of code quickly, but it’s not good code. We need programmers who appreciate performance, elegant design and low overheads.

We need to understand that there are millions and millions of PCs out there which could (and should) be running Linux, but can’t because of the obscene memory requirements. We need to admit that many home users are being turned away because it offers no peformance boost over XP and its apps, and in most cases it’s even worse.

We’re digging a big hole here — a hole from which there may be no easy escape. Linux needs as many tangible benefits over Windows as possible, and we’re losing them.

Losing performance, losing stability, losing things to advocate.

I look forward to reading your comments.



About the author
Bob Marr is a sysadmin and tech writer, and has used Linux for five years. Currently, his favorite distribution is Arch Linux.


If you would like to see your thoughts or experiences with technology published, please consider writing an article for OSNews.

484 Comments

  1. 2004-06-10 5:54 am
  2. 2004-06-10 5:56 am
  3. 2004-06-10 5:58 am
  4. 2004-06-10 5:59 am
  5. 2004-06-10 6:00 am
  6. 2004-06-10 6:04 am
  7. 2004-06-10 6:05 am
  8. 2004-06-10 6:08 am
  9. 2004-06-10 6:08 am
  10. 2004-06-10 6:12 am
  11. 2004-06-10 6:15 am
  12. 2004-06-10 6:19 am
  13. 2004-06-10 6:19 am
  14. 2004-06-10 6:20 am
  15. 2004-06-10 6:28 am
  16. 2004-06-10 6:31 am
  17. 2004-06-10 6:32 am
  18. 2004-06-10 6:33 am
  19. 2004-06-10 6:39 am
  20. 2004-06-10 6:39 am
  21. 2004-06-10 6:40 am
  22. 2004-06-10 6:44 am
  23. 2004-06-10 6:48 am
  24. 2004-06-10 6:48 am
  25. 2004-06-10 6:49 am
  26. 2004-06-10 6:53 am
  27. 2004-06-10 6:56 am
  28. 2004-06-10 6:58 am
  29. 2004-06-10 6:59 am
  30. 2004-06-10 7:00 am
  31. 2004-06-10 7:03 am
  32. 2004-06-10 7:04 am
  33. 2004-06-10 7:06 am
  34. 2004-06-10 7:09 am
  35. 2004-06-10 7:09 am
  36. 2004-06-10 7:10 am
  37. 2004-06-10 7:17 am
  38. 2004-06-10 7:17 am
  39. 2004-06-10 7:22 am
  40. 2004-06-10 7:22 am
  41. 2004-06-10 7:22 am
  42. 2004-06-10 7:24 am
  43. 2004-06-10 7:26 am
  44. 2004-06-10 7:27 am
  45. 2004-06-10 7:27 am
  46. 2004-06-10 7:27 am
  47. 2004-06-10 7:27 am
  48. 2004-06-10 7:28 am
  49. 2004-06-10 7:33 am
  50. 2004-06-10 7:36 am
  51. 2004-06-10 7:41 am
  52. 2004-06-10 7:41 am
  53. 2004-06-10 7:46 am
  54. 2004-06-10 7:48 am
  55. 2004-06-10 7:49 am
  56. 2004-06-10 7:49 am
  57. 2004-06-10 7:50 am
  58. 2004-06-10 7:52 am
  59. 2004-06-10 7:53 am
  60. 2004-06-10 7:57 am
  61. 2004-06-10 7:58 am
  62. 2004-06-10 7:59 am
  63. 2004-06-10 8:00 am
  64. 2004-06-10 8:01 am
  65. 2004-06-10 8:09 am
  66. 2004-06-10 8:10 am
  67. 2004-06-10 8:10 am
  68. 2004-06-10 8:13 am
  69. 2004-06-10 8:14 am
  70. 2004-06-10 8:14 am
  71. 2004-06-10 8:18 am
  72. 2004-06-10 8:19 am
  73. 2004-06-10 8:23 am
  74. 2004-06-10 8:24 am
  75. 2004-06-10 8:27 am
  76. 2004-06-10 8:30 am
  77. 2004-06-10 8:30 am
  78. 2004-06-10 8:32 am
  79. 2004-06-10 8:33 am
  80. 2004-06-10 8:36 am
  81. 2004-06-10 8:36 am
  82. 2004-06-10 8:46 am
  83. 2004-06-10 8:54 am
  84. 2004-06-10 8:55 am
  85. 2004-06-10 9:02 am
  86. 2004-06-10 9:03 am
  87. 2004-06-10 9:05 am
  88. 2004-06-10 9:06 am
  89. 2004-06-10 9:07 am
  90. 2004-06-10 9:08 am
  91. 2004-06-10 9:08 am
  92. 2004-06-10 9:08 am
  93. 2004-06-10 9:11 am
  94. 2004-06-10 9:15 am
  95. 2004-06-10 9:17 am
  96. 2004-06-10 9:18 am
  97. 2004-06-10 9:19 am
  98. 2004-06-10 9:19 am
  99. 2004-06-10 9:22 am
  100. 2004-06-10 9:25 am