Jump-start your project by learning from devs who
write Windows drivers and file systems every day.
Take an OSR seminar!

Upcoming OSR Seminars:
WDM Lab, Seattle, WA 16 August 2010
WDF Lab, Santa Clara, CA 27 September 2010
Debug Lab, Portland, OR 18 October 2010
Windows Internals & Software Drivers Lab, Santa Clara, CA 15 November 2010


Go Back   OSR Online Lists > ntdev
Welcome, Guest
You must login to post to this list
  Message 1 of 78  
28 Mar 07 22:45
ntdev member 32812
xxxxxx@microsoft.com
Join Date:
Posts To This List: 84
Two Rings Good, Four Rings Bad

I believe x64 specifies that only rings 0 and 1 are supported. So clearly AMD thought that were was so little market for OSes that require or can use rings 2 and 3 that they cut the feature. (There *is* a non-zero cost for hardware features, in design time, verification, fab time, chip area, power, etc.) All of this is interesting, from an OS design point of view, but is rather pointless when applied to NTDEV. The NT model is what it is -- two levels of privelege. So are most of the major, commodity OSes, so it isn't exactly an uncommon model. Also, people should consider the additional complexity that driver developers would need to deal with. Driver developers already need to understand IRQLs, paged-vs-non-paged, arbitrary thread context vs. known thread context, etc. Adding another axis to this would cause a lot more cognitive load for the developers, and would not in reality deliver much value. (Whole forests have been cut down to print all of the research papers on device driver isolation.) Try to imagine the excruciating number of combinations of paged/non-paged, 4x rings, and multiple drivers all communicating with each other. If I allocate data at ring 1, and I pass it to a driver or OS component that runs at ring 0, what should happen? Boom? Now raise that number of combinations to the power of the average PNP device stack depth, and it quickly becomes obvious that more than 2 rings just causes insanity. At least if it is shoe-horned into an existing OS design, and not part of it from the beginning. (And I don't know of any OS designed after 1980 where this was a feature. I'm sure the peanut gallery will point one out, though, if there is.) Would I like to have better isolation between drivers? Of course. Which is why I would suggest looking elsewhere, such as http://research.microsoft.com/os/singularity/, rather than trying to resurrect a processor architecture that is not used, and is basically being abandoned. ________________________________________ From: xxxxx@lists.osr.com [xxxxx@lists.osr.com] On Behalf Of Tim Roberts [xxxxx@probo.com] Sent: Wednesday, March 28, 2007 2:34 PM To: Windows System Software Devs Interest List Subject: Re: [ntdev] Re:Driver Programming Fundamentals/Philosophy, was: Re: Calling NdisRequest() from ProtoclBi Maxim S. Shatskih wrote: >> I don't understand your point, Maxim. Portability between what and what? >> > > All these RISC machines, and now IA64. > > Having the OS unportable to any other CPU _even theoretically_ is a bad idea. Nonsense. The ring 1 thing would be implementation detail of the x86 kernels -- an added benefit available on architectures that had multiple levels of protection. It certainly wouldn't require any source code changes in drivers, so I am unclear on how it would affect portability. There are certainly precedents for this. NT supports I/O ports, even though those do not exist on non-x86 architectures. It supports memory barriers, even though those only have meaning for certain architectures. -- Tim Roberts, xxxxx@probo.com Providenza & Boekelheide, Inc. --- 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
  Message 2 of 78  
28 Mar 07 23:41
Gregory G. Dyess
xxxxxx@pdq.net
Join Date:
Posts To This List: 247
RE: Two Rings Good, Four Rings Bad

VMS was originally a 4-ring OS when it ran on VAX hardware. I'm not sure if they kept the 4-ring or went to 3 rings when ported to Alpha hardware and eventually to Intel's Itanium. There were no major issues with device drivers or passing of data from one ring to the next or paging, etc, so the argument of complexity doesn't hold much water in practical experience. BTW, VMS was far more stable than NT ever has (or probably ever will be). Greg -----Original Message----- From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Arlie Davis Sent: Wednesday, March 28, 2007 9:45 PM To: Windows System Software Devs Interest List Subject: [ntdev] Two Rings Good, Four Rings Bad I believe x64 specifies that only rings 0 and 1 are supported. So clearly AMD thought that were was so little market for OSes that require or can use rings 2 and 3 that they cut the feature. (There *is* a non-zero cost for hardware features, in design time, verification, fab time, chip area, power, etc.) All of this is interesting, from an OS design point of view, but is rather pointless when applied to NTDEV. The NT model is what it is -- two levels of privelege. So are most of the major, commodity OSes, so it isn't exactly an uncommon model. Also, people should consider the additional complexity that driver developers would need to deal with. Driver developers already need to understand IRQLs, paged-vs-non-paged, arbitrary thread context vs. known thread context, etc. Adding another axis to this would cause a lot more cognitive load for the developers, and would not in reality deliver much value. (Whole forests have been cut down to print all of the research papers on device driver isolation.) Try to imagine the excruciating number of combinations of paged/non-paged, 4x rings, and multiple drivers all communicating with each other. If I allocate data at ring 1, and I pass it to a driver or OS component that runs at ring 0, what should happen? Boom? Now raise that number of combinations to the power of the average PNP device stack depth, and it quickly becomes obvious that more than 2 rings just causes insanity. At least if it is shoe-horned into an existing OS design, and not part of it from the beginning. (And I don't know of any OS designed after 1980 where this was a feature. I'm sure the peanut gallery will point one out, though, if there is.) Would I like to have better isolation between drivers? Of course. Which is why I would suggest looking elsewhere, such as http://research.microsoft.com/os/singularity/, rather than trying to resurrect a processor architecture that is not used, and is basically being abandoned. ________________________________________ From: xxxxx@lists.osr.com [xxxxx@lists.osr.com] On Behalf Of Tim Roberts [xxxxx@probo.com] Sent: Wednesday, March 28, 2007 2:34 PM To: Windows System Software Devs Interest List Subject: Re: [ntdev] Re:Driver Programming Fundamentals/Philosophy, was: Re: Calling NdisRequest() from ProtoclBi Maxim S. Shatskih wrote: >> I don't understand your point, Maxim. Portability between what and what? >> > > All these RISC machines, and now IA64. > > Having the OS unportable to any other CPU _even theoretically_ is a bad idea. Nonsense. The ring 1 thing would be implementation detail of the x86 kernels -- an added benefit available on architectures that had multiple levels of protection. It certainly wouldn't require any source code changes in drivers, so I am unclear on how it would affect portability. There are certainly precedents for this. NT supports I/O ports, even though those do not exist on non-x86 architectures. It supports memory barriers, even though those only have meaning for certain architectures. -- Tim Roberts, xxxxx@probo.com Providenza & Boekelheide, Inc. --- 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
  Message 3 of 78  
28 Mar 07 23:50
David J. Craig
xxxxxx@yoshimuni.com
Join Date:
Posts To This List: 1114
Re: Two Rings Good, Four Rings Bad

Just one question to this as I don't disagree with most of it. Which came first: the chicken or the egg? Is the four ring hardware being dropped because the OS wasn't using it or because it was a bad idea? I know that Intel has changed how many of the various instructions are implemented to speed them up by devoting additional transistors to the ones they determine need to be improved mostly because of Windows usage. Life is as you said. We have to live with what we are given - except for the few who design operating systems, mostly at Microsoft. However if we don't mention solutions, problems, and other issues we can't complain when the solutions we are given suck. "Arlie Davis" <xxxxx@microsoft.com> wrote in message news:88590@ntdev... I believe x64 specifies that only rings 0 and 1 are supported. So clearly AMD thought that were was so little market for OSes that require or can use rings 2 and 3 that they cut the feature. (There *is* a non-zero cost for hardware features, in design time, verification, fab time, chip area, power, etc.) All of this is interesting, from an OS design point of view, but is rather pointless when applied to NTDEV. The NT model is what it is -- two levels of privelege. So are most of the major, commodity OSes, so it isn't exactly an uncommon model. Also, people should consider the additional complexity that driver developers would need to deal with. Driver developers already need to understand IRQLs, paged-vs-non-paged, arbitrary thread context vs. known thread context, etc. Adding another axis to this would cause a lot more cognitive load for the developers, and would not in reality deliver much value. (Whole forests have been cut down to print all of the research papers on device driver isolation.) Try to imagine the excruciating number of combinations of paged/non-paged, 4x rings, and multiple drivers all communicating with each other. If I allocate data at ring 1, and I pass it to a driver or OS component that runs at ring 0, what should happen? Boom? Now raise that number of combinations to the power of the average PNP device stack depth, and it quickly becomes obvious that more than 2 rings just causes insanity. At least if it is shoe-horned into an existing OS design, and not part of it from the beginning. (And I don't know of any OS designed after 1980 where this was a feature. I'm sure the peanut gallery will point one out, though, if there is.) Would I like to have better isolation between drivers? Of course. Which is why I would suggest looking elsewhere, such as http://research.microsoft.com/os/singularity/, rather than trying to resurrect a processor architecture that is not used, and is basically being abandoned. ________________________________________ From: xxxxx@lists.osr.com [xxxxx@lists.osr.com] On Behalf Of Tim Roberts [xxxxx@probo.com] Sent: Wednesday, March 28, 2007 2:34 PM To: Windows System Software Devs Interest List Subject: Re: [ntdev] Re:Driver Programming Fundamentals/Philosophy, was: Re: Calling NdisRequest() from ProtoclBi Maxim S. Shatskih wrote: >> I don't understand your point, Maxim. Portability between what and what? >> > > All these RISC machines, and now IA64. > > Having the OS unportable to any other CPU _even theoretically_ is a bad > idea. Nonsense. The ring 1 thing would be implementation detail of the x86 kernels -- an added benefit available on architectures that had multiple levels of protection. It certainly wouldn't require any source code changes in drivers, so I am unclear on how it would affect portability. There are certainly precedents for this. NT supports I/O ports, even though those do not exist on non-x86 architectures. It supports memory barriers, even though those only have meaning for certain architectures. -- Tim Roberts, xxxxx@probo.com Providenza & Boekelheide, Inc. --- 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
  Message 4 of 78  
29 Mar 07 00:04
ntdev member 31410
xxxxxx@intel.com
Join Date:
Posts To This List: 24
RE: Two Rings Good, Four Rings Bad

The real question: is there one ring that rules them all?
  Message 5 of 78  
29 Mar 07 00:21
ntdev member 8437
xxxxxx@windows.microsoft.com
Join Date:
Posts To This List: 1404
RE: Two Rings Good, Four Rings Bad

That's where the hypervisor lives :) -p -----Original Message----- From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Gray, Zachary C Sent: Wednesday, March 28, 2007 9:04 PM To: Windows System Software Devs Interest List Subject: RE: [ntdev] Two Rings Good, Four Rings Bad The real question: is there one ring that rules them all? --- 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
  Message 6 of 78  
29 Mar 07 00:40
Doron Holan
xxxxxx@Microsoft.com
Join Date: 08 Sep 2005
Posts To This List: 5313
RE: Two Rings Good, Four Rings Bad

> BTW, VMS was far more stable than NT ever has (or probably ever will be). And how many 3rd party drivers did it load? Much easier to create a stable OS if you control every component and can test their interactions together. Not saying that all crashes are due to 3rd party drivers, but a good majority of crashes are due extensions loaded in the kernel. My point is that it is not so black and white ;). d
  Message 7 of 78  
29 Mar 07 01:36
anton bassov
xxxxxx@hotmail.com
Join Date: 16 Jul 2006
Posts To This List: 2691
RE: Two Rings Good, Four Rings Bad

> Just one question to this as I don't disagree with most of it. Which came first: the chicken > or the egg? Is the four ring hardware being dropped because the OS wasn't using it or because it > was a bad idea? Actually, this is not really a "chicken-egg dilemma".... Try to look at it as simply as at demand-supply scenario, where hardware designers are in the role of suppliers and OS writers are in the role of consumers. If there is no demand for some product, then manufacturers normally just drop it. Here we are in exactly the same situation. If hardware designers see that some certain CPU feature is not that popular among OS designers, they come to a conclusion that this feature is simply not needed - after all, CPU without OS is just a piece of metal that will never make its way to the end users.... To be honest, I don't think that four-ring protection is a good idea. As Peter has already pointed out, from CPU's perspective there is privileged code (i.e. the one that is allowed to execute privileged instructions) and non-privileged one. Therefore, Ring 1 code is just "the most privileged code out of all non-privileged one", and, hence, still needs validation when it makes system calls. In other words, if you move drivers out of Ring 0, effectively turning them into non-privileged code, it does not really matter if you move them to Ring 1 or Ring 3, because all system calls made by non-privileged code require validation anyway. If validation of calls made by Ring 1 code is going to be not as strict as that of Ring 3 calls....well, then drivers will still be able to crash the OS, which simply defeats the purpose of moving them out of Ring 0 - the whole thing does not really offer extra security, but does add overhead.... Anton Bassov
  Message 8 of 78  
29 Mar 07 03:26
deepumon es
xxxxxx@gmail.com
Join Date: 16 Jul 2006
Posts To This List: 11
Re: Two Rings Good, Four Rings Bad

I read somewhere that the Window/graphics managers in Windows NT is running in kernel mode. Is it really require to be in Ring 0 ?. I feel Ring 1 is the best place for Window manager. But the question still remains, will a bug in Ring 1 crash the machine ?. ~Sisimon On 3/29/07, xxxxx@hotmail.com <xxxxx@hotmail.com> wrote: > > > Just one question to this as I don't disagree with most of it. Which > came first: the chicken > > or the egg? Is the four ring hardware being dropped because the OS > wasn't using it or because it > > was a bad idea? > > Actually, this is not really a "chicken-egg dilemma".... Try to look at it > as simply as at demand-supply scenario, where hardware designers are in the > role of suppliers and OS writers are in the role of consumers. If there is <...excess quoted lines suppressed...> -- GCS d+ s: a- c++++ U> B+ L++>$ w++++$ W++(+++) PGP+N+ t PS+PE++ tv+(++) b+++ G+++ e++>(++++) h-- r Don't know this? See http://www.geekcode.com/geek.html --
  Message 9 of 78  
29 Mar 07 06:27
Maxim S. Shatskih
xxxxxx@storagecraft.com
Join Date: 20 Feb 2003
Posts To This List: 6526
Re: Two Rings Good, Four Rings Bad

> BTW, VMS was far more stable than NT ever has (or probably ever will be). ...due to lesser numbers of third-party kernel-mode software titles. -- Maxim Shatskih, Windows DDK MVP StorageCraft Corporation xxxxx@storagecraft.com http://www.storagecraft.com
  Message 10 of 78  
29 Mar 07 06:28
Maxim S. Shatskih
xxxxxx@storagecraft.com
Join Date: 20 Feb 2003
Posts To This List: 6526
Re: Two Rings Good, Four Rings Bad

"Sauron" seems to be the good code name for hypervisor, like "Chicago" was for Win95 and "Whistler" was for XP :-)))) -- Maxim Shatskih, Windows DDK MVP StorageCraft Corporation xxxxx@storagecraft.com http://www.storagecraft.com "Peter Wieland" <xxxxx@windows.microsoft.com> wrote in message news:88601@ntdev... That's where the hypervisor lives :) -p -----Original Message----- From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Gray, Zachary C Sent: Wednesday, March 28, 2007 9:04 PM To: Windows System Software Devs Interest List Subject: RE: [ntdev] Two Rings Good, Four Rings Bad The real question: is there one ring that rules them all? --- 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
  Message 11 of 78  
29 Mar 07 06:32
Maxim S. Shatskih
xxxxxx@storagecraft.com
Join Date: 20 Feb 2003
Posts To This List: 6526
Re: Two Rings Good, Four Rings Bad

> I read somewhere that the Window/graphics managers in Windows NT is >running > in kernel mode. Is it really require to be in Ring 0 ?. I feel Ring 1 is the > best place for Window manager. Good suggestion. For me, the design of session space and win32k is similar to VMS's design of putting the DCL command-line shell - and possibly some shared libraries - to Ring 2 memory shared across the whole "logon session" (or how it was called there). Given the knowledge of how well win32k is separated from the rest of the kernel (graphics drivers cannot call kernel routines, only win32k's ones) - putting it to Ring 1 or 2 looks like a good idea. Not done though, I suspect due to portability issues. -- Maxim Shatskih, Windows DDK MVP StorageCraft Corporation xxxxx@storagecraft.com http://www.storagecraft.com
  Message 12 of 78  
29 Mar 07 07:42
Gregory G. Dyess
xxxxxx@pdq.net
Join Date:
Posts To This List: 247
RE: Two Rings Good, Four Rings Bad

The windowing started out in "user mode" (Ring 1) and was moved into ring 0 in NT 4.0 due to performance reasons. Apparently, the original L/RPC mechanism was too slow to provide good performance so they moved it into ring 0 to bypass that security/safety measure. Greg -----Original Message----- From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Maxim S. Shatskih Sent: Thursday, March 29, 2007 5:31 AM To: Windows System Software Devs Interest List Subject: Re:[ntdev] Two Rings Good, Four Rings Bad > I read somewhere that the Window/graphics managers in Windows NT is >running > in kernel mode. Is it really require to be in Ring 0 ?. I feel Ring 1 is the > best place for Window manager. Good suggestion. For me, the design of session space and win32k is similar to VMS's design of putting the DCL command-line shell - and possibly some shared libraries - to Ring 2 memory shared across the whole "logon session" (or how it was called there). Given the knowledge of how well win32k is separated from the rest of the kernel (graphics drivers cannot call kernel routines, only win32k's ones) - putting it to Ring 1 or 2 looks like a good idea. Not done though, I suspect due to portability issues. -- Maxim Shatskih, Windows DDK MVP StorageCraft Corporation xxxxx@storagecraft.com http://www.storagecraft.com --- 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
  Message 13 of 78  
29 Mar 07 07:42
Gregory G. Dyess
xxxxxx@pdq.net
Join Date:
Posts To This List: 247
RE: Two Rings Good, Four Rings Bad

Granted, there were not the numbers of 3rd party drivers. Also, granted that the quality of those 3rd party drivers was significantly greater than that we see in todays rushed software development cycles. Also, granted that VMS was released on schedules that allowed for much fuller development and QA cycles. Also granted that people were willing to pay for the cost of all of this quality. Having said all of that, VMS was also far more secure than NT, and that cannot be blamed in any way on 3rd-party devices or drivers. Please don't get me wrong, I make my living developing for Windows NT/XP/CE/Mobile, etc. I made my living in the past doing realtime work on VMS and then Windows Platforms. Microsoft hired Dave Cutler, the architect of VMS, to do the Windows NT product. They missed several great opportunities to make NT all that VMS was and more. Somewhere along the way MS got the mistaken idea that the window was the OS instead of something running on the OS. The rest is history. For a while, I ran an Alpha processor machine with dual booting VMS and Windows NT. VMS was far faster than NT on that machine. This blows holes all in the theories about kernel-mode windowing being faster or that you HAVE to put the windowing exec in kernel mode for performance/stability or that 2 rings produces less overhead. Greg -----Original Message----- From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Maxim S. Shatskih Sent: Thursday, March 29, 2007 5:26 AM To: Windows System Software Devs Interest List Subject: Re:[ntdev] Two Rings Good, Four Rings Bad > BTW, VMS was far more stable than NT ever has (or probably ever will be). ...due to lesser numbers of third-party kernel-mode software titles. -- Maxim Shatskih, Windows DDK MVP StorageCraft Corporation xxxxx@storagecraft.com http://www.storagecraft.com --- 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
  Message 14 of 78  
29 Mar 07 08:14
deepumon es
xxxxxx@gmail.com
Join Date: 16 Jul 2006
Posts To This List: 11
Re: Two Rings Good, Four Rings Bad

>Having said all of that, VMS was also far more secure than NT, and that >cannot be blamed in any way on 3rd-party devices or drivers. How many crashes reported in OSR pointing to Windows kernel ? It seems INITIALLY there are issues when MS introduce new driver/driver framework (like storport, filter manager), but it is negligible compare with the *blue screens* by third party drivers. ~Sisimon Bangalore On 3/29/07, Gregory G. Dyess <xxxxx@pdq.net> wrote: > > Granted, there were not the numbers of 3rd party drivers. Also, granted > that the quality of those 3rd party drivers was significantly greater than > that we see in todays rushed software development cycles. Also, granted > that VMS was released on schedules that allowed for much fuller > development > and QA cycles. Also granted that people were willing to pay for the cost > of > all of this quality. > <...excess quoted lines suppressed...> -- GCS d+ s: a- c++++ U> B+ L++>$ w++++$ W++(+++) PGP+N+ t PS+PE++ tv+(++) b+++ G+++ e++>(++++) h-- r Don't know this? See http://www.geekcode.com/geek.html --
  Message 15 of 78  
29 Mar 07 08:32
Don Burn
xxxxxx@acm.org
Join Date:
Posts To This List: 2732
Re: Two Rings Good, Four Rings Bad

You are ignoring the fact that for a long portion of that history VAX'es were treated more like the old "datacenter" program for Windows 2000. With that program, there were guarantees of reliability that Microsoft and its hardware partners easily met. But to get that reliability, you could only use trusted drivers (that had passed a multi-week test), and you had to have a strong strict program of maintaining the system. It is interesting that almost any system can reach that point. For years I knew of an NT 3.5.1 system that has not had a major crash since it was installed (about the time 3.5.1 war rolled out). The customer uses it for a limited purpose (file serving documents that rarely change), and has been very careful on the upgrades and support it gets. Now, NT 3.5.1 was not what I would call a robust OS, but the system had run the last time I had contact over 7 years without a crash. Windows crashes have more to do with 3rd party drivers, and poor maintainance versus systems like VAXen than it does with the quality of the code. -- Don Burn (MVP, Windows DDK) Windows 2k/XP/2k3 Filesystem and Driver Consulting Website: http://www.windrvr.com Blog: http://msmvps.com/blogs/WinDrvr Remove StopSpam to reply "Gregory G. Dyess" <xxxxx@pdq.net> wrote in message news:88596@ntdev... > VMS was originally a 4-ring OS when it ran on VAX hardware. I'm not sure > if > they kept the 4-ring or went to 3 rings when ported to Alpha hardware and > eventually to Intel's Itanium. There were no major issues with device > drivers or passing of data from one ring to the next or paging, etc, so > the > argument of complexity doesn't hold much water in practical experience. > > BTW, VMS was far more stable than NT ever has (or probably ever will be). > <...excess quoted lines suppressed...>
  Message 16 of 78  
29 Mar 07 08:44
Maxim S. Shatskih
xxxxxx@storagecraft.com
Join Date: 20 Feb 2003
Posts To This List: 6526
Re: Two Rings Good, Four Rings Bad

> The windowing started out in "user mode" (Ring 1) Ring 3 -- Maxim Shatskih, Windows DDK MVP StorageCraft Corporation xxxxx@storagecraft.com http://www.storagecraft.com
  Message 17 of 78  
29 Mar 07 08:47
Maxim S. Shatskih
xxxxxx@storagecraft.com
Join Date: 20 Feb 2003
Posts To This List: 6526
Re: Two Rings Good, Four Rings Bad

> For a while, I ran an Alpha processor machine with dual booting VMS and > Windows NT. VMS was far faster than NT on that machine. Correct, NT/Alpha was 32bit and VMS/Alpha was IIRC 64bit. -- Maxim Shatskih, Windows DDK MVP StorageCraft Corporation xxxxx@storagecraft.com http://www.storagecraft.com
  Message 18 of 78  
29 Mar 07 10:32
Gregory G. Dyess
xxxxxx@pdq.net
Join Date:
Posts To This List: 247
RE: Two Rings Good, Four Rings Bad

Ooops, sorry, I should have said "outer ring". Thank you for the correction. Greg -----Original Message----- From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Maxim S. Shatskih Sent: Thursday, March 29, 2007 7:43 AM To: Windows System Software Devs Interest List Subject: Re:[ntdev] Two Rings Good, Four Rings Bad > The windowing started out in "user mode" (Ring 1) Ring 3 -- Maxim Shatskih, Windows DDK MVP StorageCraft Corporation xxxxx@storagecraft.com http://www.storagecraft.com --- 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
  Message 19 of 78  
29 Mar 07 10:32
Gregory G. Dyess
xxxxxx@pdq.net
Join Date:
Posts To This List: 247
RE: Two Rings Good, Four Rings Bad

I agree with that point. I built a NT 4.0 server that ran for 2 years with almost no downtime. I had to power it down one time to replace a DAT drive, but there is no way that can be blamed on the OS. The original premise of this discussion was that 4 rings was considerably more complex than a 2-ring OS and therefore inherently less stable. I merely pointed out a very prominent (OK, once prominent) case to counter that argument. Greg -----Original Message----- From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Don Burn Sent: Thursday, March 29, 2007 7:32 AM To: Windows System Software Devs Interest List Subject: Re:[ntdev] Two Rings Good, Four Rings Bad You are ignoring the fact that for a long portion of that history VAX'es were treated more like the old "datacenter" program for Windows 2000. With that program, there were guarantees of reliability that Microsoft and its hardware partners easily met. But to get that reliability, you could only use trusted drivers (that had passed a multi-week test), and you had to have a strong strict program of maintaining the system. It is interesting that almost any system can reach that point. For years I knew of an NT 3.5.1 system that has not had a major crash since it was installed (about the time 3.5.1 war rolled out). The customer uses it for a limited purpose (file serving documents that rarely change), and has been very careful on the upgrades and support it gets. Now, NT 3.5.1 was not what I would call a robust OS, but the system had run the last time I had contact over 7 years without a crash. Windows crashes have more to do with 3rd party drivers, and poor maintainance versus systems like VAXen than it does with the quality of the code. -- Don Burn (MVP, Windows DDK) Windows 2k/XP/2k3 Filesystem and Driver Consulting Website: http://www.windrvr.com Blog: http://msmvps.com/blogs/WinDrvr Remove StopSpam to reply "Gregory G. Dyess" <xxxxx@pdq.net> wrote in message news:88596@ntdev... > VMS was originally a 4-ring OS when it ran on VAX hardware. I'm not sure > if > they kept the 4-ring or went to 3 rings when ported to Alpha hardware and > eventually to Intel's Itanium. There were no major issues with device > drivers or passing of data from one ring to the next or paging, etc, so > the > argument of complexity doesn't hold much water in practical experience. > > BTW, VMS was far more stable than NT ever has (or probably ever will be). > <...excess quoted lines suppressed...> --- 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
  Message 20 of 78  
29 Mar 07 10:32
Gregory G. Dyess
xxxxxx@pdq.net
Join Date:
Posts To This List: 247
RE: Two Rings Good, Four Rings Bad

Perhaps I was not clear when I said "secure". Secure means resists/withstands malicious attacks. NT has been plagued from it's initial release with security holes. Security holes cannot be blamed on device drivers. If security incursions get to the driver, the OS has already failed. Greg _____ From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Sisimon E S Sent: Thursday, March 29, 2007 7:14 AM To: Windows System Software Devs Interest List Subject: Re: [ntdev] Two Rings Good, Four Rings Bad >Having said all of that, VMS was also far more secure than NT, and that >cannot be blamed in any way on 3rd-party devices or drivers. How many crashes reported in OSR pointing to Windows kernel ? It seems INITIALLY there are issues when MS introduce new driver/driver framework (like storport, filter manager), but it is negligible compare with the *blue screens* by third party drivers. ~Sisimon Bangalore On 3/29/07, Gregory G. Dyess <xxxxx@pdq.net> wrote: Granted, there were not the numbers of 3rd party drivers. Also, granted that the quality of those 3rd party drivers was significantly greater than that we see in todays rushed software development cycles. Also, granted that VMS was released on schedules that allowed for much fuller development and QA cycles. Also granted that people were willing to pay for the cost of all of this quality. Having said all of that, VMS was also far more secure than NT, and that cannot be blamed in any way on 3rd-party devices or drivers. Please don't get me wrong, I make my living developing for Windows NT/XP/CE/Mobile, etc. I made my living in the past doing realtime work on VMS and then Windows Platforms. Microsoft hired Dave Cutler, the architect of VMS, to do the Windows NT product. They missed several great opportunities to make NT all that VMS was and more. Somewhere along the way MS got the mistaken idea that the window was the OS instead of something running on the OS. The rest is history. For a while, I ran an Alpha processor machine with dual booting VMS and Windows NT. VMS was far faster than NT on that machine. This blows holes all in the theories about kernel-mode windowing being faster or that you HAVE to put the windowing exec in kernel mode for performance/stability or that 2 rings produces less overhead. Greg -----Original Message----- From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Maxim S. Shatskih Sent: Thursday, March 29, 2007 5:26 AM To: Windows System Software Devs Interest List Subject: Re:[ntdev] Two Rings Good, Four Rings Bad > BTW, VMS was far more stable than NT ever has (or probably ever will be). ...due to lesser numbers of third-party kernel-mode software titles. -- Maxim Shatskih, Windows DDK MVP StorageCraft Corporation xxxxx@storagecraft.com http://www.storagecraft.com --- 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 -- GCS d+ s: a- c++++ U> B+ L++>$ w++++$ W++(+++) PGP+N+ t PS+PE++ tv+(++) b+++ G+++ e++>(++++) h-- r Don't know this? See http://www.geekcode.com/geek.html --- 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 --
  Message 21 of 78  
29 Mar 07 11:36
Maxim S. Shatskih
xxxxxx@storagecraft.com
Join Date: 20 Feb 2003
Posts To This List: 6526
Re: Two Rings Good, Four Rings Bad

> Perhaps I was not clear when I said "secure". Secure means > resists/withstands malicious attacks. NT has been plagued from it's initial > release with security holes. Most of these holes were in the DCE RPC monster or in Internet Explorer and its active content features, not in the core OS. -- Maxim Shatskih, Windows DDK MVP StorageCraft Corporation xxxxx@storagecraft.com http://www.storagecraft.com
  Message 22 of 78  
29 Mar 07 12:04
Gregory G. Dyess
xxxxxx@pdq.net
Join Date:
Posts To This List: 247
RE: Two Rings Good, Four Rings Bad

And where did MS put many part of Internet Exploder? Anyone? Yes, you in the back....That's right, embedded into the kernel and running in privilege mode. I think this thread has moved from the original topic of the relative complexity/stability of a 2-ring OS design vs a 4-ring design. Each model has its advantages and disadvantages over the other. In fact, many real-time OSes run entirely in ring 0. Either design can be done well, and either can be done very poorly. I think we have pointed out ways in which MS has done well and places where they made glaringly poor decisions in the OS design (L/RPC, internet browser in the kernel, windowing manager in the kernel, etc) and how these decisions have produced an OS that has fallen short of where it really could have been had they adhered more to their VMS roots. Perhaps the days of the highly stable and robust OS is over? Maybe people are just no longer willing to wait a little longer and pay for quality? Maybe everyone is now willing to accept crashes as a standard part of computing? What does this have to do with 2 rings vs 4 rings? I dunno. Just a topic, I guess. Greg
  Message 23 of 78  
29 Mar 07 12:19
Don Burn
xxxxxx@acm.org
Join Date:
Posts To This List: 2732
Re: Two Rings Good, Four Rings Bad

"Gregory G. Dyess" <xxxxx@pdq.net> wrote in message news:88635@ntdev... > Perhaps the days of the highly stable and robust OS is over? Funny the first time I saw teh above phrase was over 30 years ago, at the time people were talking about VAX/VMS!!!!!!! -- Don Burn (MVP, Windows DDK) Windows 2k/XP/2k3 Filesystem and Driver Consulting Website: http://www.windrvr.com Blog: http://msmvps.com/blogs/WinDrvr Remove StopSpam to reply
  Message 24 of 78  
29 Mar 07 12:37
Doron Holan
xxxxxx@Microsoft.com
Join Date: 08 Sep 2005
Posts To This List: 5313
RE: Two Rings Good, Four Rings Bad

Umh, there are no parts of IE in the kernel. That is a bit ridiculous. http.sys does exist, but that is for a web *server* (IIS), not a web client. d
  Message 25 of 78  
29 Mar 07 13:02
Maxim S. Shatskih
xxxxxx@storagecraft.com
Join Date: 20 Feb 2003
Posts To This List: 6526
Re: Two Rings Good, Four Rings Bad

> And where did MS put many part of Internet Exploder? Anyone? Yes, you in > the back....That's right, embedded into the kernel and running in privilege > mode. What particular parts of IE are embedded to the kernel???? > MS has done well and places where they made glaringly poor decisions in the > OS design (L/RPC, internet browser in the kernel Where do you see Internet browser in the kernel??? MSHTML.DLL and others are usual user-mode GUI DLLs. I would say even more: modern web browser #1 will _necessary_ suffer from the same issues as IE suffers. The reason is that it is a very complex piece of software _which deals with active content_. Some things about this active content will be overlooked for sure, and, being the product #1, it will be the main target for the malware authors. I do not think Firefox or Opera have lesser bugs then IE. They are just not so popular as malware targets, being not the #1 browser in the world. Firefox, for instance, is known to have memory leaks for years (though fixed in the recent builds probably) and thus sub-optimal memory use patterns. As about open source GUI software... well, when I tried the Kate open-source code editor (similar to Visual Studio 2003) - I immediately noticed several bugs in its coloring options screen and syntax highlight. Sorry, but MS's software usually has no bugs noticeable just from 30 minutes of playing with it. And it is not only Kate. I've heard the same about OpenOffice. > Perhaps the days of the highly stable and robust OS is over? What is necessary on the market is features, features, features. Delivering them is hurry, hurry, hurry. In-the-hurry made software will surely have exploitable bugs. Only enterprise software can concentrate on stability, the home/SOHO one cannot - its target audience has another interests (like "being kool" :-) ), and satisfying these interests leaves too small calendar and manpower resource for robustness and stability. > Maybe everyone is now willing to accept crashes as a standard part of > computing? On home and small office desktop it is already so. In the enterprises with proper IT professionals - not so. -- Maxim Shatskih, Windows DDK MVP StorageCraft Corporation xxxxx@storagecraft.com http://www.storagecraft.com
  Message 26 of 78  
29 Mar 07 13:10
Maxim S. Shatskih
xxxxxx@storagecraft.com
Join Date: 20 Feb 2003
Posts To This List: 6526
Re: Two Rings Good, Four Rings Bad

> Umh, there are no parts of IE in the kernel. That is a bit ridiculous. http.sys >does exist, but that is for a web *server* (IIS) It is also for many small HTTP listeners like .NET Remoting server-side infrastructure. -- Maxim Shatskih, Windows DDK MVP StorageCraft Corporation xxxxx@storagecraft.com http://www.storagecraft.com
  Message 27 of 78  
29 Mar 07 13:30
Gregory G. Dyess
xxxxxx@pdq.net
Join Date:
Posts To This List: 247
RE: Two Rings Good, Four Rings Bad

I refer everyone to MS'es own testimony in the outrageous anti-trust lawsuit brought by Clinton & company several years ago. Microsoft themselves pushed the argument that IE could not be removed from the OS because it's too intertwined in the kernel. I think this thread is about to turn into a flame-fest instead of a discussion of the relative merits of a 2-ring vs 4-ring OS. As such, I'm not going to respond any more. Greg -----Original Message----- From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Maxim S. Shatskih Sent: Thursday, March 29, 2007 12:10 PM To: Windows System Software Devs Interest List Subject: Re:[ntdev] Two Rings Good, Four Rings Bad > Umh, there are no parts of IE in the kernel. That is a bit ridiculous. http.sys >does exist, but that is for a web *server* (IIS) It is also for many small HTTP listeners like .NET Remoting server-side infrastructure. -- Maxim Shatskih, Windows DDK MVP StorageCraft Corporation xxxxx@storagecraft.com http://www.storagecraft.com --- 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
  Message 28 of 78  
29 Mar 07 13:38
ntdev member 32812
xxxxxx@microsoft.com
Join Date:
Posts To This List: 84
RE: Two Rings Good, Four Rings Bad

So, people call bullshit on your assertion, and then you declare that you won't post anymore? How convenient. No one from Microsoft argued that IE could not be removed from the kernel. The argument was made that *components* of IE (such as the HTML rendering engine in MSHTML.DLL) could not be removed from the OS-as-a-whole, because other OS components (such as HTML Help) made use of them. Show me one component of IE that runs in the kernel. You shouldn't complain about impending flame wars, when you're posting obviously bogus information. -----Original Message----- From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Gregory G. Dyess Sent: Thursday, March 29, 2007 1:30 PM To: Windows System Software Devs Interest List Subject: RE: [ntdev] Two Rings Good, Four Rings Bad I refer everyone to MS'es own testimony in the outrageous anti-trust lawsuit brought by Clinton & company several years ago. Microsoft themselves pushed the argument that IE could not be removed from the OS because it's too intertwined in the kernel. I think this thread is about to turn into a flame-fest instead of a discussion of the relative merits of a 2-ring vs 4-ring OS. As such, I'm not going to respond any more. Greg -----Original Message----- From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Maxim S. Shatskih Sent: Thursday, March 29, 2007 12:10 PM To: Windows System Software Devs Interest List Subject: Re:[ntdev] Two Rings Good, Four Rings Bad > Umh, there are no parts of IE in the kernel. That is a bit ridiculous. http.sys >does exist, but that is for a web *server* (IIS) It is also for many small HTTP listeners like .NET Remoting server-side infrastructure. -- Maxim Shatskih, Windows DDK MVP StorageCraft Corporation xxxxx@storagecraft.com http://www.storagecraft.com --- 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
  Message 29 of 78  
29 Mar 07 13:47
Tim Roberts
xxxxxx@probo.com
Join Date: 28 Jan 2005
Posts To This List: 5070
Re: Two Rings Good, Four Rings Bad

Arlie Davis wrote: > Try to imagine the excruciating number of combinations of paged/non-paged, 4x rings, and multiple drivers all communicating with each other. Well, we were speaking theoretically, after all. I'm not advocating a full-scale redesign of the operating system. I was merely trying to point out that the concept was not without merit. > If I allocate data at ring 1, and I pass it to a driver or OS component that runs at ring 0, what should happen? Boom? Of course not. Why would it? I can allocate data at ring 3 and pass it to a driver at ring 0 today. The situation is no different. The software in the inner ring has to understand that outer ring data is "less trusted", but that's not a bad thing to worry about. > Now raise that number of combinations to the power of the average PNP device stack depth, and it quickly becomes obvious that more than 2 rings just causes insanity. As I think about the design, all drivers would probably live at ring 1, with core operating system services, and maybe the HAL, at ring 0. However, I've only spent a few minutes thinking about it. > At least if it is shoe-horned into an existing OS design, and not part of it from the beginning. (And I don't know of any OS designed after 1980 where this was a feature. I'm sure the peanut gallery will point one out, though, if there is.) > You bet I will! The Control Data Cyber 180 mainframes included 16 rings. The design was strongly influenced by the Multics research. Its native operating system, NOS/VE, designed in the early 1980s, only assigned meaning to 8 of the rings. Applications lived in ring 11. Subsystems (like database engines) lived in ring 8. Basic operating system services lived in ring 5. I/O was done from ring 2. Rings in between were used for "trusted" transitions. For example, code in ring 9 knew how to marshal data between ring 11 and ring 8, so that untrusted data gained trust. -- Tim Roberts, xxxxx@probo.com Providenza & Boekelheide, Inc.
  Message 30 of 78  
29 Mar 07 13:56
Gregory G. Dyess
xxxxxx@pdq.net
Join Date:
Posts To This List: 247
RE: 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 -----Original Message----- From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Arlie Davis Sent: Thursday, March 29, 2007 12:38 PM To: Windows System Software Devs Interest List Subject: RE: [ntdev] Two Rings Good, Four Rings Bad So, people call bullshit on your assertion, and then you declare that you won't post anymore? How convenient. No one from Microsoft argued that IE could not be removed from the kernel. The argument was made that *components* of IE (such as the HTML rendering engine in MSHTML.DLL) could not be removed from the OS-as-a-whole, because other OS components (such as HTML Help) made use of them. Show me one component of IE that runs in the kernel. You shouldn't complain about impending flame wars, when you're posting obviously bogus information. -----Original Message----- From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Gregory G. Dyess Sent: Thursday, March 29, 2007 1:30 PM To: Windows System Software Devs Interest List Subject: RE: [ntdev] Two Rings Good, Four Rings Bad I refer everyone to MS'es own testimony in the outrageous anti-trust lawsuit brought by Clinton & company several years ago. Microsoft themselves pushed the argument that IE could not be removed from the OS because it's too intertwined in the kernel. I think this thread is about to turn into a flame-fest instead of a discussion of the relative merits of a 2-ring vs 4-ring OS. As such, I'm not going to respond any more. Greg -----Original Message----- From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Maxim S. Shatskih Sent: Thursday, March 29, 2007 12:10 PM To: Windows System Software Devs Interest List Subject: Re:[ntdev] Two Rings Good, Four Rings Bad > Umh, there are no parts of IE in the kernel. That is a bit ridiculous. http.sys >does exist, but that is for a web *server* (IIS) It is also for many small HTTP listeners like .NET Remoting server-side infrastructure. -- Maxim Shatskih, Windows DDK MVP StorageCraft Corporation xxxxx@storagecraft.com http://www.storagecraft.com --- 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 --- 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
  Message 31 of 78  
29 Mar 07 14:00
Tim Roberts
xxxxxx@probo.com
Join Date: 28 Jan 2005
Posts To This List: 5070
Re: Two Rings Good, Four Rings Bad

Maxim S. Shatskih wrote: > "Sauron" seems to be the good code name for hypervisor, like "Chicago" was > for Win95 and "Whistler" was for XP :-)))) I'd have to vote for "MCP". Tron remains one of my all-time favorite movies. I want Dillinger's desk! -- Tim Roberts, xxxxx@probo.com Providenza & Boekelheide, Inc.
  Message 32 of 78  
29 Mar 07 14:03
Tim Roberts
xxxxxx@probo.com
Join Date: 28 Jan 2005
Posts To This List: 5070
Re: Two Rings Good, Four Rings Bad

Sisimon E S wrote: > I read somewhere that the Window/graphics managers in Windows NT is > running in kernel mode. Is it really require to be in Ring 0 ?. I feel > Ring 1 is the best place for Window manager. But the question still > remains, will a bug in Ring 1 crash the machine ? On the other hand, let's say that there is a bug in the display driver, and it lives in ring 3. If the display driver crashes, rendering your display useless, is the experience any different than a ring 0 crash? Now, for a server, that might be a perfectly survivable condition, and indeed many ATMs continued to run Windows NT 3.51 long into the 21st Century. For a workstation, a display driver crash is fatal, whether it occurs in ring 0 or ring 3. -- Tim Roberts, xxxxx@probo.com Providenza & Boekelheide, Inc.
  Message 33 of 78  
29 Mar 07 14:10
ntdev member 32812
xxxxxx@microsoft.com
Join Date:
Posts To This List: 84
RE: Two Rings Good, Four Rings Bad

Actually, "fatal" isn't quite right. I've already seen Vista survive crashes of the user-mode display driver, then restart the display driver, and then politely inform me that it just saved my bacon. Not so much as a window moved. Not always possible, but I'm glad when it is! -----Original Message----- From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Tim Roberts Sent: Thursday, March 29, 2007 2:03 PM To: Windows System Software Devs Interest List Subject: Re: [ntdev] Two Rings Good, Four Rings Bad Sisimon E S wrote: > I read somewhere that the Window/graphics managers in Windows NT is > running in kernel mode. Is it really require to be in Ring 0 ?. I feel > Ring 1 is the best place for Window manager. But the question still > remains, will a bug in Ring 1 crash the machine ? On the other hand, let's say that there is a bug in the display driver, and it lives in ring 3. If the display driver crashes, rendering your display useless, is the experience any different than a ring 0 crash? Now, for a server, that might be a perfectly survivable condition, and indeed many ATMs continued to run Windows NT 3.51 long into the 21st Century. For a workstation, a display driver crash is fatal, whether it occurs in ring 0 or ring 3. -- Tim Roberts, xxxxx@probo.com Providenza & Boekelheide, Inc. --- 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
  Message 34 of 78  
29 Mar 07 14:24
ntdev member 32812
xxxxxx@microsoft.com
Join Date:
Posts To This List: 84
RE: 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
  Message 35 of 78  
29 Mar 07 14:52
ntdev member 27535
xxxxxx@clusterfs.com
Join Date:
Posts To This List: 7
Re: Two Rings Good, Four Rings Bad

Tim Roberts writes: > Maxim S. Shatskih wrote: > > "Sauron" seems to be the good code name for hypervisor, like "Chicago" was > > for Win95 and "Whistler" was for XP :-)))) > > I'd have to vote for "MCP". Tron remains one of my all-time favorite > movies. I want Dillinger's desk! Of _course_ it has to be MCR, to complete a cycle, and keep Cutler's ghost happy. > > -- > Tim Roberts, xxxxx@probo.com > Providenza & Boekelheide, Inc. Nikita.
  Message 36 of 78  
29 Mar 07 15:03
Michal Vodicka
xxxxxx@upek.com
Join Date: 02 Apr 2004
Posts To This List: 1602
RE: Two Rings Good, Four Rings Bad

Exactly. Even without a display it is possible to close apps and make graceful shutdown. At least, there is a good chance to avoid data loss. After BSOD all bets are off. Best regards, Michal Vodicka UPEK, Inc. [xxxxx@upek.com, http://www.upek.com] > ---------- > From: xxxxx@lists.osr.com[SMTP:xxxxx@lists.osr.com] on behalf of Arlie Davis[SMTP:xxxxx@microsoft.com] > Reply To: Windows System Software Devs Interest List > Sent: Thursday, March 29, 2007 8:10 PM > To: Windows System Software Devs Interest List > Subject: RE: [ntdev] Two Rings Good, Four Rings Bad > > Actually, "fatal" isn't quite right. I've already seen Vista survive crashes of the user-mode display driver, then restart the display driver, and then politely inform me that it just saved my bacon. Not so much as a window moved. > <...excess quoted lines suppressed...>
  Message 37 of 78  
29 Mar 07 15:16
Gregory G. Dyess
xxxxxx@pdq.net
Join Date:
Posts To This List: 247
RE: 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
  Message 38 of 78  
29 Mar 07 15:46
ntdev member 32812
xxxxxx@microsoft.com
Join Date:
Posts To This List: 84
RE: 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. 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.micro soft.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
  Message 39 of 78  
29 Mar 07 22:05
Maxim S. Shatskih
xxxxxx@storagecraft.com
Join Date: 20 Feb 2003
Posts To This List: 6526
Re: Two Rings Good, Four Rings Bad

> Century. For a workstation, a display driver crash is fatal, whether it > occurs in ring 0 or ring 3. Strictly speaking, not so. This can only mean crash of all GUI apps and restart of the whole GUI subsystem. This is not a kernel crash. Anyway, mass-market users want graphics speed, and message-passing graphics like in UNIXen and in NT-pre-4 is too slow. Linux is noticeably slower on graphics, both 2D and 3D. It can be faster as a whole in some configurations due to lots of complex issues like smaller amount of services running, but, if you will run just a graphics engine performance measurement test - it will lose on this test. That's why NT moved the GUI engine to the kernel. -- Maxim Shatskih, Windows DDK MVP StorageCraft Corporation xxxxx@storagecraft.com http://www.storagecraft.com
  Message 40 of 78  
29 Mar 07 23:57
anton bassov
xxxxxx@hotmail.com
Join Date: 16 Jul 2006
Posts To This List: 2691
RE: Two Rings Good, Four Rings Bad

Tim, > As I think about the design, all drivers would probably live at ring 1, > with core operating system services, and maybe the HAL, at ring 0. > However, I've only spent a few minutes thinking about it. Think about it a little bit more, and you will understand that there are just 2 types of code 1. Privileged code that is able to crash the OS 2. Unprivileged one that is unable to do the above, because it is unable to execute provileged instructions and because provileged code validates all parameters that it receives from unprivileged one. Even if you introduce sub-gradation of unprivileged code by using the additional protection rings, validation of calls that it makes still has to be *exactly* the same for all sub-levels (think about it carefully, and you will understand why it works this way). In other words, as far as system reliability is concerned, you need just 2 and not 4 protection levels In other words, although at the first glance it seems that 4 protection rings may be usefull, after a bit thinking it becones obvious that you don't need more than just 2 of them, no matter how you look at it Anton Bassov
  Message 41 of 78  
30 Mar 07 00:51
David J. Craig
xxxxxx@yoshimuni.com
Join Date:
Posts To This List: 1114
Re: Two Rings Good, Four Rings Bad

How about a video card with memory mapped memory? In ring 1, the kernel in ring 0 can grant access to that memory to the ring 1 driver, but deny access to it by ring 3 applications. The ring 3 to ring 1 transition and called driver will have to validate the addresses passed in but if it was to crash, the kernel could clean up and restart the video driver easier. The ring 1 driver also cannot crash the kernel because the ring 0 addresses are not available to it. <xxxxx@hotmail.com> wrote in message news:88678@ntdev... > Tim, > >> As I think about the design, all drivers would probably live at ring 1, >> with core operating system services, and maybe the HAL, at ring 0. >> However, I've only spent a few minutes thinking about it. > > Think about it a little bit more, and you will understand that there are > just 2 types of code > > 1. Privileged code that is able to crash the OS <...excess quoted lines suppressed...>
  Message 42 of 78  
30 Mar 07 03:21
anton bassov
xxxxxx@hotmail.com
Join Date: 16 Jul 2006
Posts To This List: 2691
RE: Two Rings Good, Four Rings Bad

David, > The ring 3 to ring 1 transition and called driver will have to validate the addresses passed in but > if it was to crash, the kernel could clean up and restart the video driver easier.... ... which simply defeats the purpose of separating it from all other Ring 3 code - on one hand, it still can be crashed by calls that are made by Ring 3 code if it does not validate them properly, but, on another hand, this crash is not fatal. In other words, it becomes, essentially, just Ring 3 code if you move it to Ring 1.... Anton Bassov
  Message 43 of 78  
30 Mar 07 10:01
Gregory G. Dyess
xxxxxx@pdq.net
Join Date:
Posts To This List: 247
RE: Two Rings Good, Four Rings Bad

I disagree, slightly. You're only looking at privileged vs non-privileged *instructions*. There's more to an OS than just instructions. There are data structures, some of which are more sensitive than others. By putting the most sensitive data structures at the innermost ring, you can grant a device driver access to its registers/memory without granting it access to the PFN database or scheduling structures or something outside its own structures. In addition to rings, there are compartments. Instead of thinking in terms of rings, think in terms of layers (horizontal). In addition to layers, there are vertical separations (compartments). The OS can compartmentalize code in "semi-privileged" layers into different compartments, much like what happens with user-mode processes. Of course, all of this has to be designed into the OS from the beginning. It cannot be shoe-horned in later. Just my $0.02 worth based upon observation of and working with actual, highly stable, commercial OS implementations. Greg -----Original Message----- From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@hotmail.com Sent: Thursday, March 29, 2007 10:56 PM To: Windows System Software Devs Interest List Subject: RE:[ntdev] Two Rings Good, Four Rings Bad Tim, > As I think about the design, all drivers would probably live at ring 1, > with core operating system services, and maybe the HAL, at ring 0. > However, I've only spent a few minutes thinking about it. Think about it a little bit more, and you will understand that there are just 2 types of code 1. Privileged code that is able to crash the OS 2. Unprivileged one that is unable to do the above, because it is unable to execute provileged instructions and because provileged code validates all parameters that it receives from unprivileged one. Even if you introduce sub-gradation of unprivileged code by using the additional protection rings, validation of calls that it makes still has to be *exactly* the same for all sub-levels (think about it carefully, and you will understand why it works this way). In other words, as far as system reliability is concerned, you need just 2 and not 4 protection levels In other words, although at the first glance it seems that 4 protection rings may be usefull, after a bit thinking it becones obvious that you don't need more than just 2 of them, no matter how you look at it Anton Bassov --- 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
  Message 44 of 78  
30 Mar 07 12:36
Tim Roberts
xxxxxx@probo.com
Join Date: 28 Jan 2005
Posts To This List: 5070
Re: Two Rings Good, Four Rings Bad

xxxxx@hotmail.com wrote: > >> As I think about the design, all drivers would probably live at ring 1, >> with core operating system services, and maybe the HAL, at ring 0. >> However, I've only spent a few minutes thinking about it. >> > > Think about it a little bit more, and you will understand that there are just 2 types of code > > 1. Privileged code that is able to crash the OS > <...excess quoted lines suppressed...> You only say this because this has been the model in all of the operating systems you've experienced. Don't allow the currently popular architecture to close your mind to other possibilities. The Multics research in the 1960s amply demonstrated the theoretical value of multiple rings. It wasn't commercially successful, but that doesn't mean the concepts are not valid. Can you really not see the benefit of having multiple layers of protection? Consider an application using a database. Involved in the process, you have the application itself, you have a database manager, you have a file system, and you have a disk driver. (Yes, in Windows, the database manager lives in a separate process, but that's simply an architectural choice. It might as well be in a single address space, as long as it is protected.). In a secure system, each of those layers should be able to communicate only with the layers immediately above and below it. By using multiple rings, the application can't damage the database file by going to the file system outside of the database manager, nor can it go directly to the disk driver. Everyone has to follow the chain of command. Again, remember that I'm not arguing that we should patch Windows to implement this. I'm merely saying that the concept has merit. -- Tim Roberts, xxxxx@probo.com Providenza & Boekelheide, Inc.
  Message 45 of 78  
30 Mar 07 12:41
Don Burn
xxxxxx@acm.org
Join Date:
Posts To This List: 2732
Re: Two Rings Good, Four Rings Bad

"Tim Roberts" <xxxxx@probo.com> wrote in message news:88699@ntdev... > xxxxx@hotmail.com wrote: >> > > You only say this because this has been the model in all of the > operating systems you've experienced. Don't allow the currently popular > architecture to close your mind to other possibilities. The Multics > research in the 1960s amply demonstrated the theoretical value of > multiple rings. It wasn't commercially successful, but that doesn't > mean the concepts are not valid. > Actually the research did not. Ironically, there were classes by MIT folks from the project being given at DEC and Data General at the time of those companies were designing 32-bit computers with rings. The MIT/Multic's folk were absolutely against rings, but the architects of those systems ignored the info given, and the software teams got to experience all the problems themselves first hand. -- Don Burn (MVP, Windows DDK) Windows 2k/XP/2k3 Filesystem and Driver Consulting Website: http://www.windrvr.com Blog: http://msmvps.com/blogs/WinDrvr Remove StopSpam to reply
  Message 46 of 78  
30 Mar 07 12:57
ntdev member 8437
xxxxxx@windows.microsoft.com
Join Date:
Posts To This List: 1404
RE: Two Rings Good, Four Rings Bad

But it all boils down to one simple concept - you have a privileged core which has access to data & instructions which the unpriviledged code can't be trusted with, and you have unpriviledged code which doesn't. Within that unpriviledged code you probably have a great deal of differentiation - different processes, layered components that talk to each other over LPC/RPC, security groups, etc. The sticking point seems to be whether this needs to be done with "Rings". I propose it doesn't. As long as you can make a strong line between priviledged and non-priviledged code/data, and as long as you can compartmentalize non-priviledged code/data it doesn't really matter if the processor supports 2 levels of execution or 2 + N (the 2 is pretty important though :) ) X86 Rings are difficult to use well - at least as far as I've thought it through. Unless you can really hurt portability and use segments (and 48 bit pointers screw portability no matter how clever you are with them) the fact that the MMU only supports two levels of protection makes it very hard to do calls through the intermediate rings because you have no way to protect the code & stack of the inner rings without having per-thread page tables. So regardless of whether "rings" are good or not, Windows doesn't run on a processor today (and hasn't really in the past) where they aren't more trouble than they're worth. -p -----Original Message----- From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Gregory G. Dyess Sent: Friday, March 30, 2007 7:01 AM To: Windows System Software Devs Interest List Subject: RE: [ntdev] Two Rings Good, Four Rings Bad I disagree, slightly. You're only looking at privileged vs non-privileged *instructions*. There's more to an OS than just instructions. There are data structures, some of which are more sensitive than others. By putting the most sensitive data structures at the innermost ring, you can grant a device driver access to its registers/memory without granting it access to the PFN database or scheduling structures or something outside its own structures. In addition to rings, there are compartments. Instead of thinking in terms of rings, think in terms of layers (horizontal). In addition to layers, there are vertical separations (compartments). The OS can compartmentalize code in "semi-privileged" layers into different compartments, much like what happens with user-mode processes. Of course, all of this has to be designed into the OS from the beginning. It cannot be shoe-horned in later. Just my $0.02 worth based upon observation of and working with actual, highly stable, commercial OS implementations. Greg -----Original Message----- From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@hotmail.com Sent: Thursday, March 29, 2007 10:56 PM To: Windows System Software Devs Interest List Subject: RE:[ntdev] Two Rings Good, Four Rings Bad Tim, > As I think about the design, all drivers would probably live at ring 1, > with core operating system services, and maybe the HAL, at ring 0. > However, I've only spent a few minutes thinking about it. Think about it a little bit more, and you will understand that there are just 2 types of code 1. Privileged code that is able to crash the OS 2. Unprivileged one that is unable to do the above, because it is unable to execute provileged instructions and because provileged code validates all parameters that it receives from unprivileged one. Even if you introduce sub-gradation of unprivileged code by using the additional protection rings, validation of calls that it makes still has to be *exactly* the same for all sub-levels (think about it carefully, and you will understand why it works this way). In other words, as far as system reliability is concerned, you need just 2 and not 4 protection levels In other words, although at the first glance it seems that 4 protection rings may be usefull, after a bit thinking it becones obvious that you don't need more than just 2 of them, no matter how you look at it Anton Bassov --- 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
  Message 47 of 78  
30 Mar 07 13:22
ntdev member 31823
xxxxxx@fausse.info
Join Date:
Posts To This List: 41
RE: Two Rings Good, Four Rings Bad

What about Virtual Machines? VMM run the OS in ring 1. And hypervisor is just really a ring -1. So everything about emulation and virtualization could really use the additional rings. -- Edouard A. > -----Original Message----- > From: xxxxx@lists.osr.com [mailto:bounce-282260- > xxxxx@lists.osr.com] On Behalf Of Tim Roberts > Sent: vendredi 30 mars 2007 18:35 > To: Windows System Software Devs Interest List > Subject: Re: [ntdev] Two Rings Good, Four Rings Bad > > xxxxx@hotmail.com wrote: > > > >> As I think about the design, all drivers would probably live at ring <...excess quoted lines suppressed...>
  Message 48 of 78  
30 Mar 07 13:31
Gregory G. Dyess
xxxxxx@pdq.net
Join Date:
Posts To This List: 247
RE: Two Rings Good, Four Rings Bad

I think you finally nailed it when you said: *But it all boils down to one simple concept - you have a privileged core *which has access to data & instructions which the unpriviledged code can't *be trusted with, and you have unpriviledged code which doesn't. That is simply a false assertion. The world is more than just Windows, Intel and its variants. I also see the thread that you still have the narrow view of protection as totally powerless vs omnipotent. There are far finer granularities than that. MMUs are *NOT* limited to those two modes. Processors also have instructions that can only run in a certain ring or more powerful ring. Maybe Intel has only been able to implement those gross levels of protections, but not all processor/MMUs are so limited. The MMU of a processor designed with an OS designed to use multiple rings is far more robust. I return to VAX and Alphas as example. The MMU had access flags in its to indicate the access level (Write/Read/NoAccess) for each ring. For the VMS 4-ring architecture, that meant there were 8 bits for each page indicating the access level. By doing this, you assigned privilege levels and assigned where (which ring) each piece of code could run. (Yes, it's a somewhat simplified description, but that was basically the method. If I have to, I will dig out my VMS Internals and Data Structures book.) It worked extremely well and supported an extremely robust, secure and stable OS. The key is that VMS was very thoroughly architected with all of this in mind. It would be nearly impossible to implement this architecture in Windows without a complete rewrite, therefore I am not pushing that idea in any way. * *X86 Rings are difficult to use well - at least as far as I've thought it *through. * <snip> * *the fact that the MMU only supports two levels of protection makes it very *hard to do calls through the intermediate rings because you have no way to *protect the code & stack of the inner rings without having per-thread page *tables. So regardless of whether "rings" are good or not, Windows doesn't *run on a processor today (and hasn't really in the past) where they aren't *more trouble than they're worth. * Again, all the world is not WinTel. Just because Intel made only the very gross granularity of "powerless" vs "omnipotent" doesn't mean every processor in the world made the same mistakes. Memory and instructions can (and are) much more finely protected than that. Greg
  Message 49 of 78  
30 Mar 07 13:41
Don Burn
xxxxxx@acm.org
Join Date:
Posts To This List: 2732
Re: Two Rings Good, Four Rings Bad

The problem with rings is providing the data access that is needed. Over and over when designing a "ringed" OS architect's will discover ring 1 needs to access a ring 0 data structure, you then have the unpalatalbe choices of: a. Provide access routines with the overhead of the ring crossing b. Move the data structure to ring 1, when it almost entirely needs to be in ring 0 c. Split the data structure and manage two structures which for dynamic data structures can be a pain d. Have a copy of the data in two rings with the problems of synchronizing them This is not a problem with VMM because the OS does not know that there is a lower layer. The challenges come when you need rings to work together, but want to avoid ring crossings as much as possible. At least that is what I found years ago. -- Don Burn (MVP, Windows DDK) Windows 2k/XP/2k3 Filesystem and Driver Consulting Website: http://www.windrvr.com Blog: http://msmvps.com/blogs/WinDrvr Remove StopSpam to reply "Edouard A." <xxxxx@fausse.info> wrote in message news:88704@ntdev... What about Virtual Machines? VMM run the OS in ring 1. And hypervisor is just really a ring -1. So everything about emulation and virtualization could really use the additional rings. -- Edouard A. > -----Original Message----- > From: xxxxx@lists.osr.com [mailto:bounce-282260- > xxxxx@lists.osr.com] On Behalf Of Tim Roberts > Sent: vendredi 30 mars 2007 18:35 > To: Windows System Software Devs Interest List > Subject: Re: [ntdev] Two Rings Good, Four Rings Bad > > xxxxx@hotmail.com wrote: > > > >> As I think about the design, all drivers would probably live at ring <...excess quoted lines suppressed...>
  Message 50 of 78  
30 Mar 07 14:04
Maxim S. Shatskih
xxxxxx@storagecraft.com
Join Date: 20 Feb 2003
Posts To This List: 6526
Re: Two Rings Good, Four Rings Bad

> you have a file system, and you have a disk driver. (Yes, in Windows, > the database manager lives in a separate process, but that's simply an > architectural choice. It might as well be in a single address space, as > long as it is protected.). Jet is exactly this kind of database manager, and not protected. Just a DLL. -- Maxim Shatskih, Windows DDK MVP StorageCraft Corporation xxxxx@storagecraft.com http://www.storagecraft.com
  Message 51 of 78  
30 Mar 07 14:18
ntdev member 8437
xxxxxx@windows.microsoft.com
Join Date:
Posts To This List: 1404
RE: Two Rings Good, Four Rings Bad

1) you argue semantics now. In the end there's one layer which has absolute control and the others derive their abilities from that one. My point is that those other layers can be implemented with our without rings. Rings are hardware assisted sugar coating and can be done in software as well as hardware. I have no doubt that they can be used. There are many processor features which can be used to build stable, robust, secure, colorful, tasty, nice smelling software. What I question is whether they're some sort of magical thing without which such software cannot be built. Perhaps it's not your intention, but your constant assertions that VMS's greatness comes from the ring support implies that you believe they're somehow critical. 2) Early in this thread the assertion was made that Windows could have chosen to use the x86 ring hardware with the implication that this would have made the OS better on x86 processors. I believe that doing so would have resulted in a much less portable OS, much more complex code for drivers (since they'd have two code bases effectively) and would have hurt Windows more than it would have helped it. As to the "wintel" comment ... I don't remember ever claiming that the world was limited to Windows and Intel. But I like how you take my specific comment about using rings on the x86 processor as use it to imply that I lack your grander world view and so my comments are dismissible. As you've chosen to dismiss them I won't bother entering into your "discussion" again. -p -----Original Message----- From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Gregory G. Dyess Sent: Friday, March 30, 2007 10:31 AM To: Windows System Software Devs Interest List Subject: RE: [ntdev] Two Rings Good, Four Rings Bad I think you finally nailed it when you said: *But it all boils down to one simple concept - you have a privileged core *which has access to data & instructions which the unpriviledged code can't *be trusted with, and you have unpriviledged code which doesn't. That is simply a false assertion. The world is more than just Windows, Intel and its variants. I also see the thread that you still have the narrow view of protection as totally powerless vs omnipotent. There are far finer granularities than that. MMUs are *NOT* limited to those two modes. Processors also have instructions that can only run in a certain ring or more powerful ring. Maybe Intel has only been able to implement those gross levels of protections, but not all processor/MMUs are so limited. The MMU of a processor designed with an OS designed to use multiple rings is far more robust. I return to VAX and Alphas as example. The MMU had access flags in its to indicate the access level (Write/Read/NoAccess) for each ring. For the VMS 4-ring architecture, that meant there were 8 bits for each page indicating the access level. By doing this, you assigned privilege levels and assigned where (which ring) each piece of code could run. (Yes, it's a somewhat simplified description, but that was basically the method. If I have to, I will dig out my VMS Internals and Data Structures book.) It worked extremely well and supported an extremely robust, secure and stable OS. The key is that VMS was very thoroughly architected with all of this in mind. It would be nearly impossible to implement this architecture in Windows without a complete rewrite, therefore I am not pushing that idea in any way. * *X86 Rings are difficult to use well - at least as far as I've thought it *through. * <snip> * *the fact that the MMU only supports two levels of protection makes it very *hard to do calls through the intermediate rings because you have no way to *protect the code & stack of the inner rings without having per-thread page *tables. So regardless of whether "rings" are good or not, Windows doesn't *run on a processor today (and hasn't really in the past) where they aren't *more trouble than they're worth. * Again, all the world is not WinTel. Just because Intel made only the very gross granularity of "powerless" vs "omnipotent" doesn't mean every processor in the world made the same mistakes. Memory and instructions can (and are) much more finely protected than that. 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
  Message 52 of 78  
30 Mar 07 14:39
ntdev member 31823
xxxxxx@fausse.info
Join Date:
Posts To This List: 41
RE: Two Rings Good, Four Rings Bad

Could the rings be used as firewalls? The performance would be terrible but you would need a bug in the ring 1 code and ring 0 code to make kernel buffer overflows. -- Edouard A. > -----Original Message----- > From: xxxxx@lists.osr.com [mailto:bounce-282270- > xxxxx@lists.osr.com] On Behalf Of Don Burn > Sent: vendredi 30 mars 2007 19:40 > To: Windows System Software Devs Interest List > Subject: Re:[ntdev] Two Rings Good, Four Rings Bad > > The problem with rings is providing the data access that is needed. > Over > and over when designing a "ringed" OS architect's will discover ring 1 <...excess quoted lines suppressed...>
  Message 53 of 78  
30 Mar 07 17:57
Anton Kolomyeytsev
xxxxxx@rocketdivision.com
Join Date: 08 Aug 2006
Posts To This List: 80
RE: Two Rings Good, Four Rings Bad

But it's Microsoft who designed the OS in the way it allows to load junk into kernel address space! Most of the time I spend in front of my machine I see character-mode text editor (I know I'm old) and shell to execute "build" utility... So user-mode un-accelerated frame buffer driver running inside separate virtual machine should work fine. Why do I need 5 megabyte kernel mode driver binary for this? Why cannot we select 1) run slow but stable frame buffer for 90% of the things we do (modern CPUs can handle video acceleration in software just great), stable and video card chip ice cold 2) run fast but less stable kernel-mode drivers for 3D shooters where we really need performance? Usually I have all sounds disabled. So why playing MP3 with kernel mode driver should low down system stability? Does sound card driver really have to run inside the same VM and share all the things with memory manager and OS kernel itself? Is playing "50 cent" THAT important driver crash should put whole OS on the knees? Are you sure? Having fancy 15K rpm hard disk drive and fast *MS provided* NTFS driver is great! But why third-party UDF driver need to run as kernel mode module? Why it cannot run as user mode DLL? I don't have any problem with 10 megabytes transfer rate from DVD instead of say 20 megabytes (it's still enough to play the movie w/o jerking on the screen) but I really have a problem with OS core dumped b/c of the bug in the UDF driver resulting crash after playback of the DVD with Chinese file names in the root (happened a week ago). I do understand 10 GbE backbone router has to have TCP/IP stack in kernel... But for my 2 megabit WAN connection at home I'd really prefer to have it in user mode. So I could either save this Word document or just restart "network support virtual machine" after it's crash and not recover .DOC file from backup DVD (if I'd have it of course...). Etc etc etc Biggest problem with NT - it was designed like VMS, OS from 70s. With core OS, drivers and hardware coming from the same vendor (DEC) or very limited list of vendors. But it's not 70s anymore... Old OS design does not work for 2007 (it did not work even for 1995 I think). That's why S/W virtual machines (VMware, XenSource, Virtual Iron, Parallels, Virtual PC / Server ... ) are getting more and more popular. People are using OS itself with limited set of TESTED software to run S/W virtual machines doing most of the work. In the other words - end users are not only testing drivers (something I'd expect OS vendor to do... BTW, Did anybody calculate how much companies spend on this?), with the help of the software virtual machines they are changing OS main concept: whole combination of the OS + virtual machine running the same OS inside it = patch to initially broken OS design... VMware with 50 employees saving life to software monster called MSFT. Just great... I really hope next OS from MS would be re-written from the scratch. And not good old NT. Now with not only 3D UI, but also with 3D sound for windows moving or whatever marketing gurus would advice. Guys from MS - READ THIS!! I don't want to end my days coding kernel stuff for Linux!! Regards, Anton A. Kolomyeytsev CEO, Rocket Division Software -----Original Message----- From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@Microsoft.com Sent: Thursday, March 29, 2007 7:39 AM To: Windows System Software Devs Interest List Subject: RE:[ntdev] Two Rings Good, Four Rings Bad > BTW, VMS was far more stable than NT ever has (or probably ever will be). And how many 3rd party drivers did it load? Much easier to create a stable OS if you control every component and can test their interactions together. Not saying that all crashes are due to 3rd party drivers, but a good majority of crashes are due extensions loaded in the kernel. My point is that it is not so black and white ;). d --- 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
  Message 54 of 78  
30 Mar 07 18:36
Lyndon J. Clarke
xxxxxx@neverfailgroup.com
Join Date: 10 Nov 2003
Posts To This List: 221
Re: Two Rings Good, Four Rings Bad

Hello Airlie Please accept my congratulations on your memorable introduction of a new entrant in the "ntdev long thread" hall of fame :-) Best Wishes Lyndon "Arlie Davis" <xxxxx@microsoft.com> wrote in message news:88590@ntdev... I believe x64 specifies that only rings 0 and 1 are supported. So clearly AMD thought that were was so little market for OSes that require or can use rings 2 and 3 that they cut the feature. (There *is* a non-zero cost for hardware features, in design time, verification, fab time, chip area, power, etc.) All of this is interesting, from an OS design point of view, but is rather pointless when applied to NTDEV. The NT model is what it is -- two levels of privelege. So are most of the major, commodity OSes, so it isn't exactly an uncommon model. Also, people should consider the additional complexity that driver developers would need to deal with. Driver developers already need to understand IRQLs, paged-vs-non-paged, arbitrary thread context vs. known thread context, etc. Adding another axis to this would cause a lot more cognitive load for the developers, and would not in reality deliver much value. (Whole forests have been cut down to print all of the research papers on device driver isolation.) Try to imagine the excruciating number of combinations of paged/non-paged, 4x rings, and multiple drivers all communicating with each other. If I allocate data at ring 1, and I pass it to a driver or OS component that runs at ring 0, what should happen? Boom? Now raise that number of combinations to the power of the average PNP device stack depth, and it quickly becomes obvious that more than 2 rings just causes insanity. At least if it is shoe-horned into an existing OS design, and not part of it from the beginning. (And I don't know of any OS designed after 1980 where this was a feature. I'm sure the peanut gallery will point one out, though, if there is.) Would I like to have better isolation between drivers? Of course. Which is why I would suggest looking elsewhere, such as http://research.microsoft.com/os/singularity/, rather than trying to resurrect a processor architecture that is not used, and is basically being abandoned. ________________________________________ From: xxxxx@lists.osr.com [xxxxx@lists.osr.com] On Behalf Of Tim Roberts [xxxxx@probo.com] Sent: Wednesday, March 28, 2007 2:34 PM To: Windows System Software Devs Interest List Subject: Re: [ntdev] Re:Driver Programming Fundamentals/Philosophy, was: Re: Calling NdisRequest() from ProtoclBi Maxim S. Shatskih wrote: >> I don't understand your point, Maxim. Portability between what and what? >> > > All these RISC machines, and now IA64. > > Having the OS unportable to any other CPU _even theoretically_ is a bad > idea. Nonsense. The ring 1 thing would be implementation detail of the x86 kernels -- an added benefit available on architectures that had multiple levels of protection. It certainly wouldn't require any source code changes in drivers, so I am unclear on how it would affect portability. There are certainly precedents for this. NT supports I/O ports, even though those do not exist on non-x86 architectures. It supports memory barriers, even though those only have meaning for certain architectures. -- Tim Roberts, xxxxx@probo.com Providenza & Boekelheide, Inc. --- 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
  Message 55 of 78  
30 Mar 07 21:31
David R. Cattley
xxxxxx@msn.com
Join Date: 09 Jul 2002
Posts To This List: 1371
RE: Two Rings Good, Four Rings Bad

<snip> Most of the time I spend in front of my machine I see character-mode text editor (I know I'm old) and shell to execute "build" utility... So user-mode un-accelerated frame buffer driver running inside separate virtual machine should work fine. Why do I need 5 megabyte kernel mode driver binary for this? Why cannot we select 1) run slow but stable frame buffer for 90% of the things we do (modern CPUs can handle video acceleration in software just great), stable and video card chip ice cold 2) run fast but less stable kernel-mode drivers for 3D shooters where we really need performance? </snip> If the vast majority of people who pay MSFT $ for the OS (and us as a community almost as directly for drivers) were of the same mind, we would all be washing Windows instead of building drivers for it. Just trying to do my part to make this longer than the DDK vs. IDE build thread. -dave
  Message 56 of 78  
31 Mar 07 03:54
anton bassov
xxxxxx@hotmail.com
Join Date: 16 Jul 2006
Posts To This List: 2691
RE: Two Rings Good, Four Rings Bad

Greg, > You're only looking at privileged vs non-privileged *instructions*. There's more to an OS > than just instructions. Actually, what I do in my previous post is just trying to apply the same logic to both CPU and the OS - privileged code can crash the system, and unprivileged one should not be able to do so..... This is the basic principle behind separation of privileged and unprivileged code which applies exactly the same way to both CPU and OS, although it has a different meaning for these two From the CPU's perspective, the only thing that has to be done is defining a set of privileged instructions, and making sure that unprivileged code cannot execute them. From the OS's perspective, much more work has to get done, and it has to get done mainly in software, with some assistance of CPU's build-in protection features - as you have already properly pointed out, the OS is more than just instructions. However, the logic behind the whole thing is the same for both CPU and OS.... Anton Bassov
  Message 57 of 78  
31 Mar 07 04:53
anton bassov
xxxxxx@hotmail.com
Join Date: 16 Jul 2006
Posts To This List: 2691
RE: Two Rings Good, Four Rings Bad

Tim, > You only say this because this has been the model in all of the operating systems you've > experienced. Don't allow the currently popular architecture to close your mind to > other possibilities. I see what you mean, but do you see any reason why this or that model may become popular across various architectures, apart from being usefull in *PRACTICE*? > The Multics research in the 1960s amply demonstrated the theoretical value of > multiple rings. It wasn't commercially successful, but that doesn't mean the concepts > are not valid. Although a concept may *THEORETICALLY* be just brilliant, it does not necessarily mean that this concept is usefull in practice. In general, as practice shows, any architecture that fully conforms to all academic requirements and standards is very unlikely to become popular among "commoners" . As you have said yourself, the research demonstrated *theoretical* value of multiple rings, but this concept never made a commercial success.... Concerning the example that you gave ....... please think about it carefully, and you will understand that, unless you want to make components deal with one another directly, rather than via the system-provided entry points (which is *EXTREMELY* insecure approach in itself), the whole thing needs, again, just 2 protection rings ..... Anton Bassov
  Message 58 of 78  
31 Mar 07 08:20
MM
xxxxxx@evitechnology.com
Join Date: 28 May 2005
Posts To This List: 2209
RE: Two Rings Good, Four Rings Bad

What about the C++ in the kernel thread? I think both it and the one about a month ago that finally ended with Arlie's suggestion that we discuss whether he prefers Coke or Pepsi still have this one beat. >>> xxxxx@msn.com 2007-03-30 21:30 >>> <snip> Most of the time I spend in front of my machine I see character-mode text editor (I know I'm old) and shell to execute "build" utility... So user-mode un-accelerated frame buffer driver running inside separate virtual machine should work fine. Why do I need 5 megabyte kernel mode driver binary for this? Why cannot we select 1) run slow but stable frame buffer for 90% of the things we do (modern CPUs can handle video acceleration in software just great), stable and video card chip ice cold 2) run fast but less stable kernel-mode drivers for 3D shooters where we really need performance? </snip> If the vast majority of people who pay MSFT $ for the OS (and us as a community almost as directly for drivers) were of the same mind, we would all be washing Windows instead of building drivers for it. Just trying to do my part to make this longer than the DDK vs. IDE build thread. -dave --- 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
  Message 59 of 78  
31 Mar 07 09:05
Mark Roddy
xxxxxx@hollistech.com
Join Date: 25 Feb 2000
Posts To This List: 2663
RE: Two Rings Good, Four Rings Bad

"As an ntdev discussion grows longer, the probability of a comparison to C++ in the Kernel approaches one." > -----Original Message----- > From: xxxxx@lists.osr.com [mailto:bounce-282303- > xxxxx@lists.osr.com] On Behalf Of Martin O'Brien > Sent: Saturday, March 31, 2007 8:19 AM > To: Windows System Software Devs Interest List > Subject: RE: [ntdev] Two Rings Good, Four Rings Bad > > What about the C++ in the kernel thread? I think both it and the one > about a month ago that finally ended with Arlie's suggestion that we <...excess quoted lines suppressed...>
  Message 60 of 78  
31 Mar 07 12:12
MM
xxxxxx@evitechnology.com
Join Date: 28 May 2005
Posts To This List: 2209
RE: Two Rings Good, Four Rings Bad

It certainly does. >>> xxxxx@hollistech.com 2007-03-31 09:04 >>> "As an ntdev discussion grows longer, the probability of a comparison to C++ in the Kernel approaches one." > -----Original Message----- > From: xxxxx@lists.osr.com [mailto:bounce-282303- > xxxxx@lists.osr.com] On Behalf Of Martin O'Brien > Sent: Saturday, March 31, 2007 8:19 AM > To: Windows System Software Devs Interest List > Subject: RE: [ntdev] Two Rings Good, Four Rings Bad > > What about the C++ in the kernel thread? I think both it and the one > about a month ago that finally ended with Arlie's suggestion that we > discuss whether he prefers Coke or Pepsi still have this one beat. > > >>> xxxxx@msn.com 2007-03-30 21:30 >>> > > > <snip> > Most of the time I spend in front of my machine I see character-mode > text > editor (I know I'm old) and shell to execute "build" utility... So <...excess quoted lines suppressed...> 90% > of > the things we do (modern CPUs can handle video acceleration in software > just > great), stable and video card chip ice cold 2) run fast but less > stable > kernel-mode drivers for 3D shooters where we really need performance? > </snip> > > If the vast majority of people who pay MSFT $ for the OS (and us as a > community almost as directly for drivers) were of the same mind, we > would > all be washing Windows instead of building drivers for it. > > > Just trying to do my part to make this longer than the DDK vs. IDE > build > thread. > > -dave --- 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
  Message 61 of 78  
31 Mar 07 16:55
David R. Cattley
xxxxxx@msn.com
Join Date: 09 Jul 2002
Posts To This List: 1371
RE: Two Rings Good, Four Rings Bad

Oh, great. Now you've gone and done it. -----Original Message----- From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Mark Roddy Sent: Saturday, March 31, 2007 9:04 AM To: Windows System Software Devs Interest List Subject: RE: [ntdev] Two Rings Good, Four Rings Bad "As an ntdev discussion grows longer, the probability of a comparison to C++ in the Kernel approaches one."
  Message 62 of 78  
31 Mar 07 18:13
ntdev member 32812
xxxxxx@microsoft.com
Join Date:
Posts To This List: 84
RE: Two Rings Good, Four Rings Bad

Turns out, Coke. Hey, we're already off in the weeds -- it can't get much worse by now, right? ________________________________________ From: xxxxx@lists.osr.com [xxxxx@lists.osr.com] On Behalf Of Martin O'Brien [xxxxx@evitechnology.com] Sent: Saturday, March 31, 2007 5:18 AM To: Windows System Software Devs Interest List Subject: RE: [ntdev] Two Rings Good, Four Rings Bad What about the C++ in the kernel thread? I think both it and the one about a month ago that finally ended with Arlie's suggestion that we discuss whether he prefers Coke or Pepsi still have this one beat. >>> xxxxx@msn.com 2007-03-30 21:30 >>> <snip> Most of the time I spend in front of my machine I see character-mode text editor (I know I'm old) and shell to execute "build" utility... So user-mode un-accelerated frame buffer driver running inside separate virtual machine should work fine. Why do I need 5 megabyte kernel mode driver binary for this? Why cannot we select 1) run slow but stable frame buffer for 90% of the things we do (modern CPUs can handle video acceleration in software just great), stable and video card chip ice cold 2) run fast but less stable kernel-mode drivers for 3D shooters where we really need performance? </snip> If the vast majority of people who pay MSFT $ for the OS (and us as a community almost as directly for drivers) were of the same mind, we would all be washing Windows instead of building drivers for it. Just trying to do my part to make this longer than the DDK vs. IDE build thread. -dave --- 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
  Message 63 of 78  
31 Mar 07 21:55
Stephen Prochniak
xxxxxx@VirtualIron.com
Join Date: 17 Jan 2007
Posts To This List: 66
RE: Two Rings Good, Four Rings Bad

added rings add complexity and thus inefficiency. Two rings is simple - priviledged and not. If you wanted to add more layers, you'd have to have a good reason that was backed up by some sort of nature. You'd also have to explain why 4 layers were optimal, and not 3 or 5 - or 32 or 4 billion.
  Message 64 of 78  
01 Apr 07 02:36
ntdev member 31823
xxxxxx@fausse.info
Join Date:
Posts To This List: 41
RE: Two Rings Good, Four Rings Bad

It's easier to get girls with 4 rings. > -----Original Message----- > From: xxxxx@lists.osr.com [mailto:bounce-282319- > xxxxx@lists.osr.com] On Behalf Of xxxxx@VirtualIron.com > Sent: dimanche 1 avril 2007 03:55 > To: Windows System Software Devs Interest List > Subject: RE:[ntdev] Two Rings Good, Four Rings Bad > > added rings add complexity and thus inefficiency. Two rings is simple > - priviledged and not. If you wanted to add more layers, you'd have to > have a good reason that was backed up by some sort of nature. You'd <...excess quoted lines suppressed...>
  Message 65 of 78  
01 Apr 07 11:04
Stephen Prochniak
xxxxxx@VirtualIron.com
Join Date: 17 Jan 2007
Posts To This List: 66
RE: Two Rings Good, Four Rings Bad

True, but it's even easier with 5. ;-)
  Message 66 of 78  
01 Apr 07 14:00
Maxim S. Shatskih
xxxxxx@storagecraft.com
Join Date: 20 Feb 2003
Posts To This List: 6526
Re: Two Rings Good, Four Rings Bad

>Guys from MS - READ THIS!! I don't want to end my days coding kernel stuff for >Linux!! <serpent-style poisonous whisper> ...and what is wrong with Linux? Maybe it is good, no God except GNU, Linus is His prophet, and so on? </serpent-style poisonous whisper> -- Maxim Shatskih, Windows DDK MVP StorageCraft Corporation xxxxx@storagecraft.com http://www.storagecraft.com
  Message 67 of 78  
01 Apr 07 14:08
Maxim S. Shatskih
xxxxxx@storagecraft.com
Join Date: 20 Feb 2003
Posts To This List: 6526
Re: Two Rings Good, Four Rings Bad

An idea where >2 rings can be really useful is to keep some data _global for a process group and not whole machine_ together with the code accessing it. Things like PFN database, FS cache, TCP's TCB list and dispatcher queues are global for the machine. Thus they - with the code accessing them - are in ring 0. Per-process things are local for a process, thus they belong to ring 3. But per-session things? like the whole win32k? a good candidate for ring 1, if not the portability issues. Per-process-group things, say, common to all processes running withing the same console window are possible candidate for ring 2. If not for portability issues again. -- Maxim Shatskih, Windows DDK MVP StorageCraft Corporation xxxxx@storagecraft.com http://www.storagecraft.com
  Message 68 of 78  
01 Apr 07 14:44
Anton Kolomyeytsev
xxxxxx@rocketdivision.com
Join Date: 08 Aug 2006
Posts To This List: 80
RE: Two Rings Good, Four Rings Bad

4 rings = Audi 5 rings = Audi + wedding ring Are you serious??? -a -----Original Message----- From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@VirtualIron.com Sent: Sunday, April 01, 2007 6:03 PM To: Windows System Software Devs Interest List Subject: RE:[ntdev] Two Rings Good, Four Rings Bad True, but it's even easier with 5. ;-) --- 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
  Message 69 of 78  
01 Apr 07 14:49
Anton Kolomyeytsev
xxxxxx@rocketdivision.com
Join Date: 08 Aug 2006
Posts To This List: 80
RE: Two Rings Good, Four Rings Bad

Nothing bad, I just don't like coding for it... -a -----Original Message----- From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Maxim S. Shatskih Sent: Sunday, April 01, 2007 8:59 PM To: Windows System Software Devs Interest List Subject: Re:[ntdev] Two Rings Good, Four Rings Bad >Guys from MS - READ THIS!! I don't want to end my days coding kernel stuff for >Linux!! <serpent-style poisonous whisper> ...and what is wrong with Linux? Maybe it is good, no God except GNU, Linus is His prophet, and so on? </serpent-style poisonous whisper> -- Maxim Shatskih, Windows DDK MVP StorageCraft Corporation xxxxx@storagecraft.com http://www.storagecraft.com --- 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
  Message 70 of 78  
01 Apr 07 17:30
David J. Craig
xxxxxx@yoshimuni.com
Join Date:
Posts To This List: 1114
Re: Two Rings Good, Four Rings Bad

Maybe it means Olympic? Audi would the one of the last things to come to mind for most in the U.S. "Anton A. Kolomyeytsev" <xxxxx@rocketdivision.com> wrote in message news:88747@ntdev... 4 rings = Audi 5 rings = Audi + wedding ring Are you serious??? -a -----Original Message----- From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@VirtualIron.com Sent: Sunday, April 01, 2007 6:03 PM To: Windows System Software Devs Interest List Subject: RE:[ntdev] Two Rings Good, Four Rings Bad True, but it's even easier with 5. ;-) --- 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
  Message 71 of 78  
02 Apr 07 13:41
Tim Roberts
xxxxxx@probo.com
Join Date: 28 Jan 2005
Posts To This List: 5070
Re: Two Rings Good, Four Rings Bad

xxxxx@VirtualIron.com wrote: > added rings add complexity and thus inefficiency. Two rings is simple - priviledged and not. If you wanted to add more layers, you'd have to have a good reason that was backed up by some sort of nature. You'd also have to explain why 4 layers were optimal, and not 3 or 5 - or 32 or 4 billion. > I am astonished at how many people on this list have simply closed their minds to any architecture that differs from the one they use on a daily basis. Windows is not the only operating system in the world, and the x86 is not the only processor architecture in the world. What on earth does the typical computer science curricula teach these days? Visual C# .NET and nothing else? There are MANY scenarios in which security is more important than efficiency, and multiple rings are one of the proven methods for achieving compartmentalized security. It's a fact, and it doesn't matter whether people believe it or not. Now, please, let us stop this thread. I never proposed a Windows redesign to exploit more than 2 rings. I was merely responding to posters who said that the whole theoretical concept was invalid. They were wrong. End of story. -- Tim Roberts, xxxxx@probo.com Providenza & Boekelheide, Inc.
  Message 72 of 78  
02 Apr 07 14:58
ntdev member 32707
xxxxxx@gmail.com
Join Date:
Posts To This List: 141
Re: Two Rings Good, Four Rings Bad

Couple weeks ago, I saw a news about 'Finding the structure of Lie Group, and its variants". It takes huge amount of computations, and it leads to protin-folding analysis. And what is so relevant for programmers who does the kernel mode extensions to windows? Perhaps nothing, perhaps lot of things ! And I thought it was really OFF TOPIC, so I did not send an one liner url for the curious minds. One of the greatness of a developed country is how they tie research with application of it. And I see people are desperate about their different opinions. Researchers are incapable, .... Engineering is totally different from science. And both have their reason(s) to be seperate. But they are buitifully interlinked... I really learned not to ignore others capablities, and understood my limitations. Basing on just that, I'm surprised to see how this thread and the other thread *Philosophy* took off to directions that I don't like. In early 80's I took a class from Fred Brooks, and he mentioned that any (SW/HW) architecture design has to think about two timelines: 1) When the architecutre would be done, 2) how long the fruit bearing tree should have its own identity. If I understood anything from it, 2 ring idea went past (1), and did not yet come to a point when it would get past the (2). But that does not mean end to alternative ideas (even if we think about mass market consumer OS like windows ) etc ... Well, I did not want to be a ring-master here ... -pro On 4/2/07, Tim Roberts <xxxxx@probo.com> wrote: > > xxxxx@VirtualIron.com wrote: > > added rings add complexity and thus inefficiency. Two rings is simple - > priviledged and not. If you wanted to add more layers, you'd have to have a > good reason that was backed up by some sort of nature. You'd also have to > explain why 4 layers were optimal, and not 3 or 5 - or 32 or 4 billion. > > > > I am astonished at how many people on this list have simply closed their > minds to any architecture that differs from the one they use on a daily <...excess quoted lines suppressed...> --
  Message 73 of 78  
02 Apr 07 15:43
MM
xxxxxx@evitechnology.com
Join Date: 28 May 2005
Posts To This List: 2209
Re: Two Rings Good, Four Rings Bad

Fred Brooks also still (according to the updated Mythical Man Month) is surprised that PLI failed and C succeeded. >>> xxxxx@gmail.com 2007-04-02 14:57 >>> Couple weeks ago, I saw a news about 'Finding the structure of Lie Group, and its variants". It takes huge amount of computations, and it leads to protin-folding analysis. And what is so relevant for programmers who does the kernel mode extensions to windows? Perhaps nothing, perhaps lot of things ! And I thought it was really OFF TOPIC, so I did not send an one liner url for the curious minds. One of the greatness of a developed country is how they tie research with application of it. And I see people are desperate about their different opinions. Researchers are incapable, .... Engineering is totally different from science. And both have their reason(s) to be seperate. But they are buitifully interlinked... I really learned not to ignore others capablities, and understood my limitations. Basing on just that, I'm surprised to see how this thread and the other thread *Philosophy* took off to directions that I don't like. In early 80's I took a class from Fred Brooks, and he mentioned that any (SW/HW) architecture design has to think about two timelines: 1) When the architecutre would be done, 2) how long the fruit bearing tree should have its own identity. If I understood anything from it, 2 ring idea went past (1), and did not yet come to a point when it would get past the (2). But that does not mean end to alternative ideas (even if we think about mass market consumer OS like windows ) etc ... Well, I did not want to be a ring-master here ... -pro On 4/2/07, Tim Roberts <xxxxx@probo.com> wrote: > > xxxxx@VirtualIron.com wrote: > > added rings add complexity and thus inefficiency. Two rings is simple - > priviledged and not. If you wanted to add more layers, you'd have to have a > good reason that was backed up by some sort of nature. You'd also have to > explain why 4 layers were optimal, and not 3 or 5 - or 32 or 4 billion. > > > > I am astonished at how many people on this list have simply closed their > minds to any architecture that differs from the one they use on a daily > basis. Windows is not the only operating system in the world, and the > x86 is not the only processor architecture in the world. What on earth > does the typical computer science curricula teach these days? Visual C# > .NET and nothing else? > > There are MANY scenarios in which security is more important than > efficiency, and multiple rings are one of the proven methods for > achieving compartmentalized security. It's a fact, and it doesn't > matter whether people believe it or not. > > Now, please, let us stop this thread. I never proposed a Windows > redesign to exploit more than 2 rings. I was merely responding to > posters who said that the whole theoretical concept was invalid. They > were wrong. End of story. > > -- > Tim Roberts, xxxxx@probo.com > Providenza & Boekelheide, Inc. > > > --- > Questions? First check the Kernel Driver FAQ at > http://www.osronline.com/article.cfm?id=256 <...excess quoted lines suppressed...> --- 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
  Message 74 of 78  
02 Apr 07 16:19
ntdev member 32707
xxxxxx@gmail.com
Join Date:
Posts To This List: 141
Re: Two Rings Good, Four Rings Bad

It is a long story, frankly :) c is a success, a massive success. But plan 9 ( the next os of Bell labs) might not be a success. Then agin we have to measure what we mean by success. Scientist and enginners loved Fortran, and Business people loved Cobol, and PL/I became a fat language that was not very easy to port to a PC of 1982/83 with 64K ram and two 5.25 floppy. PLM kicked off for a while, but C simply was much better for that environment. My personal opinion is that if we had 2 to 4 gb of ram, and if we had law/enforcement being strict on us, who knows ADA could have taken off at that time :-) -pro On 4/2/07, Martin O'Brien <xxxxx@evitechnology.com> wrote: > > Fred Brooks also still (according to the updated Mythical Man Month) is > surprised that PLI failed and C succeeded. > > > > >>> xxxxx@gmail.com 2007-04-02 14:57 >>> > Couple weeks ago, I saw a news about 'Finding the structure of Lie > Group, > and its variants". It takes huge amount of computations, and it leads <...excess quoted lines suppressed...> --
  Message 75 of 78  
02 Apr 07 18:14
ntdev member 2092
xxxxxx@stratus.com
Join Date:
Posts To This List: 1798
RE: Two Rings Good, Four Rings Bad

Plan 9? Bell Labs? Son, this is not the 80's anymore. Wrong decade, wrong century. ________________________________ From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Prokash Sinha Sent: Monday, April 02, 2007 4:19 PM To: Windows System Software Devs Interest List Subject: Re: [ntdev] Two Rings Good, Four Rings Bad It is a long story, frankly :) c is a success, a massive success. But plan 9 ( the next os of Bell labs) might not be a success. Then agin we have to measure what we mean by success. Scientist and enginners loved Fortran, and Business people loved Cobol, and PL/I became a fat language that was not very easy to port to a PC of 1982/83 with 64K ram and two 5.25 floppy. PLM kicked off for a while, but C simply was much better for that environment. My personal opinion is that if we had 2 to 4 gb of ram, and if we had law/enforcement being strict on us, who knows ADA could have taken off at that time :-) -pro On 4/2/07, Martin O'Brien <xxxxx@evitechnology.com> wrote: Fred Brooks also still (according to the updated Mythical Man Month) is surprised that PLI failed and C succeeded. >>> xxxxx@gmail.com 2007-04-02 14:57 >>> Couple weeks ago, I saw a news about 'Finding the structure of Lie Group, and its variants". It takes huge amount of computations, and it leads to protin-folding analysis. And what is so relevant for programmers who does the kernel mode extensions to windows? Perhaps nothing, perhaps lot of things ! And I thought it was really OFF TOPIC, so I did not send an one liner url for the curious minds. One of the greatness of a developed country is how they tie research with application of it. And I see people are desperate about their different opinions. Researchers are incapable, .... Engineering is totally different from science. And both have their reason(s) to be seperate. But they are buitifully interlinked... I really learned not to ignore others capablities, and understood my limitations. Basing on just that, I'm surprised to see how this thread and the other thread *Philosophy* took off to directions that I don't like. In early 80's I took a class from Fred Brooks, and he mentioned that any (SW/HW) architecture design has to think about two timelines: 1) When the architecutre would be done, 2) how long the fruit bearing tree should have its own identity. If I understood anything from it, 2 ring idea went past (1), and did not yet come to a point when it would get past the (2). But that does not mean end to alternative ideas (even if we think about mass market consumer OS like windows ) etc ... Well, I did not want to be a ring-master here ... -pro On 4/2/07, Tim Roberts <xxxxx@probo.com> wrote: > > xxxxx@VirtualIron.com wrote: > > added rings add complexity and thus inefficiency. Two rings is simple - > priviledged and not. If you wanted to add more layers, you'd have to have a > good reason that was backed up by some sort of nature. You'd also have to > explain why 4 layers were optimal, and not 3 or 5 - or 32 or 4 billion. > > > > I am astonished at how many people on this list have simply closed their > minds to any architecture that differs from the one they use on a daily > basis. Windows is not the only operating system in the world, and the > x86 is not the only processor architecture in the world. What on earth > does the typical computer science curricula teach these days? Visual C# > .NET and nothing else? > > There are MANY scenarios in which security is more important than > efficiency, and multiple rings are one of the proven methods for > achieving compartmentalized security. It's a fact, and it doesn't > matter whether people believe it or not. > > Now, please, let us stop this thread. I never proposed a Windows > redesign to exploit more than 2 rings. I was merely responding to > posters who said that the whole theoretical concept was invalid. They > were wrong. End of story. > > -- > Tim Roberts, xxxxx@probo.com > Providenza & Boekelheide, Inc. > > > --- > Questions? First check the Kernel Driver FAQ at > http://www.osronline.com/article.cfm?id=256 <...excess quoted lines suppressed...> --- 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 --- 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 --
  Message 76 of 78  
02 Apr 07 18:31
ntdev member 32707
xxxxxx@gmail.com
Join Date:
Posts To This List: 141
Re: Two Rings Good, Four Rings Bad

Who disagreed? That is exactly my point... -pro On 4/2/07, Roddy, Mark <xxxxx@stratus.com> wrote: > > Plan 9? Bell Labs? > > > > Son, this is not the 80's anymore. Wrong decade, wrong century. > > > ------------------------------ > <...excess quoted lines suppressed...> --
  Message 77 of 78  
02 Apr 07 19:12
MM
xxxxxx@evitechnology.com
Join Date: 28 May 2005
Posts To This List: 2209
RE: Two Rings Good, Four Rings Bad

This is what I thought, but not being old enough to be certain, I decided to take a pass. >>> xxxxx@stratus.com 2007-04-02 18:14 >>> Plan 9? Bell Labs? Son, this is not the 80's anymore. Wrong decade, wrong century. ________________________________ From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Prokash Sinha Sent: Monday, April 02, 2007 4:19 PM To: Windows System Software Devs Interest List Subject: Re: [ntdev] Two Rings Good, Four Rings Bad It is a long story, frankly :) c is a success, a massive success. But plan 9 ( the next os of Bell labs) might not be a success. Then agin we have to measure what we mean by success. Scientist and enginners loved Fortran, and Business people loved Cobol, and PL/I became a fat language that was not very easy to port to a PC of 1982/83 with 64K ram and two 5.25 floppy. PLM kicked off for a while, but C simply was much better for that environment. My personal opinion is that if we had 2 to 4 gb of ram, and if we had law/enforcement being strict on us, who knows ADA could have taken off at that time :-) -pro On 4/2/07, Martin O'Brien <xxxxx@evitechnology.com> wrote: Fred Brooks also still (according to the updated Mythical Man Month) is surprised that PLI failed and C succeeded. >>> xxxxx@gmail.com 2007-04-02 14:57 >>> Couple weeks ago, I saw a news about 'Finding the structure of Lie Group, and its variants". It takes huge amount of computations, and it leads to protin-folding analysis. And what is so relevant for programmers who does the kernel mode extensions to windows? Perhaps nothing, perhaps lot of things ! And I thought it was really OFF TOPIC, so I did not send an one liner url for the curious minds. One of the greatness of a developed country is how they tie research with application of it. And I see people are desperate about their different opinions. Researchers are incapable, .... Engineering is totally different from science. And both have their reason(s) to be seperate. But they are buitifully interlinked... I really learned not to ignore others capablities, and understood my limitations. Basing on just that, I'm surprised to see how this thread and the other thread *Philosophy* took off to directions that I don't like. In early 80's I took a class from Fred Brooks, and he mentioned that any (SW/HW) architecture design has to think about two timelines: 1) When the architecutre would be done, 2) how long the fruit bearing tree should have its own identity. If I understood anything from it, 2 ring idea went past (1), and did not yet come to a point when it would get past the (2). But that does not mean end to alternative ideas (even if we think about mass market consumer OS like windows ) etc ... Well, I did not want to be a ring-master here ... -pro On 4/2/07, Tim Roberts <xxxxx@probo.com> wrote: > > xxxxx@VirtualIron.com wrote: > > added rings add complexity and thus inefficiency. Two rings is simple - > priviledged and not. If you wanted to add more layers, you'd have to have a > good reason that was backed up by some sort of nature. You'd also have to > explain why 4 layers were optimal, and not 3 or 5 - or 32 or 4 billion. > > > > I am astonished at how many people on this list have simply closed their > minds to any architecture that differs from the one they use on a daily > basis. Windows is not the only operating system in the world, and the > x86 is not the only processor architecture in the world. What on earth > does the typical computer science curricula teach these days? Visual C# > .NET and nothing else? > > There are MANY scenarios in which security is more important than > efficiency, and multiple rings are one of the proven methods for > achieving compartmentalized security. It's a fact, and it doesn't > matter whether people believe it or not. > > Now, please, let us stop this thread. I never proposed a Windows > redesign to exploit more than 2 rings. I was merely responding to > posters who said that the whole theoretical concept was invalid. They > were wrong. End of story. > > -- > Tim Roberts, xxxxx@probo.com > Providenza & Boekelheide, Inc. > > > --- > Questions? First check the Kernel Driver FAQ at > http://www.osronline.com/article.cfm?id=256 <...excess quoted lines suppressed...> --- 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 --- 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
  Message 78 of 78  
03 Apr 07 16:26
Michael Becker
xxxxxx@hologic.com
Join Date: 14 Feb 2005
Posts To This List: 36
Re: Two Rings Good, Four Rings Bad

> > What on earth > does the typical computer science curricula teach these days? Visual C# > .NET and nothing else? > Since I'm currently working on my Masters in CompSci right now, I'd like to report that the language of choice at the school I'm attending appears to be Java, followed (way behind) by C. The OS(s) of choice are Solaris and Linux. No classes even exist for anything like Device Drivers, Low level OS architecture, or Embedded Systems, at least not through Computer Science. *sigh*
Posting Rules  
You may not post new threads
You may not post replies
You may not post attachments
You must login to OSR Online AND be a member of the ntdev list to be able to post.

All times are GMT -5. The time now is 13:43.


Copyright ©2005, OSR Open Systems Resourcs, Inc.
Based on vBulletin Copyright ©2000 - 2005, Jelsoft Enterprises Ltd.
Modified under license