public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Mike Fedyk <mfedyk@matchmail.com>
To: Grigor Gatchev <grigor@serdica.org>
Cc: Christer Weinigel <christer@weinigel.se>, linux-kernel@vger.kernel.org
Subject: Re: A Layered Kernel: Proposal
Date: Mon, 08 Mar 2004 10:41:16 -0800	[thread overview]
Message-ID: <404CBE4C.2040502@matchmail.com> (raw)
In-Reply-To: <Pine.LNX.4.44.0403081311020.21912-100000@lugburz.zadnik.org>

Hi Grigor.

Theodore Ts'o pretty much summed it up, but let me add a couple things...

Grigor Gatchev wrote:
> 
> On Sun, 7 Mar 2004, Mike Fedyk wrote:
> 
> 
>>Grigor Gatchev wrote:
>>
>>>Here it is. Get your axe ready! :-)
>>>
>>>---
>>>
>>>Driver Model Types: A Short Description.
>>>
>>>(Note:  This is NOT a complete description of a layer,
>>>according to the kernel layered model I dared to offer.  It
>>>concerns only the hardware drivers in a kernel.)
>>>
>>
>>Looks like you're going to need to get a little deeper to keep it from
>>being OT on this list.
>>
>>What is the driver designs of say, solaris, OS/2, Win32 (NT & 9x trees)
>>and how are they good and how are they bad?
>>
>>What specific (think API changes, nothing generalized here *at all*)
>>changes could benefit linux, and why and how?  Nobody will listen to
>>hand waving, so you need a tight case for each change.
>>
>>HTH,
>>
>>Mike
> 
> 
> Dear Mike,
> 
> An year ago, I was teaching a course on UNIX security. After the
> first hour, a student - military man with experience of commanding PC-DOS
> users - interrupted me: "What is all that mumbo-jumbo about? Users,
> groups, permissions - all this is empty words, noise! Don't you at least
> classify your terminal, and issue orders on who uses it? Man, either talk
> some real stuff, or I am not wasting anymore my time on you!"
> 
> Of course, I was happy to let him "stop wasting his time on me".
> 

Yes, I can understand.  Dealing with users as a sysadmin isn't much 
different.

> Reading some of the posts here, I get this deja vu. I know the driver
> designs of some OS, and don't know others. I may waste a month or two of
> work, and post a huge description of all big OS driver models that I
> know, or waste an year of work, and give you a description of all big OS
> driver models. Will this give you anything more than what was already
> posted? Wouldn't you read my hundreds of pages, then try to summarise all,
> and eventually come to the same?

The descriptions were for my benefit, as whenever you were asked for 
specific, you were a little more specific in *design* terms, not code terms.

> Or you will try to pick this from one model, that from another, and end up
> assembling a creature with eagle wings, dinosaur teeth, anthelope legs and
> shark fins, and wondering why it can neither fly nor run nor swim really
> well, why it has bad performance? This can't be, I must have misunderstood
> you.
> 
> Also, does "think API changes, nothing generalised *at all*" mean anything
> different from "think code, no design *at all*"? If this is some practical
> joke, it is not funny. (I can't believe that a kernel programmer will not
> know why design is needed, where is its place in the production of a
> software, and how it should and how it should not be done.)
> 

No.  The designs you are talking about are *far* too generalized. 
Meaning, every proposal on this list that gets anywhere is for code 
modifications.  You need to have your *design* proposal in *code* speak. 
  Anything else will just be called hand waving.

> OK. Let's try explain it once more:
> 
> While coding, think coding. While designing, think designing. Design comes
> before coding; otherwise you design while coding, and produce a mess.
> Enough of such an experience, and you start believing that design without
> coding is empty words, noise. Hand waving.
> 
> What I gave is more than enough to start designing a good driver model.
> After the design is OKed, details of implementation, eg. API changes, may
> be developed. Developing them now, however, is the wrong time, for the
> reasons explained just above. Let's not put the cart ahead of the horse.
> 

I'm not a kernel programmer.

> Or I am wrong?

Maybe.  If you can have you design describe the current linux model as 
"in order to write to this SCSI disk I need to call foo(),..." and 
describe your new change as "if foo() called bar() I could do...".

Basically, you need to describe everything in programming terms.  A 
great example is the BIO design document from Jens Axboe.  That's an 
example of a design before code project (but I only happened to hear 
about it when 2.5.1 came out, and the code was ready to be merged...) .

Mike

  parent reply	other threads:[~2004-03-08 18:41 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-02-24 20:05 A Layered Kernel: Proposal Grigor Gatchev
2004-02-24 22:31 ` Rik van Riel
2004-02-25  9:08   ` Grigor Gatchev
2004-02-25 12:52     ` Rik van Riel
2004-02-25 13:23       ` Richard B. Johnson
2004-02-25 15:08         ` Grigor Gatchev
2004-02-25 15:42           ` Richard B. Johnson
2004-02-25 16:01             ` Nikita Danilov
2004-02-25 19:25               ` Christer Weinigel
2004-02-25 19:46                 ` Grigor Gatchev
2004-02-25 23:40                   ` Timothy Miller
2004-02-26  0:55                     ` Rik van Riel
2004-02-26 15:43                       ` Jesse Pollard
2004-02-26 17:12                         ` Rik van Riel
2004-02-27  9:45                           ` Grigor Gatchev
2004-02-26 11:03                     ` Grigor Gatchev
2004-02-26  5:59                   ` jw schultz
2004-02-29 12:32                   ` Christer Weinigel
2004-02-29 14:48                     ` Grigor Gatchev
2004-03-01  6:07                       ` Mike Fedyk
2004-03-06 18:51                     ` Grigor Gatchev
2004-03-08  3:11                       ` Mike Fedyk
2004-03-08 12:23                         ` Grigor Gatchev
2004-03-08 17:39                           ` Theodore Ts'o
2004-03-08 20:41                             ` viro
2004-03-09 19:12                             ` Grigor Gatchev
2004-03-09 21:03                               ` Timothy Miller
2004-03-09 23:24                               ` Mike Fedyk
2004-03-08 18:41                           ` Mike Fedyk [this message]
2004-03-08 21:33                           ` Paul Jackson
2004-02-25 14:44       ` Grigor Gatchev
2004-02-24 22:54 ` Mike Fedyk
2004-02-25 10:03   ` Grigor Gatchev
2004-02-25 19:58     ` Mike Fedyk
2004-02-25 21:59       ` Grigor Gatchev
2004-02-25 22:22         ` Mike Fedyk
2004-02-26 11:46           ` Grigor Gatchev
2004-02-26 12:17             ` Jens Axboe
2004-02-26 16:37               ` Grigor Gatchev
2004-02-26 18:12                 ` Christoph Hellwig
2004-02-26 19:23             ` Mike Fedyk
2004-02-27 11:18               ` Grigor Gatchev
2004-02-27 18:05                 ` Tim Hockin
2004-02-27 18:34                   ` Richard B. Johnson
2004-02-27 18:27                 ` Mike Fedyk
2004-02-28  0:26                 ` Rik van Riel
  -- strict thread matches above, loose matches on Subject: below --
2004-02-24 20:28 Carlos Silva

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=404CBE4C.2040502@matchmail.com \
    --to=mfedyk@matchmail.com \
    --cc=christer@weinigel.se \
    --cc=grigor@serdica.org \
    --cc=linux-kernel@vger.kernel.org \
    /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