From owner-freebsd-hackers Tue Dec 16 02:52:58 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id CAA16008 for hackers-outgoing; Tue, 16 Dec 1997 02:52:58 -0800 (PST) (envelope-from owner-freebsd-hackers) Received: from papagaio.voga.com.br (papagaio.voga.com.br [200.239.39.2]) by hub.freebsd.org (8.8.7/8.8.7) with SMTP id CAA16002 for ; Tue, 16 Dec 1997 02:52:43 -0800 (PST) (envelope-from daniel_sobral@voga.com.br) From: daniel_sobral@voga.com.br Received: by papagaio.voga.com.br(Lotus SMTP MTA v1.06 (346.7 3-18-1997)) id 0325656F.003BC017 ; Tue, 16 Dec 1997 07:52:37 -0300 X-Lotus-FromDomain: VOGA To: tlambert@primenet.com cc: hackers@FreeBSD.ORG Message-ID: <8325656F.0038C91F.00@papagaio.voga.com.br> Date: Tue, 16 Dec 1997 07:52:31 -0300 Subject: Re: Why so many steps to build new kernel? Mime-Version: 1.0 Content-type: text/plain; charset=us-ascii Sender: owner-freebsd-hackers@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk > The existance of mutually exclusive drivers is not friendly. Agreed. But do not forget that mutual exclusion is not the only thing being discussed here. You said prerequisites are not useful either. > There are two types of exclusion: > 1) Screw up: the driver probes are antagonistic to other > hardware. This should be fixed by changing the probe > code. This may not always be fixed, as far as legacy hardware goes. > 2) Screw up: there is more than one driver for the given > hardware. This should be fixed by integration. > Your console example falls into #2, and Johnathan Mini is working > on fixing it. > Do you have other examples? Since you disregarded my RL examples as "will be fixed in the future", I'll bring something from the future to haunt you... :-) FreeBSD creates a driver for device X. Third-party commercial vendor creates another driver for the same device X. Thus, you cannot help but say "hey, use _this_ driver instead of the other one". Now, just so you don't forget, below we discuss mutual exclusions _and_ prerequisites. > > That would kind of work. Except... that structure does not have the > > semantic content for which it is being used, meaning that: > > > 1) If the need later arises for the correct structure, we'll be left with > > the choice of modifying *all* previous structures to the correct one (and > > we all know how hard such things are), or using two different structures > > for the same end. > This is why there needs to be an extensible schema mechanism (like that > of LDAP) instead of a binary structure based mechanism for doing this > sort of thing. > This is why God invented Directories. That is not the point. We use your solution to deal with "legacy" code that has not been "fixed" yet (assuming this is at all possible), and then we stumble on some other "mutually exclusive options" that _cannot_ be solved the way you proposed. We create the "mutual exclusion" structure to solve that problem, and end up with two different structures being used to solve the same problem. See 1) above. As for "binary", I haven't said "binary", I haven't _thought_ "binary". When I say "structure", forget C's "struct". Structure as in "directories is a structure". > > 2) It may lead to pilot error. > Detachable power cords lead to pilot error. Eventually, you have to > cut your losses below a certain level of complexity. Your problem > with this seems to be that BSD isn't below that line. > I think a kernel configurator will just prop up the existing bad > situation, and delay more correct change. Not at all. First, you have yet to show me that we can do without some kind of "what devices/features I want to be loaded/probed" configurator. I *don't have* PCI on my FreeBSD computer, so it is very easy for me to ignore any suggestion that precludes non-PCI hardware. Second, I am not coding anything. Somebody else is, and this somebody choose to deal with the problem at this level. I'm just making suggestions in the hope that he won't screw up in the process he has choosen to deal with. > > 3) It's a hack and should be banned to hell. > > > Terry, are you suggesting a backward compatibility hack (with tradition, > > not even code!) instead of doing the right thing??? > "Backward compatability hack"? ELF archiver? > What ELF system are *you* running on?!? Elf? You said "rc.conf". You were talking about using sections instead of prerequisites to deal with the "history buffer only with syscon" problem. So, you propose a solution that does not deal directly with the problem, by stating explicitly "this only if that", which has potential problems as shown above, and say your solution has historical precedent, exemplifying with rc.conf. Terry, it would be more productive if you choose one of the two solutions you proposed: 1) Don't. Kernel configuration should go away. (In this case, just stay away from the discussion, as it's about kernel configuration, like it or not) 2) Use this and that. (In this case, deal with the issues at hand instead of directing problems to your solution to 1) > > You mean there won't be no need for a build-time configurator if and when > > we get to the perfect world, right? Because, right now, I can't seem to get > > along without config... > And the more you enhance it, the less likely that people will do anything > about moving the code forward in this area. "Good Enough" is the enemy > of "Better". That's a valid point of view, though I think it is flawed. Anyway, if that's your opinion, why are you discussing how the kernel configurator file should be structured?