4

According to the table at the Source lines of code article at Wikipedia, the amount of Debian source code lines rapidly grew to over 324m LoC (Lines of Code) in 2009:

  • 2000: 55-59m
  • 2002: 104m
  • 2005: 215m
  • 2007: 283m
  • 2009: 324m

On the other hand:

  • Linux kernel 3.6: 15.9m
  • Mac OS X 10.4: 86m
  • Windows XP: 45m

My Questions

  1. Why did the LoC from the Debian source grow from 55m to over 300m in ~9 years?
  2. Why is there such a big difference in size compared to other operating systems?
  3. Describe the processes and criteria used by Debian to add software to the Debian archives.
Faheem Mitha
  • 35,108
Marius K.
  • 165
  • 5
    Because they added a lot of packages...? – Martin von Wittich Jan 28 '14 at 10:26
  • Linux kernel 3.6: 15.9m is kernel not an OS Mac Os X i bet does not include the line from Darwin and microsoft XP well my bet is that it does not include the 3 service pack :D The OS get more and more code but it mots of the time for good reasons. (security, optimization...) – Kiwy Jan 28 '14 at 10:27
  • 2
    Just as a note so there's no confusion because of that article: Redhat and Debian are not really different operating systems, and the N-million lines of code from one is exactly the same N-million lines from the other, and neither company wrote any of it. Or at least, very little. Redhat does pay people to work on things like systemd; I'm not sure if Debian does anything along those lines. – goldilocks Jan 28 '14 at 11:00

2 Answers2

6

1) Why did the LoC from the Debian source grow from 55m to over 300m in ~9 years?

First, as I pointed out in a comment, it's not "Debian source". It's source used by Debian but they do not own or hold copyright on any of it. Torvalds and friends own the kernel source. Some GNU stuff is copyrighted by the FSF, but most of this belongs to individual authors.

Which helps to explain how (e.g.) Debian could increase the LOC in its distribution so quickly: all they have to do is include more software. This is a significant task because it must all be integrated and packaged, but it is still no where near as big a deal as actually writing all the code.

Not all of that software came to be in nine years. A lot of it already existed, and it came to be included in Debian during that time. There is an effort involved in packaging, so they must pick and choose -- they cannot simply include everything that is legally eligible -- and this takes time.

2) Why is there such a big difference in size compared to other operating systems?

The reason it is so much more than OSX or Windows is because the scope of linux distributions is much larger. OSX and Windows are really the equivalent of a kernel, a core userland, and a Desktop Environment with a web browser and perhaps an office productivity suite (or not...). They don't (and to an extent can't) include third party things the way Debian or Redhat can. Keep in mind that a lot of the software included in that LOC count for Debian can and is used on Microsoft and Apple systems, just it is not included, installed, or maintained by Microsoft or Apple.

goldilocks
  • 87,661
  • 30
  • 204
  • 262
  • You probably don't want "9 nine years".One or the other. I was in the middle of writing an answer when this question was closed. If I attempt a rewording it will screw up your answer. Shall I create another question? – Faheem Mitha Jan 28 '14 at 12:10
  • @FaheemMitha : Whoops, thx. I've cast a reopen vote; I don't see how this question is unclear, contentious, or otherwise inappropriate. Sometimes if you direct a comment at someone who closed it they will reconsider. – goldilocks Jan 28 '14 at 12:43
  • Ok, I've also cast a reopen vote. I don't really see a problem with the question either. What do you think of my addition (3)? – Faheem Mitha Jan 28 '14 at 12:45
  • I don't see a problem with my question either. Anyway, my questions are answered, thank you :) – Marius K. Jan 28 '14 at 13:05
  • Windows does not include an office suite. Microsoft Office is a (paid) add-on. – vonbrand Jan 30 '14 at 14:08
2

I'll answer part (3) first (in fact I added it).

3) Describe the processes and criteria used by Debian to add software to the Debian archives.

The software included in Debian basically includes everything that (approximately) surmounts the following hurdles.

  1. Someone is interested in packaging to Debian standards (no easy accomplishment, at least for complex software, these days).

  2. If the someone is not a Debian developer, then a Debian developer needs to sponsor the package to get it into the archives. If the somone is a Debian developer, this step is not needed.

  3. The FTP masters are the gatekeepers to the Debian archives. They have to
    accept it. They are in charge of making sure that there the licensing and
    packaging standards comply with Debian's standards in the matter, specifically the [Debian Free Software Guidelines] (http://en.wikipedia.org/wiki/Debian_Free_Software_Guidelines) and Debian Policy. Packages can and do get
    rejected at this step, sometimes for no good reason.

Subject to these restrictions, any software can be packaged, as long as it runs on Debian, of course. These restrictions significantly slow down how much new software arrives in Debian, but there is still a lot of new stuff coming in. Here is the Debian NEW queue.

The number of packages is going up, probably because interest in Free Software since the birth of Debian has been increasing steadly, more or less monotonically. Therefore the number of people involved in Debian has been increasing. And finally, the amount of free software in the world has also been increasing, though much of it is unmaintained or poorly maintained, because most Free Software projects have a single developer, and in most cases when he or she stops working on it, the project eventually dies. Note that Debian removes packages from testing/unstable all the time, but mostly when there are serious bugs and nobody steps up to fix them.

1) Why did the LoC from the Debian source grew from 55m to over 300m in ~9 years?

I think goldilocks covered that well.

2) Why is there such a big difference to other OS?

The term other OS is ambigious. Roughly speaking, operating systems come in two varieties, proprietary and free. Proprietary operating systems include the various Microsoft Windows OS's and Apple's OS X, but there are many other lesser known ones. These operating systems by default only include a basic set of utilities. While free software may be available for these platforms at most only a small subset of this is available directly from the vendor. There is of course much proprietary software available. In general proprietary vendors like to charge for their software, so don't want to encourage users to use free software.

The free operating systems include the best known, the various operating systems that run on top of the Linux kernels (popularly known as Linux distributions), the various *BSDs like OpenBSD and FreeBSD, and over hybrids variants like the various Debian OS projects that run on top of kernels other than Linux; e.g. Debian GNU/Hurd and Debian GNU/kFreeBSD.

The Linux distributions are mostly similar in the software they offer, though they do vary in the amount of software that is available directly from the vendor. The community distributions like Debian and Fedora have very large amounts of software available. Debian has possibly the largest amounts of software. The more commercial distributions have a smaller selection of software.

The *BSDs also have a large amount of software available, comparable to the Linux distributions, though not quite as extensive. Much free software is sufficiently portable to run across the free Unix-like systems like the Linux distributions and the *BSDs.

In summary, Debian, Fedora, Gentoo and FreeBSD, for example, distribute quite similar amounts of software, so Debian is not particularly unusual in this respect, though it is likely that Debian distributes the largest amount of software of any operating system, though I have not crunched the numbers to find out for sure.

Faheem Mitha
  • 35,108