Slashdot Mirror


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?"

19 of 46 comments (clear)

  1. It'll get there... by Kris_J · · Score: 3
    First tip, use an alternate shell for Win9x -- your average uptime will increase dramatically.

    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.

  2. As an original NT 3.1 beta tester ... by BitMan · · 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

    --
    -- Bryan "TheBS" Smith
    Independent Author, Consultant and Trainer
    1. Re:As an original NT 3.1 beta tester ... by BitMan · · 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

      --
      -- Bryan "TheBS" Smith
      Independent Author, Consultant and Trainer
    2. Re:As an original NT 3.1 beta tester ... by MrBogus · · Score: 2

      Like the other guy said, you pretty much nailed it.

      Perhaps saying that Windows 9x is a "modern application" is overstating the case ... But one thing is for sure -- Microsoft is an Application company, not an Operating System company, and that attitude is pervasive when you look at how they've handled 9x and NT.

      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 .NETwork Computer approach, except Windows to sink into irrelevance even before the government successfully breaks that part off.

      --

      When I hear the word 'innovation', I reach for my pistol.
  3. Windows is NOT modular by satch89450 · · 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...

  4. Integration by maggard · · Score: 4
    Why did MS integrate the presentation system so tightly with the underlying OS? Couple of reasons (all IMHO):
    • They didn't know any better
    • What became Win3x was never anticipated to become a major product - it was simply a response to everyone ele's GUI's but the standardized drivers (printer, video, etc.) made the thing a big hit
    • The architecture that originated with Win3x was simply carried forward with each version
    • Quick, fast, dirty
    • Very responsive due to close-coupling
    • Most users never change a driver in the entire time they have the machine - flexibility or efficiency in this area isn't as valuable as checking off another bullet item on some lame review

    As to your Detonator 3 driver issues on your Nvidia TNT2-based graphics card:

    1. Set your graphics drivers to Generic VGA drivers
    2. Reboot in "Safe Mode"
    3. Reinstall your Detonator 3 drivers
    4. Reboot into "Normal" mode
    5. 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.
    1. Re:Integration by Tower · · Score: 2

      Heh? You don't need to reboot into "safe mode" - just regular mode with Standard PCI SVGA driver... worked for me... personally, I've always like the Matrox windows drivers updates. Run the setup.exe, make a few choices on the add-ons - it puts up a little window that tells you not to click until this is done, then runs through the control panel, etc and does everything for you (a lot quicker than a person could, of course, since it is scripted).

      --

      --
      "It's tough to be bilingual when you get hit in the head."
  5. Restarting more of a suggestion by ptbrown · · Score: 3

    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.
    1. Re:Restarting more of a suggestion by Inoshiro · · Score: 2

      "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'?)"

      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.
      --

      --
      --
      Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.
  6. Samba, and what is an OS, anyway. by barracg8 · · Score: 2
    • '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

  7. Performance and laziness, I think... by rubinelli · · Score: 2

    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.

  8. "plug and play" by YakumoFuji · · Score: 2

    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
  9. Open executable limitation by shippo · · Score: 3
    One of the problems with Windows 9X is that running executables (including device drivers) cannot be over-written. Another is that only one executable with that name can be open at once (a limitation from at least Windows 2.0), and anything after the dot is ignored. Hence you can't run FOO.EXE, FOO.DRV and FOO.DLL at the same time.

    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).

  10. umm, not so. by Anonymous Coward · · Score: 2

    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.

  11. Interesting Windows Fact by Anonymous Coward · · Score: 2

    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.

  12. Re:It'll get there... -- Central Point ... by BitMan · · 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

    --
    -- Bryan "TheBS" Smith
    Independent Author, Consultant and Trainer
  13. Why Windows requires so much rebooting. by Clark+Rawlins · · Score: 3
    It has to do with the design of the filesystem arch.

    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.

  14. Re:microkernel based OS's by NaughtyEddie · · Score: 2

    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 .88 magnum -- it goes through schools.
    -- Danny Vermin
  15. Re:Restart trick by FoxIVX · · Score: 2

    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