Xref: utzoo comp.arch:6523 comp.lang.misc:1974 Path: utzoo!attcan!uunet!sugar!ficc!peter From: peter@ficc.uu.net (Peter da Silva) Newsgroups: comp.arch,comp.lang.misc Subject: Re: Machine-independent intermediate languages Keywords: virtual machine language design Message-ID: <1750@ficc.uu.net> Date: 10 Oct 88 14:25:21 GMT References: <853@goofy.megatest.UUCP> <815@super.ORG> Organization: SCADA Lines: 21 In article <815@super.ORG>, rminnich@super.ORG (Ronald G Minnich) writes: > Let's see now, if i change BCPL to C and Burroughs to 386 > in the above, i think that describes what C on the 386 does- each > process uses one BIG segment for its entire address space, thus not > using the 386 segments. This is a UNIX assumption, not a 'C' one. 'C' works just fine with non- contiguous segments *if* the segments can be made large enough for any given memory object. 'C' has definite problems with memory objects bigger than a segment. Many languages do, actually... most just hide them better. UNIX, however, likes each address space to be contiguous. Look at the behaviour of sbrk(), for example. If you can get your programs all using a higher level construct (say, malloc) this system call can be removed and the 386 cn be more effectively utilised. Unfortunately, there are programs (/bin/sh, for example) that depend on sbrk. (actually, what /bin/sh does can't be explained in polite company). -- Peter da Silva `-_-' Ferranti International Controls Corporation. "Have you hugged U your wolf today?" peter@ficc.uu.net