Page 325 - DCAP103_Principle of operating system
P. 325
Principles of Operating Systems
Notes Windows 2000 is an immensely complex system, now consisting of over 29 million lines of C
code. If printed 50 lines per page and 1000 pages per bound site, the full code would occupy
580 volumes. This opus would occupy 23 running meters of shelf space (for the paperback
version). If arranged in sitecases 1 m wide with 6 shelves per sitecase, the set would occupy a
wall 4 m wide.
A comparison of a few operating system source code sizes is given in Figure 10.3. However, this
table should be taken with a grain (or better yet, a metric ton) of salt because what constitutes the
operating system is different for different systems. For example, the entire window system and
GUI is a part of the kernel in Windows, but not in any UNIX version. It is simply a user process
there. Counting X Windows adds another 1.5 million lines of code to all the UNIX versions,
and that does not even count the GUI code (Motif, GNOME, etc.), which is also not a part of
the operating system in the UNIX world. Additionally, some systems include code for multiple
architectures (e.g., five for 4.4 BSD and nine for Linux), with each architecture adding 10,000 to
50,000 lines of code. The reason Free BSD 1.0 has only 235,000 lines of code whereas 4BSD Lite,
from which it is derived, has 743,000 lines it supports for all. The obsolete architectures (e.g.,
the VAX) was dropped in Free BSD.
Also, the number of file systems, devices drivers, and libraries supplies varies greatly from
system to system. In addition, Windows contains large amounts of test code that UNIX does not
contain as well as some utilities and support for numerous languaged besides English. Finally,
the measurements were made by different people, which introduce considerable variance (e.g.,
did make files, headers, configuration files and documentation count and how much was there?).
This is not like comparing apples with oranges; it is like comparing apples with telephones.
However, all the counts within a single family came from the same source, so intra family counts
are somewhat meaningful.
Despite all these disclaimers, two conclusions are fairly clear:
1. System bloat seems to be as inevitable as death and taxes.
2. Windows is much bigger than UNIX.
Whether small is beautiful or big is beautiful is a matter of heated controversy. The argument
for the former is that small-size and a lean-and-mean mentality produces a manageable, reliable
system that users can understand. The argument for the latter is that many users want lots of
features. In any event, it should also be clear that any students planning to write a full-blown,
state-of-the-art operating system from scratch have their work cut out for them.
Figure 10.3: A comparison of some operating system sizes. The first string in each box is
the version; the second is the size measured in lines of source code, where K = 1000 and
M = 1,000,000. Comparisons within a column have real meaning; comparisons across
columns do not, as discussed in the text.
318 LOVELY PROFESSIONAL UNIVERSITY