I keep to keep track of the size of different operating systems that I come into contact with or hear about. I'm not sure why. Perhaps partially because I believe the systems we design today are too complex. And perhaps partially to act as a reminder of the difference between academia and the real world.
lines of code Synthesis (Sun 3) 5k experimental kernel read it somewhere Plan 9 (SG Power) 15k experimental kernel dmr@research.att.com V (Sun 3) >15k experimental kernel measured? Unix 32/V (VAX) 17k basic unix measured Minix 1.5 (286) 30k basic unix measured Tenth Edition Unix (VAX) 40k unix read it somewhere Ninth Edition Unix (Sun 3) 80k unix read it somewhere BSD 4.3 (VAX) 90k unix measured BSD 4.3 Tahoe (VAX) 100k unix measured System V R3.2 (3b2) 120k unix measured Linux 0.99.9 (x86) 90k unix measured Linux 1.1.62 (x86) 270k unix adam@yggdrasil.com AIX 3.2.0 (Power) 500k unix anon. NetBSD 1.0 (x86) 350k unix deraadt@fsa.ca NetBSD 1.0 (all 6 archs.) 700k unix deraadt@fsa.ca SunOS 4.0.3 (Sun 3 + Sun 4) 440k unix measured SunOS 4.1.3 (Sun 4) 470k mp unix measured SunOS 5.0 (Sun 4) 560k mp unix measured SunOS 5.1 (Sun 4) 650k mp unix measured SunOS 5.2 (Sun 4) 680k mp unix measured IRIX 5.3 (MIPS) 570k mp unix lm@sgi.com Umax 4.2 (NS32k) 280k mp unix measured Mach 2.0 (VAX) 140k mp unix (minimal kernel) measured Mach 2.0 (VAX) 400k mp unix (full kernel) measured Mach 3.0 (x86) 100k mp distributed kernel ? Chorus 3.2 (x86) 60k mp distributed kernel measured Chorus 3.2 + SVR3 (x86) 200k mp distributed kernel and unix measured
lines of code Minix 1.5 (x86) 170k measured Unix 32/V (VAX) 180k measured BSD 4.3 (VAX) 640k measured System V 3.2 (3b2) 960k measured Mach 2.0 (VAX) 1000k measured BSD 4.3 Tahoe (VAX) 1000k measured Umax 4.2 (NS32k) 1800k measured SunOS 4.03 (Sun 3, Sun 4) 2400k measured NT (x86) 4000k from Unigram