*BSD News Article 12709


Return to BSD News archive

Newsgroups: comp.os.386bsd.development
Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!agate!howland.reston.ans.net!newsserver.jvnc.net!gmd.de!fanoe!veit
From: veit@fanoe.gmd.de (Holger Veit)
Subject: Re: 3C501 Ether driver, XS3+codrv
Message-ID: <1993Mar11.090535.9238@gmd.de>
Sender: veit@fanoe (Holger Veit)
Nntp-Posting-Host: fanoe
Organization: GMD - German National Research Center for Computer Science
References: <1993Mar2.114020@sun6.lri.fr> <1993Mar5.132206.15422@gmd.de> <1993Mar9.043947.4016@netcom.com> <1993Mar10.213242.423@netcom.com>
Date: Thu, 11 Mar 1993 09:05:35 GMT
Lines: 67

In article <1993Mar10.213242.423@netcom.com>, thinman@netcom.com (Technically Sweet) writes:
|> I would suggest instead that you get the simplest possible
|> console driver and put all the card management issues into
|> a separate console daemon.  Possibly, the 'screen' program
|> that manages several text banks.  Then, create a screen
|> painting library that the daemon exports which sets the
|> screen type to graphics or text, switches screen banks, 
|> and paints the screen.

'screen' was always a good example for me of how things could work.
Unfortunetely, from a number of mails, there seemed to be consensus,
to have "virtual terminals" with real login (I believe just because
all the other UNIXes have them as well).
Things that just deal with the tty driver input and output can be
excluded easily; this is one reason why I have not yet a super-duper
VTxyz terminal emulator in the kernel.
But there are more things, that cannot be done outside the current
kernel without problems. One is I/O and interrupt handling. There is
a hack to give the xserver the privilege to access I/O but
this imposes at least significant security leaks, if not stability
problems. The way it is done in this context is not recommended in
general.
Setting screen modes, detecting video cards are exactly those tasks
that require special privilege, and have to be done in an early 
phase of the startup (when user applications are not yet executable).
My idea is to load these and other parts on demand, so the kernel won't
be filled up with stuff for all environments. This will lead to a 
somewhat 'lean' kernel. One might argue that a kernel that loads
all the things in again afterwards is quite the same like a large one
with the necessary things already in, but one should not forget
that the same amount of space would be occupied by user servers
performing these tasks. My opinion is in contrast to yours (below):
If there are things that need special privilege or do things a
normal user application should not do (things that might affect 
other processes unintentionally), they should remain
behind the kernel shield.
 
|> My 12 years' experience in Unix kernel work yields several
|> maxims, I will only bore you with one: if there is a choice
|> between placing features in the kernel and placing them
|> in a program, always place them in the program.  Always.
|> No exceptions.

If we had a kernel architecture which truely allowed moving parts
of the kernel out of it (similar to the Mach system), I would
fully agree. But we haven't yet.
 
|> P.s. another one: don't use badly designed hardware.  
|> The 3C501 comes to mind.

Seconded.

Holger

|> 
|> -- 
|> 
|> Lance Norskog
|> thinman@netcom.com

-- 
         Dr. Holger Veit                   | INTERNET: Holger.Veit@gmd.de
|  |   / GMD-SET German National Research  | Phone: (+49) 2241 14 2448
|__|  /  Center for Computer Science       | Fax:   (+49) 2241 14 2342
|  | /   P.O. Box 13 16                    |    Three lines Signature space
|  |/    Schloss Birlinghoven              |    available for rent. Nearly
         DW-5205 St. Augustin, Germany     |    unused, good conditions