Vista's Graphics To Be Moved Out of the Kernel
Tiberius_Fel writes "TechWorld is running an article saying that Vista's graphics will not be in the kernel. The goal is obviously to improve reliability, alongside the plan to make most drivers run in user mode." From the article: "The shift of the UI into user mode also helps to make the UI hardware independent - and has already allowed Microsoft to release beta code of the UI to provide developers with early experience. IT also helps make it less vulnerable to kernel mode malware that could take the system down or steal data. In broader terms, this makes Windows far more like Linux and Unix - and even the MacOS - where the graphics subsystem is a separate component, rather than being hard-wired into the OS kernel."
Sounds like when Windows was a GUI shell on top of DOS.
One line blog. I hear that they're called Twitters now.
its taken them a bit to see they where wrong when they put them in kernel space
but didn't they do this on nt(4 i believe) because it was to slow otherwise?
mind you with the specs needed for a vista machine, whos going to notice......
IT also helps make it less vulnerable to kernel mode malware that could take the system down or steal data.
And it also helps with all the stupid DRM that the MPAA/RIAA wants to force down our throats! Yay, when I wanna watch DVDs on my computer in the future I have to get a new OS, new monitor, new graphics card. Thank you for that innovation!
I enjoy large posteriors and I cannot prevaricate.
In broader terms, this makes Windows far more like Linux and Unix - and even the MacOS - where the graphics subsystem is a separate component, rather than being hard-wired into the OS kernel.
I know it makes you all hip and tres cool to bash Microsoft, but they actually had this design wa-a-a-y back in NT 3.5/3.51. That would be in the mid/late 1990s for you youngsters in the audience. They made the change to the current model in NT 4.0.
I want to drag this out as long as possible. Bring me my protractor.
Actually, testers have been given something kinda like that. It's called Windows Server Core, and it boots up with just a console window open - no start menu, desktop, configuration dialogs, or anything else like that.
Unfortunately it doesn't come with IIS which is a real disappointment though its developers have shown interest in adding additional services.
I'm sure everyone will say this is great and that UNIX has been doing this forever, it took MS forever to see the light.. etc, etc.. Hogwash.
For those that don't know hardware and don't know drivers -- this isn't a good thing. The X.org crew has been talking about taking video drivers out of X and putting them back into the kernel, and for good reason.
When drivers are in the kernel, they handle the dirty low-level work and (ideally) present user mode with a nice, friendly, safe API for configuring and using the hardware.
When drivers are in user space, there is a small kernel-mode shim that lets the user-mode code access the hardware. On Linux, we know this as DRI (Direct Rendering Infrastructure). This doesn't eliminate bugs -- it just provides a simple path for user-mode code to get access to hardware registers, etc. Any bugs that exist in the kernel mode driver would yield the same problems in user mode. If a video driver incorrectly configures your graphics card, you're going to get a garbled display, period.
This is a very bad thing from a security and reliability standpoint -- compromised code can poke at the kernel-mode shim and get nearly direct access to hardware. Any bugs in the kernel mode layer WILL be discovered and WILL be exploited. The only upside I can see is that video drivers could be more easily swapped in and out without a reboot. This could be accomplished in better ways.
Lower performance and less security. Genius.
X11 was conceived 20 years ago and was an incredibly forward looking design; both Macintosh and Windows have now moved to an architecture very similar to it.
Unfortunately, technical and historical facts won't stop people from making bogus claims about their pet architecture. There are still lots of Mac zealots going around complaining about X11's supposedly inefficient "network transparent architecture" even though the Mac has pretty much the same architecture and is, if anything, less efficient. I imagine it will be the same with Microsoft zealots, although many of them will, in addition, claim that this architecture was invented by Microsoft.
In other words OpenGl will suck, because DirectX will have direct access to the kernel while OpenGl (and other graphics APIs) will be delayed by inumerous error checks by the interface.
No. This is not true and represents a misunderstandings about how the Win32 API is implemented in NT. For legacy reasons many windows programs would use the GUI APIs for internal IPC (why oh why wasn't LPC exposed to userspace though?). Anyhow, this mean that the Win32 subsystem server (CSRSS) ran both the GUI and the rest of Win32.
So a crash in the GUI (running inside the context of CSRSS) would result in all Win32 apps being shutdown. Perhaps the file services (part of SRV.SYS) would remain in the event of a GUI crash but any applications running under Win32 context would be lost. That was the reasoning that allowed M$ to temper DaveC's fears and move the GUI to WIN32K.SYS in NT 4.0.
I'm not defending the approach. I disagree with the GUI-in-kernelspace idea as well. I'm merely pointing out the way things went in terms of history. Ideally the GUI services and kernel services would be separate APIs in Win32 so that server and console applications could live without the GUI. But compatability was a major goal...
Personally, I would love to ditch the Windows GUI but keep the NT kernel. The NT kernel (despite the typical conditioned response of the average slashdotter) is quite good in many areas. The GUI API of Windows was inferior to OS/2's Presentation Manager (the big change being client area -> client window). Too bad OS/2 PM can't be run under the NT kernel. Oh well, it almost happened...
NT borrowed heavily from DEC VMS, which if it were running on DOS would be like running VMS on top of RSTS. The problem at Microsoft was this inability to separate things. The kernel became everything, trying to run on a nearly infinite combinations of hardware and depending heavily on drivers (which most tech support didn't even understand and would just tell you to upgrade to the latest version. Leaving unspoken 'and cross your fingers')
For graphics and sound to work best, commonly used objects are stored in memory, ideally most rapidly accessible by the chipset which makes use of it. If you can pre-load a graphics card with most of your GUI toolkit you can do some amazingly fast rendering. Microsoft and admitedly Apple seem to have fallen in love with very large, processor intensive graphic affects, which look pretty, but ultimately may be dragging down your processor on any existing tasks.
My PC at home will lock up if I have anything Graphic intensive running and hit ctrl-alt-del as the sudden interrupt seems to break syncronization of something.
A feeling of having made the same mistake before: Deja Foobar
Windows Server 2003's GUI overhead is extremely small in comparison to the other tasks it's performing. Besides, it's not a matter of being "scared" of a CLI, in fact pretty much all the Windows sysadmins I know (including myself) use the Windows command line on a regular basis. Believe it or not, but a GUI really can give a boost to speed and efficiency when it comes to server management, regardless of what the zealots here might say.
:-)
True however I think he was talking about the 95% of the time Windows SysAdmins aren't doing anything to the server. I mean when you aren't doing working on the system then why do you need the GUI? It's not doing anything but sucking up system resources.
I use both X and CLI for managing my systems. Usually X is shut off. Why burn up resources when they can be better used elsewhere
Has Comcast disconnected your Internet account? Same here. You can read about it at http://comcastissue.blogspot.com
No, this is a classic example of an oxymoron (contradiction in terms).
Whereas I am an example of an ordinary moron.
I worked at a very large world-wide shop that saves a whole cycle of hardware upgrades by turning off the screen savers on their servers. Most of the admins were running the fanciest 3D CPU intensive screensavers they could find. When anyone would complain about performance they would go to the server, check task manager and come back with: "well it's only running at 20%". Finally someone thought to check the numbers remotely and discovered that the screensaver was by far the biggest hog. I don't think most Windows users, even the "pros" realize how much resource is involved in something as simple as moving the mouse, moving a window around or resizing it.
They made Windows so "easy" that even an idiot could administer it and...
Oh, never-mind.
Beware the marquee screensaver, especially. It seems so simple, yet uses so much cpu.
It seems they have fixed almost everything that was wrong with windows. I mean:
And people complain that there is nothing new in Vista, phew... I mean if they manage to do all those things, and do them the right way like they seem to be decided to (for once...) it will be damn worth a new release...
And no, i'm not a microsoft fanboy, i've been using Linux since 97 and I really like it where it shines. But if you have even a little objectivity you can't say the stuff they're putting here is not interesting...
If the GUI is no longer part of the kernel, can I now get a Vista Server without the GUI? Just barebones Vista with the new command line shell?
If you mod me down, I *will* introduce you to my sister!
It seems to me that moving graphical operations to userland would make them more hackable rather than more secure. One userland app could more easily preempt another userland app, and something kernel-loaded could be used to trick a userland app into ignoring copy protection.
Also, I believe that a userland application might be a little easier to decipher, and you wouldn't need to know as much about the hidden tricks that the windows kernel might be using (or you could intercept the various calls).
Because of the nature of video, it would be impractical for video drivers to live anywhere BUT in the kernel. (See also: "microkernel".) Neither Linux nor Mac OS X puts video drivers in user space. Doing so would not be a bright idea. (I would also note that Linux and Mac OS X seem to be quite stable with ATI driver bits in their kernels.... :-)
Drivers should be in the kernel if A. at least one of their primary clients exists in the kernel, e.g. disk controller drivers, B. they service a large number of clients directly (e.g. /dev/random), C. real-time performance is critical to the correct operation of the device (e.g. audio/video).
Historically, video cards typically only had one client at a time. These days, the windowing system (WindowServer in Mac OS X, X11 in Linux, the Windows GUI layer) is usually the primary client, with the OS kernel being a secondary client (command-line console, panic text, boot console, etc.) Further, the graphics hardware can also be directly driven by an application for things like full-screen games. In Mac OS X, the graphics hardware is also often used for other tasks, e.g. with CoreImage. Graphics cards also depend on direct access to hardware interrupts for performance to be adequate. Moving the drivers into user space would make adequate performance for these sorts of tasks nearly impossible.
Printers are the other extreme. They don't have their own hardware interrupts like with PCI devices, so if you're depending entirely on a faked software interrupt, the driver might as well be in user space. A printer will still print correct copy if the data arrives more slowly (up to a point, anyway). They only serve a single client (a local print spool of some sort) and cannot do more than one thing at the same time. Thus, printer drivers make no sense in the kernel.
Check out my sci-fi/humor trilogy at PatriotsBooks.
Very interestingly, Microsoft decided that OS/2 1.1 and 1.2 (yes, they did the GUI in that) should have the GUI and kernel as one. However, IBM didn't like that, and released 1.3, which was more stable, and had them separate.
This is *NOT* a new idea at all, even on the OS/2-WinNT kernel. (yes, WinNT is derived from OS/2.)
Out of curiosity: which would that be? Besides, what do you mean by "consumer level OS"?
Where does this 99% quote come from? Also, are you saying, that running a Windows with only MS certified drivers installed would reduce the number of lock-ups down to 1%?
What a load of crap. Your iBook is incapable of displaying all the pretty tweaks in Tiger, Apple's own OS, so don't crap on about how suyperior you antiquated iBook technology is. These are long overdue for the scrap heap unless all you want from you iBook is simple text editing, web browsing and emailing. It is a dog by comparison to all other portables on the market for anything that will place the CPU under stress.
Actually the 9550 core supports all the features required to enable ALL of 10.4 (aka Tiger's) fancy graphical features etal. The requirement in DirectX terms is only for DX8.1 not DX9.0c.
I'm one of Microsoft's fiercest critics on here but I have to concede that WSH is extremely handy. Although it's a fair bit annoying that if you want to do a dialog you have to generate HTML and display it in IE rather than being able to use the VB common controls or such like. BTW if you're going to reply something on the lines of "why don't you use " don't bother. I'm a clerical worker not an IT worker, they refused to even let me install VB CCE despite the advantages of being able to create plugins for Word rather than having to go to every PC and install macros by hand. Any other suggestions will be gratefully received however even if you do call me clueless ;)
Does a Christian soccer team even need a goalkeeper?