Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site inset.UUCP Path: utzoo!watmath!clyde!burl!ulysses!mhuxr!mhuxt!houxm!whuxl!whuxlm!akgua!mcnc!philabs!cmcl2!seismo!mcvax!ukc!qtlon!ist!inset!mikeb From: mikeb@inset.UUCP (Mike Banahan) Newsgroups: net.arch,net.micro.16k,net.micro.68k Subject: Re: 24 bit vs. 32 bit address space Message-ID: <523@inset.UUCP> Date: Thu, 21-Mar-85 18:11:37 EST Article-I.D.: inset.523 Posted: Thu Mar 21 18:11:37 1985 Date-Received: Tue, 26-Mar-85 16:14:36 EST References: <983@watdcsu.UUCP> <2385@nsc.UUCP> <730@amdcad.UUCP> Organization: The Instruction Set Ltd, London Lines: 39 Xref: watmath net.arch:1038 net.micro.16k:298 net.micro.68k:691 To (probably mis-)quote a well known axiom of computing: "There are only three sensible ways of allocating any resource: to have none of them to have only one of them or to have more than enough" It goes for registers, segments, address bits or anything that you like. A shortage of a resource forces concentration on why it is needed. Sometimes this is a good discipline, sometimes bad. I remember an ALGOL60 compiler which supported the full language and ran in 4k (yes, no mistake) bytes on a PDP11; that was because there were only 8k of them available and it needed some headroom for the stack. I also remember a FORTRAN compiler for the same machine that took some 50 odd k just because of the overlaying it had to use; without an arbitrary and unnatural constraint on its storage requirements it would have got by in far less. The restraint was good, in that it concentrated the mind of the ALGOL compiler writer who might otherwise have got lazy, it was just a d****d nuisance for the FORTRAN hacker. The UNIX (a very chauvinistic) community would do well to look at MULTICS (or 4.xBSD and vread vwrite) and to contemplate why files exist. Why are they there? They are an unpleasant fix to the lack of an unconstrained segmented address space. Read and Write are a hack around the `obvious' solution of attaching to a named address space and assigning to or accessing the value of the notional structures that it contains; be they bytes or records. Why use lseek(2) when you could have pointers? There is no solution. The best thing that could happen would be to have ann infinite number of segments with an unlimited address space in each. The feasability of this is nil. All other arguments are simply those of which compromise is best; whether it is better to be rich and sick or poor and well, or to be comfortable but with a bit of a twinge in the back now and then............... -- Mike Banahan, Technical Director, The Instruction Set Ltd. {decvax!mcvax}!qtlon!inset!mikeb