Date: Sun, 5 Nov 1995 22:44:59 +0100 (MET) From: Thomas Graichen <graichen@sirius.physik.fu-berlin.de> To: hackers@freebsd.org Subject: kernel source tree structure Message-ID: <9511052144.AA24082@sirius.physik.fu-berlin.de>
next in thread | raw e-mail | index | archive | help
hello
(ideas part 1)
currently some people are working on ports of FreeBSD to other
architectures (for instance alpha and powerpc) - for that reason -
wouldn't it be good to think about the directory structure of the
kernel-source-tree - i think the NetBSD source tree gives some good
ideas to make it better for multiplatform-support and a cleaner
concept at all (that is only my idea - maybe you don't think so or i'm
totally wrong - but read on) - what are the differences:
* NetBSD has the architecture specific parts of the code behind the
dir's sys/arch/ARCHITECTURE (ARCHITECTURE may be i386 or alpha or
... - the same applies to all dirs which are arch-dependant like parts
of sys/libkern -> sys/libkern/arch/ARCHITECTURE or gnu/usr.bin/ld/rtld
-> gnu/usr.bin/ld/arch/ARCHITECTURE/rtld - and so on ...)
- this gives a clear separation between arch specific stuff and shared
stuff - how about using this in FreeBSD too ? - i think it's an easy
step (only some minor changes to the paths in some makefiles etc.) and
would make the source-tree much clearer (sorry for my bad english) -
one positiv point of this is that the compile dir (currently
sys/compile) would be _inside_ the arch-specific part
(sys/arch/ARCHITECTURE/compile) and you may compile and _keep_ kernels for
different arches from the same source-tree
---> all in all this would be:
- now: sys/i386
sys/compile
sys/libkern
- maybe: sys/arch/i386
sys/arch/i386/compile
sys/arch/alpha
sys/arch/alpha/compile
...
and sys/libkern/arch/i386
sys/libkern/arch/alpha (the way it is done in NetBSD)
...
or sys/libkern (maybe we can share something)
sys/arch/i386/libkern
sys/arch/alpha/libkern (another possible way)
* in NetBSD all sharable device-driver code is generalized and put
into the shared area - i think this would require more work than the
first step - but would make it a lot easier to port to other
architectures which are using for instance pci and scsi (in NetBSD
also scsi is separeted)
---> all in all this would be:
- now: sys/i386/isa
- maybe: sys/i386/isa (for arch specific stuff)
sys/dev/isa
sys/dev/eisa
sys/dev/pci (the way it is done in NetBSD)
sys/scsi
...
or sys/isa (another possible way)
sys/eisa
sys/pci
sys/scsi
* in NetBSD all "other-os-compatible-mode-code" is grouped together
all made after the same sheme - all in one dir is a good idea i think
because there are possible compat-options over multiple arches in the
future (for instance COMPAT_LINUX an an alpha)
---> all in all this would be:
- now: sys/i386/ibcs2
sys/i386/linux
- maybe: sys/compat/ibcs2
sys/compat/linux
sys/compat/netbsd (maybe - NetBSD currently has freebsd :-)
that's all for now - just some ideas - please let me know what you
think about them
t
_______________________________________________________||_____________________
__||
Perfection is reached, not when there is no __|| thomas graichen
longer anything to add, but when there __|| freie universitaet berlin
is no longer anything to take away __|| fachbereich physik
__||
- Antoine de Saint-Exupery - __||
___________________________||____email: graichen@omega.physik.fu-berlin.de____
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9511052144.AA24082>
