From: Mike Fedyk <mfedyk@matchmail.com>
To: Grigor Gatchev <grigor@zadnik.org>
Cc: linux-kernel@vger.kernel.org
Subject: Re: A Layered Kernel: Proposal
Date: Wed, 25 Feb 2004 11:58:00 -0800 [thread overview]
Message-ID: <403CFE48.8090009@matchmail.com> (raw)
In-Reply-To: <Pine.LNX.4.44.0402251112180.16939-100000@lugburz.zadnik.org>
Grigor Gatchev wrote:
>
> On Tue, 24 Feb 2004, Mike Fedyk wrote:
>>Not true. What you are asking for is userspace protection to kernel
>>modules. You won't get that unless you use a micro-kernel approach, or
>>run different parts of the kernel on different (to be i386 arch
>>specific) ring in the processor. Once you get there, you have to deal
>>with the various processor errata since not many OSes use rings besides
>>0 and 3 (maybe ring 1?).
>
>
> These are two possible approaches. Still another is to have the lowest
> layer export functions for memory handling - thus only the lowest layer
> will have to run in ring 0 (almost all arch that support Linux have a
> corresponding ability), and will handle the protection requests from the
> upper layers... Other approaches exist, too. A discussion may help to
> clarify which is the best.
>
And you get an effective "context switch" even if you're not crossing
process boundaries. (it could be argued that different layers on
seperate rings are effectively now a "process"...)
>
>>>User nesting: The traditional Unix user management model has two levels:
>>>superuser (root) and subusers (ordinary users). Subusers cannot create
>>>and administrate their subusers, install system-level resources, etc.
>>>Running, however, a subuser in their own virtual machine and Personality
>>>layer as its root, will allow tree-like management of users and resources
>>>usage/access. (Imagine a much enhanced chroot.)
>>
>>That is differing security models, and it's being worked on with (I
>>forget the term) the security module framework.
>
>
> Within a layered kernel scheme, this tree-like model is very natural and
> simple: all protection is provided by the standard kernel mechanisms. Of
> course, it maybe can be improved; that is what the discussion is for.
>
>
>>>Platforming: It is much easier to write only a Personality layer than an
>>>entire kernel, esp. if you have a layer interface open standard as a
>>>base. Respectively, it's easier to write only a Resources layer, adding a
>>>new hardware to the "Supported by Linux" list. This will help increasing
>>>supported both hardware and platforms. Also, thus you may run any
>>>platform on any hardware, or many platforms concurrently on the same
>>>hardware.
>>
>>There is arch specific, and generic setions of the kernel source tree
>>already. How do you want to improve upon that?
>
>
> Currently, Linux supports (actually, is) only one, Unix-descended
> platform. With a layered model, an emulator, eg. Wine, could be easily
> rewritten as a Personality layer, and this would turn it instantly into
> a free Windows. A modification of the Linux sofware and tools could
> produce a free Solaris. Some people may like a free OS/2, QNX, VxWorks
> etc. Other platforms will became easier to create and test, thus helping
> the free software evolution. On most architectures, you will be able to
> emulate another processor right in the kernel, either directly, or by a
> code emulator: all other will go then much easier. Much more advantages
> exist...
>
One way or another, you'd have to have a "personality". With Linux
there is one in the kernel, and possibly many in userspace. You won't
find many here that will agree it should be any other way.
next prev parent reply other threads:[~2004-02-25 19:58 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
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 [this message]
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=403CFE48.8090009@matchmail.com \
--to=mfedyk@matchmail.com \
--cc=grigor@zadnik.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