>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