Slashdot Mirror


New Way To Grade Decay of Computer Installations

skojt writes: "I saw this link in Dr Dobb's Journal (the paper edition) about the behaviour of a slowly decaying computer installation. It refers to a Windows installation, but as the author writes, 'But there will shortly be ports to Linux, Mac OS X, and other Unices; we are confident these OSes are just as prone.'"

9 of 534 comments (clear)

  1. Plug, plug by Phexro · · Score: 5, Informative

    Use Debian. I'm not saying that it's immune to cruft, but the fact that they have close to 9000 packages which all comply with the Debian Policy (as well as the FHS) means that everything plays nice together, and if it doesn't, it's a bug. There's even a tool called Cruft, which will locate cruft on your system.

  2. Keeping MacOS and Linux, esp. debian, clean by stere0 · · Score: 4, Informative

    I used to keep my macs working for 3-4 months before having to reinstall the whole shebang. I only reinstalled Mac OS X once since october. Macs are quite easy to keep clean, after some time you know where "cruft" accumulates. If anyone's interested, Alladin sells a product called Spring Cleaning, which I don't use. I clean my mac by hand. Seriously, on Mac OS X the only messy places are ~/Library and /Library. If you put your personal mess in your home folder, that is.

    My Gnu/Linux distro of choice is Debian. If you use debian, you know how quickly apt installs those libraries. Have a look at deborphan, which "finds 'orphaned' packages on your system. It determines which packages have no other packages depending on their installation, and shows you a list of these packages. It is most useful when finding libraries, but it can be used on packages in all sections". I run apt-get remove `deborphan` about once a month.

    Another great tool for the Gnu/Linux user is cruft, which, as the name says, tries to find the cruft on your system. It generates many false positives (e.g. /vmlinux), so use with many grep and caution :-).

    Which tools do you guys use to keep your system clean?

    --
    Trollem mirabilem hanc subnotationis exigiutas non caperet
  3. Windows decays because... by g4dget · · Score: 4, Informative
    Windows decays because its package management and system resource databases suck. Sorry, but there is no more polite word for it. The registry is a prime example of those gee-whiz solutions ("why don't we put all this information into a 'real' database") that looks neat but just doesn't work well in practice; Microsoft seems susceptible to implementing those kinds of systems.

    MacOS's preferred installation method ("drag-and-drop") doesn't suffer quite from the same problems as Windows. It's clean, simple, and easy to understand, and it doesn't leave junk all over the disk in mysterious places. But some applications install differently, and there is no single software update mechanism. Still, so far, OSX is holding up well on my systems, showing no signs of decay. But maintaining applications at the latest versions is a significant amount of work compared to Linux.

    For Linux distributions, it depends on the installation and update method. Debian systems can be updated for years without "decay". In fact, I haven't seen one "decay" yet, either ones that are updated regularly or ones that aren't. Because all packages come from a single source, they are all integrated, cross-checked, and tested together, a luxury that neither Windows nor MacOS have.

    The fact that, in Linux, each program has its own configuration files, often one system-wide one and one in the user's home directories, also makes Linux enormously more robust. There is no single point of failure and if some program's defaults get corrupted, it's trivial to fix and trivial to tell users how to fix it ("rm .foobar" and you should be fine).

  4. Maybe, maybe not by Restil · · Score: 4, Informative

    Linux MAY be prone to SOME of these problems, but I'm willing to trust that the great majority of what causes windows systems to go nuts on a regular basis simply won't affect linux, not because its immune, but because its not used in the same way.

    First of all, I'm willing to take at face value the fact that a 2K/XP system running only well supported, stable drivers on stable hardware running only a small set of vital application programs will be unlikely to encounter any serious problems. I have no personal evidence to support this, but a few people I know swear by it, so I'm willing to accept it under these conditions.

    However, 2K/XP might have gotten it right, but it took MS 20 someodd years to get around to getting it right. And it requires a fairly new computer to be useful. Win 95 runs great on old (read: CHEAP) hardware as far as performance goes, but it has serious stability problems. If I want to run a 7 year old version of Linux, I'm willing to bet
    that the last release in the 1.0.x series is just
    as stable in a production environment as the latest 2.4.x release is. Sure, it might not be
    as feature packed, and might not have the extensive driver support, but if it serves the purposes I require, it will work flawlessly.

    As for drivers, Windows virgin installs come with a set of drivers for a lot of legacy hardware. If your system is a couple years older than the version of Windows you're installing, it probably has the drivers for all your hardware. For any other hardware, you'll have to use vendor supplied drivers. If these drivers are unstable, Windows can misbehave, and it wouldn't necessarily be the fault of Windows. Certainly Linux must have the same problem, right?

    The simple fact of the matter, those who support Linux tend to support the same software methodology. The drivers, like the kernel, are all open sourced. They're heavily peer reviewed, and those that are integrated into the kernel are solid. And if bugs are found, they're fixed. If the original programmer doesn't/can't/won't fix it himself, there are countless others who can. In many/most cases, the drivers aren't even written/produced by the manufactuerers of the hardware, but by kernel hackers, on their own time. These guys have no interest in being first to the market. They have no desire to play the "just get it working, we can fix it later" game. Their only interest is in releasing solid, efficient code, becuase if they don't, they know someone else will be tearing it apart.

    Therefore, the drivers used on linux systems tend to be rock solid. So you have a rock solid kernel and drivers. Now for the applications.
    Applications for linux based operating systems tend not to overwrite system libraries with their own versions. General purpose applications are not generally run as root. The worst a normal user can do on a linux box by running buggy applications is to cause it to crash. Certainly, he can send the machine into thrashing or fill up the hard disk, but there are ways the administrator can restrict the type of activities that cause such outcomes. 2K/XP have methods to prevent these same problems, but many of the problems involved with installing misbehaving applications simply shouldn't be a problem in the first place.

    As for adding cruft to the operating system, my linux box has the same number of directories off of / as it did the day I installed it, with three extras added for each mounted HD on the system. My /home directory has one directory for every user on the system. My personal home directory, as I suspect others might be as well, is an organizational nightmare. But all that "cruft" is isolated. I know where the mess is, and I know only where the mess is. I don't have /etc, /bin, and other important directories littered with files that have no business being there. And no rogue application is likely to change that fact. Sure, an application program might add a directory to /usr/local and leave a large bloated mess under there, but if I decide later that I want to remove it, I can do a recursive delete of one directory and its gone. There aren't any mystery registry values that are going to cause me fits the next time I boot the system. There might be some entires in /etc/rc or crontab, but they won't hurt anything and can be removed later as they're discovered.

    I suppose its possible that a poorly managed linux box can cause massive problems, just as a perfectly managed windows box might work flawlessly. But all I can say is this. It's been 154 days since my last power failure, and my linux server has been up for 154 days. None of my windows boxes have that track record.

    -Restil

    --
    Play with my webcams and lights here
  5. Cruft can be keep in check with some work. by bedessen · · Score: 4, Informative

    I decided to build a new system some time in the fall of 2000, but prior to that I had been running the original Windows 95 install that I did some time in mid 1996. There were some hardware upgrades, sure, but I never resorted to reinstalling. My systems are highly customized, I like to set everything just the way I like it. So to me a reinstall is not something I do lightly. The system was not unstable at all, it was quite a workhorse. Sure, every now and then it would have a lockup of some sort, but we're talking once every few weeks. Now that I run win2k it's very rare indeed.

    You can manage the cruft in windows. It's not impossible, even if you install/uninstall a lot of stuff. The important things are to know what's running (task list, services, run at startup, etc) and to get to know the registry. You must babysit for poor installation programs. Often they will add crap to startup, or icons on the desktop, or other weird things, which I would always delete. You also have to help some of them wipe their ass when you uninstall, as a lot of them leave junk behind. You have to be willing to go into the Windows system directory and examine questionable DLLs. There a lot of tools to help with this. I recommend everyone who is interested go to www.sysinternals.com. There you will find programs such as REGMON and FILEMON which show you every registry access or file access in realtime, with the ability to filter. Also very useful is LISTDLLS which shows you which DLLs are loaded by every process in memory. If there is a file that's locked you can often find out who is using in with this program. The 2k resource kit has a free utility called Dependancy Walker which will show you the library dependancies of any .EXE, sort of like ldd. You must also be familiar with certain areas of the registry, such as the part where stuff is loaded on boot, the "pending file rename" section, the section where apps install their preferences, etc.

    I find a lot of times when I use someone else's windows machine I am appauled by the amount of crap they have loaded, and most of the time aren't aware of it. Programs that load stuff on startup without being very clear about it and asking you first really peeve me. I patrol the startup folder+registry entries very strictly, and keep the task list small.

    You of course have to make sure your hardware is stable and you have to go through the process of finding a driver combination that is suitable. It can be very frustrating to mess with crap drivers and a ton of strange BIOS settings. But if you stick with it you can eventually find a combination that is bulletproof and will yield stability. If you don't put in the effort to do this, though, you will forever be messing with strange crashes.

    It can be done, but it is not for the faint of heart.

  6. Mac OS 9 by Phroggy · · Score: 4, Informative

    Certainly a system that has been in use for a long period of time can become less stable due to increased complexity as new software is added. However, the real question is, how easy is it to clean up the mess and return to a smoothly running system, without reinstalling the entire operating system?

    The problem with Windows is the Registry. Practically nobody, including Microsoft's own programmers, knows exactly what to clean up in the Registry to get the system running as good as new, without breaking something important. In Mac OS, however, it's really quite simple. Granted, you do have to have an understanding of how the system works, so I wouldn't expect a novice to know how to do this intuitively, but I'd expect far less of a Windows user.

    The most obvious thing is the Desktop file (actually a couple of files now). This is the closest thing the Mac OS has to a Registry, and it's not close at all. Every six months or so, reboot while holding the Command and Option keys (technically, you just have to hold the keys while the Finder is loading) and it will ask if you want to rebuild the Desktop file for each mounted volume (filesystem). A couple minutes later, good as new.

    The next thing is extensions and control panels. Perhaps you've downloaded some cheezy shareware thing that's conflicting with some other cheezy shareware thing. Open the Extensions Manager, and have a look. Usually you can easily identify where most things came from; if you don't recognize something, you can turn it off, reboot, and see what happens. You can create multiple extension sets to experiment with if you want.

    Finally, preferences. Some app misbehaving? Trash the Preferences file. Everything reverts to defaults, but nothing is really broken.

    And of course, if you want to uninstall an app, usually you just need to trash the folder the app is in. Sometimes it may come with control panels or extensions; just trash those too (they're easy to identify). If you want to be thorough, trash the prefs too, although it won't hurt to leave 'em.

    I have yet to see anything easier to maintain.

    --
    $x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$];
    $x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
  7. Re:Windows? Try Linux...or learning a little by johnlcallaway · · Score: 4, Informative

    Most cruft can be attributed to users who do not take the time to learn about their computers and what it takes to maintain them. How many people go out and buy a new hard drive when they run out of disk space instead of going through the add/remove programs in Windows, RPM manager in Linux, or wander through all directories and check for things no longer needed.

    I have lived with 10GB for two years now just by pruning cruft whenever I get less than 300MB free. I would love to spend $100 on 80GB, but that would only lead to more cruft.

    Linux/Unix does hold one bit over Windows, there is no single directory that becomes crufted. (Please ... I know everything falls off of slash ... work with me here...) How big is your WinNT directory?? Mine is 1.24GB, and contains 9,191 files. That is 12% of my hard drive space, and 10% of all files, including my p0rn! Linux/Unix doesn't put all of its eggs into one basket, making it a little easier to prune the cruft that builds up, or at least a little less dangerous.

    Face it, unless you and I are willing to spend many hours pruning the cruft on a regular basis, it is often easier to delete and rebuild. Oh yeah ... another thing Linux/Unix has in its favor. If I put all the user directories on a separate partition, I don't lose all my settings when I reinstall Linux.

    Bad registry...evil registry...corrupted registry...

    --
    I rarely read replies, it's my opinion and if you thought about your opinion a little more, I'm OK with that.
  8. scatter-componets-across-10,000 directorys by crucini · · Score: 4, Informative
    Of course linux has the nice problem of scatter-componets-across-10,000 directorys. I use linux as a server platform instead of a desktop platform for precisely this reason. I can *never* find all the parts of some installs and I despise when a program places itself into 4-5 different directorys.
    If you installed from RPM, rpm -qlp some.rpm. If you installed from source, try make -n install.
  9. Re:What does the Debian policy offer over Windows? by rusty0101 · · Score: 4, Informative

    Being accepted as a Debian package means that your package does follow the Debian policy. That means that there are over 9000 packages where the developer was concerned enough about the policy to follow through with what put you to sleep.

    The dselect, apt-get, dpkg, gnome-apt, installers do just what you are asking a package installer to do. When you build a package, using Make, or other software building applications that support Debian packages, your package does identify what files are needed, what independently developed packages are required. It also handles uninstall very well.

    Is it perfect? Nope. But in comparison to Windows software installers, it is light years ahead.

    Of course BSD users will brag about how their installer works for any platform that has a C compiler... and that there exists drivers for the hardware... Sounds like a really lousy way to be set up to uninstall software later, but I am not judging the system, I don't use it.

    -Rusty

    --
    You never know...