Wise people learn when they can; fools learn when they must - Arthur Wellesley

Tuesday, 16 September 2014

Boot Process - Solaris

                                                                                                
                                                               BOOT PROCESS

Well, Let’s Boot the Solaris Box
Any boot will starts from Power on…

Power On the system
                   |
Power goes to Power Supply
                    |
PROM is initiated
                   |
At this stage Open Boot Firmware [OBP] is executed
                   |
OBP is wandering that Now what should I do ?
                   |
Suddenly it heard a sound that Hey OBP… I can help
                   |
OBP just called him & asked… hey man who r u ?
It replied that I am MONITOR Program residing inside u
                   |
OK…OOK… Now you do what you want to (OBP replied)
                   |
     Fine I will Control all operations Until Kernel is available
                                  |
     Hey OBP I will start from you… Just tell me about these      parameters
n  Diag-switch is set or not? if set then I will display the o/p on serial Terminal

n  Diag-level (what is diag level) [diag-levels are off-min-max (d)]
Prom diag-level is to determine the intensity of HW check.( POST)
                        |
OK..OBP I got the info that diag-switch is set and diag-level is max
Now I will run POST
Here nvramrc is used for system id and if the nvramrc is set to be true , monitor will read the nvramrc which contain info about boot disk (is it encapsulated with svm /vxvm or not ?)
                        |
Now Probe-all (for disk devices)
                        |
Install the kbd / monitor
                        |
Active the console
                        |
Now the most imp part is done i.e. to build Device Tree
(the same device tree is further used by drvconfig to build /devices then /devices is used by a utility devlink to build /dev/directory)
                        |
Well at this stage monitor again called obp… Hey Mr. OBP … plz tell me some more parameters
                           

n  Auto-boot is true or not ? if true then I will travel from sector 1 to 15 of disks to find the boot device and let the system boot otherwise go take a nap until administrator will come

n  Boot-device ( which is default boot device of this system…plz tell me the full device path)

|
OK… Thanks again Mr. OBP to provide both info that auto boot is set and the path of boot device
                         |
Now Monitor started travelling from sector 1-15 of boot device and bingo… it founds primary boot program (bootblk)… Then Monitor Politely invites Mr. bootblk that Hey Mr. bootblk plz come and I will help you to be loaded in to memory
                         |
Bootblk happily agreed with monitor and loads itself into memory…
Then finds the Secondary boot Program UFS BOOT and load it in to memory           
|
at this stage monitor told bye to everybody and hand over the charge to ufsboot
                         |
Now ufs boot loads the two part kernel in to the memory
n  Genunix    platform independent
n  Unix          platform specific

These 2 parts are combined to form running kernel
                        |
     Now the kernel goes to /etc/system... to find the
n  Path of root (/) file system
n  Path of kernel drivers
n  Info about which modules to load
n  Which modules to be load forcibly
|
                                           After getting all info kernel acts accordingly to                                                  load modules from
                                          /kernel and /usr/kernel
                                                                   |
                                          While loading modules … it reaches at a stage                                                   where it finds that ohh
                                          Now I had enough modules that root (/) file                                                     system can mount itself
                                                                   |
                                          At this stage ufsboot told bye to everybody and                                               unmapped
                                                                   |
                                          Now kernel starts its 1st process i.e. sched process                                           (PID 0)
                                                                   |
                                          Due to sched process swap comes in action
                                                                   |
                                           Now kernel starts another process i.e. init process                                            (PID 1)
                                          Init is called Master Restarter
                                                                   |
The init daemon reads the /etc/default/init and provides    environment to all processes started by init
                         |
Then init goes to /etc/inittab for default run-level
                         |
 Now init starts a process called “svc.startd” to start system services which
n  Checks / mounts the file systems
n  Configure network
n  Starts various services
n  Runs rc scripts for backward compatibility



BINGO !!!  SYSTEM IS UP


No comments:

Post a Comment