Η Google θα προχωρήσει στην ανάπτυξη καινοτομιών για Android στον κύριο πυρήνα του Linux

Στο συνέδριο Linux Plumbers 2021, η Google μίλησε για την επιτυχία της πρωτοβουλίας της να μεταφέρει την πλατφόρμα Android σε χρήση ενός κανονικού πυρήνα Linux αντί να χρησιμοποιεί τη δική της έκδοση του πυρήνα, η οποία περιλαμβάνει αλλαγές ειδικά για την πλατφόρμα Android.

Η πιο σημαντική αλλαγή στην ανάπτυξη ήταν η απόφαση να μεταβούμε μετά το 2023 στο μοντέλο "Upstream First", το οποίο συνεπάγεται την ανάπτυξη όλων των νέων χαρακτηριστικών του πυρήνα που απαιτούνται στην πλατφόρμα Android απευθείας στον κύριο πυρήνα Linux και όχι στα δικά τους ξεχωριστά υποκαταστήματα ( η λειτουργικότητα θα προωθηθεί πρώτα στην κύρια). πυρήνα, και στη συνέχεια θα χρησιμοποιηθεί στο Android και όχι το αντίστροφο). Σχεδιάζεται επίσης η μεταφορά όλων των πρόσθετων ενημερώσεων κώδικα που απομένουν στον κλάδο Android Common Kernel στον κύριο πυρήνα το 2023 και το 2024.

Όσον αφορά το εγγύς μέλλον, για την πλατφόρμα Android 12 που αναμένεται στις αρχές Οκτωβρίου, θα προσφερθούν συγκροτήματα πυρήνα «Generic Kernel Image» (GKI), όσο το δυνατόν πιο κοντά στον κανονικό πυρήνα 5.10. Για αυτές τις εκδόσεις, θα παρέχονται τακτικές εκδόσεις ενημερώσεων, οι οποίες θα δημοσιεύονται στο αποθετήριο ci.android.com. Στον πυρήνα GKI, οι προσθήκες για συγκεκριμένη πλατφόρμα Android, καθώς και οι χειριστές που σχετίζονται με την υποστήριξη υλικού από OEM, τοποθετούνται σε ξεχωριστές λειτουργικές μονάδες πυρήνα. Αυτές οι μονάδες δεν συνδέονται με την έκδοση του κύριου πυρήνα και μπορούν να αναπτυχθούν ξεχωριστά, γεγονός που απλοποιεί σημαντικά τη συντήρηση και τη μετάβαση των συσκευών σε νέους κλάδους πυρήνα.

Η Google θα προχωρήσει στην ανάπτυξη καινοτομιών για Android στον κύριο πυρήνα του Linux

Οι διεπαφές που απαιτούνται από τους κατασκευαστές συσκευών υλοποιούνται με τη μορφή αγκίστρων, που σας επιτρέπουν να αλλάξετε τη συμπεριφορά του πυρήνα χωρίς να κάνετε αλλαγές στον κώδικα. Συνολικά, ο πυρήνας android12-5.10 προσφέρει 194 κανονικά άγκιστρα, παρόμοια με σημεία εντοπισμού, και 107 εξειδικευμένα άγκιστρα που σας επιτρέπουν να εκτελείτε χειριστές σε μη ατομικό περιβάλλον. Στον πυρήνα GKI, οι κατασκευαστές υλικού απαγορεύεται να εφαρμόζουν συγκεκριμένες ενημερώσεις κώδικα στον κύριο πυρήνα και τα στοιχεία υποστήριξης υλικού πρέπει να παρέχονται από τους προμηθευτές μόνο με τη μορφή πρόσθετων λειτουργικών μονάδων πυρήνα, τα οποία πρέπει να διασφαλίζουν τη συμβατότητα με τον κύριο πυρήνα.

Ας υπενθυμίσουμε ότι η πλατφόρμα Android αναπτύσσει τον δικό της κλάδο πυρήνα - τον κοινό πυρήνα Android, βάσει του οποίου σχηματίζονται ξεχωριστές συγκεκριμένες συναρμολογήσεις για κάθε συσκευή. Κάθε κλάδος του Android δίνει στους κατασκευαστές πολλές επιλογές για διάταξη πυρήνα για τις συσκευές τους. Για παράδειγμα, το Android 11 πρόσφερε μια επιλογή από τρεις βασικούς πυρήνες - 4.14, 4.19 και 5.4, και το Android 12 θα προσφέρει βασικούς πυρήνες 4.19, 5.4 και 5.10. Η επιλογή 5.10 έχει σχεδιαστεί ως γενική εικόνα πυρήνα, στην οποία οι δυνατότητες που είναι απαραίτητες για τους OEM μεταφέρονται στο upstream, τοποθετούνται σε λειτουργικές μονάδες ή μεταφέρονται στον κοινό πυρήνα Android.

Πριν από την εμφάνιση του GKI, ο πυρήνας Android πέρασε από διάφορα στάδια προετοιμασίας:

  • Με βάση τους κύριους πυρήνες LTS (3.18, 4.4, 4.9, 4.14, 4.19, 5.4), δημιουργήθηκε ένας κλάδος του "Android Common Kernel", στον οποίο μεταφέρθηκαν ενημερώσεις κώδικα ειδικά για Android (προηγουμένως το μέγεθος των αλλαγών έφτανε σε πολλά εκατομμύρια γραμμές ).
  • Με βάση τον "Android Common Kernel", κατασκευαστές τσιπ όπως η Qualcomm, η Samsung και η MediaTek δημιούργησαν το "SoC Kernel" που περιλάμβανε πρόσθετα για την υποστήριξη του υλικού.
  • Με βάση τον πυρήνα SoC, οι κατασκευαστές συσκευών δημιούργησαν τον πυρήνα συσκευής, ο οποίος περιελάμβανε αλλαγές που σχετίζονται με την υποστήριξη πρόσθετου εξοπλισμού, οθονών, καμερών, συστημάτων ήχου κ.λπ.

Αυτή η προσέγγιση περιέπλεξε σημαντικά την εφαρμογή ενημερώσεων για την εξάλειψη των τρωτών σημείων και τη μετάβαση σε νέους κλάδους πυρήνα. Αν και η Google εκδίδει τακτικά ενημερώσεις στους πυρήνες Android της (Android Common Kernel), οι προμηθευτές συχνά καθυστερούν να παραδώσουν αυτές τις ενημερώσεις ή γενικά χρησιμοποιούν τον ίδιο πυρήνα σε όλο τον κύκλο ζωής μιας συσκευής.



Πηγή: opennet.ru

Προσθέστε ένα σχόλιο