9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
* [9fans] Why is the tcp/ip stack of plan9 implemented in kernel?
@ 2018-01-27  7:04 lchg
  2018-01-27  9:35 ` FJ Ballesteros
  0 siblings, 1 reply; 4+ messages in thread
From: lchg @ 2018-01-27  7:04 UTC (permalink / raw)
  To: 9fans

[-- Attachment #1: Type: text/plain, Size: 273 bytes --]

 In plan9, many os components are moved to user space, even disk file
system. But the tcp/ip stack is an exception, what's the consideration for
this? Just for performance, or some other reasons?
And is there a relatively easy solution to move the stack to user space?

[-- Attachment #2: Type: text/html, Size: 1087 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [9fans] Why is the tcp/ip stack of plan9 implemented in kernel?
  2018-01-27  7:04 [9fans] Why is the tcp/ip stack of plan9 implemented in kernel? lchg
@ 2018-01-27  9:35 ` FJ Ballesteros
  2018-01-27  9:45   ` Steve Simon
  0 siblings, 1 reply; 4+ messages in thread
From: FJ Ballesteros @ 2018-01-27  9:35 UTC (permalink / raw)
  To: Fans of the OS Plan 9 from Bell Labs

[-- Attachment #1: Type: text/plain, Size: 470 bytes --]

VSTa had a design heavily inspired by 9 and had the net stack at user level. 
It was fun to play with it, long ago. 

> El 27 ene 2018, a las 8:04, lchg <lchg567@gmail.com> escribió:
> 
> In plan9, many os components are moved to user space, even disk file system. But the tcp/ip stack is an exception, what's the consideration for this? Just for performance, or some other reasons?
> And is there a relatively easy solution to move the stack to user space?
> 

[-- Attachment #2: Type: text/html, Size: 1537 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [9fans] Why is the tcp/ip stack of plan9 implemented in kernel?
  2018-01-27  9:35 ` FJ Ballesteros
@ 2018-01-27  9:45   ` Steve Simon
  2018-01-27 11:06     ` Nick Owens
  0 siblings, 1 reply; 4+ messages in thread
From: Steve Simon @ 2018-01-27  9:45 UTC (permalink / raw)
  To: 9fans

in early versions of plan9 the tcp/ip stack in Streams, inherited (I assume) from V10.

This turned out not to be as clean nor as efficent as hoped and this was dropped
for a more traditional implementation in later releases. Maybe the bad experiences
of poor performance informed the decision for an in-kernel implementation?

-Steve



^ permalink raw reply	[flat|nested] 4+ messages in thread

* [9fans] Why is the tcp/ip stack of plan9 implemented in kernel?
  2018-01-27  9:45   ` Steve Simon
@ 2018-01-27 11:06     ` Nick Owens
  0 siblings, 0 replies; 4+ messages in thread
From: Nick Owens @ 2018-01-27 11:06 UTC (permalink / raw)


it used to be in userspace, but i believe it was moved to the kernel
for performance reasons.

the remaining evidence of the ip stack in the kernel lives on in (at
least) 9front's sysproc.c, where sysexec raises the process priority
if the program is "/ip", which i assume would be the tcp/ip stack
binary embedded in the kernel image's devroot (not the paqfs):

/*
*  '/' processes are higher priority (hack to make /ip more responsive).
*/
if(devtab[tc->type]->dc == L'/')
up->basepri = PriRoot;

On Sat, Jan 27, 2018 at 1:45 AM, Steve Simon <steve at quintile.net> wrote:
> in early versions of plan9 the tcp/ip stack in Streams, inherited (I assume) from V10.
>
> This turned out not to be as clean nor as efficent as hoped and this was dropped
> for a more traditional implementation in later releases. Maybe the bad experiences
> of poor performance informed the decision for an in-kernel implementation?
>
> -Steve
>



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-01-27 11:06 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-27  7:04 [9fans] Why is the tcp/ip stack of plan9 implemented in kernel? lchg
2018-01-27  9:35 ` FJ Ballesteros
2018-01-27  9:45   ` Steve Simon
2018-01-27 11:06     ` Nick Owens

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).