> OK, I never said ALL of IE runs in ring 0. I said that IE is
intertwined into the kernel.
In the same way that Notepad.exe is intertwined with the kernel.
Greg, there’s nothing unprofessional going on here. We *are* discussing the merits of different techniques for isolation. And if you want to moan about professionalism, perhaps using terms like “Internet Exploder” is not the best way to set an example, especially when it is irrelevant to the topic, and even misleading. (It’s an app, with no special privileges, not a driver.)
One of the problems with using rings (no matter how many) to implement isolation is that MMUs have very coarse granularity (pages), that you cannot easily transfer ownership of the data (you are forced either to use shared memory, or to copy between isolation spaces), and that there is a very real hardware cost (including significant runtime costs) associated with all of this protection. This is the main reason that so many subsystems on Windows have been pushed into shared address spaces – shared, either in the kernel (such as the GUI being moved into the kernel), or in user-mode processes. For example, a distressing number of services run in shared svchost.exe, for a variety of reasons (sharing per-process resources, such as thread pools, but also communicating). They also share, of course, fates.
I know this is wayyyyy off-topic for NTDEV, so this will be my last(*) post on the subject, but I would encourage anyone interested in isolation to read these papers (and others, available at http://research.microsoft.com/os/singularity/).
Deconstructing Process Isolation
http://research.microsoft.com/copyright/accept.asp?path=http://www.research.microsoft.com/os/publications/MSPC2006-%20Deconstructing%20Process%20Isolation.pdf&pub=ACM
Language Support for Fast and Reliable Message-based Communication in Singularity OS
http://www.cs.kuleuven.ac.be/conference/EuroSys2006/papers/p177-fahndrich.pdf
[* we’ll see]
-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Gregory G. Dyess
Sent: Thursday, March 29, 2007 3:15 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Two Rings Good, Four Rings Bad
OK, I never said ALL of IE runs in ring 0. I said that IE is intertwined
into the kernel. Possibly you can argue semantics here, if you want to just
argue, then fine, go ahead. All I did was point out that a very stable OS
has 4 rings and is not unstable or overly complex simply because it has more
than 2 rings.
I am not in any way pushing for NT to try to modify to fit the VMS model.
Was it a good decision to drop that part of the VMS architecture? I don’t
know. I have learned that there is no ONE RIGHT answer, there are only
tradeoffs.
I was hoping this forum, being professionals, could have such a conversation
of the relative merits of 2 vs 4 rings. Apparently, I was incorrect. I
have been on this list for 5 or 6 years now. I have witnessed many flame
wars fought over completely tangential minutia. I tried to pull the
discussion back to the primary topic of 2 vs 4 rings. If everyone wants to
get back to that topic, I’d love to discuss it, otherwise, there is no point
in continuing.
Greg
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Arlie Davis
Sent: Thursday, March 29, 2007 1:24 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Two Rings Good, Four Rings Bad
If this were a courtroom, then the assertions of lawyers would be relevant.
Fortunately, we’re discussing kernels in an engineering forum. And if
you’ve been developing for 25 years now, you ought to know that IE doesn’t
run in ring 0, and you ought to know better than to make such an assertion
here.
I never said a 4-ring kernel can’t work. I said that the current commodity
OSes (Windows, Linux, OS X, Sun OS, *nix, etc.) don’t use anything but
2-ring isolation, and that any sort of n>2-ring design needs to be part of
the OS from the beginning, rather than shoe-horned into an existing design.
I’m all for better isolation, between kernel, drivers, apps, you name it.
I’ve yet to see a retrofit that looks like anything but a retrofit, however.
Good isolation design has to be there from the start. But if someone can
hunt up interesting work on better isolation, I’m all ears. After all, it’s
my day job.
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Gregory G. Dyess
Sent: Thursday, March 29, 2007 1:56 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Two Rings Good, Four Rings Bad
KO, I was trying to prevent a flame war. My assertions are not bogus
either. Have you ever tried to build a Windows XP Embedded image without
IE? The kernel barfs all over itself.
Look, I was NOT trying to start a flame war. I merely pointed out that a
very stable OS used a 4-ring model and that OS was far more stable than NT
has or probably ever will be (even though it was actually the foundation of
a lot of the Windows NT code and architecture). That cannot possibly be
disputed by anyone who, as have I, done serious work at all levels (drivers,
kernel, user) for 25 years now (OK, that was my VMS longevity, NT only
since 1993 as a beta product).
If anyone wants to return this thread to a discussion of the relative merits
of a 2-ring vs a 4-ring architecture, I’ll be happy to discuss that in a
calm and professional manner.
BTW, MS lawyers DID claim that IE could not be removed from Windows because
it was too tightly integrated into the kernel.
Greg
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer
Questions? First check the Kernel Driver FAQ at http://www.osronline.com/article.cfm?id=256
To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer