[openbeosnetteam] Re: kernel- or user-land [Was: Change of heart...]

  • From: "Graham Gilmore" <grahamg@xxxxxxxxxxxx>
  • To: openbeosnetteam@xxxxxxxxxxxxx
  • Date: Tue, 05 Feb 2002 23:21:16 -0500

>For lower levels (arp, icmp, etc) it will make a difference as the 
>user-land model adds additional context switches (for the kernel-land 
>stack no context switches are required).
>
>Now last, but not least, Be themselves in the end discarded the 
>user-land stack in favor of kernel-land one.


        A sample size of one does not support any conclusions.  Part of that 
decision was, I'm sure, necessarily marketing driven (the need to appear 
as good as/better than "competing" OSes in a short space of time).  OBOS 
doesn't have as strong a need in that area :)  
        I think one major point to consider in forgoing a user space stack is, 
once you move it into the kernel, it's pretty hard to replace.  A user 
space stack can always be replaced by a special-purpose stack for 
special-purpose applications, for example a "network stack" port of 
Apache (thereby eliminating the extra context switches you are worried 
about, at least for http requests).  Granted, it will only be able to 
handle web server duty ( or you could expand it so that it farms out 
other types of requests just like the "real" network stack).  Other 
kinds of specializations would be possible, especially given that the 
source code for the network stack will be available for anyone at all to 
tweak to their hearts' content.  I'm sure there are more interesting 
possibilities than I can think of in 10 seconds off the top of my head.  
(Dedicated MUSCLE server, anyone?)

        That's a lot of flexibility to trade away for a performance difference 
that not a lot of users will notice.

        Graham





Other related posts: