9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: Jakub Jermar <jj@comberg.cz>
To: 9fans@cse.psu.edu
Subject: Re: [9fans] fs kernel: eagle
Date: Wed,  8 Nov 2000 09:22:57 +0000	[thread overview]
Message-ID: <8u9s02$gtf$1@news.vol.cz> (raw)
In-Reply-To: <20001107153158.01B89199E1@mail.cse.psu.edu>

> I suppose I could remove them, I remove the dregs of other dead hardware
> when I find them. Hands up, who knows what this typedef in
fs/port/portdat.h
> was for:
> typedef struct Bit Bit;
> If you know, I pity you.

I don't know what purpose was 'typedef struct Bit Bit' for -- I guess
I was only ten or so when Plan 9 used to be proud of
the SGI Power multiprocessor servers...

But now I see that things like the Bit typedef, Eagle and Jaguar drivers
merely ARE
and their one and only task is silent being in the kernel. No doubts they
should
go.

Besides these fossils, there is another thing that I would like to point
out. Both fs and CPUterm kernels suffer mutual duplication of code.
I've done a private survey on this issue in both kernels and found the
following simillarities/duplicities:

all kinds of locks
pieces of scheduler including sleep() and wakeup()
clock and time planning
interrupt dispatching
PCI, CGA, keyboard, floppy
ethernets (etherlnk3, 82557, 2114x), ethernet generic interface
scsi (NCR53c8xx), scsi generic interface
IP protocols...

...and possibly many more.

The result of my survey brought me to thoughts like: "let's have only one
Plan 9 kernel".
For there are only kernel processes in the fs kernel and all of them
cooperate in the algorithm described in the File Server paper written by
Ken Thompson, it should be no problem to transfer the functionality of it
to the CPUterm kernel -- CPUterm kernel supports kernel processes,
and all the hardware that fs kernel needs + more.

With some #ifdefined'ing and a little (more or less) coding, we could
achieve the fully functional fileserver kernel from the CPUterm source.

One would be able to build different images from one source, depending on
whether he wanted to build a file server or a CPUterm server kernel . (I
also
believe that there could be a slight distinction between kernels intended
for
CPU servers and kernels meant for terminals. While enterprise CPU servers
are probably not going to need devices like VGA and sound, they should
be given the opportunity to be free of them, terminals, on the other hand,
might need some of the multimedia drivers.
The scheduler could also be optimised for compute-bound processes on CPU
kernels and for transput-bound processes on term kernels.)

Well, what do you think?

Jakub Jermar


  reply	other threads:[~2000-11-08  9:22 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-11-07 15:31 jmk
2000-11-08  9:22 ` Jakub Jermar [this message]
2000-11-08 12:54   ` Boyd Roberts
  -- strict thread matches above, loose matches on Subject: below --
2000-11-09 14:24 presotto
2000-11-09  7:05 Russ Cox
2000-11-09  7:00 jmk
2000-11-09  8:17 ` Christopher Nielsen
2000-11-09  8:21   ` Christopher Nielsen
2000-11-07  9:28 Jakub Jermar

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='8u9s02$gtf$1@news.vol.cz' \
    --to=jj@comberg.cz \
    --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).