On 01-Jul-00 Jordan K. Hubbard wrote:
>> Yes he did. Talk to various committers and you'll see that many have
>> ideas where files should live. There have been long threads on this
>> issue that got nowhere. The reason things are in such a messy state is
>> when something new is brought in, or is changed suffiently much for a
>> repo copy the person take the chance to put the files where *they* think
>> they should live. Vs. where there would be consistency in the /sys tree.
>
> Talking to "various committers" will only yield various opinions and
> end up leading nowhere, however. Perhaps if someone were to take
> it upon themselves to post a detailed proposal of where things should
> be moved to, others could at least comment more authoritatively
> (and substantially) on the topic rather than just engaging in more
> vague hand-waving.
I feel masochistic at the moment, so here's a suggestion. Feel free
to rip it all up to pieces, ya'll. And to start off: I like green
bikesheds. (I.e. let's settle on something sensible and not get
_too_ involved, please, or just shoot the whole idea down and enjoy
our sphaghetti)
Current directory structure:
sys/
${MACHINE_ARCH}/ - MD stuff
conf/ - MD kernel config files
${MACHINE_ARCH}/ - MD code
include/ - MD includes
... - various MD modules such as binary compat
boot/ - bootstrap
${MACHINE_ARCH}/ - MI boot code
cam/ - cam subsystem
coda/ - coda fs
compile/ - compile work directory
conf/ - MI kernel config files
contrib/ - 3rd party kernel code
crypto/ - kernel crypto code
ddb/ - DDB
dev/ - several device drivers
fs/ - one file system
gnu/ - GNU kernel code
i4b/ - ISDN support
isa/ - MI ISA base code and a few drivers such as joy0
isofs/ - CD9660 fs
kern/ - MI kernel code such as new-bus, vfs, init, etc.
libkern/ - libc for the kernel
miscfs/ - several fs's such as deadfs, devfs, etc.
modules/ - skeleton for the modules
msdosfs/ - MS-DOS FAT fs
net/ - some network drivers such as ppp, slip, bpf, and
generic network interface support
netatalk/ - support for Appletalk network
netatm/ - support for ATM network sockets
netgraph/ - the spiffy netgraph system
netinet/ - IPv4, TCP, UDP
netinet6/ - IPv6, IPsec, TCP and UDP glue
netipx/ - IPX/SPX
netkey/ - undocumented key management protocol - RFC 2367
netnatm/ - native mode ATM
netncp/ - Netware client protocol
netns/ - Xerox NS, including IDP and SP
nfs/ - NFS
ntfs/ - NTFS
nwfs/ - Netware FS
pccard/ - PC card drivers
pci/ - MI PCI code and some drivers, notably PCI network cards
posix4/ - random POSIX code bucket
svr4/ - SVR4 binary compatibility
sys/ - kernel includes
ufs/ - UFS, FFS, and MFS
vm/ - VM system
Ok (/me dons the asbestos suit, climbs into the concrete room and locks
the door.) Here is my proposal. It attempts to follow these loose guidelines:
- MD code under sys/${MACHINE_ARCH}
- device drivers (including bus's such as cam and usb) under sys/dev
- file systems under fs/
- networking under net/
sys/
${MACHINE_ARCH} - stay the same, except add boot/ subdir
boot/ - formerly sys/boot/${MACHINE_ARCH}
boot - just MI boot code now. Depending on portability
of ARC, possibly move boot/arc under
sys/alpha/boot
compile/ - no change
conf/ - move NOTES to here from sys/i386/conf, but leave
it the same for now
contrib/ - stay the same. It mirrors the organization of
sys/. For example, contrib'd device drivers under
contrib/sys/dev, which is where they are now.
crypto/ - no change
ddb/ - no change
dev/ - everything in there now plus some extras
cam/ - formerly sys/cam
i4b/ - formerly sys/i4b
isa/ - formerly sys/isa, this just cintains the support
code for the ISA bus, actual device drivers such as
joy0 would move into sys/dev/<mumble>
pccard/ - formerly sys/pccard
pci/ - formerly sys/pci, split up just as sys/isa
fs/ - everything in there now plus some extras
codafs/ - formerly sys/coda
isofs/ - formerly sys/isofs
msdosfs/ - formerly sys/msdosfs
nfs/ - formerly sys/nfs
ntfs/ - formerly sys/ntfs
nwfs/ - formerly sys/nwfs
gnu/ - No big change, but make it mirror sys/ as contrib
does. As a result, sys/gnu/ext2fs ->
sys/gnu/fs/ext2fs.
kern/ - no change
libkern/ - no change
miscfs/ - contents move to fs/. E.g., sys/miscfs/deadfs ->
sys/fs/deadfs
modules/ - no change
net/ - move existing contents to net/base or something similar
atalk/ - formerly sys/netatalk
atm/ - formerly sys/netatm
netgraph/ - formerly sys/netgraph
ip/ - IPv4, IPv6, and IPsec bits from sys/netinet{,6}
tcp/ - TCP " " " "
udp/ - UDP " " " "
ipx/ - formerly sys/netipx
key/ - formerly sys/netkey
natm/ - formerly sys/netatm
ncp/ - formerly sys/netncp
ns/ - formerly sus/netns
posix4/ - move the code to where it belongs.. i.e. scheduler stuff
in kern, etc. If it is desirable to keep this split out
such as gnu/ and contrib/ then treat it like gnu/ and
contrib/. I'm not as firm about this one and am willing
to just let it be if it isn't folded into the rest of the
tree, however.
svr4/ - first, is this MI? If it isn't, then move it under
sys/i386/ where it belongs. If it isn't, then I presume
our binary compatibility code is going to have some more
MI code in the future, so create sys/compat/{linux,svr4,etc.}
and put the MI parts there and the MD parts under sys/${ARCH}
sys/ - no change
ufs/ - as with miscfs, move contents under fs/, thus we have
sys/ufs/ffs -> sys/fs/ffs
vm/ - no change
> - Jordan
--
John Baldwin <[EMAIL PROTECTED]> -- http://www.FreeBSD.org/~jhb/
PGP Key: http://www.cslab.vt.edu/~jobaldwi/pgpkey.asc
"Power Users Use the Power to Serve!" - http://www.FreeBSD.org/
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message