9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: jmk@plan9.bell-labs.com
To: 9fans@cse.psu.edu
Subject: Re: [9fans] FreeBSD 4.0 / Plan9 3rd ed.
Date: Fri,  1 Sep 2000 18:04:09 -0400	[thread overview]
Message-ID: <200009012204.SAA00827@cse.psu.edu> (raw)

Alexander Viro <viro@math.psu.edu>:
	>On Fri, 1 Sep 2000, Russ Cox wrote:
	>
	>> The Linux drawterm will not work
	>> in most other places, even under 
	>> binary emulation, because it depends
	>> on the task segment selector as
	>> a unique thread id.  This is the same
	>
	>Sorry? "other places" include 2.4, for one thing. Why using gross
	>architecture-dependent tricks, when PID is there? On Linux
	>thread==process. There is a rfork() equivalent (clone(2)) and model is
	>exactly the same as on Plan 9 (process as a set of components that can be
	>shared between several processes; fork() as a special case of more generic
	>operation that copies a subset of components and uses the old ones for the
	>rest, etc.)
	>
	>Use of TSS happened to work on x86 prior to 2.3.11 or so, but that relied
	>on the details of task_struct allocation. 2.4 has TSS-per-CPU  setup and
	>doesn't bother with changing the register at all - it's cheaper to do
	>everything by hands. Besides, it lifts the limit on number of processes
	>and allows to avoid quite a few TLB flushes.
	>
	>Use getpid() - it's at least more portable than %tss and definitely much
	>saner.
	>
	>> reason that the Inferno Linux binaries
	>> don't work under other OSes with
	>> Linux binary emulation.
	>
	>Ditto.

Phil Winterbottom and I did the original Inferno emulation port to Linux
in, I think, 1996 and that is where a lot of the drawterm code came from.
At that time few of the wonders you describe above were available. Sure, it's
a gross architecture-dependent trick but it was no worse than what we were
porting to at the time.

I'm glad there are now alternatives which could be used to rewrite the code
more portably, should anyone care to do so. Let's leave it at that.

--jim


             reply	other threads:[~2000-09-01 22:04 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-09-01 22:04 jmk [this message]
  -- strict thread matches above, loose matches on Subject: below --
2000-09-02  7:30 nigel
2000-09-01 22:56 forsyth
2000-09-01 23:34 ` Alexander Viro
2000-09-01 19:59 Russ Cox
2000-09-01 20:45 ` Alexander Viro
2000-08-30 16:46 presotto
2000-08-30 10:13 lucio
2000-08-30 11:06 ` Nigel Roles
2000-08-30 11:08 ` Nigel Roles
2000-08-30 16:29 ` William K. Josephson
2000-08-30 16:47   ` Lucio De Re
2000-08-30  9:12 Wilhelm B. Kloke
2000-08-30 10:02 ` Nigel Roles
2000-08-30 16:27 ` William K. Josephson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200009012204.SAA00827@cse.psu.edu \
    --to=jmk@plan9.bell-labs.com \
    --cc=9fans@cse.psu.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).