I break this down into 3 distinct phases. Firmware, where you find out about the hardware, Kernel, which takes information provided by the firmware and uses it to find and load drivers, modules, eventually leading to the OS phase, which comprises all the steps necessary to take you all the way to a fully running suite of OS and application which is capable of delivering specified services.
1) firmware
- x86/64: BIOS loads, configures devices, selects boot device (net/disk/cd/usb)
- SPARC: nvram loads OpenBoot, configures devices, selects boot device (net/disk/cd/usb)
2) kernel
- if boot media is net, there is a preliminary step here for the RARP/bootp initialization on SPARC, or for DHCP on SPARC if boot devices is explicitly set to use DHCP (eg: boot net:dhcp). On the x86/64 side there is also a preliminary step which uses DHCP, in a process known as PXE. RARP/bootp are not options with PXE. Both the SPARC and x86_64 methods are used to configure IP addresses, and retrieve information about kernel and media locations on the network.
- kernel is loaded from boot media (net/disk/cd/usb)
3) OS
- kernel loads. in this phase, the basics are set up. the booting kernel uses the boot archive to load individual files until is has enough information to mount the local filesystems itself, then file access operations are handled by the appropriate driver.
- SMF comes into play here as the kernel boots the OS into the initial service milestone, which would typically be the multi-user-server milestone, but might be the single-user milestone if you were booting into single-user mode. This portion of OS initialization loads all the services which are required for the server to function.
- One the initial milestone is achieved, then additional (optional) services are started via the SMF facility
svc.startd
. You could think of this as the 'application layer' of the boot process. This is where SSH would start, or Apache, or Weblogic, or Sendmail, or whatever other applications you're using. These are the services deemed required by the Administrator, rather than those required by the kernel, as in the previous bullet.
This may not be quite as detailed as you hope for, but it should serve as a pretty good basis to get you started. Oracle and others have documents online which go into very great level of detail on individual portions of the boot process. A good start might be Chapter 7 SPARC and x86 Based Booting, then a quick google search for 'solaris boot sequence' will find you documents you can use to compare the boot sequences of older versions of Solaris to the latest release.