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 14:22:40 -0800 [thread overview]
Message-ID: <403D2030.8080606@matchmail.com> (raw)
In-Reply-To: <Pine.LNX.4.44.0402252339420.18468-100000@lugburz.zadnik.org>
Grigor Gatchev wrote:
>
> On Wed, 25 Feb 2004, Mike Fedyk wrote:
>
>
>>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"...)
>
>
> Yes. However, you won't have to do this switch often. Request for
> allocating a protected memory, or deallocating it, usually happens once
> when you run a process, and once when you close it. Even if a poorly
> written program requests byte-by-byte additional memory, grouping these
> requests is rather trivial for a memory manager. Memory protection
> violations are also rare in the reality, so one can afford the load.
>
> In addition, this scheme solves one more problem: the fixed two-level
> memory management - "kernelspace and userspace". Like the "root and users"
> notion, it is good to some extent, but limits the system. The layered
> kernel memory management scheme would have to allow tree-like memory
> management, as a part of the tree-like resources management, thus allowing
> both more flexibility and more control at the same time.
>
>
That is a micro-kernel. While there is a possibility micro-kernel based
systems can be as efficient as monolithic, it is harder, and walking in
the direction of "we can take the load" won't get you there.
>>>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.
>
>
> Yes. But if you have one hardcoded in the kernel, you run it every time,
> even if you don't need it. Then, you run some other personality on top of
> it, and possibly more libraries and programs to support and compensate
> for the difference. All this is a platform burden. If you can use a more
> lightweight approach, this will both increase productivity and simplify
> things. Not speaking about all other advantages (see the original post).
That is why you have the source to most of the user space programs you
run, right?
Running windows, or anything in Linux with a different personality won't
give you the same as the native platform. There *will* be differences
that programs depend upon. Moving that into the kernel will *not* help
you in this area.
WINE or not, that is why ports of apps to Linux is encouraged more than
getting Wine to work bug for bug like windows.
I can see little purpose in this thread, since little will come out of
it unless you are willing to start a project yourself, contribute code,
and eventually recruit a community to work on it.
next prev parent reply other threads:[~2004-02-25 22:43 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
2004-02-25 21:59 ` Grigor Gatchev
2004-02-25 22:22 ` Mike Fedyk [this message]
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=403D2030.8080606@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