Windows needs a master daemon

It seems that half the programs I try and install under Windows want to have a "daemon" process with them, which is to say a portion of the program that is always running and which gets a little task-tray icon from which it can be controlled. Usually they want to also be run at boot time. In Windows parlance this is called a service.

There are too many of them, and they don't all need to be there. Microsoft noticed this, and started having Windows detect if task tray icons were too static. If they are it hides them. This doesn't work very well -- they even hide their own icon for removing hardware, which of course is going to be static most of the time. And of course some programs now play games to make their icons appear non-static so they will stay visible. A pointless arms race.

All these daemons eat up memory, and some of them eat up CPU. They tend to slow the boot of the machine too. And usually not to do very much -- mostly to wait for some event, like being clicked, or hardware being plugged in, or an OS/internet event. And the worst of them on their menu don't even have a way to shut them down.

I would like to see the creation of a master deaemon/service program. This program would be running all the time, and it would provide a basic scripting language to perform daemon functions. Programs that just need a simple daemon, with a menu or waiting for events, would be strongly encouraged to prepare it in this scripting language, and install it through the master daemon. That way they take up a few kilobytes, not megabytes, and don't take long to load. The scripting language should be able to react at least in a basic way to all the OS hooks, events and callbacks. It need not do much with them -- mainly it would run a real module of the program that would have had a daemon. If the events are fast and furious and don't pause, this program could stay resident and become a real daemon.

But having a stand alone program would be discouraged, certainly for boring purposes like checking for updates, overseeing other programs and waiting for events. The master program itself could get regular updates, as features are added to it as needed by would-be daemons.

Unix started with this philosophy. Most internet servers are started up by inetd, which listens on all the server ports you tell it, and fires up a server if somebody tries to connect. Only programs with very frequent requests, like E-mail and web serving, are supposed to keep something constantly running.

The problem is, every software package is convinced it's the most important program on the system, and that the user mostly runs nothing but that program. So they act like they own the place. We need a way to only let them do that if they truly need it.

Comments

I am compelled by the size of my taskmgr window to agree vociferously. It drives my crazy that I am able to realistically monitor and control the amount of memory and cpu that is used in the background on windows. I can't even really keep track of which things are running. I keep taskmgr open all the time, to be able to kill things that hang or see when something spikes the cpu. But it is almost unintelligable, since there are about 55 processes at any time, most starting at bootup. I have a new machine too, and haven't yet loaded a lot of things! I frequently kill things I think I don't need, but thats hard also, because XP allows them to have any name they want and hides the reference to the files or application, forcing me to search the drive or google the name. Worse, the XP services themselves are labeled svchost.exe. What is that?
Please get someone to create what you are talking about to bring some descoping and some rationality to all this crap that is constantly running. Why should I be forced to choose between itunes and not having both their daemons running all the time. Same for Adobe. Geez!

Well, the main way this would be a success would be for Microsoft to do it, and to back-release it for all Windows back to 98.

However, it's true any company could write it as long as it were free, so that software packages that drank the kool-aid could bundle this master daemon with their programs in case the user doesn't already have it.

But for it to really win, it needs the iron fist of Microsoft, which might eventually start penalizing programs that don't use the master daemon. For example, when you install them it should pop up a dialog "This program wants to run permanently, consuming system resources, in violation of Microsoft recommendations. Do you want to allow this?"

Of course users would get used to clicking yes, but it would cause enough support problems for the companies that they would switch to using the master daemon.

Oh Grasshopper! You clearly have not achieved total oneness
with the higher consciousness known as Windows Mind.

Were Microsoft to implement such recommendations and warning
messages, there would undoubtedly be a backdoor or other way
to avoid them. Microsoft itself would use it for its products,
as would other ISVs, large and small, that either discovered
the methods on their own or paid to use the privileged APIs.
Soon things would be back to where they are now. Also, given
Microsoft's history, I suspect there would be ways to cause
mischief, both benign and malicious, with the master daemon.

To be sure, the proliferation of tasks running under Windows,
the difficulty in determining which program they are
associated with, and their necessity is a Windows annoyance.
It is just one of many, like the registry, the handling of
DLLs, and the use of the Windows directory for application
files. They are all design deficiencies that, even in the
case of the NT/2000/XP branch of the Windows' software tree,
have their root in Windows 3.x. Proposals like your master
daemon are just a patch over an OS that is flawed at its
core. As the Vista stumble is aptly demonstrating, Windows
is reaching the end of natural lifetime. It will keep going,
of course, kept alive by inertia and Microsoft's continued
willingness to expend resources on it.

One angle to sell the idea would be:

Have it be the easiest and best way to create tray icons. That way, lazy programmers and smart ones would use it, even if they don't get the big picture.

Add new comment