Ο πυρήνας Linux στον οποίο βασίζονται όλες οι συσκευές Android λαμβάνει μια σημαντική ενημέρωση στην έκδοση 5.0. Εξετάζουμε τις αλλαγές που σχετίζονται με τα κινητά.
Παρόλο που συνήθως δεν καλύπτουμε τι συμβαίνει στον κύριο τομέα του πυρήνα Linux, είναι σημαντικό για εμάς να παρακολουθούμε τι συμβαίνει με κάθε νέα έκδοση πυρήνα, δεδομένου ότι η Google επιβάλλει ελάχιστη έκδοση πυρήνα Linux απαίτηση με κάθε νέα έκδοση του Android. Η πρόσφατη απόφαση να παρατείνετε τις εκδόσεις LTS από 2 σε 6 χρόνια θα διαδραματίσει σημαντικό ρόλο στη μείωση του κατακερματισμού των ενημερωμένων εκδόσεων κώδικα ασφαλείας, καθώς οι κατασκευαστές συσκευών θα πρέπει να κάνουν λιγότερη δουλειά για την αποθήκευση ενημερωμένων εκδόσεων κώδικα ασφαλείας. Επιπλέον, ο κύριος πυρήνας συχνά ενσωματώνει νέες δυνατότητες που σχετίζονται με κινητές συσκευές.
Για παράδειγμα, το πρώτο Έκδοση υποψηφίου για την επόμενη έκδοση LTS του πυρήνα κυκλοφόρησε πρόσφατα—πυρήνας Linux 5.0 RC1. Απομένουν ακόμη ένας ή δύο μήνες πριν από τη σταθερή κυκλοφορία, αλλά μπορούμε ήδη να ρίξουμε μια ματιά σε αυτό που έρχεται στην επερχόμενη κυκλοφορία. Θα επισημάνω ορισμένες από τις ενημερώσεις που σχετίζονται με κινητές συσκευές, αλλά σας συνιστώ να δείτε το πλήρες αρχείο καταγραφής αλλαγών εάν ενδιαφέρεστε καθόλου για την ανάπτυξη ανοιχτού κώδικα και τον πυρήνα του Linux.
ΒΡΑΧΙΟΣ μεγάλος. Υποστήριξη LITTLE EAS
Προγραμματισμός Ενέργειας ήταν κάτι στις συσκευές Android από τότε που κυκλοφόρησε το αρχικό Pixel. Το EAS είναι ένας από τους λόγους για τους οποίους οι συσκευές Google Pixel είναι γενικά πιο εύχρηστες από τους ανταγωνιστές τους. Η υποστήριξη έχει ήδη ενεργοποιηθεί για την κυκλοφορία του πυρήνα Snapdragon 845 από την Qualcomm, επομένως οποιαδήποτε συσκευή με αυτό το SoC (ή νεότερη) θα υποστηρίζει EAS. Αν και, το Linux δεν είχε μέχρι τώρα υποστήριξη για το Energy Aware Scheduling. Η υποστήριξη ανάντη θα πρέπει θεωρητικά να διευκολύνει τους κατασκευαστές πυριτίου και συσκευών να εφαρμόσουν την τεχνολογία στις συσκευές τους. Ωστόσο, για τους τελικούς χρήστες, η υποστήριξη upstream δεν σημαίνει πραγματικά πολλά.
Υποστήριξη Adiantum
Το Speck είναι ένας αλγόριθμος κρυπτογράφησης που αναπτύχθηκε από την NSA (National Security Administration) που λειτουργεί καλά σε hardware χαμηλού επιπέδου. Google προορίζονται για να προσθέσετε υποστήριξη για speck καθώς προσφέρει υποστήριξη κρυπτογράφησης δεδομένων για συσκευές προϋπολογισμού με SoC χωρίς επεκτάσεις κρυπτογράφησης με επιτάχυνση υλικού. Η υιοθέτηση του Speck επικρίθηκε ευρέως λόγω των δεσμών του με την NSA. Η υποστήριξη για το speck καταργήθηκε στον πυρήνα Linux 4.20 και η αντικατάστασή του, το Adiantum, αποδίδει εξίσου καλά, αν όχι καλύτερα, σε hardware χαμηλού επιπέδου με τα συστήματα αρχείων EXT4/F2FS.
Διορθώσεις F2FS και EXT4
Flash-Friendly File-System, ή F2FS, είναι ευρέως χρησιμοποιημένο σε συσκευές Android. Τα Google Pixel 3 και Pixel 3 XL επίσημα υποστήριξη F2FS, για παράδειγμα. Προφανώς, ο Jaegeuk Kim, ο αρχικός προγραμματιστής του F2FS έστειλε ένα αίτημα συγχώνευσης για πολλές διορθώσεις για το σύστημα αρχείων στο αποθετήριο Linux. Αυτές οι αλλαγές φροντίζουν για ζητήματα κρυπτογράφησης και διαχείριση χρόνου αδράνειας, παράλληλα με επιδιορθώσεις συλλογής σκουπιδιών. Μπορείτε να δείτε όλες τις λεπτομέρειες στο αυτό το αίτημα έλξης. Συνολικά, η επιδιόρθωση του F2FS βελτιώνει τη σταθερότητα και την αξιοπιστία στα smartphone Android που το υποστηρίζουν ή θα το υποστηρίζουν.
Ομοίως, το δημοφιλές σύστημα αρχείων EXT4 έχει λάβει πάνω από δώδεκα ενημερώσεις κώδικα. Το EXT4 χρησιμοποιείται σε πολλές συσκευές Android, όπως οι πιο πρόσφατες συσκευές OnePlus (συμπεριλαμβανομένων των OnePlus 5T, OnePlus 6 και OnePlus 6T).
Νέα υποστήριξη υλικού ARM
Οι διανομές GNU/Linux είναι αναμφισβήτητα τα καλύτερα λειτουργικά συστήματα για εκτέλεση σε υλικό που βασίζεται σε ARM. Προσφέρουν αξιόπιστη εκτέλεση πολλαπλών εργασιών με βάση το μοντέλο ανοιχτού κώδικα. Οι επεξεργαστές ARM είναι ειδικά σχεδιασμένοι για να εκτελούν πολλές εργασίες ταυτόχρονα. Γι' αυτό είναι σημαντικό για το λειτουργικό σύστημα να συμβαδίζει με το υλικό. Όπως μερικοί από εσάς γνωρίζετε, η πλειοψηφία των smartphone και tablet Android χρησιμοποιεί chipset με αρχιτεκτονική ARM. Τα τσιπ που βασίζονται σε RISC είναι ιδανικά για την εκτέλεση καθημερινών εργασιών (που κάνετε στο smartphone σας. Ο πυρήνας Linux 5.0 προσθέτει υποστήριξη για πολλά νέα υλικά ARM. Εδώ είναι μερικά από αυτά:
- Tegra X2
- Tegra Xavier
- Allwinner F1C100
- Qualcomm QCS404
- Allwinner T3
- NXP Layerscape LX2160
Εκτός από την καθολική υποστήριξη συμβατότητας για συγκεκριμένο υλικό ARM, ο πυρήνας Linux 5.0 έχει επίσης βελτιωμένη διαχείριση ενέργειας.
Υποστήριξη BinderFS
Το Android χρησιμοποιεί Binder για να ανταλλάξει ορίσματα μεταξύ διαφορετικών διεργασιών στο σύστημα. Οι εφαρμογές, οι δραστηριότητες και οι διαδικασίες χρησιμοποιούν το Binder για την εκκίνηση και τη διαχείριση διαδικασιών. Η ασφάλεια στο Android βασίζεται σε μεγάλο βαθμό στα δικαιώματα UID. Το Binder ελέγχει τα UID που παρέχονται από τις εφαρμογές χρησιμοποιώντας αμφίδρομες κλήσεις IPC για να επιβεβαιώσει ότι έχει πρόσβαση σε μια δυνατότητα που θέλει να χρησιμοποιήσει. Το BinderFS είναι μια ενημερωμένη έκδοση του Binder, αλλά είναι πιο εξειδικευμένο και συμβατό με το σύστημα. Η υποστήριξη για το BinderFS δεν θα αλλάξει πολλά για έναν τελικό χρήστη, αλλά θα λύσει ορισμένα προβλήματα εφαρμογής για τους προγραμματιστές μακροπρόθεσμα. Εδώ είναι το σχετική δέσμευση.
Πλαίσιο Διαχείρισης Ενεργειακών Μοντέλων
Μια άλλη προσθήκη είναι η υποστήριξη για το Πλαίσιο Διαχείρισης Ενεργειακών Μοντέλων. Αυτή η αλλαγή αφορά κυρίως προγραμματιστές ARM και πυρήνα. Προσφέρει ένα νέο επίπεδο τυποποιημένων πληροφοριών χρήσης ενέργειας από διαφορετικές πηγές, όπως το δέντρο συσκευών ή τα προγράμματα οδήγησης. Η κατανάλωση ενέργειας και οι αναφορές αντιμετωπίζονται με διαφορετικό τρόπο από το υλικό και το λογισμικό. Το Energy Model Management Framework θα παρέχει ένα τυπικό API που μπορεί να χρησιμοποιηθεί από άλλο πρόγραμμα οδήγησης στον πυρήνα για πρόσβαση σε πληροφορίες σχετικά με την κατανάλωση ενέργειας. Αυτό θεωρητικά θα διευκολύνει τους μηχανικούς λογισμικού και τους προγραμματιστές να λάβουν τις σχετικές πληροφορίες από το υλικό. Μπορείτε να διαβάσετε περισσότερα για αυτό το πλαίσιο σε αυτή τη δέσμευση.
Υποστήριξη ελέγχου ταυτότητας δείκτη ARM64
Κάθε σχετική λύση υλικού και λογισμικού, ειδικά σε φορητές συσκευές, χρειάζεται ισχυρά πρωτόκολλα ασφαλείας. Αυτό προσφέρει ο πυρήνας Linux 5.0 με την υποστήριξη του ARM64 Pointer Authentication. Δεδομένου ότι τα περισσότερα smartphones διαθέτουν chipset που βασίζονται στο ARM64, είναι σημαντικό οι επιτιθέμενοι να μην μπορούν να εκμεταλλευτούν δείκτες, οι οποίοι χρησιμοποιούνται στον πυρήνα του Linux για πρόσβαση σε διευθύνσεις μνήμης. Το νέο πρωτόκολλο ελέγχου ταυτότητας συγκρίνει δείκτες με μυστικά κλειδιά. Το Pointer Authentication θα προσπαθήσει να αποφύγει τον προγραμματισμό με προσανατολισμό στην επιστροφή (ROP) και άλλα είδη επιθέσεων.
Υπάρχουν πολλές περισσότερες ενημερώσεις στον πυρήνα του Linux 5.0 που δεν καλύψαμε. Τα περισσότερα από αυτά δεν σημαίνουν πραγματικά πολλά για συσκευές Android, γι' αυτό έπρεπε να επιλέξουμε το changelog. Εάν θέλετε να δείτε το πλήρες "καταγραφή αλλαγών", ρίξτε μια ματιά του Φορόνιξ κάλυψη.
Χάρη στον XDA Recognized Developer flar2 για βοήθεια με αυτό το άρθρο.