From owner-freebsd-hackers Mon Jun 11 7:31:49 2001 Delivered-To: freebsd-hackers@freebsd.org Received: from gw.nectar.com (gw.nectar.com [208.42.49.153]) by hub.freebsd.org (Postfix) with ESMTP id D575E37B401 for ; Mon, 11 Jun 2001 07:31:46 -0700 (PDT) (envelope-from nectar@nectar.com) Received: from shade.nectar.com (shade.nectar.com [10.0.1.110]) by gw.nectar.com (Postfix) with ESMTP id 542AAAF61E for ; Mon, 11 Jun 2001 09:31:46 -0500 (CDT) Received: (from nectar@localhost) by shade.nectar.com (8.11.3/8.11.3) id f5BEVV617438; Mon, 11 Jun 2001 09:31:31 -0500 (CDT) (envelope-from nectar) Date: Mon, 11 Jun 2001 09:31:31 -0500 From: "Jacques A. Vidrine" To: Peter Wemm Cc: freebsd-hackers@FreeBSD.ORG Subject: Re: nsswitch dynamically loadable modules Message-ID: <20010611093131.A17422@shade.nectar.com> Mail-Followup-To: "Jacques A. Vidrine" , Peter Wemm , freebsd-hackers@FreeBSD.ORG References: <20010610200113.T89118-100000@fourier.szit.bme.hu> <20010611001723.C9A7F380E@overcee.netplex.com.au> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <20010611001723.C9A7F380E@overcee.netplex.com.au>; from peter@wemm.org on Sun, Jun 10, 2001 at 05:17:23PM -0700 X-Url: http://www.nectar.com/ Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On Sun, Jun 10, 2001 at 05:17:23PM -0700, Peter Wemm wrote: > This is probably why it wont be committed. If it uses dlopen() then it > cannot work for the statically linked /bin/ls, /bin/sh, etc. Anything in / > sbin or /bin will never be able to see the usernames. If you built the > entire system with NOSHARED=NO, then /bin/ls, /bin/sh etc will be dynamically > linked and the patches will probably work. However, you had better have > /usr on your root (/) file system or you wont be able to boot. Linux's > solution is to put the ld.so and libc.so onto the / partition in /lib. This is the evolution I have in mind: nsswitch static only (FreeBSD-CURRENT today) | V nsswitch w/static support for files, dns, nis; modules can be added for other sources; these modules may be compiled statically as part of libc, but would generally be loaded dynamically (this is roughly the stage the prototype was at) | V `module' implementing stubs to communicate with an external process; the external process itself can dynamically load other modules (this is my target before my next commit to -CURRENT) | V (finished) the stub/external process module is a standard way of providing additional sources, giving three ways to `link' in modules: static, dynamic, stub The static & stub cases would support all executables; the dynamic case of course would only be available for dynamically-linked executables. Supporting the `stub' case was the primary cause for designing a new nsdispatch() API. Cheers, -- Jacques Vidrine / n@nectar.com / jvidrine@verio.net / nectar@FreeBSD.org To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message