Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 22 Nov 1997 02:14:25 -0500 (EST)
From:      Evan Champion <evanc@synapse.net>
To:        Jonathan Mini <j_mini@efn.org>
Cc:        Poul-Henning Kamp <phk@critter.freebsd.dk>, Bruce Evans <bde@zeta.org.au>, mike@smith.net.au, freebsd-current@FreeBSD.ORG
Subject:   Re: Stripping the kernel
Message-ID:  <Pine.BSF.3.96.971122012413.3940H-100000@cello.synapse.net>
In-Reply-To: <19971121155649.49582@micron.mini.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 21 Nov 1997, Jonathan Mini wrote:

> Evan, you are absolutely right. It is Bad and Evil to read things out of the
> kernel memory. I have hated it from the start. However, look at the uses of
> the kernel tompling, and come up with an effective efficient way to do the same
> things, and I will even write it for you. :)

Well, maybe that's the first step...  Find everything that has to use
nlist() etc. to work, and see if there's not already another way they
could be implemented. 

As a test, I grepped for 'nlist(' in /usr/src and there are only circa 87
matches (that really call nlist) in 50 different files.  A large part of
this should be available from sysctl() and co. 

As examples, the following should be fully satisfied by sysctl():

sendmail -> load average.
xntpd -> tickadj.
named -> UDP checksum state.
libpcap -> seems to only use it on HPUX

The following can be at least partially satisfied by sysctl():

ipsend -> max number of processes (proc & nproc).
ps -> pagesize.

And some are just for implementing nlist, ie: libkvm, libc/gen/nlist.c. 
If nlist() and co. disappeared, so would the need for those libraries... 

The problem spots are mainly things like savecore (whose soul purpose is
to operate on symbol tables) and the device-driver-specific programs (like
ncrcontrol). I think the device-driver-specific programs could be
implemented using device-specific ioctl's (as the DPT driver does).  I
don't have a nice solution for savecore and co.  But there seems to be at
least some hope here.

Evan




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.96.971122012413.3940H-100000>