[comp.arch] FSF

lawitzke@eecae.UUCP (John Lawitzke) (09/16/87)

Subject: Re: Re: Free Software Foundation (was: Re: Mach, the new standard?)
Newsgroups: comp.arch,comp.unix.wizards,comp.os.minix
References: <8490@think.UUCP>
> Hmm...seems to me that you could implement fork() on an 8086, if you
> used a small memory model and programs cooperated (didn't play with
> the segment registers).  The PDP11 didn't have virtual memory either,
> if my memory serves me.  To run multiple processes concurrently you
> need memory management, but not necessarily virtual memory.  To fork,
> you need some way of creating distinct address spaces.  You certainly
> don't need virtual memory.

However, the PDP11 (I used the 11/23) has a memory management chip
that chops memory into 8K pages. With the 8086 you'd have to figure 
out how keep one area of memory system writable only and in this area
keep track of used segments. Of course then you have 64K pages.......
Also, how could you force users not to write to segment registers?

-- 
j                                UUCP: ...ihnp4!msudoc!eecae!lawitzke
                                 ARPA: lawitzke@eecae.ee.msu.edu  (35.8...etc]t

peter@sugar.UUCP (Peter da Silva) (09/20/87)

> [why not replace fork() with spawn()]

[spawn == load-and-execute a new program]

Have you ever used a system where the basic process creation primitive
was spawn? There's lots of stuff you can't do. fork() is a more powerful
tool than spawn(). It'd be nice to have both, but not necessary.

> [how do you implement fork in an IBM-PC]

You copy the whole address space. No big deal: it's less than 128K.

> [how can you force users not to overwrite segment registers in IBM-PC UNIX]

You can't. It's not a 100% secure system, but it's fine for a personal
computer.
-- 
-- Peter da Silva `-_-' ...!hoptoad!academ!uhnix1!sugar!peter
--                 'U`  Have you hugged your wolf today?