From owner-freebsd-arch@FreeBSD.ORG Mon Jun 9 03:57:41 2003 Return-Path: Delivered-To: freebsd-arch@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4830337B401 for ; Mon, 9 Jun 2003 03:57:41 -0700 (PDT) Received: from mta02ps.bigpond.com (mta02ps.bigpond.com [144.135.25.134]) by mx1.FreeBSD.org (Postfix) with ESMTP id CCAF143FAF for ; Mon, 9 Jun 2003 03:57:39 -0700 (PDT) (envelope-from areilly@bigpond.net.au) Received: from areilly.bpc-users.org ([144.135.25.69]) by mta02ps.bigpond.com (Netscape Messaging Server 4.15 mta02ps Jul 16 2002 22:47:55) with SMTP id HG7NRX00.BNJ for ; Mon, 9 Jun 2003 20:57:33 +1000 Received: from cpe-144-132-191-61.nsw.bigpond.net.au ([144.132.191.61]) by psmam01bpa.bigpond.com(MAM $Name: REL_3_3_2b $ 71/6787786); 09 Jun 2003 20:57:33 Received: (qmail 8073 invoked from network); 9 Jun 2003 10:57:34 -0000 Received: from localhost (HELO ?127.0.0.1?) (andrew@127.0.0.1) by localhost with SMTP; 9 Jun 2003 10:57:34 -0000 From: Andrew Reilly To: Terry Lambert In-Reply-To: <3EDD7CFA.4795FB99@mindspring.com> References: <20030602171942.GA87863@roark.gnf.org> <20030603080456.GA57773@cirb503493.alcatel.com.au> <3EDD7CFA.4795FB99@mindspring.com> Content-Type: text/plain Organization: Message-Id: <1055156254.1799.10.camel@gurney.reilly.home> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 09 Jun 2003 20:57:34 +1000 Content-Transfer-Encoding: 7bit cc: Matthew Dillon cc: arch@freebsd.org Subject: Re: Making a dynamically-linked root X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2003 10:57:41 -0000 On Wed, 2003-06-04 at 15:00, Terry Lambert wrote: > The main problem we ran into with doing this on the InterJet > was thatsome services started later would finish starting > before earlier services on which they were dependent. > [examples] > > People try to pretend that the dependencies that exist are > between programs, but they're actually between service > providers and service consumers, and largely independent of > the programs providing the services. On top of that, the > dependencies tend to be both hard and soft, e.g. it's possible > to continue to offer a degraded service, rather than failing > outright, if some dependent services aren't there (e.g. you > can log by IP address if DNS isn't up to provide reverse > name mappings to look pretty in your logs, etc.). That there are dependencies between services is unarguable, but I wonder how much of that really needs to be codified in startup orders, and how much can be sorted out dynamically, by making the implementations of these services robust in the absence of their dependencies. Maybe that path is more trouble than just codifying a dependency graph. Which was what was so good about the traditional, linear, rc script, of course. I haven't analysed the startup in any great detail myself, but as far as I can tell, my "djb land" does indeed all start up in parallel, and the various pieces just cope until the others are up. That's qmail, djbdns and tinydns. There's certainly no dependency or causality encoded explicitly in the /service directory. I've thought about moving other services that currently run from /usr/local/etc/rc.d (i.e., things that the system doesn't care about) to run from /service in the same way, but lack of circular tuits has prevented me, thus far. Cheers, -- Andrew Reilly