Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site peora.UUCP Path: utzoo!watmath!clyde!burl!ulysses!mhuxr!mhuxt!houxm!vax135!petsd!peora!jer From: jer@peora.UUCP (J. Eric Roskos) Newsgroups: net.arch Subject: Re: inside the OS vs. outside the OS Message-ID: <762@peora.UUCP> Date: Wed, 27-Mar-85 09:05:11 EST Article-I.D.: peora.762 Posted: Wed Mar 27 09:05:11 1985 Date-Received: Thu, 28-Mar-85 03:09:11 EST References: <501@harvard.ARPA> <5329@utzoo.UUCP> Organization: Perkin-Elmer SDC, Orlando, Fl. Lines: 42 > Because if it isn't done in a central place, history shows programmers > don't bother doing it at all. To a certain extent, all the discussions over the past week or so about what should be "in the kernel" or not miss the point made by the above comment. There are only a handful of reasons for having something "in the kernel": 1) So it will be accessible to all users. This, of course, is what a central library of subroutines does, but putting it in the kernel encourages all the various compiler-writers to use it instead of inventing their own. 2) So all users will have to use it. This is a stronger form of (1), provided to force a stronger degree of uniformity. It fails when the facility "in the kernel" is not sufficiently general, or is so general that performance suffers. 3) So that it will have access to resources that are inaccessible to code "outside the kernel," e.g., privileged instructions, access to device control facilities, higher-priority execution, etc., in order to mediate and protect allocation of these resources to the code "outside". Only #3 above (of the items I've listed) HAS to be in the kernel, if the kernel is that portion of the code running on a machine that has access to restricted resources. There are other reasons related to (3) that make it beneficial to put the other two in the kernel on a particular machine -- for instance, the PDP-11 front ends on the PDP-10-based operating systems mentioned before (TOPS20; also TOPS10) are limited resources whose performance would be degraded if user processes were allowed to be loaded into them, eventhough you could conceivably allow ordinary users to download their TTY handling routines into them (assuming proper protection) -- but those are matters of optimization. -- Full-Name: J. Eric Roskos UUCP: ..!{decvax,ucbvax,ihnp4}!vax135!petsd!peora!jer US Mail: MS 795; Perkin-Elmer SDC; 2486 Sand Lake Road, Orlando, FL 32809-7642 "Not that the story need be long; but that it will take a long time to make it short." -- H. D. Thoreau