Forgot your password?
typodupeerror
Linux

According to Linus, Linux Is "Bloated" 639

Posted by timothy
from the he-was-there-when-it-happened dept.
mjasay writes "Linus Torvalds, founder of the Linux kernel, made a somewhat surprising comment at LinuxCon in Portland, Ore., on Monday: 'Linux is bloated.' While the open-source community has long pointed the finger at Microsoft's Windows as bloated, it appears that with success has come added heft, heft that makes Linux 'huge and scary now,' according to Torvalds." TuxRadar provides a small capsule of his remarks as well, as does The Register.
This discussion has been archived. No new comments can be posted.

According to Linus, Linux Is "Bloated"

Comments Filter:
  • Problem (Score:5, Insightful)

    by sopssa (1498795) * <sopssa@email.com> on Tuesday September 22, 2009 @08:53AM (#29502639) Journal

    "Okay, so the summary of this is that you expect that 12 per cent to be back to where it should be next year, and you expect someone else to come up with a plan to do it," joked Bottomley. "That's open source."

    That is also the problem. Everyone adds pieces and eventually it starts to become a mess. Then someone else should fix it.

  • I've met the enemy (Score:2, Insightful)

    by Zarf (5735) on Tuesday September 22, 2009 @08:55AM (#29502659) Journal

    I've met the enemy and they is us.

  • Re:Problem (Score:5, Insightful)

    by Anonymous Coward on Tuesday September 22, 2009 @09:01AM (#29502721)

    That's all software.

  • by dingen (958134) on Tuesday September 22, 2009 @09:02AM (#29502725)

    Of course nobody refers to Windows' kernel when people call it bloatware. Linus however is not talking about Linux as a distro or an operating system, it's just the kernel that's too bloated in his view. And with over 11 million lines of code, it's hardly even a flame.

    Now if only he had developed a microkernel instead...

  • by Dystopian Rebel (714995) * on Tuesday September 22, 2009 @09:03AM (#29502739) Journal

    What "bloat" in software means to LT as the high priest of the kernel and what bloat means to me as a user are two different things.

    To a user, bloat means awkward, slow, inefficient, and needlessly large (if my storage space or bandwidth is limited). But these are all *perceived*. I don't perceive Linux to be bloated.

    In fact, I find *NIX with almost any window manager to be the most efficient computer OS I have ever used. Linux is the best of them, despite being a clone of the UNIX userland.

    If an OS can boot from a floppy or small USB key and be totally usable, it is certainly not bloatware. Rewrite the Linux userland in MONO or Java and then we'll talk about bloat.

  • by Viol8 (599362) on Tuesday September 22, 2009 @09:03AM (#29502747)

    "Now if only he had developed a microkernel instead..."

    It would be bloated AND slow.

    But hey, it would look pretty in a high level UML diagram.

  • Re:Problem (Score:4, Insightful)

    by sopssa (1498795) * <sopssa@email.com> on Tuesday September 22, 2009 @09:08AM (#29502805) Journal

    But when its open source, it's easier to think that maybe I cant be bothered to look at this now, someone else can do it. When its proprietary software and you get the assignment to look at it, you pretty much have to do it.

  • by OzPeter (195038) on Tuesday September 22, 2009 @09:11AM (#29502831)
    I always thought that building drivers into the kernel was going to be Linux's downfall. There is an un-ending supply of equipment that requires drivers and they can't all go into the kernel without some repercussions. Let alone being a black hole that continually sucks up stuff and never deletes it. This design may work well for a small system with limited hardware but is doomed to fail at some point when trying to scale it up for the real world.
  • by dingen (958134) on Tuesday September 22, 2009 @09:12AM (#29502835)

    Well, if you just take a look at this monster [makelinux.net] I think you'll quickly will come to the conclusion that even providing the most basic functionality can lead to something quite complicated. And of course, "basic functionality" in 2009 means something else entirely when compared to 1991 when Linux started out.

    It should be noted that of course the module-system works pretty good to keep things organised, so no developer needs to dig through millions of lines of code to make a few tweaks. But it's a monster nonetheless.

  • by natehoy (1608657) on Tuesday September 22, 2009 @09:13AM (#29502853) Journal

    Torvalds' use of the term "Bloated" in this case refers specifically to a loss of performance and an increase in size and memory usage, not of confusion.

    I think there are two (competing) goals for the Linux kernel as a whole (well, there are as many goals as there are developers, of course, so the two competing goals are more of a continuum).

    On one side, there is a desire for the Linux kernel to support more features so distros can be built to be more like popular mainstream operating systems like Windows and Mac. Ease-of-use, a pleasant user experience, separation/insulation from the dreaded Command Line, pretty graphics, massive hardware support, and support for more "oddball" configurations like multiple screens, etc. So it's desirable to have lots of driver support and lots of hooks into the operating system to support fancy stuff.

    On the other, there is a desire for Linux to be small, sleek, and fast, particularly for embedded projects.

    The former has been running the show for a while, and I think that's healthy and positive, but the kernel has gotten larger and slower at its basic job. For desktop users, this is good news since a lot of things that had to be done at "higher" levels can now be accomplished directly in the kernel, so they might actually have a faster user experience, and they've got resources to burn since most PCs are specced out for Windows, so Linux has a lot of spare growing room in that hardware.

    But for embedded/minimalist supporters, it means they need to add more hardware to their machines to support the now-larger kernel, chock full of features they'll never need or want.

  • Re:Problem (Score:5, Insightful)

    by Galactic Dominator (944134) on Tuesday September 22, 2009 @09:15AM (#29502867)

    Properly managed opensource projects deal with this appropriately, some do not.

    Properly managed proprietary projects deal with this appropriately, some do not.

  • Simple solution (Score:2, Insightful)

    by BhaKi (1316335) on Tuesday September 22, 2009 @09:16AM (#29502881)

    That is also the problem. Everyone adds pieces and eventually it starts to become a mess. Then someone else should fix it.

    Or we can just use an old version. Unlike to the case of proprietary software, we are not being forced to upgrade to "bloated mess".

  • Pick two (Score:5, Insightful)

    by justthinkit (954982) <floyd@just-think-it.com> on Tuesday September 22, 2009 @09:17AM (#29502895) Homepage Journal
    (1) Large feature set
    (2) Compact/optimized
    (3) Fast to market

    Pick any two...
  • obvious (Score:5, Insightful)

    by walshy007 (906710) on Tuesday September 22, 2009 @09:17AM (#29502901)
    more hardware support and more functional tasks with scope creep means larger code base. nothing to see here, move along.
  • Re:Translation: (Score:3, Insightful)

    by jedidiah (1196) on Tuesday September 22, 2009 @09:18AM (#29502911) Homepage

    What do you think is extra? What would you remove? Are you able to remove it?

    For Ubuntu, I can easily answer these questions because the system is transparent
    and I can act on my preferences without even being a developer because the system
    is flexible, modular and open.

    I can even get rid of a lot of Linuses kernel code because there's been a nice shiny
    happy build GUI included with the kernel since the 1.x days.

  • by hey! (33014) on Tuesday September 22, 2009 @09:25AM (#29502975) Homepage Journal

    This is like the salesman's nightmare, where you take the guy from engineering to visit the customer. Things are going great, the engineer can answer all the customer's questions.

    Then you realize, *the stupid bastard is answering the questions honestly*.

    Honesty is a basic requirement to be a halfway decent engineer. Persistent and incurable dissatisfaction with how you did the last job is another. Even if you *know* you did a great job, deep inside part of you knows you could have done it *better*.

  • Re:Problem (Score:5, Insightful)

    by bostei2008 (1441027) on Tuesday September 22, 2009 @09:27AM (#29503011)

    I agree.

    The people hating messes are the developers which have to look at this day by day. Cleaning up code is never something managers care about - its always driven by developers with a sense for order and simplicity.

    That means that Open Source software has a higher chance of getting cleaned up than propietary software, because there you have a higher percentage of truly motivated developers and no managers to bug them. Sigh...

  • Re:Problem (Score:3, Insightful)

    by Hal_Porter (817932) on Tuesday September 22, 2009 @09:31AM (#29503055)

    How does that work? In a proprietary project if your boss says "do this" you either do it or find another job. In an open source project you could just flame the hell out of the guy that told you on the public mailing list and carry on working on something else.

    And in a proprietary project if customers want something fixed they can threaten to not pay which in even the most incompetent company will tend to make your boss tell you to fix it. In open source that mechanism does not exist.

  • by Anonymous Coward on Tuesday September 22, 2009 @09:33AM (#29503075)

    Funny, I find Open Office to be bloated compared to MS Office.
    KDE/Gnome to be bloated to XP.

    That's why I use the best tools for me: MS Office and XP (in that order)

    It's not perfect, far from it, but works the best for me.
    KDE, Gnome, OO just feels like molasses everytime I try, and don't misunderstand:
    I've spent years under KDE, but given up on it every time after spending ungodly hours fixing what should work out of the box.
    OO has awful UI. I can't use it. Feels like a program from the early 90's which you can't figure out..

    Fixing the bloat in KDE/Gnome and OO UI, would work wonders for many people..

  • Re:Problem (Score:2, Insightful)

    by Jurily (900488) <[jurily] [at] [gmail.com]> on Tuesday September 22, 2009 @09:38AM (#29503123)

    While I am a linux/gpl fanboi, i think the bsd distros don't have this problem because they have much stricter people at the top of their kernels, and i think this is yet another sign that Linus should not be the only one running the show.

    Heh. BSD doesn't have this problem because nobody cares enough about them to contribute enough code. You don't really have to think about feature creep at 3 patches per week.

  • Re:Simple solution (Score:4, Insightful)

    by coryking (104614) * on Tuesday September 22, 2009 @09:47AM (#29503229) Homepage Journal

    Clearly whoever modded you up has never tried what you are suggesting. I can only name a handfull of open source projects that backport security fixes to old versions and of those, they only backport to versions a few years old.

    In fact, I'd say the longest lived "old version" is probably Apache 1.3. The 2.x series has been out for, what, forever and yet they continue to push out fixes for 1.3 (last was Jan. 2008).

    I'd wager the biggest complaint I have with most open source is the a) dont understand what true stability means and as a result they b) rarely support old versions. It was one of the prime reasons I switched to FreeBSD. If I install FreeBSD 6.2 today, I know I'll get security fixes for at least a good half decade and probably a bit more if I track the 6.x series.

    Yeah yeah yeah, debian, yeah yeah... but dont get me started on the other reasons I switched (cough crappy docs, cough, crappy unstable kernel, cough

  • by Anonymous Coward on Tuesday September 22, 2009 @09:50AM (#29503253)

    Pretty much. He argued that monolithic kernels were obsolete in the 70s, and he was right. The kind of people that argue for monolithic kernels are the same people that argue C over C++ because it's "faster" and "more portable." Possibly true in slight corner cases but completely outweighed by other use cases.

    Meanwhile, everyone else important (Windows, OS X) have been using hybrid designs forever.

  • Re:Problem (Score:5, Insightful)

    by renoX (11677) on Tuesday September 22, 2009 @09:51AM (#29503271)

    That's false of course:
    1) the deciding factor for project management is the non-commercial/commercial status of a project, not the closed/open state of the source.

    2) for non-commercial projects, both developers 'goodwill' and proper management are needed to avoid bloat; whereas for a commercial project only proper management is needed (as the management decides where the money will go).

    Note that the Linux kernel is a blend of non-commercial and commercial projects as many developers are paid to work on the Linux kernel and many aren't.

  • by nomadic (141991) <nomadicworld&gmail,com> on Tuesday September 22, 2009 @09:57AM (#29503343) Homepage
    Often the term bloated is misused meaning the speaker is at a point where he/she personally starts to find a technology confusing to wade through.

    Linux today does not boot significantly faster than it did 15 years ago. That's bloat.
  • Re:Problem (Score:5, Insightful)

    by Lumpy (12016) on Tuesday September 22, 2009 @10:01AM (#29503373) Homepage

    Cleaning up code is never something managers care about

    Most managers care a LOT about cleaning up code. It's a waste of time in their eyes and most will write you up for wasting time if they discover that you are doing it.

    They wanted it done last week, cleaning up code misses deadlines and is a waste of time as far as management is concerned.

  • Re:Problem (Score:2, Insightful)

    by LordNimon (85072) on Tuesday September 22, 2009 @10:03AM (#29503399)
    You forgot the fourth group: embedded system developers.
  • by sumdumass (711423) on Tuesday September 22, 2009 @10:20AM (#29503615) Journal

    Bloat isn't a problem

    Until it causes system instability, slow performance, or increases the size of the code without adding any new features or fixing a problem. Bloat can become a problem, but it doesn't have to be. I thought I would just point that difference out because "isn't" seems to be an absolute which it shouldn't be.

  • by QuantumRiff (120817) on Tuesday September 22, 2009 @10:31AM (#29503751)
    the kernel modules are not its downfall, they are its biggest asset.

    I have a laptop HD with my copy of Ubuntu running on it. I popped it into another model of laptop yesterday, (from a Dell D630 to a Lenovo T400) everything worked fine.

    I plugged a printer in a week ago, worked fine. Connected my Cannon camera, it popped up and asked if I wanted to import the photos. I plugged in my wife's ipod, and it asked if I wanted to open Rythmbox.

    On windows, I would have had to go to countless websites, download drivers (or itunes) install, and troubleshoot. With linux, all of that just worked. On XP it was a pain in the ass to switch between AHCI and compatibility mode on my laptop. With linux, I can switch whenever I want.. it just works..
  • Re:Problem (Score:5, Insightful)

    by DrgnDancer (137700) on Tuesday September 22, 2009 @10:47AM (#29503987) Homepage

    The same way people in raid guild do what they're supposed to in raids even though it's only a game and raid officers can't do anything to you really; or members of Civil Air Patrol follow military customs and courtesies toward their officers despite those officers having no actual UCMJ authority; or people in SCA listen to the nobles of their "Baronies" despite those people not having any real world authority. When you join a group or a project, you agree to abide by the rules of the group or project. If you eventually find that you can't, you generally either leave or are forced out. if the project lead on a properly managed project asks you to do some boring grunt work, you either do it or find a new project and someone else will be asked to do the work.

    If the project is generally fun or personally beneficial for you to work on, you'll do the grunt tasks you're asked to do, because otherwise you'll eventually be off the project. If the project wants to keep it's user base (and most do) it'll fix as many problems as it can to keep the users happy.

  • Re:Problem (Score:2, Insightful)

    by sylvandb (308927) on Tuesday September 22, 2009 @10:52AM (#29504065) Homepage Journal

    And in a proprietary project if customers want something fixed they can threaten to not pay which in even the most incompetent company will tend to make your boss tell you to fix it. In open source that mechanism does not exist.

    In open source you can fix it yourself or pay to have it fixed. With proprietary software that mechanism does not exist.

    When a customer says "fix it" re. proprietary software, it only means that the result passes some test. Very seldom does the customer see the code and understand the cruft involved. So that seldom if ever gets fixed, and nearly always gets much worse over time. In proprietary software the black box is truly black.

    sdb

  • Microkernel (Score:5, Insightful)

    by bluefoxlucid (723572) on Tuesday September 22, 2009 @10:58AM (#29504153) Journal
    Next year he's going to claim that Minix was doing it right all along. We've seen a lot of Linusisms to that effect... $X needs to be outside the kernel... $Y shouldn't happen the way I've been screaming for years... I told $Z to fuck off because he's stupid but he was right and we need to go do that yesterday ... it's just how Linus is. He's an opinionated fat bastard, and then one day he realizes he's fucking wrong and just goes, "SHIT! Well let's do that then >:O"
  • Re:Problem (Score:3, Insightful)

    by sylvandb (308927) on Tuesday September 22, 2009 @11:07AM (#29504289) Homepage Journal

    Why should Linus focus for Desktop Linux. It is a dead horse... Deal with it. Its a Dyeing market. Let Microsoft go down with that ship. Linux should be designed better for cloud/distributive processing, and server stuff. We are getting to a point we don't need desktops we need a thin client that can connect to the network. And let someone else do the work.

    LOL

    People have been denying the need for and predicting the death of desktop computing since before desktop computing existed (for at least 50 years, http://en.wikipedia.org/wiki/Thomas_J._Watson#Famous_misquote [wikipedia.org]).

    The only thing that has happened is that computing has become more and more pervasive as people hold more computing power in their hand than existed in the computer room 50 years ago.

    If desktop computing ever goes away, it will be because the desk is gone. People will still have their own computer(s), and every computer will need an operating system. That OS might as well be Linux as anything else.

  • by Antique Geekmeister (740220) on Tuesday September 22, 2009 @11:07AM (#29504301)

    What? No, that's not the kernel. That is:

    > The BIOS - take a look at the LinuxBIOS or OpenBIOS work to see where that can be improved. But oh, my dear goodness, it can be improved.
    > Incredible masses of new hardware that do need detection and configuration at boot time. That's been a sore point: it takes time to scan for all that hardware, and you can optimize it by leaving out tools, but people do like having their network cards and USB drives and graphics tablets work automatically at boot time. That's not the fault of the kernel: that's the fault of the time taken to detect and configure low-level hardware components, such as RAID controllers, which may be necessary to begin to load _any_ kernel with the actual drivers to run the operating system.
    > Masses of init scripts starting up many, many, many services in a very lengthy sort of way. Those can be optimized far more than they are, and parallelized: but it takes a rewrite of the 'init' procedures to do so, and that's not the kernel's fault.

    I'd like to see all of these improved: all of them are, in fact, plagued by bloat. But they're not hte kernel.

  • Funny! (Score:3, Insightful)

    by hesaigo999ca (786966) on Tuesday September 22, 2009 @11:36AM (#29504765) Homepage Journal

    He should start a separate distro and call it leanux....not like we can't make do without another distro out there.

  • Poor Journalism (Score:3, Insightful)

    by DaMattster (977781) on Tuesday September 22, 2009 @11:40AM (#29504817)
    I did RTFA and I must say the article was poorly written - so much so that the author felt he needed to publish a correction that summarily states (what open source power users already know) that the Linux kernel can be "trimmed or fattened up." It is immaterial that Linux has gotten more bloated as the fundamental difference between it and Windows is that you as the consumer have the choice to "trim the fat." While I am an open source users, I am pragmatic and I believe it cannot be all things to all people and Windows has some advantages over Linux. For example, the choices of Linux can be downright bewildering and each distribution behaves differently with its own quirks. Windows is Windows. Even though distributions share a common kernel, they are really distinct OSes in their own right - applications run differently and have different behaviors. As Samba will tell you, sometimes compiling succeeds on three out four large distros. In theory, they should be all compatible.
  • Re:Problem (Score:3, Insightful)

    by RiotingPacifist (1228016) on Tuesday September 22, 2009 @12:13PM (#29505293)

    Why should Linus focus for Desktop Linux.

    I'm not saying he should, but desktop distro's certainly need to!

  • Re:Problem (Score:4, Insightful)

    by ThePhilips (752041) on Tuesday September 22, 2009 @12:16PM (#29505331) Homepage Journal

    Why should Linus focus for Desktop Linux. It is a dead horse...

    And in some part is a dead horse thank to Linus himself.

    Point is that "perfect kernel" from system developer POV, is "piece of useless junk" from POV of application developers.

    Sound interface is at best dysfunctional. Video acceleration is constantly "under construction" (redone 5th time now or so). Real-time timers required for smooth multimedia and games are still at large.

    Just look at Apple's Mac OS X on how problems have to be handled. Instead of debating about what should/shouldn't be in "perfect kernel," people concentrate their work on areas which actually relevant to application developers and of benefit to end users. Apple took the line "if we don't do it who else" while Linus' official line is something like "do it in userspace" or "do not care. don't have to. I'm system programmer."

  • Re:Problem (Score:3, Insightful)

    by Ephemeriis (315124) on Tuesday September 22, 2009 @12:27PM (#29505467) Homepage

    How does that work? In a proprietary project if your boss says "do this" you either do it or find another job.

    Sure... You're given an assignment and you basically have to do it. But somewhere along the line somebody has to decide what is a priority and what isn't. Somebody decides what actually gets done. And it doesn't really matter if it's a proprietary project or not - stuff slips through the cracks.

    You think a company is going to drop everything to refactor some code just because it's getting a little long in the tooth? Even though everything works? You think a company is going to put a whole lot of time and effort into optimizing their code to get the installation down under ## GB, even though HDDs are dirt cheap and the code actually works?

    It all comes down to priorities. And important stuff can get a low priority with proprietary code just as easily as open source.

    In an open source project you could just flame the hell out of the guy that told you on the public mailing list and carry on working on something else.

    You can... And nobody is going to force you to write any code in particular... But the situation is a little unique in open source software... If you are unwilling to update your code, for whatever reason, someone else can. Some other random guy on the mailing list can make the changes. And if you're seen as enough of an obstruction, they'll just fork your code and carry on without you.

    And in a proprietary project if customers want something fixed they can threaten to not pay which in even the most incompetent company will tend to make your boss tell you to fix it.

    Maybe... It depends on just how badly you need a particular piece of software. I've got clients paying for upgrades and support to buggy software because they can't run their business without it. Year after year, thousands of dollars, and the software still sucks. And they complain about it constantly. But they can't do business without it. So they learn where the bugs are and work around them.

    In open source that mechanism does not exist.

    No... But in open source you're never tied to a specific vendor. Absolute worst-case scenario you can pay someone to fix those bugs for you.

  • Re:Pick two (Score:3, Insightful)

    by adrianwn (1262452) on Tuesday September 22, 2009 @12:37PM (#29505605)

    (1) Large feature set (2) Compact/optimized (3) Fast to market Pick any two...

    ...and you'll get one. If you're lucky. And it won't be (3). And sometimes it won't be one of the two that you picked.

  • by Anonymous Coward on Tuesday September 22, 2009 @12:45PM (#29505727)

    I agree halfway with you there, but grasping object based design of the better reasons to stay the hell out of C++. That goddamn clusterfuck for a language manages to screw up somehow pretty much every OO concept in existence.

    Want to use dynamic polymorphism? Can't do. The base class author didn't bother to make functions virtual (and you aren't the maintainer of that code).
    Want to write generic routines using OO rather than templates? Good luck. There's no default class, for starters. (naturally, certain concepts that'd make the problem a non-problem don't exist in C++)
    Want to alter implementation details without touching public headers? Sorry, C++ isn't like that.

    Want to battle endlessly with templates, initialization order and type system oddities, learn design patterns that are completely useless anywhere else or spend a lot of time glueing incompatible code together? Hey, it must be your lucky day.

  • by Anonymous Coward on Tuesday September 22, 2009 @01:22PM (#29506233)

    On windows, I would have had to go to countless websites, download drivers (or itunes) install, and troubleshoot. With linux, all of that just worked. On XP it was a pain in the ass to switch between AHCI and compatibility mode on my laptop. With linux, I can switch whenever I want.. it just works..

    Worst of all, you would need to reactivate XP/Vista popping HD from laptop A into laptop B. This assumes they let you or you press the right monkey buttons when calling in. Switch the HD back, and reactivate again (and again).

  • by mcgrew (92797) * on Tuesday September 22, 2009 @01:56PM (#29506653) Homepage Journal

    On one side, there is a desire for the Linux kernel to support more features so distros can be built to be more like popular mainstream operating systems like Windows and Mac. Ease-of-use, a pleasant user experience, separation/insulation from the dreaded Command Line, pretty graphics, massive hardware support, and support for more "oddball" configurations like multiple screens, etc

    I risk sounding like Stallman here, but in this case the distinction actually matters. We're discussing the kernel, not the OS. The OS is GNU, the kernel is Linux. There are various desktops for GNU, most people use KDE or Gnome (I like KDE). It's easy to use, like Windows there is a command line but you won't need it (at least with Mandriva) but you can write shell scripts just like with Windows you can write batch files (and GNU is far and away superior here), it has pretty graphics, far more massive hardware support (Linux will run on anything from a wristwatch to a supercomputer while Windows only runs on PCs and servers), and it is easily configurable for oddball stuff.

    But the stuff I mentioned in the previous paragraph is, like your post, completely offtopic as none of them has anything to do with the kernel. You're talking about the shell/desktop when the discussion as about the kernel.

  • by samwichse (1056268) on Tuesday September 22, 2009 @04:35PM (#29508539)

    Um... what are you doing with that N800? Probably surfing FAT websites like Slashdot).

    Now what are you doing with MINIX in 16MB of RAM? Probably not much.

    How about DD-WRT micro on a WRT54G > version 6? 2MB flash, 8 MB RAM and it runs a nice router and serves up config pages, QoS, etc.

This place just isn't big enough for all of us. We've got to find a way off this planet.

Working...