From mboxrd@z Thu Jan 1 00:00:00 1970 From: geoff@collyer.net To: 9fans@cse.psu.edu Subject: Re: [9fans] Virtual memory & paging MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Message-Id: <20020205105739.AF44019999@mail.cse.psu.edu> Date: Tue, 5 Feb 2002 02:57:29 -0800 Topicbox-Message-UUID: 4bb405dc-eaca-11e9-9e20-41e7f4b1d025 I didn't say that "we can't write an implementation without bugs", merely that the existing implementations I'm familiar with have made the system slower (e.g., adding shared libraries in SunOS 4.0 hugely slowed down the fork system call of even the smallest possible process), added complexity to the system and for the users (more kernel code, two sets of libraries [shared and unshared], static vs. dynamic link decisions, run-time loader paths, extra process start-up processing), usually coped poorly with set-id programs, and the extra complexity made the system more fragile in single-user mode (you need all the right shared libraries on the root filesystem) and when manipulating libraries generally. So I don't believe I've seen an existence proof that shared libraries can do more good than harm; maybe they can, but given the evidence to date, I'm skeptical. And given that we (outside the Labs anyway) don't have the problem that made people add shared libraries to Unix, X, and that our binaries are at least competitive in size with systems that do have shared libraries, and that one can just add RAM cheaply to avoid swapping anyway, why bother? Adding unneeded goo like shared libraries to a system just makes it bigger, at minimum. Depending upon the quality of the implementation, it may also make it slower, more complex and fragile, and create new security holes. Such a deal.