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.