Linux Kernel: Πάμε στα βαθιά… ή μασάτε;

Ο πυρήνας Linux είναι πραγματικά τεράστιος… Αν σκεφτείτε μόνο, ότι είναι η “ψυχή” που ενεργοποιεί από τις πιο μικρές συσκευές που μπορείτε να φανταστείτε μέχρι και ολόκληρα διαστημόπλοια, καταλαβαίνετε το εύρος συσκευών που πρέπει να καλύψει.

Όπως είχα πει στο προηγούμενο άρθρο (10 Απλά βήματα για να μεταγλωττίσετε τον δικό σας πυρήνα), αν προσπαθήσω να περιγράψω την κάθε παράμετρο και τους drivers (modules) που μπορούμε να αφαιρέσουμε από τον πυρήνα, θα χρειαζόταν να γραφτεί ολόκληρο βιβλίο. Όμως, πολύ από εσάς εκφράσατε την επιθυμία να μάθετε για αυτά τα “μυστικά” και επιμένετε να ανοίξετε το κουτί τις “Πανδώρας”…

Σας προειδοποιώ λοιπόν ότι δεν υπάρχει γυρισμός, διότι αφού διαβάσετε αυτό που θα σας δώσω δεν θα σταματάτε να πειράζετε τον πυρήνα σας!

Μια φορά και έναν καιρό λοιπόν, άκουγα και εγώ για κάποιους που έφτιαχναν τον δικό τους πυρήνα, αποκλειστικά φτιαγμένο σύμφωνα με τις προδιαγραφές του υπολογιστή τους. Έτσι λοιπόν είχα την περιέργεια πριν από αρκετάααααα χρονιά, ψάξω αυτά τα μυστικά… έψαξα… έψαξα… έψαξα… έψαξα… έψαξα… και τελικά πέτυχα ένα βιβλίο το οποίο και έχω σε περίοπτη θέση στη βιβλιοθήκη μου. Το βιβλίο ονομάζεται Linux Kernel in a Nutshell από τον περίφημο οίκο O’Reilly.

Καταρχήν μπορείτε να αποκτήσετε το βιβλίο με δύο τρόπους, είτε να το κατεβάσετε όλο (περίπου 200 σελίδες) σε PDF αφού είναι ελεύθερο υπό την άδεια Creative Commons Attribution-ShareAlike 2.5 license ή να το αγοράσετε από το Amazon: Linux Kernel in a Nutshell

Μπορείτε επίσης να κατεβάσετε μόνο το κεφάλαιο που σας ενδιαφέρει από τον παρακάτω πίνακα:

Title page PDF
Copyright and credits PDF
Preface PDF DocBook
Part I: Building the Kernel PDF DocBook
Chapter 1: Introduction PDF DocBook
Chapter 2: Requirements for Building and Using the Kernel PDF DocBook
Chapter 3: Retrieving the Kernel Source PDF DocBook
Chapter 4: Configuring and Building PDF DocBook
Chapter 5: Installing and Booting from a Kernel PDF DocBook
Chapter 6: Upgrading a Kernel PDF DocBook
Part II: Major Customizations PDF DocBook
Chapter 7: Customizing a Kernel PDF DocBook
Chapter 8: Kernel Configuration Recipes PDF DocBook
Part III: Kernel Reference PDF DocBook
Chapter 9: Kernel Boot Command-Line Parameter Reference PDF DocBook
Chapter 10: Kernel Build Command-Line Reference PDF DocBook
Chapter 11: Kernel Configuration Option Reference PDF DocBook
Part IV: Additional Information PDF DocBook
Appendix A: Helpful Utilities PDF DocBook
Appendix B: Bibliography PDF DocBook
Index PDF

Full Book Downloads:


Tarball of all LKN PDF files
(3MB)

Tarball of all LKN DocBook files
(1MB)

Προσωπικά, όπως είπα το έχω στη βιβλιοθήκη μου όποτε αν δε το βρείτε σε κάποια καλή τιμή σε κάποιο βιβλιοπωλείο, το έχω βρει στο Amazon:
Linux Kernel in a Nutshell

Οι τιμές μπορεί να ξεκινάνε από 15 ευρό περίπου και πιστεύω ότι είναι το καλύτερο βιβλίο για Kernel Compiling

Λίγα λόγια για το βιβλίο:

Το συγκεκριμένο βιβλίο συντάχθηκε από τους κορυφαίους προγραμματιστές και συντηρητές του πυρήνα Linux και με λίγα λόγια είναι μια συνολική επισκόπηση των ρυθμίσεων του πυρήνα και της οικοδόμησης του.

Καμία διανομή δεν μπορεί να παράσχει έναν πυρήνα Linux που να καλύπτει τις ανάγκες όλων των χρηστών. Μεγάλοι η μικροί υπολογιστές απαιτούν την αναμόρφωση και ανακατασκευή του πυρήνα για να επωφεληθείτε πλήρως το Hardware τους. Το βιβλίο καλύπτει όλο το φάσμα των ρυθμίσεων του πυρήνα, ξεκινώντας από τη λήψη του κώδικα σε συγχρονισμό με τις εκδόσεις των εργαλείων που χρειάζεστε. Ένα βασικό πλεονέκτημα του βιβλίου είναι ότι βοηθάει τον αναγνώστη στον προσδιορισμό ακριβώς, αυτών των driver που χρειάζεται το υλικό του υπολογιστή του. Σε γενικές γραμμές αν και το θέμα που διαπραγματεύεται είναι τεράστιο, το ίδιο το βιβλίο είναι ενα ευχάριστο και εύκολο ανάγνωσμα.

Καλό διάβασμα…

linux kernel in a nutshell

13 thoughts on “Linux Kernel: Πάμε στα βαθιά… ή μασάτε;

  1. μασησα…
    chapter 7, σελιδα 52… οκ πατω το find-all-modules.sh και μου δινει αποτελεσματα.
    μετα τι υποτιθεται οτι κανω;
    παω στο config.gz που βρηκα απο τη διανομη μου και σβηνω γραμμες ή εχω καπου γραφικο περιβαλλον (οπως αυτο που δηλωσες στο αλλο θεμα το CPU σου) και δηλωνω αυτα που εχω εντωπισει;
    χχχμμμμ….πως γινεται «enable that driver to be built»;

  2. μασησα…
    chapter 7, σελιδα 52… οκ πατω το find-all-modules.sh και μου δινει αποτελεσματα.
    μετα τι υποτιθεται οτι κανω;
    παω στο config.gz που βρηκα απο τη διανομη μου και σβηνω γραμμες ή εχω καπου γραφικο περιβαλλον (οπως αυτο που δηλωσες στο αλλο θεμα το CPU σου) και δηλωνω αυτα που εχω εντωπισει;
    χχχμμμμ….πως γινεται "enable that driver to be built";

    • Μαζεμένα… πολλά μου δίνεις😛
      Η αλήθεια είναι ότι φοβόμουν… ότι άμα δώσω στο λαό αυτό το βιβλίο θα με ξεσκίσουν !!😛😛😛
      Πλάκα κάνω😛

      Λοιπόν στο θέμα μας… το βιβλίο είναι πληρέστατο… τα modules που βρήκες τα κάνεις αναζήτηση με το xconfig (στο γραφικό περιβάλλον) και τα δηλώνεις όπως την CPU, η τα ψάχνεις χειροκίνητα στο config (καλή τύχη :P)

      Γενικά στο xconfig το tick [ν] σημαίνει built-in, η τελεία [*] σημαίνει module ενώ το κενό [ ] σημαίνει απενεργοποιημένο.
      Το τι θα κάνεις module και τι δεν πρέπει ή το τι πρέπει να είναι built-in και τι όχι είναι τεράστια επιστήμη (ακόμα τα μαθαίνω😛 ).
      Έδωσα τα 10 βήματα για να μπορεί ο κάθε αρχάριος να φτιάχνει τον πυρήνα του και για να απομυθοποιήσω την δυσκολία του εγχειρήματος. Από εκεί και πέρα, ακόμα και μόνο τον επεξεργαστή να δηλώνεις και να σταματάς εκεί… είναι το 70% της υπόθεσης…. το υπόλοιπο 30% ναι μεν κάνει τεράστια διαφορά, υπάρχουν όμως αντικρουόμενες απόψεις για το αν αξίζει τον κόπο με τους σημερινούς multicore και multi-gigs ram υπολογιστές. Παρόλα αυτά αυτό το 30% θέλει πολύ διάβασμα, πολλούς πειραματισμούς, πολλά ξενύχτια….

      • δεν εχει σημασια…να σου πω την αληθεια λογω δουλειας τρελο χρονο δεν εχω…
        αλλα και μονο που μου δινεις τη δυνατοτητα με τους idiot-proοf οδηγους σου να πειραματιστω και να προχωρησω ενα βημα παραπανω…
        σε ευχαριστω ειλικρινα (φανταζομαι και αλλοι που μελλοντικα θα ανατρεξουν στα αρθρα σου)
        θα τα πουμε στο φορουμ μολις αρχισω τα πειραματα.
        θα βαλω το LDME σε ενα στικακι για ασφαλεια για να παιξω και θα αφησω την κυριως διανομη μου ησυχη.

        • Σε ευχαριστώ πραγματικά για τα ενθαρρυντικά σου λόγια!

          Δεν ξέρω αν θα έχεις καλές αποδώσεις μέσο USB stick. Σε δοκιμές που είχα κάνει είχα χαμηλές αποδώσεις λόγο της φύσης του USB που δεν μπορεί να αντεπεξέλθει σε έντονες εισόδους/εξόδους (I/O) δεδομένων με αποτέλεσμα ακόμα και η εγκατάσταση προγραμμάτων να είναι αργή. Όμως δεν παύει να είναι ένα κάλο έδαφος για ανελέητους πειραματισμούς σε λειτουργικά που είναι εγκατεστημένα σε USB.
          Προσωπικά έχω καταλήξει να χρησιμοποιώ Virtual Box όπου λόγο επεξεργαστή ο οποίος διαθέτει VT-X (intel i7 http://en.wikipedia.org/wiki/X86_virtualization) και άρα έχω εξαιρετικό hardware virtualisation και πολύ φυσικές αποδόσεις.

    • Μαζεμένα… πολλά μου δίνεις😛
      Η αλήθεια είναι ότι φοβόμουν… ότι άμα δώσω στο λαό αυτό το βιβλίο θα με ξεσκίσουν !!😛😛😛
      Πλάκα κάνω😛

      Λοιπόν στο θέμα μας… το βιβλίο είναι πληρέστατο… τα modules που βρήκες τα κάνεις αναζήτηση με το xconfig (στο γραφικό περιβάλλον) και τα δηλώνεις όπως την CPU, η τα ψάχνεις χειροκίνητα στο config (καλή τύχη :P)

      Γενικά στο xconfig το tick [ν] σημαίνει built-in, η τελεία [*] σημαίνει module ενώ το κενό [ ] σημαίνει απενεργοποιημένο.
      Το τι θα κάνεις module και τι δεν πρέπει ή το τι πρέπει να είναι built-in και τι όχι είναι τεράστια επιστήμη (ακόμα τα μαθαίνω😛 ).
      Έδωσα τα 10 βήματα για να μπορεί ο κάθε αρχάριος να φτιάχνει τον πυρήνα του και για να απομυθοποιήσω την δυσκολία του εγχειρήματος. Από εκεί και πέρα, ακόμα και μόνο τον επεξεργαστή να δηλώνεις και να σταματάς εκεί… είναι το 70% της υπόθεσης…. το υπόλοιπο 30% ναι μεν κάνει τεράστια διαφορά, υπάρχουν όμως αντικρουόμενες απόψεις για το αν αξίζει τον κόπο με τους σημερινούς multicore και multi-gigs ram υπολογιστές. Παρόλα αυτά αυτό το 30% θέλει πολύ διάβασμα, πολλούς πειραματισμούς, πολλά ξενύχτια….

  3. Ακολούθησα τους πολύ καλούς οδηγούς σου και εγκατέστησα το ubuntu 10.10 από minimal cd, κατόπιν κατέβασα ένα νέο πυρήνα, τον μεταγλώτισα και τον εγκατέστησα. Το σύστημά μου είναι μονοπύρηνος επεξεργαστής AMD64 2GH, 2GB RAM, 256MB NVIDIA. Ο χρονος boot μειώθηκε στα 20δευτ. , η κατανάλωση πόρων μειώθηκε στο μισό και η γενικότερη λειτουργία δείχνει πιο ελαφριά και σίγουρα ταχύτερη. Όλα αυτά αφού εγκατέστησα όλες τις εφαρμογές που χρησιμοποιώ και έκανα τις ρυθμίσεις που ήθελα. Αυτό που θέλω να ρωτήσω είναι γιατί εγκαταστάθηκε παλαιότερη έκδοση πυρήνα ο 2.6.35.11 αν και είχα τον 2.6.35.28.

  4. Ακολούθησα τους πολύ καλούς οδηγούς σου και εγκατέστησα το ubuntu 10.10 από minimal cd, κατόπιν κατέβασα ένα νέο πυρήνα, τον μεταγλώτισα και τον εγκατέστησα. Το σύστημά μου είναι μονοπύρηνος επεξεργαστής AMD64 2GH, 2GB RAM, 256MB NVIDIA. Ο χρονος boot μειώθηκε στα 20δευτ. , η κατανάλωση πόρων μειώθηκε στο μισό και η γενικότερη λειτουργία δείχνει πιο ελαφριά και σίγουρα ταχύτερη. Όλα αυτά αφού εγκατέστησα όλες τις εφαρμογές που χρησιμοποιώ και έκανα τις ρυθμίσεις που ήθελα. Αυτό που θέλω να ρωτήσω είναι γιατί εγκαταστάθηκε παλαιότερη έκδοση πυρήνα ο 2.6.35.11 αν και είχα τον 2.6.35.28.

    • Μην ανησυχείς δεν είναι παλιότερη, είναι η ίδια. Απλώς κατά την μεταγλώττιση για να μην υπάρχει σύγκρουση με την υπάρχουσα έκδοση kernel, βάζει το .11 μετά από την επίσημη έκδοση. Αν για παράδειγμα φτιάξεις ένα καινούριο πυρήνα θα βάλει .12 κλπ.

  5. Υπάρχει άλλο Link για το PDF, γιατί το kernel.org μάλλων έχει αφεραίσει τα links και δεν μπορώ να το βρώ:/

Απορίες, παρατηρήσεις, ιδέες... Ελεύθερα ! Πες την άποψή σου... έστω και Ανώνυμα:

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση / Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση / Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση / Αλλαγή )

Φωτογραφία Google+

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google+. Αποσύνδεση / Αλλαγή )

Σύνδεση με %s