Article View: comp.arch
Article #3378Re: IBM PC prehistory
From: John R. Levine
Date: Tue, 16 Jan 1990 05:56
Date: Tue, 16 Jan 1990 05:56
21 lines
1667 bytes
1667 bytes
In article <380@bambam.UUCP> bpendlet@bambam.UUCP (Bob Pendleton) writes:
>> I would suggest that an MMU is necessary for anything which wants to
>> implement fork() while allowing two tasks to occupy memory at once.
>My conclusion is that you've never heard of a relocating loader.
Don't be so rude, he's right. When you do a fork, you create two copies
of the same program. In the absence of an MMI either they have to run at
different addresses or you have to do the old mini-Unix hack of only swapping
in one program at a time.
Coding a program so that it can be moved while it's running is a lot harder
than a relocating loader. Either you have to tag every single pointer that
the program uses, which is impractical in C, or else you need a coding style
that reserves some registers as base pointers and make all memory references
relative to the base pointers. It's been done, but it's pretty gross and
depends critically on the good will and non-bugginess of the compilers.
--
John R. Levine, Segue Software, POB 349, Cambridge MA 02238, +1 617 864 9650
johnl@esegue.segue.boston.ma.us, {ima|lotus|spdcc}!esegue!johnl
"Now, we are all jelly doughnuts."
Technical Details
Message-ID:
<1990Jan16.055625.8255@esegue.segue.boston.ma.us>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!snorkelwacker!spdcc!ima!esegue!johnlReferences:
<7413@drilex.UUCP> <380@bambam.UUCP>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!snorkelwacker!spdcc!ima!esegue!johnl From: johnl@esegue.segue.boston.ma.us (John R. Levine) Newsgroups: comp.arch Subject: Re: IBM PC prehistory Message-ID: <1990Jan16.055625.8255@esegue.segue.boston.ma.us> Date: 16 Jan 90 05:56:25 GMT References: <7413@drilex.UUCP> <380@bambam.UUCP> Reply-To: johnl@esegue.segue.boston.ma.us (John R. Levine) Organization: Segue Software, Cambridge MA Lines: 21