[comp.os.misc] Multics -vs- Unix sizes

daveb@geac.UUCP (10/16/87)

  Since I started this discussion with a snide signature, I figure I
better get my facts right...  For anyone who was interested, I was
basing the comment on a figure of 435 k lines for 4.3bsd in an
article by Brad Cox (IEEE Software, January 1984, p 50ff) which I
knew was larger than the hard-core supervisor and ring 1.

  With the information from William Sommerfield, we have
approximately the following:

                      Kernel/Sup.     TCP/IP       Whole System
                    Multics  Unix  Multics  Unix  Multics  Unix
-------------------+--------------+--------------+---------------+
executable (bytes) |    ?     ?   | 230 k  ~65 k | 45,000 k  ?   |
                   |              |   [a]    [a] |      [b]      |
-------------------+--------------+--------------+---------------+
source (lines)     |              |              |               |
        C or PL/1  | 160 k    ?   |   ?      ?   |  2,000 k  ?   |
        other hll  |              |              |    165 k  ?   |
        assembler  |  70 k        |              |    224 k  ?   |
        total      | 230 k   65 k |              |  2,389 k  ?   |
                   |   [b]    [b] |              |      [b]      |
-------------------+--------------+--------------+---------------+

  This strongly implies that I was out to lunch.

  Can Mr Sommerfield and others on the net help me fill in the
blanks, and possibly refine some of the figures?  I'd like to use
that signature again...

 --dave (GCOS is alive, well and living on the Riviera) c-b


[a] William E. Sommerfeld <1553@bloom-beacon.MIT.EDU>
As for sizes.. Looking in >lib>net>e on MIT-Multics, I see about 50
records (of 1024 36 bit words each) of object segments which correspond
to the BSD /sys/netinet kernel code.  That's about 230K 8-bit bytes..
about 1/2 of a 4.3BSD+NFS VAX kernel (including the symbol table).

  From: guy%gorodish@Sun.COM (Guy Harris)
  I presume the VAX figure is for the entire kernel, not just the
  "/sys/netinet" code.

[b] William Sommerfeld <1574@bloom-beacon.MIT.EDU>
The Multics hardcore supervisor (roughly equivalent to the UNIX kernel
less its network & socket code) is about 160k lines of PL/1 and
70k lines of "non-PL/1" (assembler, mostly).

By comparison, the equivalent part of the VAX BSD+NFS kernel (/sys/h,
/sys/ufs, /sys/vax, /sys/vaxuba, /sys/vaxmba, and /sys/sys less
/sys/sys/uipc_*) is about 110k lines, of which about half are
device drivers; of the device drivers, maybe 1/4 are in use on an
average system.  So, it's about 230k lines for Multics vs. about
65k for an equivalent section of BSD unix.

For the *total* Multics system as of 1985, someone counted about 2
million lines of PL/1 source, 224 thousand lines of assembler source,
and 165 thousand lines of "other source", compiled into 10 million 36
bit words of object code (that's 45 MB).

-- 
 David Collier-Brown.                 {mnetor|yetti|utgpu}!geac!daveb
 Geac Computers International Inc.,   |  Computer Science loses its
 350 Steelcase Road,Markham, Ontario, |  memory (if not its mind)
 CANADA, L3R 1B3 (416) 475-0525 x3279 |  every 6 months.