Slashdot Mirror


What Actually Makes Up "Linux"?

David A. Wheeler sent in linkage to his extensive analysis of the true size of Linux. There's an amazing amount of information in here, and although it focuses on Red Hat 7.1, it still has tons of interesting bits of information about the code that makes up the distribution. Break downs include languages, licenses, cost estimates, and stats that in no way clear up the legendary GNU/Linux debate that will undoubtably be engraved on tombstones somewhere.

13 of 283 comments (clear)

  1. Linux is composed primarily of: by Wakko+Warner · · Score: 4
    2 million lines of kernel code.

    Several hundred utilities.

    And three hundred and fifty thousand annoying slashdot trolls.

    --

    --
    "Remember when the U.S. had a drug problem, and then we declared a War On Drugs, and now you can't buy drugs anymore?"
  2. Windows is made up of the following by The+Man · · Score: 5
    Ok, IHBT.

    Windows is made up of the following:

    • 1000 Microserfs who'd rather be doing anything else but are addicted to the stock options
    • 5000 Marketdroids, lawyers, and "visionaries" responsible for embracing, extending, extinguishing, buying, suing, and otherwise levelling the competition
    • 1 would-be God
    • 5 different names for slightly incompatible versions of the same code, most of which was written in 1980 and has never been significantly improved
    • 1 obfuscated editor that includes most of what the GNU/Linux editors have plus the ability to execute macro viruses, minus the ability to actually save a plain text file using ISO standard characters.
    • 1 application written with the express purpose of receiving, sending, and running viruses. It's based on patented VirusEngine technology.
    • 1 standardized window system that you can't get rid of even on a server, which relies on hardware vendors to provide drivers of varying quality
    • Other device drivers with the same struggles. Microsoft themselves claim that much of the instability of their systems is due to third-party drivers, but presumably they can't marshal the resources to provide drivers for even the same hardware as your own 20 hardcore hackers.
    • 200,000,000 rape victims with sore asses and pathological masochism.
    • You can moderate this down, but I challenge you to find proof that this situation is otherwise.

  3. Good up until the point he mentions Bill Gates by Dogcow · · Score: 5

    This was a quite thorough, well-written document all until the point he mentioned Bill Gates. Well, actually not Bill Gates himself but the immortalised words from his "Open Letter To Hobbyists".

    In particular, the bit about documentation. The thing that Linux lacks these days is decent documentation in alot of areas, in particular things like devfs (which the author even admits is now poorly documents (the instructions that are available are now out of date)).

    Coming from a BSD background (no, this isn't an excuse for a platform war - just hear me out), documentation is just as important as the code itself. This sometimes means that availability of certain features in BSD are a generation behind that of Linux, but when they arrive, the documentation is top notch, containing correct spelling and grammar, notes what bugs are present, provides examples of correct usage (this is especially relevent in documenting programming functions whose incorrect usage may have a security impact) and so on. Overall, it's an issue of documentation quality.

    The author of the paper may scoff in the direction of Bill Gates, noting the ability of the Linux community to create and maintain an operating system, but what he's done in the process is brought the whole paper down by exposing the single thing that Linux as a "disparate sources, one distribution" model operating system can never have as what Microsoft products and, from my perspective, the BSD operating systems have - documentation that exists in a single form and written in a style that is consistent across the entire operating system. (This is not the case with Linux. Some things use manpages, others use "info", others use textfiles, others use html documentation. Heaven knows how a new user on Linux (advocacy is about attracting new users, right?) is supposed to navigate this mess without a considerable level of pain and/or persistence).

    And before you let the flames begin, have a poke around on say, the NetBSD/OpenBSD/FreeBSD sites' manual page listings on their website and compare them to the ones you see on RedHat and so on.

  4. Linux is... by mattkime · · Score: 4

    Linux is what is keeping me from meeting women. : (

    ...i know this, and still, I find myself compulsively rebuilding my kernel.

    --
    Know what I like about atheists? I've yet to meet one that believes God is on their side.
  5. Re:What really makes up "Linux"... by dimator · · Score: 5

    Linux progressed farther in 10 years than Microsoft during that same time frame

    I don't see how that's true at all. In both technology, and the bottom line, Microsoft is *years* ahead. Technology: let me offer one example: go to a web page (IE) with some kind of table with data in it. Copy the table. Paste it into Word. It actually becomes a Word table! Paste it into Excel. It actually places the data, and the formatting, into the cells! How far is linux from that level of ease of use, that level of "object linking and embedding" across apps? Do you think the multiple desktop standards helps or hinders this task?

    And in terms of bottom line, linux companies are still trying to figure out how to make a buck. Redhat just now moved into the positive column, VA and others layoff people seemingly every week.

    I'm a fan of Linux because I'm a hacker. I like the shell, I like the flexibility and customisability that come with having dozens of "glue" tools. But the fact is, hackers are the minority of computer users, and this is only going to be more and more true in the future. For the masses, ease of use is priority 1, and it seems, at least to me, that the "other" platform has a great lead in that arena.


    ---

    --
    python -c "x='python -c %sx=%s; print x%%(chr(34),repr(x),chr(34))%s'; print x%(chr(34),repr(x),chr(34))"
  6. Size of GPL disclaimers? by Ukab+the+Great · · Score: 5

    It would be interesting to see how many MB of space those "This is GPL" disclaimers take up.

  7. What really makes up "Linux"... by krmt · · Score: 5

    ... is the people. Seriously, Windows can't really say that because there is no real "Windows community". Mac people can talk about it, but they are still dependant on Apple for all wants and needs. On the other hand, Linux is written, used, and supported by the people themselves. Those figures, all of it from the the lines of code to the language percentages, just illustrate who and what we are as a community.

    It's something I could go on and on forever about because it really is something special in a world dominated by the shadow of Gates and Jobs. "Those people" who work "over there" don't make this. We do! While all those numbers can start to quantify this, you can't really put a dollar value on it the same way you can't put a dollar value on freedom. Funny thing to be able to say that about a bunch of software...

    "I may not have morals, but I have standards."

    --

    "I may not have morals, but I have standards."

  8. GNU vs. Linux by Faux_Pseudo · · Score: 4

    Linux is in its newest incarnation ~25mg of tared and g/b2/zip'ed source code written in C and covered by the GPL. Without gcc or some other compiler you can't even compile it. Without a shell you can't do much with it. All of those things come from the GNU or other sources.
    Linux is in its simplest form much like a Japanese car built with 87% United States parts.

    On a personal note:
    In the beginning there was Linus and the word was with Linus. Accept Linux into your hart and you shall have uptime eternal.
    Kernal 3:16:
    For Linus loved man so much that he gave his first begotten OS.

  9. Re:Linux - Microkernel by achurch · · Score: 4
    He also mentioned that 57% of that was in the drivers subdirectory. While I suppose a little more code sharing could happen if you tried, the real problem is hardware companies that insist on having their own special little addition to the protocol that requires a new driver.

    --
    BACKNEXTFINISHCANCEL

  10. Clarifications about the paper by dwheeler · · Score: 5
    A number of people have made various comments; as the author, I thought I'd respond to some of them. I'll use this single reply, instead of trying to reply in separate posts for each. Original posts are in italicized paragraphs:

    > Using RedHat as a distro for this project isn't that good of an idea.... it's just an unrepresentative mass of programs and code! I can safely say that most Redhat users will never use about one-quarter of the programs in their distribution...

    That's true for any of today's operating systems. No user uses all the code in Windows, either. Even real-time OS's have more code developed for them than is used by any given user. As a measure of effort, though, examining all the code makes sense.

    > Since when is the number of lines of code proportional to the quality of the software? If Red Hat 7.1 has 30 million lines of code over 6.2's 17 million, does that mean the product is 76% better? Is the code getting more sloppy as more programmers get involved? I feel like counsel is leading the witness for the author to say 7.1 has "60% more effort" under the COCOMO model."

    I never said it was "better", I said it included "60% more effort." Better is a value judgement. Effort is measured in person-years.

    > The kernel shouldn't be two million lines of code. How much of that is drivers? And how much of the drivers are duplicated from one driver to another?

    Section 3.2 specifically discusses this; 57% of the lines of code are drivers. Duplicate files are only counted once, but "partly duplicated" files are much harder to detect (and to discount when they happen); they certainly happen in the Linux kernel. However, the COCOMO model is based on real project data, and many other projects include cut-and-pasted code (for good or ill).

    > Ok, so this guy claims that Linux would cost a little over $1 billion (US) to develop. I wonder what the big deal is. I'm sure Microsoft has spent that much over the years on Office+Win9x+WinNT+Backoffice+etc ... The only thing incredible about this number is that most of that billion was completely unpaid, or at least underpayed.

    But I believe that is a big deal. Gates' "Open Letter to Hobbyists" assumed that if people just shared code, no large project would be developed. GNU/Linux and other open source/free software systems show the assumption wrong, and this paper has the numbers to prove it. You can argue which is "better", of course, but the notion that it can't be done is no longer debatable.

    > Are there estimate[s of] how much money in form of salaries were ever paid to programmers for the code and how much was in effect done not only voluntarily, but also completely on an unpaid basis?

    Unfortunately not; it's not even clear how to find out. You would have to go back to individual patches submitted to every project, and few people identify in their patches "I was paid to do this."

    > 2437470 source lines of code for the Linux kernel. Doesn't that worry some people out there? We have a monolithic kernel almost two and a half million lines long. I think that by 2.6 the kernel is going to collapse under its own weight unless the designers decide to reorganize it in a fundamental way.

    It's the nature of a monolithic kernel, and in any case, most of that is in modules (which are individually much smaller and only loaded when needed). I see no evidence of a "collapse", though clearly there are competitors (like HURD) that might eventually replace it in the market.

    > Quoting statistics/data going back to '95 is way out of date by todays standards, even '99 is now very old.

    It may be old, but it helps give perspective. A simple SLOC number doesn't mean much to people, unless it's compared to something else.

    > The cost formula includes a term (ksloc**1.05): i.e. thousands of source lines to the power of 1.05. This reflects the fact that the bigger a program becomes, the harder it is to add new lines, because the system you are adding too is more complex. He plugs the size of the entire code base of RH7.2 into this formula. This seems unreasonable to me - these are many almost independent packages.

    No, I don't do that (for the reason you cite). Section 2.3 of the paper discusses this: "Each build directory had its effort estimation computed separately; the efforts of each were then totalled." Appendix A mentions that sloccount was given the "--multiproject" option, which implements this.

    Anyway, I hope people found this study interesting. It sounds like several people did.

    --
    - David A. Wheeler (see my Secure Programming HOWTO)
  11. Re:Well...there are more than some GNU by Waffle+Iron · · Score: 4
    If this keeps up it could be GNU/BSD/GPL/LGPL/YADA/ETC/Linux

    How about solving this by creating a fanciful glyph (vaguely 'L' shaped) and allocating a point in the Unicode codespace to replace the name? There would no longer be a spoken name for /The Operating System Formerly Known as (GNU\/)?Linux/.

    The Glyph could mean all things to all people. Everyone would be happy enough to resume productive activities.

  12. And few realize that what really makes up Linux by Gazelem · · Score: 4

    ...is caffeine. Lots and lots of caffeine. I don't care if you're a programmer, a system administrator, or a homebrew hacker (in the old and true sense of the word). Without the readily available supply of that wonderful drug called caffeine, who would say that Linux would be even 1/4 the phenomenon that it is today? Hmm?

  13. x-windows???? by Cunt+Turd · · Score: 4
    Many other interesting statistics emerge. The largest components (in order) were the Linux kernel [...] Mozilla [...], X-windows [...]

    Am I the only person who cringes every time I read "x-windows?"

    Or have they officially changed the name? (might as well...)

    --

    --

    --
    "You know you want me, baby." --Crow