netdev
[Top] [All Lists]

Re: Network protocols as modules

To: Andy <andy@xxxxxx>
Subject: Re: Network protocols as modules
From: Keyshaun <thekernel@xxxxxxxxxxxxxxxx>
Date: Tue, 27 Jun 2000 09:49:19 -0600 (MDT)
Cc: "netdev@xxxxxxxxxxx" <netdev@xxxxxxxxxxx>
In-reply-to: <3958BED5.43FE6C27@xxxxxx>
Sender: owner-netdev@xxxxxxxxxxx
First I am rather curious as to why it would be so important to cut such a
small part of the kernel and make it a module.  I may just be a bit slow
not knowing how much TCP and UDP take up.  The things I make modules are
things like IPv6, and network drivers that I may need on the next
upgrade, and possibly my PPP if I really wanted to.

> Cleaner code
> Better maintainability
> Better extensibility
> Modularity
> Smaller initial kernel
> Higher efficiency

How much smaller will the kernel be?


> 
> Here are some scenarios:
> 
> PDA, linux powered watch, satelite,... does not need TCP/IP running all
> the time. It could load module when needed. This would save working
> space and power consumption by adding minimal latency to the initial
> network request.

I can understand working space, but in the case of small devices wouldn't
it be possible to get the text segment mapped directly to the memory that
the kernel is burned into( this is 2MB on some PDAs) and thus make it a
moot point to make anything a module?  At that time the module would just
be taking up user memory being stored and more in execution.  

> Linux powered diskless workstation has kernel in some small memmory, for
> example bios and it runs bootp/tftp. They both run without TCP, why
> would TCP eat the memmory. The kernel can get TCP module from the
> network.

I see a similar situation with the diskless workstation.  Some network
cards already have the ability to get an OS and boot it from a network
source.  If the OS is coming from over the network why not bring a kernel
with all the basic support you need (full netdrivers no modules).  

> Problems of putting TCP on some other layer or sticking another layer
> between TCP and
> IP. If TCP would be independent from IP, then this would be trivial.

According to the OSI model they are already in seperate layers.  TCP is
just the feature of IP that allows streaming.  I'm sure other protocolls
have their own methods.

> IPV6 support is complicated because TCP has its tenticles inside IP
> implementation.

I would rather run full IPv6 anyway and let the 138k module be in the
kernel and take up space and cut other things.  The only trouble is that
this isn't an option until IPv6 support is complete.  Until then, If I am
designing something I will put memory into it so that it will not need to
be modular.

Shaun Kruger


<Prev in Thread] Current Thread [Next in Thread>