Windows Services
UNIX does not make an explicit distinction between programs that are servers vs programs invoked by a user. Each flavor of UNIX provides a mechanism for the management of these programs, generally by using naming and placement conventions of descriptor files in the file-system.
In contrast, Windows NT/XP supports servers with a specialized API and management tools. Windows services are packaged as regular applications, but when they are invoked by the service framework they register a callback with that framework to which status and control messages can be delivered.
Turning an application into a service is straightforward, but involves a certain amount of boiler-plate code, and requires that the application be structured to be controllable by a thread started by the Service framework. The ZooLib class ZWinService implements the boiler-plate, and at its simplest requires only that a Run and Stop method be implemented on a derivation of ZWinService in order to connect an application to the service framework.