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 <st...@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 >