Why Does Windows Require Excessive Rebooting?
psxndc asks: "Ever since I installed the Detonator 3 drivers for my TNT2 card (under windows), I've been having issues with my TVTuner card. I've tried installing older drivers with minimal success. The drivers are easy to select between in the Adapter menu and after rebooting my machine for the umpteen-millionth time, I began to wonder 'Since drivers for the display are so modular, why do I need to reboot my entire machine each time? Why couldn't I do the equivalent of just killing and restarting X?' Why did Microsoft (and other OSs for that matter) make the GUI totally integrated with the OS? There must have been a reason. They could have still kept the modules (kernel, GUI, etc) proprietary binaries and not released the source, so control can't be the reason. What is it then?"
Remember when you couldn't even change resolution or colour depth without a reboot? Well, that time has passed.
I used to think that if a program crashed will using the sound card I wouldn't be able to get a peep from the PC until I rebooted, but go into the system control panel and click on "refesh" and you'll probably get the device back.
Remember, Win9x is an OS for personal PC. It expects to be shut down at night. I have a PC at home I keep running that will often go for weeks without needing to be rebooted, but I don't do much on it and it's the exception.
I can tell you little of what Microsoft does has any technical reasoning. In fact, if irresponsible marketing that really doesn't make a difference (e.g., no 'emergency' CLI mode like OS/2) conflicts with technical reasoning of the utmost concern, that marketing, no matter how flawed, still wins. Everything from drive letters, to symbolic links to many other ideas were dropped for 'marketing' considerations.
[ And we all know how "customizable" NT is -- e.g., ever try using the POSIX subsystem in NT to implement symlinks like someone did in the NT Resource Kit? Pow! Corrupted filesystem! ]
Coming from OS/2, NT was a _real_ disappointment. I got involved in NT because the first native app for NT was Integraph/Bentley Microstation (a traditionally UNIX CAD program, with them trying to cut into AutoDesk AutoCAD PC share via NT). Boy did they make a mistake by going with NT. From lack of dual-monitor support (after request after request) to various, almost anti-CAD decisions, it makes you wonder if Microsoft really cares about the people that use their system (I mean, the only people that did NT for awhile were Integraph users!).
And it got worse. Not even Microsoft's own application group was supporting NT -- heck, that still exists today. Every freak'n ignorant ISV (independent software vendor) to Microsoft themselves totally ignores NT when it comes to designing their applications. As such, we have a wealth of NT ignorant applications resulting in users having to run with full administrator privaledges which, of course, defeat security, yada yada yada.
The only vendor I have ever seen support NT 100% in their installer as well as their apps operation is Digital. Makes you wonder just who wrote Windows NT??? NT = "Not our Technology". And now Digital is all but gone, Compaq does not seem to be holding much of a candle to their old software development attitude.
In 1993, I discovered Linux. In 1994, Gates chose to support "Chicago" (aka MS-DOS 7.x with the GUI atop we now know as Windows 9x), that killed any chance of NT becoming a good product. It had the potential to be one, but hey, it's Microsoft we're talking about here! And they were able to dupe companies like Integraph, Bentley, Micrografx and a host of other companies we can talk about sometime. ;-> Yes, by 1995, I saw Linux was the future!
System administrators have had it with multiuser and network ignorant OSes from Microsoft. I'm one of them. TOC (total cost of ownership) of Microsoft products is a freak'n nightmare. I'm seeing this first hand as I roll out a new batch of dual-booting NT/Linux systems. Thank God my servers are 100% Linux/Solaris at my current job (so it's just the desktop TCO nightmare for now, until Linux takes over ;-).
-- Bryan "TheBS" Smith
-- Bryan "TheBS" Smith
Independent Author, Consultant and Trainer
Indeed, MS-DOS wasn't modular either. Many operating systems designed with sane control mechanisms have a way of dealing with disk drives coming on-line and off-line...but not Microsoft (nee Seattle Data Systems) software. In some respects, this "simplifies" the code (read: get it out the door faster) because you don't have to test the boundary conditions of changing the status of a device.
Ask the designers of drivers for removable hard drives what hoops they have to jump through to operate in Windows, or in MS-DOS.
Before anyone thinks I'm bashing Microsoft, I worked with embedded computer systems that didn't carry the baggage of loadable and unloadable drivers -- if you change the hardware configuration you had to reboot and let the initialization software do its thing while the initialization software is in memory. Once initialization is complete, you don't need that code hanging around anymore. It meant, though, that the system didn't gracefully deal with hardware "going away"...but then, neither does Windows as I learned this morning when multiple power sags finally did in a system in my farm...
As to your Detonator 3 driver issues on your Nvidia TNT2-based graphics card:
- Set your graphics drivers to Generic VGA drivers
- Reboot in "Safe Mode"
- Reinstall your Detonator 3 drivers
- Reboot into "Normal" mode
- Test to make sure everything went allright
By the way - install the "Coolbits" keys into your registry and enable all of the tweak settings in the drivers - built-in overclocking!I don't read ACs: If a post isn't worth so much as a nom de plume to its author then I wont bother either.
Yes, I became desensitized to the unforsakable "You must restart your computer for changes to take effect" dialog that I sought out and learned the trick of holding down shift as you click "OK" in the restart dialog to only restart Windows, and not reboot. So I got in the habit of telling Windows, "No, dammit, I don't want to restart now!" and later, when I finished all my finagling, do a quick restart. I kept this up until very recently, using 98se, when I once clicked on "Yes" and lo-and-behold, Windows was smart (sic) enough to do a quick restart on its own. 'Course, I don't think it does so when changing the display adapterr.
;-)
Okay, sure, quick restarts are nothing compared to `killall -HUP inetd` (or similar procedures in BeOS), but what do you expect from an OS that doesn't even know the difference between a device and a regular file. (Ever try renaming something to 'NUL'?)
The only other saving grace is that often, particularly with the Network cpanel, the message to restart is just a suggestion, and not a requirement. I've ignored it plenty of times after changing, say, DNS, and it accepts the changes without restarting. Sure, you'd probably want to fit in a restart sometime in the not-too-distant future, but this *is* Windows we're talking about -- it'll eventually schedule a restart whether you like it or not.
As for your video card troubles, why are you bothering with Detonator3 for a TNT2? I don't know of any significant changes in the TNT portion since Detonator2. In fact, a few benchmarks show a decrease in performance for older cards. I've settled on 5.33 for my TNT, and am leaving the 6.x< for the GeForce and beyond.
Any sufficiently advanced civilization is indistinguishable from Gods.
- 'Since drivers for the display are so modular, why do I need to reboot my entire machine each time? Why couldn't I do the equivalent of just killing and restarting X?'
X is just an application. Killing & restarting X is like quiting Word then launching it again. Linux can be so much smarter than that.Nice little story: a while back I was working with a small network with a mix of Win & Linux boxen on it. We made some changes to the stuff shared over Samba, but for some reason (memory fails me) these changes were not available on the client machines. So on the linux boxen, we stopped and started Samba (a kernel service). The Windoze boxen... naturally a reboot. Linux providing better support for an MS service :-)
- Why did microsoft (and other OSs for that matter) make the GUI totally integrated with the OS? There must have been a reason. They could have still kept the modules (kernel, GUI, etc) proprietary binaries and not released the source, so control can't be the reason. What is it then?
Why did MS do it? Probably because the suits wanted to exorcise the spectre of DOS that was hanging over the marketing department.But there are valid arguements that the GUI is part of the OS. The OS should provide a useful abstraction of the underlying hardware - e.g. you want a hard disk that stores files rather than blocks of data. Equally, a CLI is a very weak abstraction of the capabilities of a TNT2.
G
If I was taught right, NT was designed be much more modular and robust. But performance was simply pitiable. So, they integrated the GUI and few other tidbits into the kernel to speed it up (to "crawling").
The other reason is simply laziness. It is way easier to simply tell the user to restart instead of cleaning things up.
if you read the PNP spec carefully, it clearly states that most things take affect AFTER a reboot. most of the reboots in windows are caused by hardware modification (add/remove/alter) the state of a device. this requires a reboot. i can only guess why installation of a program would cause a reboot. obviously some parts (dlls) are cached in memory and contain state information that cant handle a simple reload. how otyher OS like beos get around the PNP + PCI specifications i dont know...
Write your Own Operating System [FAQ]!
no sig for you
To update an open driver/executable/DLL, the new file is put into a tempoary storage are, and copied over during the early stages of the next reboot. Windows 95 had an .INI file that contained the files to be updated. NT does it by some other means, possibly involving the registry. I've no idea on Windows 2000, having never touched it.
Of course *real* operating systems do things by better means. Memory mapped executables are refered to purely by the combination of inode and device major/minor pair. Under Linux, even if a running executable is unlinked, the program still runs, and the diskspace is only freed up when the last process unmaps the file. I believe the same is true with kernel modules. Hence running code can be easily updated without a reboot (unless updating the kernel or init).
Plug and Play is for allocation of IRQ's and IO addresses, which has absolutely nothing to do with the loading, unloading, and configuration of driver software. Windows automatically configures PnP devices at boot time independant of the drivers.
When a program makes a call to a windows/driver function windows actually modifies the code of that program, so that insted of a call to a function it's a direct jump.
eg:
.
mov eax, 55 ; sum assembly code ??
.
call "some system function" - is modified to a jump directly to the memery address.
effectively windows shortcirkets all function calls so that nextime it is called it will be faster. Thus making it quite imposible to unload a system function such as a divice driver (apart from restarting the computer).
This is probly one of the very few "optermizations" that windows has to offer. Althou it's not for the better.
Plz note: I've limmited knolage of assembly language.
Aw man, you had to mention the Central Point shell. Boy did I hate the world when Windows 3.1 died and I couldn't run that anymore.
Luckily for us, Gnome/E became stable about 12 months ago and I've been hooked since. Sure there are "similiar" offers for Windows, but not one that works so intelligently like Central Point's did.
Now if Eazel could get a good file manager out for Gnome ... I'd be in heaven!
-- Bryan "TheBS" Smith
-- Bryan "TheBS" Smith
Independent Author, Consultant and Trainer
The os loads executable images into memory and backs those executable memory pages with the image on the disk. Unlike unix the file is locked by name instead of by inode so when you try to over write the file Windows complains (the file is locked so that any code that is swapped out to disk can be reloaded).
Now if the filesystem was based on inodes and the inode was locked instead the file could be unlinked from the directory and an new one created and linked to the same directory entry.
Instead to replace files there is a special API that tells Windows that the next time it reboots to do the file replacement before any applications load the executable images and they are locked into memory.
The framebuffer was in the old Linux kernels; Microsoft never exposed it until DirectX because, for 2D work, it's actually faster to use hardware 2D acceleration than to draw everything as pixels. Odd that.
--
It's a
-- Danny Vermin
Close, but no cigar.
I can restart x in under 30 seconds, where as the windows-reboot (what the shift trick is called) takes well over a minute. When you restart x, you're just reloading the base GUI, the os (linux) stays put the whole time, no programs/daemons are closed, stopped, or etc. A windows-reboot takes down the whole OS, GUI and all, and with it, all the programs/daemons you had running.
Plus, this discussion is missing the best point of linux. ALT-F1/F2/F3, etc to other consoles. If a program halts x (even so bad that xkill doesnt work), I can switch to another TTY and kill the offender, switch back to the gui and it'll be fine. All the while, the mission critical Apache and mail server are still running. With windows, the crash is most likely due to a crappy program which takes the boat down with it. And that means the web server and mail server are offline till I can get it back up.
-Josh