From mboxrd@z Thu Jan 1 00:00:00 1970 MIME-Version: 1.0 From: lchg Date: Sat, 27 Jan 2018 15:04:28 +0800 Message-ID: To: 9fans@9fans.net Content-Type: multipart/alternative; boundary="94eb2c1cbbc4c3094e0563bc9f6f" Subject: [9fans] Why is the tcp/ip stack of plan9 implemented in kernel? Topicbox-Message-UUID: cb142398-ead9-11e9-9d60-3106f5b1d025 --94eb2c1cbbc4c3094e0563bc9f6f Content-Type: text/plain; charset="UTF-8" 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? --94eb2c1cbbc4c3094e0563bc9f6f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
In plan9, many os components are moved to user spa= ce, 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?=

--94eb2c1cbbc4c3094e0563bc9f6f-- From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/alternative; boundary=Apple-Mail-ABE1E4A3-B2FA-4A80-AA9F-50ADE061FFBC Mime-Version: 1.0 (1.0) From: FJ Ballesteros In-Reply-To: Date: Sat, 27 Jan 2018 10:35:13 +0100 Content-Transfer-Encoding: 7bit Message-Id: <6500C762-F156-42DF-8A78-9B411EB24E35@lsub.org> References: To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Subject: Re: [9fans] Why is the tcp/ip stack of plan9 implemented in kernel? Topicbox-Message-UUID: cb17d7ae-ead9-11e9-9d60-3106f5b1d025 --Apple-Mail-ABE1E4A3-B2FA-4A80-AA9F-50ADE061FFBC Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable VSTa had a design heavily inspired by 9 and had the net stack at user level.= =20 It was fun to play with it, long ago.=20 > El 27 ene 2018, a las 8:04, lchg escribi=C3=B3: >=20 > In plan9, many os components are moved to user space, even disk file syste= m. But the tcp/ip stack is an exception, what's the consideration for this? J= ust for performance, or some other reasons? > And is there a relatively easy solution to move the stack to user space? >=20 --Apple-Mail-ABE1E4A3-B2FA-4A80-AA9F-50ADE061FFBC Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable
VSTa had a design heavily i= nspired 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, l= chg <lchg567@gmail.com> escri= bi=C3=B3:

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

= --Apple-Mail-ABE1E4A3-B2FA-4A80-AA9F-50ADE061FFBC-- From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <59023bc9d534255352961e36cd7a3bec@quintile.net> From: "Steve Simon" Date: Sat, 27 Jan 2018 09:45:17 +0000 To: 9fans@9fans.net In-Reply-To: <6500C762-F156-42DF-8A78-9B411EB24E35@lsub.org> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Subject: Re: [9fans] Why is the tcp/ip stack of plan9 implemented in kernel? Topicbox-Message-UUID: cb358eac-ead9-11e9-9d60-3106f5b1d025 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 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 >