Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!wuarchive!rice!uupsi!sunic!isgate!krafla!adamd From: adamd@rhi.hi.is (Adam David) Newsgroups: comp.os.minix Subject: Re: (shared libraries) Message-ID: <3142@krafla.rhi.hi.is> Date: 14 May 91 14:24:13 GMT References: <53470@nigel.ee.udel.edu> Organization: University of Iceland Lines: 27 In <53470@nigel.ee.udel.edu> wjb%cogsci.COG.JHU.EDU@vm1.nodak.edu writes: >Jan-Mark (jms%cs.vu.nl) wrote: >>I do agree that some functions should be in a shared library, >>and some should not, but where IS the complexity, mentioned? >>[...] The kernel should only need a new system call. (eg. >>``slibcall (int num);'') > This has the effect of turning EVERY library call into a >message/system call. The STDIO functions were originally written for Unix >to provide a standard set of IO/formatting functions and to provide buffering >in order to reduce the number of system calls. This method of >implementation will actually increase the number of system calls. (printf() >still has to do a write().) Shared libraries might be a good idea, but I >don't think this is the right way to do it. How about implementing a trap (680x0) or int (80x86) handler for the library calls. Those library calls which are used extensively, (for instance within the minix system itself) can be made resident (non-purgeable) and less used routines brought in as required. If the trap / int chosen is made to bypass message-passing altogether then the message overhead is kept reasonable, at least for those routines which don't need any intervention from the FS because they are permenantly resident or already present from a previous fetch. -- Adam David. adamd@rhi.hi.is