Newsgroups: comp.os.mach Path: utzoo!geoff From: geoff@zoo.toronto.edu (Geoffrey Collyer) Subject: Re: Bytes in Mach 3.0? (mine is smaller than yours, revisited) Message-ID: <1991Feb16.002946.5711@zoo.toronto.edu> Organization: U of Toronto Zoology References: <1991Feb14.220240.26795@ico.isc.com> <62753@bbn.BBN.COM> <1991Feb15.214231.21348@watmath.waterloo.edu> Date: Sat, 16 Feb 1991 00:29:46 GMT Dick Dunn: >> >My confusion stems from the understanding that the Mach 3.0 kernel >> >is supposed to be the "micro-kernel" version, and the belief that a 240 Kb >> >kernel cannot reasonably be labeled "micro". Fletcher Kittredge: >> Sure, how familar are you with modern operating systems? 245K of text >> with 31k of data is *VERY* small for a UNIXoid kernel. For example, >> here is the size of the Unix kernel on Sun, DEC and HP systems: Guy Middleton: >I don't think it is all that small. 4.3bsd on a VAX has text of similar size: > >text data bss dec hex >229784 166320 90048 486152 76b08 > >Note that it is probably more fair to compare 386 with VAX binaries than with >SPARC, MIPS or HP-PA, since RISC code tends to occupy more space. Here are some more `macro' kernel sizes, from a Sun 3 running a hybrid Ninth Edition system (dak's 9vr1, for those who know what that means): text data bss dec hex 200540 41084 311848 553472 87200 /unix This kernel is configured for 8 users and includes a very generous allotment of streams buffers, a couple on-disk file systems (bitmapped and non-bitmapped free lists), /proc, the client side of a network file system (netb), TCP/IP, and various goo left over from the Sun system (e.g. keyboard mapping line discipline). Please note that the Mach ``micro-kernel'', at least as recently distributed, is claimed to exclude networking and file system code, among other things, if memory serves. So one is left to wonder why a micro-kernel which one would expect to be stripped-down and tight, is somewhat larger and much less functional than a macro kernel. One can argue that the Bell Labs Research people are brilliant and thus produce smaller kernels and that Memory Is Cheap So Who Cares (if one is willing to ignore the increased complexity that usually accompanies increased size) but none of that really explains this large discrepancy. Certainly breaking up tightly-integrated code into separate modules produces some increase in code size, but this is incredible. And ignoring object size, a "wc -l" on the newly-available Mach 3.0 micro-kernel produced 102,821. A quick inspection reveals copyright notices, RCS revision history logs and 40-character identifiers all over, but surely that only accounts for a quarter of this size at most. Even the above-named more-functional macro kernel is only 78,420 lines, much of it inherited from SunOS. -- Geoff Collyer utzoo!geoff, zoo.toronto.edu!geoff