
|
[openbeosnetteam]
||
[Date Prev]
[08-2002 Date Index]
[Date Next]
||
[Thread Prev]
[08-2002 Thread Index]
[Thread Next]
[openbeosnetteam] Moving to /current and jam...
- From: Philippe Houdoin <philippe.houdoin@xxxxxxx>
- To: openbeosnetteam@xxxxxxxxxxxxx
- Date: Thu, 22 Aug 2002 17:01:43 +0200 (MEST)
Ingo wrote us:
> Just to be sure: You know, that the old repositories are deprecated
> and that Jam is our preferred build tool?
Yep. And I don't like using /net_kit/* even, as it could be erased
anytime now, and the source code tree is ugly (for history reason), most
notably the server/* part. Moving to /current should be the occasion to
put it in a better face.
> Anyway, unless there are very good reasons to use the old repository,
> I strongly recommend using the new one. I can give you a hand with the
> Jamfiles. If you tell me which Makefiles shall be converted, I'll try
> and create respective Jamfiles.
Apart not being jam skilled at all, I've no good reason :-)
Keep in mind, however, that we have in fact not one stack but two:
1) a kernelland stack, with:
* /dev/net/stack driver (driver/net_stack_driver.c)
* network/core "core" kernel module (server/net_server/*)
* network/interface/ethernet kernel module (server/ethernet/*)
* network/interface/loop kernel module (server/loop/*)
* network/protocol/raw kernel module (server/raw/*)
* network/protocol/route kernel module (server/route/*)
* network/protocol/ipv4 kernel module (server/ipv4/*)
* network/protocol/icmp kernel module (server/icmp/*)
* network/protocol/udp kernel module (server/udp/*)
* network/protocol/tcp kernel module (server/tcp/*)
* network/ppp/* kernel modules (server/ppp/*)
All these should be built by linking them against the BeOS _KERNEL_
(well, until OBOS kernel drivers and modules support reach enough
stability)
[BTW, I suggest we rename "network/interface" and "network/protocol" to
their respective plurial form. I'll do it if nobody object.]
This stack design follow the BONE one, and should, when stable enough, be
the OBOS R1 stack. Problem: it's hard to debug in kernel land.
2) a userland (net_server-like) stack, with:
* /dev/net/stack driver (driver/net_userstack_driver.c)
This one is the only kernel thing we need to provide socket = fd
Should be built as a kernel driver.
* a userland_server app (server/userland_server.c)
* modules/core "core" add-on (server/net_server/*)
* modules/interface/ethernet add-on (server/ethernet/*)
* modules/interface/loop add-on (server/loop/*)
* modules/protocol/raw add-on (server/raw/*)
* modules/protocol/route add-on (server/route/*)
* modules/protocol/ipv4 add-on (server/ipv4/*)
* modules/protocol/icmp add-on (server/icmp/*)
* modules/protocol/udp add-on (server/udp/*)
* modules/protocol/tcp add-on (server/tcp/*)
* modules/ppp/* add-ons (server/ppp/*)
These are userland_server add-ons, and should be built by linking
them against the userland_server's _APP_.
I'm working to reduce the userland version specific code in these
add-ons. To start, by using the same module name prefix network/*
and always exporting the real module_info * [] "modules" symbol.
I've wrote some functions to emulate the kernel modules API exported
by [Open]BeOS kernel to help here, too.
Currently, the makefiles build the userland version when we do:
$ USERLAND=true make
I work hard to make the userland stack version ready to release ASAP,
not because I like better the userland stack design (which is,
however, not that bad, thanks to Axel!) than the kernelland one, but because
it's make debug far easier and future lambda alpha-tester's life
less risky. Like OpenBFS team did at start, in fact.
So, we really need the ability to build both version of the stack,
without duplicate the (near) common code obviously.
The apps/* and libnet/* are not stack version dependant, however.
Making Jamfiles for them should not be difficult.
I mean, to a jam guru, not to me :-(
Maybe we should start by moving apps/* and libnet/* to /current/src/
So, yes Ingo, please help us moving to the more hype'd /current repository
;-)
-Philippe.
|

|