From owner-freebsd-current Wed Jul 5 0: 3: 9 2000 Delivered-To: freebsd-current@freebsd.org Received: from server.baldwin.cx (server.geekhouse.net [64.81.6.52]) by hub.freebsd.org (Postfix) with ESMTP id 8DAF637B7B3 for ; Wed, 5 Jul 2000 00:03:03 -0700 (PDT) (envelope-from john@baldwin.cx) Received: from john.baldwin.cx (root@john.baldwin.cx [192.168.1.18]) by server.baldwin.cx (8.9.3/8.9.3) with ESMTP id AAA36770 for ; Wed, 5 Jul 2000 00:03:01 -0700 (PDT) (envelope-from john@baldwin.cx) Received: (from john@localhost) by john.baldwin.cx (8.9.3/8.9.3) id AAA42641 for freebsd-current@FreeBSD.ORG; Wed, 5 Jul 2000 00:04:12 -0700 (PDT) (envelope-from john) Message-Id: <200007050704.AAA42641@john.baldwin.cx> X-Mailer: XFMail 1.4.0 on FreeBSD X-Priority: 3 (Normal) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 8bit MIME-Version: 1.0 In-Reply-To: <200007020736.AAA33902@john.baldwin.cx> Date: Wed, 05 Jul 2000 00:04:12 -0700 (PDT) From: John Baldwin To: freebsd-current@FreeBSD.ORG Subject: Re: /sys hierarchy Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG I've tried to update the document to reflect the comments I've received so far: Current directory structure: sys/ ${MACHINE}/ - MD stuff conf/ - MD kernel config files ${MACHINE/ - MD code include/ - MD includes ... - various MD modules such as binary compat boot/ - bootstrap ${MACHINE/ - 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 Here is my proposal, adjusted a little as per suggestions. 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}/ - stay mostly the same, the directories under here mirror the sys/ directories. E.g. MD bootstrap code would go in the boot/ subdir boot/ - formerly sys/boot/${MACHINE} compat/ - MD code for the binary compatibility layers, would contain linux, svr4, etc. directories boot/ - just MI boot code now. Depending on portability of ARC, possibly move boot/arc under sys/alpha/boot compat/ - MI binary compatibility code linux/ - parts of former sys/i386/linux svr4/ - parts of former sys/svr4 compile/ - move compiling under arch-specific dirs ${MACHINE}/ - formerly sys/compile conf/ - move NOTES to here from sys/i386/conf, but leave the rest of the dir 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 isdn/ - 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/ 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 ufs/ - formerly sys/ufs/ufs ffs/ - formerly sys/ufs/ffs mfs/ - formerly sys/ufs/mfs deadfs/ - formerly sys/miscfs/deadfs devfs/ - formerly sys/miscfs/devfs fdescfs/ - formerly sys/miscfs/fdesc fifofs/ - formerly sys/miscfs/fifofs kernfs/ - formerly sys/miscfs/kernfs nullfs/ - formerly sys/miscfs/nullfs portalfs/ - formerly sys/miscfs/portal procfs/ - formerly sys/miscfs/procfs specfs/ - formerly sys/miscfs/specfs umapfs/ - formerly sys/miscfs/umapfs unionfs/ - formerly sys/miscfs/union 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 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/netnatm 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. sys/ - no change vm/ - no change Notes: - There has been one vote so far to ditch the whole net/ reorg, although other people have expressed support for it. - There have been a few votes for sys/bus instead of sys/dev for isa, eisa, pci, cam, usb, and friends. - The question has been raised as to whether or not splitting up netinet is feasible. I'd like to hear back some more from people working with the code if splitting it up is difficult, and if it is, if having sys/net/inet containing all IP, TCP, UDP, etc. is a more workable option? This file is available at http://people.FreeBSD.org/~jhb/sysorg.txt -- John Baldwin -- 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 majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message