Magaz, The Greek Linux Magazine
Magaz Logo

Διαδικασία εκκίνησης του Υπολογιστή.

Μιχάλης Καμπριάνης kabrianis@hellug.gr
Μάρτιος 1999.

Αναρωτηθήκατε ποτέ ποια διαδικασία ακολουθεί το μηχάνημα μας για να μπουτάρει, και ποια αρχεία διαβάζει κατά την διαδικασία εκκίνησης του Linux; Εγώ πάντως αναρωτήθηκα, και βρήκα στο Internet ένα posting του Erik Ratcliffe στην mailing list caldera-users όπου το αναλύει, και σκέφτηκα να το μοιραστώ μαζί σας.

Αν και το κείμενο υποτίθεται ότι είναι για συστήματα με Caldera distribution, πρέπει να ισχύει το ίδιο σε όλα τα SysV λειτουργικά, δηλαδή όχι μόνο σε όλες τις distributions του Linux, αλλά και σε Solaris, και σε άλλα. Μπορεί κάποιο distribution (π.χ. S.u.S.E.) να έχει κάποια "ειδικά" αρχεία, αλλά και αυτά δεν αλλάζουν την γενική ιδέα.


                              Power On
                                 |
                                 V
                             BIOS (CMOS)
                                 |
                                 V
                         Boot Loader (LILO)
                                 |
                 ________________V_________________
                 |         |          |            |
                DOS      OS/2      Whatever      Linux
                 .         .          .            |
                 .         .          .            V
                 V         V          V     Bootstrap Kernel
                                                   |
                                 ---               V
                                |        /sbin/init is executed
                                |                  |
                                |                  V
                                |        /etc/inittab is read 
                                |    (default runlevel is set here)
                                |                  |
                                |                  V
                                |   /etc/rc.d/rc#.d stuff is executed
                                |   (default runlevel scripts are here)
                                |                  |
                   SysV Init. --|                  V
                                |    /etc/rc.d/rc.boot is executed
                                |                  |
                                |                  V
                                |   /etc/rc.d/rc.modules is executed
                                |                  |
                                |                  V
                                |    /etc/rc.d/rc.local is executed
                                |                  |
                                |                  V
                                |        /bin/login is executed
                                 ---


Για να εκκινήσουμε το σύστημα σε X-Windows, απλά πειράζουμε το default runlevel στο /etc/inittab (είναι η γραμμή "initdefault") το οποίο μας λέει σε ποιο runlevel θα ξεκινήσει το σύστημά μας. Στην Caldera (και αυτό είναι διαφορετικό για κάθε distribution) αν αυτό λέει 3, το σύστημα θα ξεκινήσει σε regular multi-user mode (όχι X-based login). Αν το αλλάξουμε σε 5, θα ξεκινήσουμε στο ίδιο ακριβώς runlevel αλλά με X-based login, το οποίο αναλαμμβάνει το xdm (by default). Για το runlevel 3, όλα τα scripts που βρίσκονται στο /etc/rc.d/init.d και έχουν ένα symbolic link στο /etc/rc.d/rc3.d θα εκτελεσθούν. Για το runlevel 5, όλα τα scripts που βρίσκονται στο /etc/rc.d/init.d και έχουν ένα symbolic link στο /etc/rc.d/rc5.d θα εκτελεσθούν. Όπως μάλλον θα καταλάβατε, το "#" στο σχέδιο πάνω ("rc#.d") αντικαθίσταται με τον αριθμό του runlevel.

To Xdm, επί τη ευκαιρεία, χρησιμοποιεί το αρχείο etc/X11/wmconfig/xsessionrc για τις ρυθμίσεις του (προσέξτε ότι αυτό είναι ένα hard link στο xinitrc, το οποίο χρησιμοποιείται για να ξεκινήσει τις default X υπηρεσίες, όταν χρησιμοποιείτε το startx για να ξεκινήσετε τα X windows. Είναι στο ίδιο directory με το xsessionrc. Αν αλλάξετε ένα από αυτά τα αρχεία, αυτομάτως αλλάζει και το άλλο). Ο window manager συνήθως εκτελείται στο τέλος του xsessionrc (ή, στην περίπτωση του startx, στο τέλος του xinitrc).


Valid HTML 4.01!   Valid CSS!