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
   320   321   322   323   324   325   326   327   328   329   330