From mboxrd@z Thu Jan 1 00:00:00 1970 From: mischief@offblast.org (Nick Owens) Date: Sat, 27 Jan 2018 03:06:07 -0800 Subject: [9fans] Why is the tcp/ip stack of plan9 implemented in kernel? In-Reply-To: <59023bc9d534255352961e36cd7a3bec@quintile.net> References: <6500C762-F156-42DF-8A78-9B411EB24E35@lsub.org> <59023bc9d534255352961e36cd7a3bec@quintile.net> Message-ID: Topicbox-Message-UUID: cb48c36e-ead9-11e9-9d60-3106f5b1d025 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 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 >