Η διαδικασία εκκίνησης (Boot) του Linux
Όταν ενεργοποιούμε έναν υπολογιστή με Linux, συμβαίνει μια σειρά από διαδικασίες που φέρνουν το σύστημα σε πλήρη λειτουργία. Ας εξετάσουμε βήμα-βήμα αυτή τη διαδικασία:
Όταν πατάτε το κουμπί ενεργοποίησης στον υπολογιστή, η μητρική πλακέτα λαμβάνει ηλεκτρική ενέργεια και ξεκινά η διαδικασία εκκίνησης.
Το BIOS (Basic Input/Output System) ή το πιο σύγχρονο UEFI (Unified Extensible Firmware Interface) είναι το πρώτο λογισμικό που τρέχει στον υπολογιστή. Αυτό:
- Εκτελεί το POST (Power-On Self-Test) για να ελέγξει ότι το hardware λειτουργεί σωστά
- Αναζητά συσκευές από τις οποίες μπορεί να εκκινήσει το σύστημα (σκληρός δίσκος, USB, δίκτυο κ.λπ.)
- Φορτώνει ρυθμίσεις από τη non-volatile memory
Το GRUB (Grand Unified Bootloader) είναι το πρόγραμμα που:
- Εμφανίζει το μενού επιλογών εκκίνησης (αν έχετε πολλά λειτουργικά συστήματα ή διαφορετικές εκδόσεις πυρήνα)
- Διαβάζει τις ρυθμίσεις από το αρχείο
/etc/grub2.cfg
- Φορτώνει τον επιλεγμένο πυρήνα (kernel) του Linux στη μνήμη
Ο πυρήνας είναι ο "εγκέφαλος" του λειτουργικού συστήματος. Όταν φορτωθεί:
- Αρχικοποιεί όλο το hardware του συστήματος
- Φορτώνει τους απαραίτητους drivers (οδηγούς συσκευών)
- Φορτώνει τις υποστηριζόμενες βιβλιοθήκες
- Δημιουργεί την εικονική μνήμη (virtual memory)
- Ξεκινά το πρώτο πρόγραμμα χρήστη, το
systemd
(στη πλειονότητα των σύγχρονων διανομών)
Το systemd είναι το πρώτο πρόγραμμα που εκτελείται σε χώρο χρήστη και έχει την ευθύνη για:
- Εκτέλεση του
default.target
(που συνήθως είναι συμβολικός σύνδεσμος προς τοmulti-user.target
ήgraphical.target
) - Ξεκίνημα όλων των απαραίτητων υπηρεσιών (services) με τη σωστή σειρά
- Διαχείριση των διαδικασιών και των dependencies μεταξύ τους
Τα targets είναι παρόμοια με τα παλιά "runlevels" και ορίζουν το επίπεδο λειτουργίας του συστήματος:
basic.target
: Βασικές υπηρεσίες του συστήματοςmulti-user.target
: Πολλαπλοί χρήστες με κονσόλα (χωρίς γραφικό περιβάλλον)graphical.target
: Γραφικό περιβάλλον (αν είναι εγκατεστημένο)getty.target
: Ενεργοποιεί τις εικονικές κονσόλες για σύνδεση χρηστών
Μετά την εκκίνηση των βασικών υπηρεσιών, το σύστημα:
- Εκτελεί τα σενάρια στο
/etc/profile
(γενικές ρυθμίσεις για όλους τους χρήστες) - Εκκινεί την υπηρεσία
systemd-logind
για διαχείριση συνδέσεων χρηστών - Είναι έτοιμο να δεχτεί συνδέσεις χρηστών
Σημείωση: Στις σύγχρονες διανομές Linux, το systemd έχει αντικαταστήσει το παραδοσιακό σύστημα init SysV. Αν χρησιμοποιείτε μια παλιά διανομή, μπορεί να δείτε διαφορές στη διαδικασία εκκίνησης.
Συμπέρασμα
Η διαδικασία εκκίνησης του Linux είναι μια καλά οργανωμένη ακολουθία βημάτων που εξασφαλίζει ότι όλα τα στοιχεία του συστήματος - από το hardware μέχρι τις υπηρεσίες και τις εφαρμογές - ξεκινούν με τη σωστή σειρά και λειτουργούν αρμονικά. Κάθε βήμα βασίζεται στο προηγούμενο, δημιουργώντας μια ιεραρχική διαδικασία που οδηγεί σε ένα πλήρως λειτουργικό σύστημα.
0 Σχόλια