Opening Solaris - page 5
The Solaris 10 Pitch
For SVR4-based Unix operating systems the services and applications executed during a normal boot are controlled through a combination of the run-level selected and the scripts located within the /etc/rcX.d directory. For example, when entering run-level 3 (the default), all the scripts in /etc/rc3.d are executed, in numbered order, to start up different services like NFS or Apache.
From an execution perspective the process is time-consuming, and from a technical perspective the system is basic and laced with difficulties. For example, the NFS service relies on the system having configured networking (another script), but it is up to the administrator to ensure that the NFS script runs after the networking script. Getting the order and sequence of the scripts correct is therefore vital. The script model also had problems in that the script would run once at boot time, but a failure during execution would need to be addressed by an administrator.
The Service Management Facility (SMF) addresses these problems through a more extensive method of configuration that allows you specify prerequisites (which implies execution order) and the necessary methods to start, stop and restart services. As an active management facility, rather than script execution process, the SMF becomes an much more integral part of running services within Solaris.
A significant proportion of the speed increase experienced when booting is down to the SMF being responsible for starting services. Because SMF knows the interrelationship between services it can make more informed decisions about the execution sequence. For example, the SMF may start multiple services concurrently, safe in the knowledge that they do not rely on others. Because it doesn't have to sequentially execute 20-50 scripts (some of which may be duplicates) the time to instantiate all the required services is much lower.
The SMF is also a complete management environment for the execution of these services. Although I've concentrated on the start-up of services, the SMF is also responsible for monitoring and restarting services in the event of failure. Because SMF knows about the services and their dependencies, it can also restart other components which rely on other services, and restart reliant services that may have been affected. This prevents a common problem where the failure of a single service affects multiple applications, but then requires manual intervention to fix the problem.
It should come as no surprise then that the SMF is part of the Predictive Self Healing technology in Solaris 10. But providing a more robust environment for managing and executing services, it is possible for Solaris to stop, start or disable services automatically and in response to potential issues with other parts of the system.