Αρκετός κόσμος είναι μπερδεμένος σε ότι αφορά την διαδικασία εκκίνησης του ηλεκτρονικού υπολογιστή και του λειτουργικού συστήματος.
Κανείς σχεδόν δεν θυμάται καν, γιατί λέγεται boot.
Ευκαιρία λοιπόν, να ξεκαθαρίσει το τοπίο.
Τι είναι το boot
Η διαδικασία εκκίνησης (booting ή booting up), είναι μία αρχική δέσμη λειτουργιών, τις οποίες ο υπολογιστής εκτελεί όταν ο διακόπτης λειτουργίας, τεθεί σε θέση.
Ως διαδικασία ξεκινάει όταν ένας αδρανής υπολογιστής (off), ανατροφοδοτείται με ενέργεια και ολοκληρώνεται μόλις ο υπολογιστής είναι σε θέση να εκτελέσει τις κανονικές του λειτουργίες.
Στους νεότερους υπολογιστές γενικής χρήσης, αυτός ο χρόνος μπορεί να είναι κάποιες δεκάδες δευτερολέπτων (χρήση δίσκων HDD) ή απλά κάποια δευτερόλεπτα (χρήση δίσκων SSD) και συμπεριλαμβάνει τον χρόνο της αρχικής εκκίνησης στο power-on (ηλεκτρεγερτική αδράνεια εκκίνησης), το self-test (αυτοδιάγνωση), τον εντοπισμό τοποθεσίας και αρχικοποίησης αυτής, περιφερειακών συσκευών και, εφόσον πραγματοποιηθούν οι λειτουργίες BIOS, φορτώνει και ξεκινά το λειτουργικό σύστημα.
Τυπική εικόνα BIOS boot
Πολλά συστήματα υπολογιστών επίσης έχουν την δυνατότητα να επιτρέπουν αυτές τις διαδικασίες να γίνονται με λογισμικό, χωρίς να γίνεται κύκλος ενέργειας, το αποκαλούμενο soft reboot ή απλά επανεκκίνηση (restart), παρόλο που κάποιες αρχικές λειτουργίες ενδέχεται να παρακαμφθούν με αυτή την διαδικασία.
Ο
boot loader (που ξεκιναει, είναι ένα λογισμικό το οποίο φορτώνει το κύριο λειτουργικό σύστημα ή το περιβάλλον εκτέλεσης ενεργειών, μετά την ολοκλήρωση της αυτοδιάγνωσης (self-tests), από τον δίσκο στην μνήμη.
Μερικοί από τους boot loaders στην ιστορία των Linux/BSD & Unix, είναι:
- Lilo, eLilo
- Grub
- Syslinux
- BSD Loader
Οι Grub και BSD Loader, είναι οι πλέον χρησιμοποιούμενοι σε Lunx & BSDs αντίστοιχα.
Η ορολογία boot είναι η σύντομη λέξη των λέξεων bootstrap, ή bootstrap load και πηγάζει από την έκφραση του 19
ου αιώνα,
"pull oneself up by one’s bootstraps", η οποία σε ελεύθερης μετάφρασης ερμηνεία, σημαίνει βγες από τις δεμένες μπότες σου με την μία, κάτι που είναι πρακτικά ακατόρθωτο.
Η χρήση του εστιάζεται στο παράδοξο, ότι ένας υπολογιστής δεν μπορεί να εκτελέσει τίποτα χωρίς πρώτα να έχει φορτώσει κάποιο λογισμικό, αλλά κάποιο λογισμικό πρέπει να εκτελεστεί πρώτα, για να φορτωθεί και να εκτελεστεί κάποιο άλλο λογισμικό.
Οι πρώτοι υπολογιστές χρησιμοποιούσαν μία ποικιλία μεθόδων ανά συγκεκριμένη περίπτωση (ad-hoc methods), έτσι ώστε να μπορέσει να φορτωθεί ένα κομμάτι λογισμικού στην μνήμη και να δοθεί η λύση το πρόβλημα αυτό.
Η εφεύρεση των ολοκληρωμένων κυκλωμάτων, τύπου Read-only memory (ROM) σε διάφορες παραλλαγές, έλυσαν το παράδοξο, επιτρέποντας στους υπολογιστές να παραδίδονται με ένα πρόγραμμα εκκίνησης (start up) που δεν μπορούσε να διαγραφεί, αλλά η αύξηση της χωρητικότητας τους, επέτρεψε την εφαρμογή περισσότερων διαδικασιών εκκίνησης.
Υπάρχουν πολλά παραδείγματα μονών και πολλαπλών σταδίων διαδοχικής εκκίνησης, που ξεκινούν από το λογισμικό των μνημών ROM, αλλά δεν είναι του παρόντος άρθρου.
Για μία επιτυχημένη εκκίνηση, το BIOS, το υλικό (hardware) και το λειτουργικό σύστημα (λογισμικό) πρέπει να εργάζονται σωστά, ειδάλλως αν κάποιο από αυτά αποτύχει, το πλέον πιθανό είναι ότι ο υπολογιστής δεν θα ξεκινήσει.
Legacy & UEFI BIOS
Τα παραπάνω αναγραφόμενα ισχύουν για τα αποκαλούμενα legacy (κληρονομικά) BIOS, όσο και για τα UEFI, συστήματα.
Πλέον, οι σύγχρονοι υπολογιστές έχουν μεταβεί στο UEFI (Unified Extensible Firmware Interface), το οποίο στα Ελληνικά είναι Ενιαία Επεκτάσιμη Διεπαφή Οδηγού Συσκευής (firmware), θα το αποκαλούμε και εμείς UEFI, διότι είναι προτιμότερο.
Το Unified Extensible Firmware Interface (UEFI) είναι μία προδιαγραφή για ένα λογισμικό που συνδέει τον οδηγό υλικού με το λειτουργικό σύστημα.
To UEFI είναι στην ουσία, ο αντικαταστάτης του Legacy.
Όπως και στην περίπτωση του Legacy, το UEFI εγκαθίσταται κατά την διαδικασία παραγωγής του υλικού (κατασκευαστή).
Διαφέρει από το Legacy στην γεωμετρία των δίσκων, που πρέπει εξ' ορισμού να είναι GPT και όχι MBR.
Επίσης προσφέρει καλύτερο Virtualization, στα Virt, Qemu, Virtualbox κλπ, διότι παρέχει καλύτερη πληροφόρηση στο κομμάτι αυτό, θέτοντας ικανά τα Virtualization APIs, να αναγνωρίζουν συσκευές, όπως η κάρτα γραφικών κλπ.
Τέλος, για να μην επεκταθούμε πολύ, το UEFI μπορεί να υποστηρίξει μέχρι και διάγνωση εξ' αποστάσεως για την επισκευή υπολογιστών, ακόμη και αν δεν έχουν λειτουργικό σύστημα.
Legacy BIOS αριστερά και UEFI BIOS δεξιά
Γεωμετρία δίσκων, κατατμήσεις, μνήμη swap, σε Legacy BIOS και UEFI
Στα Legacy BIOS συστήματα, ο boot loader κλπ πρέπει να εγκατασταθούν σε Master Boot Record (MBR) Partition Table λόγω της απαίτησης του BIOS να διαβάζει από τέτοιας γεωμετρίας δίσκους.
Στο UEFI η γεωμετρία αλλάζει σε GUID Partition Table (GPT), πάλι λόγω διαφοράς λογισμικού σε σχέση με το Legacy BIOS και
είναι υποχρεωτική η κατάτμηση EFI (Extensible Firmware Interface) system partition ή απλά ESP με mount point το /boot/efi (συνεπώς το /boot είναι άλλο partition).
Οπότε πάμε να δούμε ένα απλό παράδειγμα (με swap partition, συγγραφική αδεία, εσείς μπορείτε να χρησιμοποιήσετε όποιον άλλο τύπο θέλετε), μεταξύ Legacy & UEFI.
Παράδειγμα Legacy BIOS partitioning scheme MBR partition table:
- / (root κατάτμηση με boot flag on, αν δεν θα ακολουθήσει ξεχωριστή κατάτμηση /boot, με file systems ext2/3/4, XFS κλπ)
- /boot (boot κατάτμηση με boot flag on, αν θα είναι ξεχωριστή κατάτμηση από την root, με file systems ext2/3/4, XFS κλπ)
- /swap (η αλλιώς ονομαζόμενη και εικονική μνήμη, πάντοτε με file system format swap)
- /home (η κατάτμηση των αρχείων του χρήστη, με file systems ext2/3/4, XFS κλπ)
Παράδειγμα κατατμήσεων MBR χωρίς /boot κατάτμηση
Παράδειγμα UEFI BIOS partitioning scheme GPT partition table:
- / (root κατάτμηση με boot flag on, αν δεν θα ακολουθήσει ξεχωριστή κατάτμηση /boot, με file systems ext2/3/4, XFS κλπ)
- /boot (boot κατάτμηση με boot flag on, αν θα είναι ξεχωριστή κατάτμηση από την root, με file systems ext2/3/4, XFS κλπ)
- /boot/efi (ESP κατάτμηση υποχρεωτική με msftdata flag on, με file system fat32
- /swap (η αλλιώς ονομαζόμενη και εικονική μνήμη, πάντοτε με file system format swap)
- /home (η κατάτμηση των αρχείων του χρήστη, με file systems ext2/3/4, XFS κλπ)
Παράδειγμα κατατμήσεων GPT σε δύο δίσκους χωρίς /boot κατάτμηση
Επίσης υπάρχει το shim, το οποίο είναι κομμάτι που συνεργάζεται, να το πούμε απλά σαν κλειδί πιστοποίησης (secure boot key, signed by Microsoft) και έχει να κάνει ξεκάθαρα, με την ύπαρξή του στο
/boot/efi ή όχι.
Η ύπαρξή του ή όχι, καθορίζεται από αντίστοιχες ρύθμισης του UEFI BIOS (ο συγγραφέας, δεν το προτείνει πάντως!)
Καλές εγκαταστάσεις!
Πηγές άρθρου:
The booting processPull yourself up by ones bootstraps Wikipedia UEFIUEFI Definition