Why Does Windows Require Excessive Rebooting? 46
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?"
It'll get there... (Score:3)
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.
As an original NT 3.1 beta tester ... (Score:3)
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
Windows is NOT modular (Score:3)
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...
Integration (Score:4)
As to your Detonator 3 driver issues on your Nvidia TNT2-based graphics card:
Win2K requires less reboots (Score:1)
Restarting more of a suggestion (Score:3)
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.
video problems aswell (Score:1)
I had to do a cold boot last night (without shuting down) and now the computer won't detect my video card, it will only use vga.
So I re-install my video drivers (it tells me they are not made for my video card), reboot, and it still says it only has a VGA adapter, not my Voodoo3! So after good while of reinstalling the driver, it finally says the adapter is a voodoo3, but will only use it in VGA mode. so then it won't let me install my monitor drivers so that I can have better resolution. I don't know what to do, it took my 3 hours to get that far, anyone have any idea?
(Btw, my cards not broken because it works under Win2K and Linux)
Samba, and what is an OS, anyway. (Score:2)
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 :-)
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
Performance and laziness, I think... (Score:2)
The other reason is simply laziness. It is way easier to simply tell the user to restart instead of cleaning things up.
Re:Win2K requires less reboots (Score:1)
"plug and play" (Score:2)
Write your Own Operating System [FAQ]!
Open executable limitation (Score:3)
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).
Re:TV Tuner.. (Score:1)
Re:TV Tuner.. (Score:1)
I mean, on Windows. At least I didn't have display problems with the ATi.. (Next time I'll press preview
umm, not so. (Score:2)
Re:As an original NT 3.1 beta tester ... (Score:3)
What the hell? Off-topic?
Guys, I'm trying to explain why nothing in the Microsoft world will ever be like UNIX. Minimal reboots, multiuser aware, network aware, more secure, etc... In a nutshell, the answer to your question is in fantasy land.
Geez! I understand the underlying Windows 9x and NT/2000 design than probably most who posted here. Stuff like what you want for Windows will never, ever happen! Microsoft makes GUIs, not OSes. Windows 9x is not an modern OS implementation, it's a modern application. Don't expect it to act like an OS.
To Microsoft, reboots are something that the consumer can do easily. They would rather you reboot than try to explain how to dynamically load drivers! It's that simple. Microsoft wants dumb users.
-- Bryan "TheBS" Smith
Interesting Windows Fact (Score:2)
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.
Re:Win2K requires less reboots (Score:1)
Re:As an original NT 3.1 beta tester ... (Score:1)
Whoever moderated this as offtopic should be flogged.
Re:Integration (Score:2)
--
Re:It'll get there... (Score:1)
Expecting a power cycle now and then to keep a system stable is a corner-cutting way of not fixing your O/S and apps (are you listening, MS?)
--
Re:Because Windows sucks. (Score:1)
Re:Because Windows sucks. (Score:1)
I don't have to reboot to change my IP address on my WinNT4.0 box (It doesn't ask to). However I remember that it used to ask for reboot when I was running IPX+TCPIP (now its only TCPIP).
Last time I installed an ethernet card on a win98 box, I had to reboot 3 times! (times 5, for the unsuccessful tries). I think it's basically due to lazy programmers - they only readin configuration on startup of program/service. Many programs seem to ask for reboot as a "safty measure" - I often refuse to do so and they work anyway.Re:Win2K requires less reboots (Score:1)
-- Sig (120 chars) --
Your friendly neighborhood mIRC scripter.
Re:Win2K requires less reboots (Score:1)
--
Cheers
Re:It'll get there... -- Central Point ... (Score:2)
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
microkernel based OS's (Score:1)
Reboots on font size changes (Score:1)
I guess that's because switching between Small Fonts and Large Fonts goes a bit deeper than changing all the font sizes: it doesn't change the font sizes, but instead changes the dots per inch setting of the display. Still no reason to require a complete reboot, if you ask me. But Bill Gates & friends didn't ask me, obviously.
Restart trick (Score:1)
Why Windows requires so much rebooting. (Score:3)
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.
Re:Win2K requires less reboots (Score:1)
My guess is if they *could* change from Large Fonts to Small Fonts without rebooting, they would have included it with this functionality. Who knows why you can't !
Re:TV Tuner.. (Score:1)
A-men, brotha! Either the Huppaguge drivers, Windows, or a combination of the two. I've had my WinTV car dunning in Win98, WinNT, Win2K, and BeOS. Guess which one does it best? Be, hands down.
In Windows, the TV app takes 5-10 seconds to start, and sometimes fails to initialize the card until I launch the app a second time. In Be, the card works flawlessly and comes up instantly. While I have found Windows 2000 to be fairly enjoyable in comparison to earlier revisions, it's still nowhere near the quality it could be.
Personally, I think it's an issue of so much legacy code that is still in the way. MS is moving backwards with their OSes lately, dumbing down NT in stead of bringing 9x up to date. It's sad, really. At least I can reboot into a better OS whenever I want...
-Smitty
Re:Win2K requires less reboots (Score:1)
Sometimes, if you're lucky, Windows will just restart itself without rebooting the system.
-- Sig (120 chars) --
Your friendly neighborhood mIRC scripter.
Re:microkernel based OS's (Score:2)
Re:Open executable limitation (Score:1)
Sorry. I progam in Windows. You can. You can run MULTIPLE instances of FOO.EXE if you like. As many as will fit in memory. What you can't do is overwrite one that's held open by the system (say, the network driver). If the system were designed to unload that driver, and release it, when it was being updated, this wouldn't be quite the problem that it is. The feeble solution is the
If you don't already know, 2000 is almost EXACTLY the same under the hood, programmatically, as NT. It's just a more stable implementation -- what they should have done way back in NT 3.1. A lot of bugfixes. I don't know where people get the 65,000 bugs from -- right now most of my problems with my 2k box are coming from my foolish decision to install IE5.5, which is a total wreck. It ran like a dream until then. This integration of shell and explorer is a dumber idea than most . . .
The real problem is Microsoft laziness, as most people have figured out. The install routine of many programs could dynamically unload and reload the associated drivers but does not. You can do a lot of things without rebooting in 2000, like change the IP address, that you couldn't in earlier versions. What causes a reboot most of the time in 2000 is actually dumb install programs that insist on restarting to refresh the registry. I frequently just ignore the "you must reboot" in 2000 because I know it's not necessary. Only when new drivers are installed and the installer is just too dim to put all the reg keys and dlls in place do I have to actually restart to run whatever's in wininit. I once had the thing up for 60 days, which for a release 1.0 of anything Microsoft is pretty impressive.
Re:Win2K requires less reboots (Score:1)
In NT the SID has nothing to do with the computer name. It's a big-ass (32-bit?) field that differentiates it from other PC's. Two NT boxes with different names can have the same SID. That's why when you use disk-cloning to stamp out massive numbers of NT boxes you have to use some sid-changing utility because identical sids cause fits to the security subsystem. Fun stuff like shortcuts on one PC being mapped back to another PC happens when you don't change SID's during cloning.
In NT when you change the netbios name you have to of course re-register with the WINS server, and also if you're on a domain there's an account for your PC that allows the domain to trust it called COMPUTERNAME$. It has to re-register that account and again due to sheer laziness none of this can happen except at startup.
Don't hate me for what I know. It's just my fuckin' job.
Re:Win2K requires less reboots (Score:1)
Go to Display control panel, go to the Plus! (Effects in win98) tab and toggle the "Show icons using all possible colors" option. When you apply, you will be told that "For this change to take effect, you must restart your computer." i.e. reboot. Even if the system is multiuser (and the option is specific to each user). You only have to logout/login for the change to take effect.
-- Sig (120 chars) --
Your friendly neighborhood mIRC scripter.
Re:Win2K requires less reboots (Score:1)
Sometimes, if you're lucky, Windows will just restart itself without rebooting the system.
My brother suggests this: in the Exit Windows dialog box, choose Restart and hold down Shift as you choose OK. You should then find that only the GUI restarts. Of course this doesn't always work with hardware drivers, but it seems to work fine with application installations.
Re:Open executable limitation (Score:1)
Dynamic-Link Library Updates
It is sometimes necessary to replace a DLL with a newer version. ... On Windows NT/Windows 2000, it is not necessary to restart the computer if you perform the following steps:
Use the MoveFileEx function to rename the DLL being replaced. Do not specify MOVEFILE_COPY_ALLOWED, and make sure the renamed file is on the same volume that contains the original file. You could also simply rename the file in the same directory by giving it a different extension.
Copy the new DLL to the directory that contains the renamed DLL. All applications will now use the new DLL.
Use MoveFileEx with MOVEFILE_DELAY_UNTIL_REBOOT to delete the renamed DLL.
Before you make this replacement, applications will use the original DLL until it is unloaded. After you make the replacement, applications will use the new DLL. When you write a DLL, you must be careful to ensure that it is prepared for this situation, especially if the DLL maintains global state information or communicates with other services. If the DLL is not prepared for a change in global state information or communication protocols, updating the DLL will require you to restart the computer to ensure that all applications are using the same version of the DLL. On Windows 95/98, it is necessary to restart the computer. For more information, see the Remarks section of MoveFileEx.
I think at least part of the problem with Windows is lack of programmer understanding, the need for compatablity with Windows 95/98/ME (why doesn't Microsoft kill of this piece of crap?) and the knowledge that most users will just accept that a reboot is needed.
Re:Restarting more of a suggestion (Score:2)
I'd expect it to be like any other UNIX which treats everything as a file.
The problem is not that it fails to differentiate, but that it pollutes the namespace by not having a separate directory for the special device inodes.
--
Re:Restart trick (Score:2)
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
Re:Because Windows sucks. (Score:1)
Only 3 reboots? Try putting an already installed Windows hard disk into a different computer - I've had over *10* reboots before it was up and running again.
Re:Interesting Windows Fact (Score:1)
Anything to win a benchmark by a few percentage points. Nevermind the effects on other running systems or the stability of the system. Reminds me of the "goto considered harmful". It's not that goto's are bad, it's that the resulting mess of spaghetti logic, where things are connected that don't quite fit exactly, leads to systems that are not only broken, but unrepairable.
In-line code modifications can be useful, but should be attempted only be people who understand machine language intimately and also understand the relevant system conventions intimately.
Re:As an original NT 3.1 beta tester ... (Score:2)
Perhaps saying that Windows 9x is a "modern application" is overstating the case
The whole point of "Windows" in the beginning was simply to provide a common platform for which Microsoft could develop it's own software, overcome the "WordPerfect Printer Driver" problem, and to do so as quickly and cheaply as possible on the maximum number of boxes out there. The fact that it had a sorta documented API was merely a concession to the fact that most 3rd party programs on Windows complement Microsoft's, not compete with them.
It seems obvious now that Microsoft came upon this strategy very early on, back in the OS/2 era, even before NT shipped. They determined that a hacked up OS would give them wider penetration for their applications than a "real" OS, and have been running with that ball ever since. NT "Workstation" has almost never been marketed, except to potential Unix converts, and there Microsoft was certainly eyeing the server machines. (And to that end, you wonder why, because the only server apps that Microsoft has taken remotely seriously has been SQL Server and recently IIS. Perhaps it's just the PR illusion that you could potentially be a 100% Microsoft shop somehow sells Office licences.)
I'm a little slower on the uptake than you, so perhaps I didn't figure this out until Microsoft shelved PnP and APM for NT 4.0 and left it on the shelf for 4 long years. Anyway, I expect that their current "Win2000 is the future, WinME is the last" attitude to last exactly long enough until the find a sweeter app platform than 9x/ME. If the market buys their new
Re:Windows is NOT modular (Score:1)
NetPositive
telnetd
ftpd
ksocketd
dhcp_client
(blue)debug_server
(blue)syslog_daemon
(blue)input_server
(blue)Tracker
(blue)Deskbar
(blue)media_server
(blue)media_addon_server
(blue)print_server
(blue)midi_server
(blue)audio_server
(blue)mail_daemon
(blue)da_hood
(blue)net_server
The (blue) means it's in blue writing.
You know what Be's doing right now? They're writing BONE, the new BeOs Networking Environment. That will get rid of the net_server and da_hood programs, and merge them into the kernel. They say that this will eliminate the need to restart networking; changes will happen instantaneously.
Two thoughts on that:
1) Couldn't they merge everything into the kernel and make everything instant (because the features would be right there and when used would just read the settings)?
2) WHY DOESN'T WINDOWS DO THIS??? All it takes is for them to make Windows just stop caching the settings and read them straight from disk. Waaaaay too easy.
Well, that's why I use Be.
Re:Open executable limitation (Score:1)
Windows 95/98/ME (why doesn't Microsoft kill of this piece of crap?)
Because they need justification for charging several times as much for Windows 2000.