Πυρήνας Linux 5.9 – Τα πιο σημαντικά νέα χαρακτηριστικά

dimitris | Τετ, 10/14/2020 - 21:16 | 9' | 0

Δύο μήνες μετά την κυκλοφορία της έκδοσης 5.8 του πυρήνα Linux, που θεωρούνταν η μεγαλύτερη μέχρι σήμερα έκδοση του Linux, ο Linus Torvalds ανακοίνωσε τη νέα έκδοση 5.9. Και όπως συμβαίνει πάντα, κι αυτή η έκδοση φέρνει πολλά νέα νέα χαρακτηριστικά και υποστήριξη (drivers) για συσκευές. Ωστόσο, σε αντίθεση με την 5.8, η έκδοση 5.9 δεν είναι καθόλου... βαρετή μια και υπόσχεται μεγάλη βελτίωση στις επιδόσεις σε διάφορους τομείς.

Βελτιώσεις στις επιδόσεις για AMD / Intel επεξεργαστές

Ας ξεκινήσουμε με τα πιο σημαντικά. Ο νέος πυρήνας Linux φέρνει πλήρη υποστήριξη για FSGSBASE, πράγμα που σημαίνει βελτιωμένες επιδόσεις για τις αρχιτεκτονικές AMD και Intel. Αν δεν το γνωρίζετε, το FSGSBASE είναι μια «εντολή» που εισήγαγε η Intel στους επεξεργαστές Ivy Bridge, που αυξάνει την απόδοση του επεξεργαστή, όταν κάνει context switching με βαρύ φόρτο. Επιπρόσθετα, στην περίπτωση του Linux η εντολή αυτή μπορεί να ελαφρύνει το φόρτο του πυρήνα υπό κάποιες συνθήκες, επιτρέποντας σε user-land πράγματα να παίζουν μπάλα στη θέση του. Σε πιο επίσημη ορολογία: με τον νέο πυρήνα 5.9 αναμένουμε να δούμε σημαντικές βελτιωμένες επιδόσεις τόσο στα benchmarks όσο και στις απλές καθημερινές χρήσεις των υπολογιστών που τρέχουν Linux.

Μιλώντας για αρχιτεκτονικές επεξεργαστών, ο νέος πυρήνας έχει καλούδια και για τις συσκευές ARM/ARM64. Πρόκειται για το Schedutil, ένα βελτιωμένο μηχανισμό για τη χρήση του scheduler, παρόμοιο με το P-state push της Intel. Στην ίδια αρχιτεκτονική, έχουμε πλέον ένα νέο sysfs toggle, για τον έλεγχο της ενεργειακής απόδοσης του επεξεργαστή.

Συστήματα αρχείων και συσκευές αποθήκευσης

Ο Linux 5.9 φέρνει βελτιώσεις και στα συστήματα αρχείων, και ειδικά στο Btrfs, πράγμα αναμενόμενο μια και τελευταία όλο και περισσότερες διανομές Linux φλερτάρουν με την ιδέα της οριστικής μετάβασης στο «νέο» σύστημα αρχείων Btrfs. Το Fedora από την επερχόμενη έκδοση 33 θα βασίζεται πλέον σε αυτό, ενώ και στο φετινό Ubuntu 20.04 LTS μπορείς εξαρχής να εγκαταστήσεις το σύστημα σου σε b-tree file system (ναι, αυτό σημαίνει Btrfs). Και να μην ξεχνάμε το SUSE Linux Enterprise Server (SLES) 12, που κυκλοφόρησε το 2015 και στο οποίο η εγκατάσταση γινόταν εξαρχής σε btrfs [2]. Καθόλου περίεργο, αν θυμηθούμε ότι το Btrfs αναπτύσσεται από το 2007 από τον κύριο Chris Mason, έναν μηχανικό της SUSE (ήταν υπεύθυνος για το ReiserFs), που έφυγε για την Oracle, όπου ξεκίνησε το btrfs, για να καταλήξει μετά στο Facebook όπου συνέχιζε να το αναπτύσσει. Στον δε πυρήνα Linux το Btrfs έχει ενσωματωθεί ήδη από το 2009. Είναι δηλαδή ένα σύστημα αρχείων που έχει ωριμάσει για μια δεκαετία πλέον, προσφέρει σημαντικές βελτιώσεις σε σχέση με τα γνωστά (ext3/4) οπότε λογικό είναι να πηγαίνουν όλοι προς τα εκεί.  

Αρκετά όμως με την ιστορική παρένθεση. Ο νέος πυρήνας 5.9 ενσωματώνει πολλές βελτιώσεις για καλύτερες επιδόσεις του Btrfs, σε συνδυασμό με καλύτερη υποστήριξη NVMe 2.0 για συσκευές SSD, πράγμα που θα αξιοποιηθεί δεόντως από εκατομμύρια Linux servers στα data centers όλου του κόσμου. Μια σημαντική προσθήκη είναι μια νέα επιλογή rescue mount, που ομαδοποιεί όλες τις υπάρχουσες επιλογές mount και υπόσχεται πιο αξιόπιστο recovery.

Και πολλές, ΠΑΡΑ ΠΟΛΛΕΣ άλλες βελτιώσεις

Τα παραπάνω ήταν κατά κάποιο τρόπο τα βασικά. Όμως μια νέα έκδοση πυρήνα Linux έχει πάντα χιλιάδες αλλαγές που δεν μπορούν να παρατεθούν εδώ, πόσο μάλλον να εξηγηθούν. Αν αναρωτιέστε πάντως (ετοιμαστείτε, ακολουθούν ανούσια νούμερα) όπως εγώ, τότε σύμφωνα με το git diff του Linus [3], άλλαξαν 144425 αρχεία, εισήχθησαν 748873 νέες γραμμές κώδικα, ενώ αφαιρέθηκαν 282006 γραμμές, δηλαδή ο πυρήνας 5.9 έχει περίπου μισό εκατομμύριο γραμμές κώδικα/τεκμηρίωσης παραπάνω σε σχέση με την έκδοση 5.8. Κι αυτά σε 2 μόλις μήνες.

Ανάμεσα σε αυτόν τον ορυμαγδό αλλαγών, προσθηκών και αφαιρέσεων, ξεχωρίζουν:

  • καλύτερη διαχείριση ανώνυμης μνήμης
  • ο νέος slab memory controller [4] από τον Roman Gushchin και την ομάδα του στο Facebook, που φέρνει λιγότερο fragmentation και μειωμένη κατανάλωση μνήμης/slab στον πυρήνα (έως 45%)
  • υποστήριξη για συμπίεση kernel, ramdisk, και initramfs με ZSTD (Zstandard), έναν νέο αλγόριθμο (απο)συμπίεσης [5] από τον Yann Collet και στην ομάδα του (επίσης του Facebook) με απόδοση εφάμιλλη του bz2 αλλά ταχύτερο χρόνο αποσυμπίεσης (τουλάχιστον 1660 MB/s), πράγμα που θα φέρει στο μέλλον ταχύτερη εκκίνηση (boot) των Linux υπολογιστών μας
  • βελτιωμένη υποστήριξη για το USB4 (ναι, υπάρχει κι αυτό)
  • αρχική υποστήριξη για τον επεξεργαστή POWER10 της ΙΒΜ

Για περισσότερα, τσεκάρετε το git repo του Linus [6].

Αν δεν το γνωρίζετε η ανάπτυξη του πυρήνα Linux είναι αποτέλεσμα συνεργασίας δεκάδων, ίσως εκατοντάδων, προγραμματιστών / hackers από όλον τον κόσμο. Το επίκεντρο είναι το https://www.kernel.org/ όπου στεγάζεται και το git αποθετήριο του Linus Torvalds, του δημιουργού και release manager του Linux.

Εγκατάσταση του νέου πυρήνα 5.9

Για την εγκατάσταση του νέου πυρήνα 5.9, αφού πρώτα καταλάβετε ότι είναι μόνο για δοκιμή σε κάποιο non-production μηχάνημα (κοινώς use at your own risk), μπορείτε να δοκιμάσετε το εργαλείο Ubuntu Mainline Kernel Install [7] ή να ακολουθήσετε «χεράτα» κι απευθείας τις οδηγίες που θα βρείτε στη σελίδα Mainline Builds του Ubuntu wiki [8]. Για το Fedora, υπάρχουν οδηγίες στο Fedora Project [9].

Αυτά.

[1] https://fedoraproject.org/wiki/Btrfs
[2] https://www.suse.com/releasenotes/x86_64/SUSE-SLES/12/#fate-317221
[3] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/diff…
[4] https://lore.kernel.org/lkml/[email protected]/
[5] Κώδικας: https://github.com/facebook/zstd - Περισσότερα: https://engineering.fb.com/core-data/zstandard/
[6] git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
[7] https://github.com/bkw777/mainline
[8] https://wiki.ubuntu.com/Kernel/MainlineBuilds
[9] https://docs.fedoraproject.org/en-US/fedora/rawhide/system-administrato…

Δώσε αστέρια!

MO: 3.9 (ψήφοι: 16)