The Future of Windows Graphic Technology
Ben writes 'Extremetech has an article discussing the future of Windows graphics technology. The article uses information from presentations at the recent WinHEC, and outlines the Windows Graphics Foundation and other technologies expected to make an appearance in Longhorn. Particularly interesting is the Longhorn Display Driver Model: 'With it, Microsoft is aiming for that ideal situation of 'graphics just works.' For example, if you upgrade a graphics driver today, you typically have to reboot the system. One example of the 'graphics just works' mantra is one of LDDM's goals of allowing installation of graphics drivers without needing to restart the system.'
Considering the thousands of stories related to Microsoft that slashdot has posted, and the fact that at least one Microsoft article appears daily, shouldn't they get their own section, ala Apple or Linux?
It's high time they get the honor and the icons should be replaced with more professional, actual depictions of Microsoft.
One thing to keep in mind is that for the most part, Novell in its 3.x days (about 12 years ago) was used mostly for file and print serving. You didn't have to update the kernel very often to support that, and since they generally weren't connected to public networks you didn't have to worry as much about security updates.
I'm a big tall mofo.
You didn't hear the same line. For win2k, "no reboots" applied to system services. For example, NT4 needed a reboot to change network information. Win2k fixed that and a lot of other administrative reboots. WinXP focused more and more on installation reboots, and a well-behaved installer now only needs to reboot the system now if it has to change certain files that are already in use by system processes (for example, security patches). That's not to say that there aren't still misbehaved installers for third-party apps that request reboots, but I've found in 90%+ of the cases where an installer requests a reboot I can simply ignore it, tell it I'll reboot later, and get on with my work.
It sounds like Longhorn is taking the next step in combating reboots by allowing you to update drivers without a reboot. This is something you can't even always do with Linux today (consider updating the X driver for a video card -- you have to restart X to use it, which is equivalent to a reboot in Windows). So yeah, you've heard similar claims before with respect to rebooting, but each of those claims have targetted a different cause of reboots.
Our production win2k3 servers have uptimes that are only interrupted by security upgrade reboots. What applications are you referring to when it comes to memory leaks?
(consider updating the X driver for a video card -- you have to restart X to use it, which is equivalent to a reboot in Windows)
No, it's not. There really is no equivalent to restarting X on Windows. You either reboot all of it, or you don't. The closest thing to semi-rebooting is logging out and back in, I guess, but obviously that's not similar to restarting the X server. With Windows 9x I guess you could say there is an equivalent, namely shutting down to DOS mode and starting Windows back up.
Sorry for picking nits here, I guess it does end up having a similar effect for the user in that the graphical programs running will have to be quit[1], but obviously it's different in that background daemons, networking, etc. aren't affected.
[1] I'm curious, how hard is it to have the programs "detach" from the old server and "re-attach" to the new instance? Impossible? Already done on a daily basis? I have no clue.
Switch back to Slashdot's D1 system.
Umm no you don't you click on teh little executable. And viola it installs the new drivers and on reboot removes the old ones.
I'm sorry, how is this "for the win?" This doesn't require rebooting, my mail server is still running, none of my p2p software gets killed, I don't need to stop Apache. Yeah so I have to run ./install.sh and it will compile against the kernel headers (which takes like 10 seconds), still seems better to me.
With names like ntpd, how would one know? Well, offhand, I'd say that ntpd was the Network Time Protocol Daemon, and you probably don't need it. You know, the service names aren't really all that cryptic! httpd is the HTTP server, dhcpd is the DHCP server, nfsd is the NFS server, snmpd is the SNMP server... the only confusing thing is that Samba requires both smbd and nmbd.
I've abandoned my search for truth; now I'm just looking for some useful delusions.
The open source 2D-only drivers install preconfigured, so most users don't even need to do this.
Is Norton (or others) really doing something at the kernel level
Yes. They scan before the CreateFile function even returns.
Internet Explorer (which I never intentionally use)... why would that require a reboot?
Windows doesn't let you replace in use files, it doesn't have to be something kernel level. Since explorer is really internet explorer, you either need to shut down the interface or reboot.
Desktop Window Manager
Quartz Compositor
Note this has been around since before Mac OS X 10.0 (March 2001), gaining hardware acceleration for compositing in Mac OS X 10.2 (August 2002) and most recently hardware acceleration of 2D primitives in Mac OS X 10.4 (currently available to developers only).
A very large number of parallels exist between Apple's Quartz, Quartz 2D, and Apple's OpenGL model/abstractions and stuff coming in Longhorn.
Of course I can't fault them for running with a good idea and one that is a generally logical extension of OpenGL concepts mixed with ideas from the 2D world (PDF, painters model... good old SGI guys).
We have Xorg, and Cairo/SVG, and maybe GTK or Qt, but not a complete, end-to-end platform
Actually there has been a bunch of movement towards a better graphics architecture. Cairo is mostly driving things at the moment, because it provides a unified API for 2D graphics on X, Max OS X, Win32, and PDF/Printer output. Because of this Mozilla.org are planning on completely replacing all their graphics, not just SVG, in GFX 2.0 with Cairo (except possibly embedded stuff). I suspect that as they get going there will significant cross flow from the Mozilla side into improving Cairo and copying ideas and code from mozilla.org into Cairo.
GTK is also moving to a Cairo base, because it is also a big win for them, and there are some noises about QT...
One of the big features of Cairo is that it makes use of the Xgl/glitz pipeline, which accelerates 2D rendering in must the same way as Avalon. The final architecture still has to be worked out, but there's a good chance that Cairo will run directly on the hardware, with OpenGL/DRI support, and that much of the higher level X stuff in new Xorg releases with use Cairo for their rendering
Cairo is very much designed to be like Avalon on the API level, and to fill a similar role to Avalon and Core Image on the Mac. The only things not being addressed by Cairo are 3D (mostly OpenGL's area) and video.
Regards,
-Jeremy
Well if you find the CLI confusing just use Synaptics, it has a nice easy to understand interface, just search for the driver, click the check box, and install. I don't see how this is more difficult than going to the NVIDIA webpage searching for the driver, downloading it, running the install, etc...
In fact I would think that having a central repository for software and drivers like Ubuntu does makes things much easier.
Now if they could fix the memory leaks that seem to be so rampant in Windows Server and its applications I might have an average uptime that is longer than 1 month.
I'm going to make the presumption that you're ignorant, as Windows 2003, and to a lesser degree 2000, is pretty well known for being rock solid operating systems (the whole "only up for x days!" argument is circa 1999 and is very, very stale).
What you may be talking about, and I've seen this mistake a few times, are uninformed admins that monitor their servers and note that SQL Server, or Exchange, as a couple of quick examples, keep consuming more and more memory until finally your machine is saturated.
Super diligent admins schedule regular reboots, all while muttering and complaining about those leaky MS apps.
Of course the reality is that the apps are proactively enlisting memory for cache, and if you haven't restricted them they'll use all available memory eventually (they'll release memory if other apps make memory demands).
Amazing how frequently that is misidentified as a "memory leak".
Actually, upgrading drivers without rebooting IS difficult. We don't have this in the OSS field - in order to update a driver, be it 2D or 3D or whatever, you need at least to reboot X. That means switching off all your apps, and what current desktops that's pretty much like "rebooting" your computer. Yes, you're not rebooting, but with graphic apps in practice you're pretty much doing it.
/dev/null-like fake server, then update x.org drivers, rmmod the old drivers, insmod the new ones, launch xorg, and move all the windows to your new xserver, switch off the fake xserver. Or something like that. (Suggestions?)
What we need is to modify xlib to support "server migration" - we could move all the windows from a xserver to a kind of
It prompts you to reboot, but it's not at all necessary. I've seen it several times before, but just ignored it each time. There were no effects that I could see, even weeks later.
You can never go home again... but I guess you can shop there.
I get this with my printer if I plug it into another port...but Windows just reinstalls the driver - I don't have to reboot. That is sort of odd.
Also I like this from the page I linked:
The most probably culprit I can think of are file locks.
In Windows, it is impossible to replace a file in use, so when an update touches a dll that is used by whatever else process, Windows has to reboot to get rid of the lock, replace the file on reboot, and continue.
Unix, however, lets you replace any file. The old version stays still on disk as long as an application has it open, so all running applications will continue to work just fine. They will use the new file as soon as they are restarted. This way, I can replace every library in the system without having to reboot.
The Windows approach has advantages too. I could do a security upgrade on my ssl-library, and if I dont restart sshd, sshd will still use the old, insecure library, and this, till it is restarted.
Personally, I prefere the Unix way. After all, other tools can restart applications after library updates, so this shouldn't be enforced by the OS.
I have discovered a truly remarkable proof for my post which this sig is too small to contain.
I wonder if 10.5 will appear on a similar interval and be out in late 2006.
Probably not. Apple said they would be slowing down their releases after Tiger, so don't expect 10.5 before 2007. Still, that doesn't mean 10.4 won't get significant improvements. For example, Quartz 2d Extreme and resolution independence can currently only be enabled using developer tools; I expect them to become fully supported in a point release.
How to solve most of our problems: 1.Lots of nuclear plants. 2.Cure aging.
I don't know what they claimed, but here's what they did, off the top of my head:
--Network changes don't need rebooting. You can change IPs, or even go from DHCP to static, etc with no rebooting.
--Non-essential drivers, like NIC drivers doesn't require a reboot, at least if the company isn't stupid. Try it with an Intel NIC someday, they install and you go, no reboot.
--USB/Firewire devices just work and need no rebooting, unless the manufacturer makes some speical driver that requires it.
--Many software installs that used to need reboots no longer require them. Things like video decoders, services, and so on are installed on the fly and made available. Many older peices of software that claim needing a reboot don't in reality.
There may be more, I haven't used 9x in years so I can't remember all the things that made it reboot. However they made significant headway with 2k/XP. Reboots are generally limited to system updates, and core driver updates. If they can get it to the point where thigns like graphics and sound drivers don't need reboots, all the better.
sheesh why does everyone jump on someone for using command line commands? Very well, here's the GUI way:
Open Up Synaptic -> type in your password -> click "Search" -> type in "nvidia" -> click "nvidia-glx" -> in the submenu click "install" -> log out of your computer -> log back in.
The thing is, we are typing all of this - it's much easier to give a few command line commands to copy-paste in than it is to describe the GUI.
According to this article:
Quartz 2D has the concept of user space and device space all defined using 32 bit floating point units. The former is the coordinate space you draw in and the later is the coordinate space of the output device, say a screen at an arbitrary resolution (see resolution independent UI), a printer at an arbitrary resolution, or possibly a PDF file at an arbitrary resolution, etc.
You draw using primitives like paths which are mathematical descriptions of lines and curves that will get rendered to pixels in device space based on a mathematical transformation from user space. Based on how much the line covers a pixel determines the alpha and coloring of the pixel. To be clear the mapping done doesn't scale pixels but scales the virtual canvas and then maps those to output pixels/ink dot/etc., this gives you output at arbitrary resolutions (even in theory for devices with non-square pixels).
The Quartz 2D renderer does the conversion from user space (a 2D float field) to device space (another 2D float field). This conversion also includes things like color adjustment (concept of user and device color spaces exists).
The output from Quartz 2D (or other sources, like video from QuickTime) when targeted for display in a window on screen will live in texture that is basically mapped onto an OpenGL surface. This surface plus any others related to other windows are composited (with alpha blending) into the final screen image. The Quartz compositor does this utilizing VRAM and GPU as much as possible (VRAM is managed much like virtual memory manages RAM).
Since these are surfaces in OpenGL you can use transformations on the points/triangles that define the surface and the OpenGL hardware will map the texture over that surface. Transformations can include ones the work in all 3 dimensions.
In fact such transformations are used to achieve the multiparty conferencing you see in the latest version of iChat AV. Those are video streams mapped in realtime onto surfaces living in a 3D world. The transformation of the surface can also be done over time allowing for animations with live content.
Longhorn is gain similar capabilities and then some but Mac OS X isn't standing still either.
It is interesting that Apple has been doing an evolution of Quartz (leveraging the paradigm the put in place at the beginning) since it was introduced 4 years ago while MS appears to be trying to jump to it all at once with Longhorn.
One of the posters further down mentions file locks, which account for a good portion of the reboot requests. When installing drivers, the API call that's generally used (UpdateDriverForPlugAndPlayDevices) has a flag as part of the function that indicates whether or not the operating system thinks the system requires a reboot or not. Driver installer authors, such as myself, are supposed to pay attention to that flag and not reboot if the OS says not to. As someone further up in the discussion mention, this has been there since Windows 2000; its just seldom that the OS decides not to reboot.