Next Previous Contents

2. Σημαντικές ερωτήσεις, και οι απαντήσεις τους

2.1 Τί, τέλος πάντων, κάνει ο πυρήνας;

Ο πυρήνας των *nix's δρα ως μεσολαβητής μεταξύ των προγραμμάτων σας και του hardware. Πρώτα, χειρίζεται τη μνήμη (ή δίνει οδηγίες γιά τον χειρισμό της) γιά όλα τα προγράμματα που τρέχουν (processes), και σιγουρεύει το ότι όλα θα πάρουν δίκαιο (ή άδικο, αν προτιμάτε) μερίδιο από τον χρόνο του μικροπροσέσσορα. Επιπλέον, παρέχει μιά όμορφη και σε μεγάλο βαθμό μεταφέρσιμη διασύνδεση, ώστε τα προγράμματα να μιλήσουν στο hardware.

Φυσικά, η λειτουργία του πυρήνα ασχολείται με περισσότερα πράγματα από τα παραπάνω, αλλά αυτές οι βασικές λειτουργίες είναι οι πιο σημαντικές που πρέπει να γνωρίζετε.

2.2 Γιατί να αναβαθμίσω τον πυρήνα μου;

Οι νεώτεροι πυρήνες γενικά μας παρέχουν την ικανότητα να μιλάμε σε περισσότερους τύπους hardware (δηλαδή, έχουν περισσότερους drivers συσκευών), διευθύνουν καλύτερα τις διάφορες εργασίες, τρέχουν γρηγορότερα απ' τους παλιότερους, συνήθως είναι σταθερότεροι απ' τους παλιότερους, κι έχουν διορθωμένα τα χαζά λάθη των παλαιοτέρων εκδόσεων. Οι περισσότεροι χρήστες ανανεώνουν τους πυρήνες, επειδή θέλουν να έχουν τους νέους drivers συσκευών και την εξάλειψη των bugs.

2.3 Τί είδους hardware υποστηρίζουν οι νέοι πυρήνες;

Διαβάστε το Hardware-HOWTO. Εναλλακτικά, μπορείτε να ψάξετε το αρχείο config.in στον source κώδικα του Linux, ή απλά να ανακαλύψετε τί γίνεται, όταν δίνετε make config. Αυτό σας δείχνει όλα τα είδη hardware που υποστηρίζει ο στάνταρ πυρήνας της διανομής σας, αλλά όχι κι όλα όσα υποστηρίζει το Linux. Αρκετοί συνηθισμένοι drivers συσκευών (όπως πχ γιά τις κάρτες PCMCIA και μερικές μονάδες μαγνητικής ταινίας) είναι modules που φορτώνονται (loadable), και οι προγραμματιστές τους τους γράφουν και τους διανέμουν χωριστά.

2.4 Ποιές εκδόσεις των gcc και libc χρειάζομαι;

Στο αρχείο README, που περιέχεται μέσα στον source κώδικα του Linux, o Linus συνιστά την κατάλληλη έκδοση του gcc. Εάν, πάλι, δεν έχετε την κατάλληλη έκδοση της libc, η τεκμηρίωση της συνιστώμενης έκδοσης της gcc θα σας πει αν πρέπει ν' αναβαθμίσετε τη libc σας. Αυτή δεν είναι δύσκολη διαδικασία, αλλά είναι σημαντικό ν' ακολουθήσετε ακριβώς τις οδηγίες.

2.5 Τί είναι ένα module που μπορεί να φορτωθεί (loadable);

Τα modules αυτά είναι κομμάτια κώδικα του πυρήνα, που δεν ενσωματώνονται (linked) κατευθείαν στον πυρήνα. Τα κάνουμε compile χωριστά, και μπορούμε να τα βάλουμε στον και να τα βγάλουμε από τον πυρήνα (ενόσω τρέχει), σχεδόν οποιαδήποτε στιγμή. Επειδή έχει ευελιξία, αυτός είναι σήμερα ο προτιμώμενος τρόπος γιά να γράψουμε σε κώδικα κάποιες δυνατότητες του πυρήνα. Πολλοί δημοφιλείς drivers συσκευών, όπως πχ οι drivers των καρτών PCMCIA και της μονάδας μαγνητικής ταινίας QIC-80/40, είναι modules που φορτώνονται.

2.6 Πόσο χώρο στον δίσκο χρειάζομαι;

Εξαρτάται από τη συγκεκριμένη σύνθεση του Η/Υ σας. Πρώτα, ο συμπιεσμένος source κώδικας του Linux είναι σχεδόν 14 MΒytes στην έκδοση 2.2.9 . Αποσυμπιεσμένος και φτιαγμένος γιά μιά συνηθισμένη σύνθεση, καταλαμβάνει άλλα 67 MB.

2.7 Πόση ώρα κάνει;

Με νεώτερους Η/Υ, η compilation χρειάζεται εντυπωσιακά λιγότερο χρόνο, απ' ό,τι με παλιότερους. Ενας AMD K6-2/300 με γρήγορο δίσκο μπορεί να φτιάξει πυρήνα 2.2.x σε περίπου τέσσερα λεπτά. Εάν σχεδιάζετε να κάνετε compilation σε παλιότερους Pentiums, 486s, ή 386s, να προετοιμαστείτε γιά μεγάλη αναμονή, πιθανόν ωρών ή ημερών...

Αν αυτό σας προβληματίζει, και συμβαίνει να διαθέτετε γιά compile έναν γρηγορότερο Η/Υ κάπου εκεί κοντά, μπορείτε να φτιάξετε τον πυρήνα στο γρήγορο μηχάνημα (υποθέτοντας ότι του δίνετε τις σωστές παραμέτρους, ότι οι utilities που χρησιμοποιείτε είναι πρόσφατες, κλπ), και μετά να μεταφέρετε το image του πυρήνα στο αργότερο μηχάνημα.


Next Previous Contents