Or, rather, I wouldn’t; not without knowing one whole heck of a lot more about the specific services we’re talking about and how they’re used by Windows.
You see, services – autostart or not, delayed or not – kinda sorta are Windows. And by tweaking what does and doesn’t start and when, you’re pretty much saying you know what’s good for Windows better than Windows does itself.
Let’s look at just what these things are and why we need them.
Become a Patron of Ask Leo! and go ad-free!
Big caveat: this is of necessity an over-simplification. Operating system design is the product of deep research, high level degrees and incredible complexity. We’ll have none of that here. 🙂
In the beginning
In the beginning1 was DOS.
Now, the term “operating system” actually applied only very loosely to DOS. It was really more a combination of a simple program loader with a file system and a a few administrative utilities.
The important distinction about DOS was that when your program was running nothing else was. When your program wrote to disk, it did so through DOS, but in a way that made DOS more of an extension to the program than some kind of entity of its own.
If you’ve done any programming, you can think of DOS as a convenient collection of subroutines that did helpful things, but not much more.2 It was still a one-program-at-a-time “operating system”.
Loading DOS was, of course, very quick, since not only did it not have all the features and functionality of Windows, it didn’t have to do more than be ready to run programs on command.
DOS begat Windows
Windows began as not much more than a program that ran in DOS. In fact, up through Windows Me, DOS remained the underlying architecture that Windows relied on to perform much of what it did. Oh, DOS might be well-hidden, but in the earliest versions of Windows it was DOS that clearly loaded first and ran a program called “win”, for Windows, after which the graphical user interface appeared.
These versions of Windows, collectively often referred to as “Windows 9x”, were not really true multi-tasking operating systems.
In addition to the operating system responding to application requests to “do things”, much like DOS, a new concept was added: “cooperative multi-tasking”. Windows programs all had to cooperate in a specific way to make Windows appear to be multi-tasking. Essentially, they all had to agree to very carefully take turns doing their work, and then letting another program have at it. At a high enough rate of handoff between programs, the system looked like it was running them all at once.
Of course if any one program became greedy, or hung, then the entire system came to a halt.
Loading Windows 9x, while somewhat slower than loading DOS because it did include more functionality – like that graphical interface – was still pretty snappy by today’s standards.
Windows begat Windows?
While both have the name “Windows”, Windows versions beginning with Windows NT (New Technology) were a completely different beast than what had come before. They were true multi-tasking (and multi-user, as it turns out) operating systems.
So what does “true multi-tasking” mean? It means that the programs don’t have to cooperate. The operating system itself maintained what’s called a “scheduler” (not to be confused with the Task Scheduler application) which controls what program got to use the CPU and for how long, measured in microseconds. The task scheduler would simply allow one program to run for “a bit”, then another, then another, and so on. Programs could legitimately be considered to be running simultaneously.
This allowed the concept of “services” to be born, at least in Windows. They’d been around for a long time in other operating systems like Unix, referred to as “daemons”.
The concept is very simple: the operating system would provide functionality in the form of a program that ran all the time, in the background. When the program you were running needed something, it could make the request of that service program. They could then both go off and continue running simultaneously until the request had been completed.
A good example might be writing to disk. In many cases, there’s no need for the program you run to wait for a disk write to complete. So it could just tell the disk service to “go put this on disk”, and carry on being responsive to you while the service did that whole “write stuff to disk” thing in the background.
But then things got complex. As it evolved Windows delegated a lot of what it does to services that operate in the background. From scanning for malware, to updating Windows, to a raft of other functions, the majority of programs running at any point in time are, in fact, services.
And when you have that many services that all need to start when you boot, it can take a while.
OK, I can wait
Finally we get to answer your question: what’s a delayed start service?
As Windows increased in complexity and functionality, start-up time naturally continued to get longer. One of the things that people realized is that while it’s important for some of the services to be running eventually, they don’t all have to run immediately.
Two concepts build on this:
- Services that start “manually”. These services don’t start at all until or unless some other program requests functionality that they provide. Never need it? It’s never loaded.
- Services that start “later”. These services do need to be running for some form of Windows functionality, but they don’t need to be started immediately. Windows instead starts them automatically after all the other services that do need to start right away have started.3
What this does is get you a more responsive machine sooner when you boot. Yes, those other “later” services will still end up starting and perhaps impact performance slightly when they do, but generally the impact is negligible. If nothing else, you get to start using your computer sooner.
If it ain’t broke, please don’t try to fix it
Now, given the definition I’ve just laid out, it’s really tempting to say “Awesome! Let’s see what else we can delay-start to make the machine boot even faster!”.
Don’t. Please, just don’t.
As I’ve said, services really are Windows, and they’re configured to start the way they start for a reason – and usually a good one. Second guessing the operating system’s designers, at least not without a lot more information about what it is you think you’re doing, just isn’t a good idea.
I’ll put it this way: in the worst case you could render your machine unbootable. And nobody wants that.
If you just can’t resist twiddling
I know that the preceding statements will fall on more than a few deaf ears.
For those of you who just can’t help yourselves, I have two recommendations.
Two: Do some research, and visit Black Viper. He maintains an exhaustive reference of Windows services. “Includes complete explanations of each service and advice on which services you can safely disable”.
But backup first, and often, OK?