Introduction to Free Software - SELF | Sharing Knowledge about ...
Introduction to Free Software - SELF | Sharing Knowledge about ...
Introduction to Free Software - SELF | Sharing Knowledge about ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
© FUOC • P07/M2101/02709 133 <strong>Free</strong> <strong>Software</strong><br />
Another one of Torvalds' innovative ideas was <strong>to</strong> develop two branches of<br />
the kernel in parallel: the stable one (the second number of the version is<br />
usually even, such as 2.4.18) and the unstable one (the second number of the<br />
version is odd, such as 2.5.12) As ever, Torvalds is the person that decides what<br />
goes in<strong>to</strong> which branch (many of the most controversial decisions are related<br />
precisely <strong>to</strong> this point). In any case, Linux doesn't have any planned deliveries,<br />
in fixed timeframes: it will be ready when it is ready and in the meantime<br />
we'll just have <strong>to</strong> wait. Surely by now, most readers will have realised that the<br />
decision on whether the system is ready or not will be made solely by Linus.<br />
The development method used in Linux has proven <strong>to</strong> be very effective in<br />
terms of results: Linux is very stable and any bugs are corrected extremely<br />
quickly (sometimes in minutes), as it has thousands of developers. In this si-<br />
tuation, when there is a bug, the probability that someone will find it is very<br />
high, and if the person that discovers it is not able <strong>to</strong> correct it, someone will<br />
appear who will hit on the solution very quickly. To summarise, this shows<br />
how Linux has thousands of people working on its development every month,<br />
which is why its success is not al<strong>to</strong>gether surprising.<br />
It should be noted, however, that this way of working is very expensive where<br />
resources are concerned. It is not unusual for there <strong>to</strong> be many mutually-ex-<br />
clusive proposals for a new function or that a dozen patches are received for<br />
the same bug. In most cases, only one of the patches will finally be included<br />
in the kernel, which means that the rest of the time and effort put in<strong>to</strong> the<br />
patches by the other developers will have all been in vain. Linux's develop-<br />
ment model is, therefore, a model that works very well in Linux but which<br />
not all projects can permit themselves.<br />
9.1.3. Linux's current status<br />
In early 2007, Linux was at version 2.6, which included, in terms of impro-<br />
vements made <strong>to</strong> version 2.4, NUMA (Non-Uniform Memory Access, used a<br />
lot in multiprocessors), new filesystems, improvements <strong>to</strong> communication in<br />
wireless networks and sound architectures (ALSA) and many other improve-<br />
ments (if you're interested in the details of the changes in respect of previous<br />
versions, you may consult "The wonderful world of Linux 2.6" [186]).<br />
Linux's development model has undergone some changes over recent years.<br />
Although the development mailing list is still the soul of the project, the code<br />
no longer has <strong>to</strong> pass through the list, necessarily. One of the things that have<br />
contributed <strong>to</strong> this in a large way is BitKeeper, a proprietary system that per-<br />
forms revision control, developed by the company BitMover, strictly following<br />
Linus Torvalds' recommendations. The use of this proprietary <strong>to</strong>ol generated a<br />
lot of controversy, in which Linus, true <strong>to</strong> form, demonstrated his pragmatism<br />
again, as for him and many others, the CVS version control system was very<br />
antiquated. The disagreements were brought <strong>to</strong> an end with the development<br />
of git, a revision control system with similar features <strong>to</strong> BitKeeper that is cur-