Date: Sat, 7 Jan 2006 07:31:20 +1100 From: Peter Jeremy <PeterJeremy@optushome.com.au> To: freebsd-stable@freebsd.org, current <current@freebsd.org> Subject: Re: FreeBSD Update is the binary update solution [Re: HEADS UP: Release schedule for 2006] Message-ID: <20060106203120.GE51452@cirb503493.alcatel.com.au> In-Reply-To: <20060106103440.GB54324@svcolo.com> References: <20060105093220.GJ1358@svcolo.com> <200601050947.k059lctk024288@hugo10.ka.punkt.de> <20060106103440.GB54324@svcolo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 2006-Jan-06 02:34:40 -0800, Jo Rhett wrote: >On Thu, Jan 05, 2006 at 10:47:38AM +0100, Patrick M. Hausen wrote: >> While I agree with much of your reasoning, I know exactly zero >> people running a modified kernel of any version of Windows, >> Mac OS X or Solaris, to name just three commercial OS's. > >You're tickling a different subject here. All three of these operating >systems have loadable kernel modules that work. As does FreeBSD. > I mean, they dynamically >load the modules they need, and you can disable kernel modules in >configuration files. FreeBSD has loadable kernel modules, but they don't >autoload (you have to modify rc files) This isn't quite true. FreeBSD does not currently have the tools to automatically load kernel modules for most hardware device drivers and they need to either be built into the kernel or specified in loader.conf. Writing a tool to do this automatically would be fairly simple - either use pciconf(8) and a database of PCI ID to driver mappings or (as Solaris and X do) load every module and see if it can attach to anything, unload it if it can't. To date, no-one has been sufficiently motivated to do so. FreeBSD will autoload kernel modules for many software functions if their functionality is required (NFS, SysV IPC, firewalls). In some cases this is automatic (NFS client loads automatically if NFS filesystems are found). In other cases, (eg firewalls) you need to configure the functionality anyway. > and you can't trim down the kernel >to minimize unused memory without recompiling. In the absence of tools to automatically detect your configuration and load the appropriate modules, GENERIC includes a fairly standard set of drivers that also exist as modules. GENERIC probably could be cut down somewhat but this isn't the forum to discuss that. >To give you a specific example: if we could remove NFS and the 3ware >driver from the kernel in a configuration file, we could probably run >GENERIC. IMHO, NFS server could be removed without problems (it will autoload), as could tw{a,e} (which are loadable). NFS client can't be removed because it has to be built in to support diskless operation. >hog we have to remove on small footprint systems FreeBSD has never claimed to optimally support small footprint systems without customisation. There are too many variables and some kernel functionality can't be readily converted to modules (eg IPv6 support). In any case, the way to minimise the kernel footprint is to statically load all the required functionality and not have any modules. -- Peter Jeremy
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060106203120.GE51452>