Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!mcsun!unido!rwthinf!shiva!windy From: windy@shiva.informatik.rwth-aachen.de (Andrew John Stuart Miller) Newsgroups: comp.os.minix Subject: Re: Multi-segment MINIX Message-ID: Date: 23 May 91 09:34:30 GMT References: <1515@cbmnlu1.cbm.nl> <9105191048@uwalt.nl.mugnet.org> Sender: news@rwthinf.UUCP Lines: 47 waltje@uwalt.nl.mugnet.org (Fred 'The Rebel' van Kempen) writes: >The problem is, of course, the compiler. The poor thing has to decide >when to use inter-segment calls and jumps, and when to use intrasegment >ones. Same goes for memory ("data") references. >Of course, a call to a function in the same segment is faster than a >similar call to a function in another segment. Alas, that is the Joy >of a Small iNTEL machine... :-( I doubt one would want to make this official, but the compiler and the oerating could both benefit from an idea from OS9. Procedures defined and used in the program source could be compiled into the usual user segments. Library proceudures could be compiled into memory resident modules, which the compiler knows will always be far calls. This brings the following advantages code and data segments could be smaller => larger processes possible modules could be shared between programs eg vi origami grep and emacs and (etc) could all share a regexp module vi origami and emacs share curses all programs share stdio etc. (bad example, but you get the idea?) This together with shared text, which has already been done for iNtel would mean that a high degree of multiprogamming can be done even in 640k There is of course a cost:- many things run more slowly. A new linker is needed. (ie as ld etc new to cope with modules) mm needs to be modified to keep track of modules in store. exec needs to be modified to perform run time linking of modules (?) ( the addresses of the segments for the modules depend on the configuration how many modules are loaded, the order of loading etc....) This is something I keep on meaning to get round to doing, but:- a) I haven't got the time b) I'm giving up using Intel processors for mental health reasons! If I do get round to it, I will post it.... Andrew