Αναβοσβήνει ξανά ο πυρήνας της συσκευής Android. Επισκόπηση των δυνατοτήτων του πυρήνα της έκδοσης του πυρήνα του Android 3.10 65

Το βράδυ της Κυριακής, ο Linus Torvalds, ο γονέας του Linux και ο προγραμματιστής του πυρήνα του λειτουργικού συστήματος, μετά από δύο μήνες εργασίας, ανακοίνωσε την κυκλοφορία μιας νέας έκδοσης του πυρήνα Linux 3.10.

Σύμφωνα με τον ίδιο τον προγραμματιστή, αυτός ο πυρήνας αποδείχθηκε ο μεγαλύτερος από άποψη όγκου καινοτομιών τα τελευταία χρόνια.

Ο Linus παραδέχτηκε ότι στην αρχή σκόπευε να απελευθερώσει έναν άλλο υποψήφιο απελευθέρωσης, αλλά αφού δίστασε, τείνει να κυκλοφορήσει την τελική κυκλοφορία αμέσως με τον αριθμό 3.10. Επίσης ο Torvalds στο μήνυμά του, παρατήρησε ότι ο νέος πυρήνας, όπως η έκδοση 3.9, είναι εντελώς έτοιμος για καθημερινή χρήση.

Επιπλέον, στην ανακοίνωση της έκδοσης RC του πυρήνα, ο Linus Torvalds έγραψε ότι νωρίτερα πάντα περιελάμβανε μια λίστα με τα ονόματα των ατόμων που έστειλαν ορισμένα τμήματα του κώδικα, αλλά αυτή τη φορά αυτή η λίστα θα ήταν τόσο μεγάλη που δεν μπορούσε να δοθούν στο σύνολό του σε ένα φύλλο.

Μια λίστα με τις κύριες αλλαγές που έγιναν στον πυρήνα 3.10:

  • Τώρα είναι δυνατό να απαγορευτεί η εκτέλεση σεναρίων ως προγράμματα - η λειτουργικότητα της εκκίνησης σεναρίων που περιέχουν τη διαδρομή προς τον διερμηνέα στην κεφαλίδα "#!" Τώρα μπορεί να μεταγλωττιστεί ως μονάδα πυρήνα.
  • Το σύστημα Bcache που αναπτύχθηκε και χρησιμοποιήθηκε από την Google έχει ενσωματωθεί. Το Bcache σάς επιτρέπει να οργανώνετε την προσωρινή αποθήκευση πρόσβασης σε αργούς σκληρούς δίσκους σε γρήγορους δίσκους SSD. Σε αυτήν την περίπτωση, η προσωρινή αποθήκευση πραγματοποιείται στο επίπεδο μιας συσκευής μπλοκ - και αυτό σας επιτρέπει να επιταχύνετε την πρόσβαση στη μονάδα δίσκου και ανεξάρτητα από τα συστήματα αρχείων που χρησιμοποιούνται στη συσκευή.
  • Ο πυρήνας μπορεί να κατασκευαστεί με τον μεταγλωττιστή Clang χάρη στις ενημερώσεις κώδικα που προετοιμάστηκαν από το έργο LLVMLinux.
  • Εμφανίστηκε ένα δυναμικό σύστημα για τον έλεγχο της δημιουργίας διακοπών από το χρονόμετρο. Τώρα, ανάλογα με την τρέχουσα κατάσταση, μπορείτε να αλλάξετε διακοπές στην περιοχή από χιλιάδες τσιμπούρια ανά δευτερόλεπτο σε μία διακοπή ανά δευτερόλεπτο - αυτό σας επιτρέπει να ελαχιστοποιήσετε το φορτίο της CPU κατά τη διακοπή της επεξεργασίας σε περίπτωση αδράνειας του συστήματος. Τώρα αυτή η λειτουργία χρησιμοποιείται για συστήματα σε πραγματικό χρόνο και HPC (υπολογιστές υψηλής απόδοσης), αλλά στις επόμενες εκδόσεις πυρήνα θα χρησιμοποιηθεί και για επιτραπέζια συστήματα.
  • Τώρα είναι δυνατό να δημιουργηθεί ένα συμβάν που θα ειδοποιεί την εφαρμογή σχετικά με την προσέγγιση της εξάντλησης της μνήμης που είναι διαθέσιμη στη διαδικασία / σύστημα (σε ομάδες).
  • Για την εντολή perf, το προφίλ πρόσβασης μνήμης είναι πλέον διαθέσιμο.
  • Προστέθηκε υποστήριξη για το πρωτόκολλο RDMA (iSER) στο υποσύστημα iSCSI.
  • Υπάρχει ένα νέο πρόγραμμα οδήγησης "sync" (πειραματικό). Αναπτύχθηκε στην πλατφόρμα Android και χρησιμοποιείται για συγχρονισμό μεταξύ άλλων προγραμμάτων οδήγησης.
  • Το πρόγραμμα οδήγησης εικονικής κάρτας γραφικών QXL ενσωματώθηκε (χρησιμοποιείται σε συστήματα εικονικοποίησης για επιταχυνόμενη έξοδο γραφικών χρησιμοποιώντας το πρωτόκολλο SPICE).
  • Τώρα υποστηρίζονται νέες δυνατότητες διαχείρισης ενέργειας που εισήχθησαν σε οικογένειες επεξεργαστών AMD 16h ("Jaguar").
  • Στη μονάδα Radeon DRM προστέθηκε υποστήριξη για επιτάχυνση αποκωδικοποίησης βίντεο χρησιμοποιώντας τον αποκωδικοποιητή υλικού UVD ενσωματωμένο σε σύγχρονες GPU της AMD.
  • Εμφανίστηκε ένα πρόγραμμα οδήγησης για εικονικούς προσαρμογείς βίντεο Microsoft Hyper-V (υπάρχουν επίσης βελτιώσεις στη λειτουργία Hyper-V γενικά).
  • Η εκτέλεση κρυπτογραφικών λειτουργιών (sha256, sha512, blowfish, twofish, serpent και camellia) βελτιστοποιείται χρησιμοποιώντας τις οδηγίες AVX / AVX2 και SSE.

Οι χρήστες κινητών συσκευών δεν είναι πάντα ικανοποιημένοι με το έργο και τις δυνατότητες των gadget τους. Για το λόγο αυτό, οι χρήστες αναζητούν τον καλύτερο τρόπο για να αναβοσβήνουν τον πυρήνα του λειτουργικού συστήματος Android. Αφενός, αυτή η ενέργεια μπορεί να γίνει εύκολα με το tablet ή το smartphone σας. Χιλιάδες χρήστες έχουν αναδείξει με επιτυχία τον πυρήνα χωρίς επιπλοκές ή προβλήματα. Αλλά, από την άλλη πλευρά, οποιοδήποτε λάθος κατά τη διάρκεια αυτής της διαδικασίας μπορεί να οδηγήσει, μεταξύ των οποίων είναι η αποτυχία του gadget και η ανάγκη για ακριβή υπηρεσία. Σε διαφορετικά στάδια, υπάρχει κίνδυνος να επιλέξετε λάθος έκδοση του υλικολογισμικού πυρήνα, η οποία δημιουργήθηκε από μη εξουσιοδοτημένους προγραμματιστές ή δεν ταιριάζει στην κινητή συσκευή σας. Σας συνιστούμε να είστε εξαιρετικά προσεκτικοί όταν πραγματοποιείτε ενέργειες που κάνουν αλλαγές στο τμήμα λογισμικού της συσκευής σε χαμηλό επίπεδο. Αφού αναβοσβήνει με επιτυχία ο πυρήνας, πολλοί έχουν την αίσθηση ότι κρατούν μια εντελώς νέα συσκευή στα χέρια τους. Οι προχωρημένοι χρήστες μπορούν έτσι να προσαρμόσουν το gadget που ταιριάζει στις ανάγκες και τις προτιμήσεις τους, αποκτώντας παράλληλα νέες γνώσεις και εμπειρία σχετικά με τις σύγχρονες τεχνολογίες κινητής τηλεφωνίας.

Ο πυρήνας του λειτουργικού συστήματος Android και το υλικολογισμικό του

Ποιος είναι ο πυρήνας μιας κινητής συσκευής;

Ο πυρήνας του λειτουργικού συστήματος είναι η ραχοκοκαλιά του λογισμικού που διαχειρίζεται το υλικό της συσκευής. Οι κύριες παράμετροι κάθε gadget εξαρτώνται από αυτό. Πρέπει να σημειωθεί ότι αποτελείται από τρία διασυνδεδεμένα στοιχεία - τον πυρήνα Linux, το κάθετο μηχάνημα Dalvik και διάφορες υπηρεσίες και βιβλιοθήκες χαμηλού επιπέδου. Εάν μιλάμε για προσαρμοσμένο υλικολογισμικό, τότε επηρεάζονται μόνο δύο στοιχεία, τα οποία σας επιτρέπουν να προσθέσετε νέες υπηρεσίες συστήματος, να βελτιστοποιήσετε τις υπάρχουσες παραμέτρους και να αλλάξετε το κέλυφος γραφικών.

Όσοι επιθυμούν να εγκαταστήσουν έναν πυρήνα στο Android θα πρέπει να καταλάβουν ότι υπάρχει διαφορά μεταξύ των εννοιών ενός προσαρμοσμένου πυρήνα και ενός προσαρμοσμένου υλικολογισμικού. Το τελευταίο είναι μια ανεπίσημη έκδοση του λογισμικού. Το προσαρμοσμένο υλικολογισμικό αναπτύχθηκε από μια ομάδα ειδικών για συγκεκριμένες συσκευές. Ο προσαρμοσμένος πυρήνας βασίζεται στον πυρήνα Linux και είναι μια ανεπίσημη έκδοση του. Συχνά ένας προσαρμοσμένος πυρήνας συνοδεύεται από το υλικολογισμικό. Αλλά μπορεί να εγκατασταθεί ξεχωριστά μετά την αλλαγή του υλικολογισμικού. Στην πραγματικότητα, δεν αντικαθιστά τον εγγενή πυρήνα μιας κινητής συσκευής, που είναι ο απώτερος στόχος μιας τέτοιας λειτουργίας.

Το υλικολογισμικό πυρήνα Android γίνεται κυρίως για να αυξήσει τον χρόνο λειτουργίας της συσκευής κατά αρκετές ώρες, προσαρμόζοντας τις ρυθμίσεις ισχύος. Perhapsσως αυτός είναι ο κύριος λόγος για τον οποίο οι χρήστες πραγματοποιούν σύνθετους μετασχηματισμούς λογισμικού των gadget τους. Το υλικολογισμικό θα σας επιτρέψει να αλλάξετε το τσιπ βίντεο χωρίς να επηρεάσετε το smartphone ή το tablet σας. Οι προχωρημένοι χρήστες προσαρμόζουν έτσι το έργο της οθόνης, αλλάζοντας την απόδοση χρώματος, την ευαισθησία. Το υλικολογισμικό πυρήνα σας επιτρέπει να βελτιώσετε τον ήχο της συσκευής, να ενημερώσετε προγράμματα οδήγησης και να εφαρμόσετε υποστήριξη για μη τυπικές εξωτερικές συσκευές.

Πριν αναβοσβήσετε τον πυρήνα, σας συνιστούμε να βεβαιωθείτε ότι έχετε επιλέξει μια καλή έκδοση, η οποία δημιουργήθηκε από έμπειρους προγραμματιστές. Επιπλέον, είναι σημαντικό να βεβαιωθείτε ότι ταιριάζει με την έκδοση υλικολογισμικού Android που διαθέτετε. Συνιστάται να διαβάσετε τις κριτικές ατόμων που κατάφεραν να εγκαταστήσουν μια κατάλληλη έκδοση του πυρήνα στο κινητό τους τηλέφωνο. Οι αναθεωρήσεις μπορεί να περιέχουν σημαντικές πληροφορίες σχετικά με προβλήματα που μπορεί να προκύψουν στο στάδιο του υλικολογισμικού ή της περαιτέρω λειτουργίας της συσκευής.

Υλικολογισμικό gadget μέσω Fastboot

Μπορείτε να επανατοποθετήσετε τη συσκευή σας Android μέσω Fastboot. Αλλά πρώτα, πρέπει να εγκαταστήσετε το βοηθητικό πρόγραμμα στο gadget σας. Υπάρχουν δύο εκδόσεις αυτού του προγράμματος. Το πρώτο περιλαμβάνει τη λήψη του Fastboot σε συνδυασμό με το επίσημο πρόγραμμα Android SDK. Η δεύτερη έκδοση περιλαμβάνει τη λήψη του βοηθητικού προγράμματος ξεχωριστά.

Σας συνιστούμε να ελέγξετε αν η κινητή συσκευή σας βλέπει φορητό υπολογιστή ή υπολογιστή. Για να γίνει αυτό, πρέπει να εκτελέσετε. Μετά τη λήψη και εγκατάσταση σε υπολογιστή, φορητό υπολογιστή που λειτουργεί στο λειτουργικό σύστημα Windows, το βοηθητικό πρόγραμμα Fastboot και τη σύνδεση του smartphone, πρέπει να ανοίξετε τη γραμμή εντολών. Για να το κάνετε αυτό, ανοίξτε την Αναζήτηση. Στα Windows 8, το μόνο που χρειάζεται να κάνετε είναι να μετακινήσετε τον κέρσορα του ποντικιού στη δεξιά πλευρά της οθόνης και να επιλέξετε την κατάλληλη ενότητα. Στην Αναζήτηση, πρέπει να εισαγάγετε "cmd", μετά από το οποίο θα εμφανιστεί μια γραμμή εντολών μπροστά σας. Η συσκευή πρέπει να τεθεί σε λειτουργία υλικολογισμικού. Στη συνέχεια, εισαγάγετε μια εντολή που θα ελέγξει την αλληλεπίδραση μεταξύ του υπολογιστή και της φορητής συσκευής:

συσκευές fastboot

Εάν όλα λειτουργούν, πρέπει να φορτώσετε τη σωστή έκδοση του firmware boot.img του πυρήνα. Δεν συνιστούμε την ανανέωση του αρχικού πυρήνα υλικολογισμικού, καθώς αυτό μπορεί να οδηγήσει σε προβλήματα στη λειτουργία του smartphone. Το αρχείο πρέπει να αποθηκευτεί σε ένα διαμέρισμα που δημιουργήθηκε προηγουμένως στη μονάδα δίσκου C που ονομάζεται "Android". Μετά από αυτό, πρέπει να φορτώσετε την κινητή συσκευή σας στο Fastboot και να τη συνδέσετε στον υπολογιστή σας. Το μήνυμα "Fastboot USB" θα εμφανιστεί στην οθόνη.

  • cd C: \ Android.
  • fastboot flash boot boot.img.
  • fastboot διαγράψτε την προσωρινή μνήμη.
  • επανεκκίνηση fastboot.

Είναι πολύ σημαντικό να εισαγάγετε όλες τις λέξεις σωστά, λαμβάνοντας υπόψη την περίπτωση και τα κενά. Η εντολή cd ανοίγει τον απαιτούμενο φάκελο που περιέχει τα απαιτούμενα αρχεία. Μετά από αυτό, εμφανίζεται μια αναλαμπή. Η εντολή fastboot erase cache διαγράφει το διαμέρισμα της προσωρινής μνήμης. Η τελευταία εντολή είναι η επανεκκίνηση fastboot, η οποία κάνει επανεκκίνηση της συσκευής από τη λειτουργία υλικολογισμικού στην κανονική. Εάν εκτελέσατε σωστά όλες τις υποδεικνυόμενες ενέργειες, τότε η διαδικασία θα είναι επιτυχής.

Firmware με ClockworkMod Recovery

Το ClockworkMod Recovery (ή συντομία CWM) είναι ένα σύστημα αποκατάστασης που χρησιμοποιείται αντί για την αρχική εργοστασιακή ανάκτηση. Το CWM σάς επιτρέπει να εγκαταστήσετε νέο υλικολογισμικό σε μια κινητή συσκευή, να αναβοσβήνετε τον πυρήνα, να δημιουργήσετε αντίγραφα ασφαλείας των αρχείων και να επαναφέρετε το κέλυφος. Ένα τέτοιο σύστημα είναι σε θέση να λειτουργεί με αρχεία ενημέρωσης υλικολογισμικού σε μορφή zip. Το ClockworkMod είναι εγκατεστημένο, αντικαθιστώντας το εργοστασιακό Recovery. Για να ξεκινήσετε το CWM, πρέπει να γνωρίζετε τον συνδυασμό πλήκτρων που ταιριάζει στο gadget σας. Στις περισσότερες περιπτώσεις, αυτός είναι ένας συνδυασμός μείωσης έντασης ήχου και κουμπιών ενεργοποίησης που πρέπει να πατηθούν κατά την εκκίνηση της συσκευής.

Για να αναβοσβήνει ο πυρήνας, κατεβάστε το αρχείο με την επέκταση zip. Πρέπει να περιέχει το φάκελο META-INF. Τότε υπάρχουν δύο επιλογές. Στην πρώτη περίπτωση, πρέπει να καθορίσετε το αρχείο υλικολογισμικού. Η δεύτερη επιλογή περιλαμβάνει την τοποθέτηση του αρχείου υλικολογισμικού στο φάκελο / sdcard. Μετά από αυτό, θα πρέπει να ενεργοποιήσετε το ClockworkMod Recovery, να βρείτε εκεί τη λειτουργία Εφαρμογή ενημέρωσης από την κάρτα sdcard και να καθορίσετε το απαιτούμενο αρχείο.

Πρέπει να σημειωθεί ότι το μενού ClockworkMod Recovery είναι βολικό και κατανοητό για τους περισσότερους χρήστες. Εκτός από ένα τέτοιο σύστημα ανάκτησης υλικολογισμικού, μπορείτε να χρησιμοποιήσετε το TWRP Recovery. Αυτό το εργαλείο είναι βολικό και δημοφιλές στους χρήστες Android. Το κύριο πράγμα είναι να επιλέξετε το σωστό αρχείο υλικολογισμικού.

Το υλικολογισμικό πυρήνα Android είναι μια διαδικασία στην οποία δεν συνιστούμε να καταφύγετε εάν είστε απόλυτα ικανοποιημένοι με τη δουλειά του gadget. Τέτοιες ενέργειες καθοδηγούνται από την επιθυμία βελτίωσης της απόδοσης ενός κινητού τηλεφώνου ή tablet. Οι προχωρημένοι χρήστες έχουν τη δυνατότητα να ορίσουν παραμέτρους σε χαμηλότερο επίπεδο. Αλλά χωρίς συγκεκριμένες γνώσεις και αντικειμενικούς λόγους, είναι καλύτερο να μην αλλάξετε το τμήμα λογισμικού της κινητής συσκευής, καθώς αυτό συνδέεται με κινδύνους και αστοχίες στη λειτουργία της.

«Και ... πλένω το καρμπυρατέρ!»
Αστείο

Εισαγωγή

Στο νηπιαγωγείο, εμείς με ομοϊδεάτες άτομα αναλύσαμε ακρίδες με την ελπίδα να κατανοήσουμε τη δομή τους. Στο σχολείο, ο ραδιοφωνικός δέκτης "Ρωσία" συγκολλήθηκε. Στο ινστιτούτο, η σειρά ήρθε στα αυτοκίνητα, τα παξιμάδια των οποίων αναδιατάχθηκαν επανειλημμένα. Τα ενδιαφέροντα έχουν αλλάξει, αλλά η επιθυμία να "αποσυναρμολογηθεί" μερικές φορές ξυπνά και σήμερα κατευθύνεται προς το Android.

Πόσες φορές έχετε διασωθεί από τη διαθεσιμότητα πηγών Android; Εγώ - δεν μετράω πια. Το Android είναι ένα έργο ανοιχτού κώδικα, αλλά δυστυχώς έχουμε μόνο τη δυνατότητα ανάγνωσης. είναι σχεδόν αδύνατο να επεξεργαστείτε τον κώδικα Android χωρίς να είστε υπάλληλος της Google. Ας στενοχωρηθούμε για αυτή τη στιγμή και κατεβάστε το αποθετήριο. Πώς να το κάνετε αυτό περιγράφεται τέλεια στον επίσημο ιστότοπο.


Γενική αρχιτεκτονική

Η αρχιτεκτονική του Android μπορεί να απεικονιστεί σχηματικά ως εξής:

Οι επιτραπέζιοι υπολογιστές και οι φορητοί υπολογιστές διαθέτουν ένα καλά εδραιωμένο σύστημα ενεργειακών λειτουργιών (οι επεξεργαστές x86 έχουν αρκετές): ο υπολογιστής λειτουργεί "σε πλήρη ταχύτητα" όταν γίνεται κάτι και μεταβαίνει σε ενεργειακά αποδοτική λειτουργία όταν το σύστημα είναι αδρανές. Η μετάβαση σε λειτουργία "ύπνου" συμβαίνει είτε μετά από μια αρκετά μεγάλη περίοδο αδράνειας, είτε χειροκίνητα, για παράδειγμα, όταν κλείνετε το καπάκι του φορητού υπολογιστή.

Ένας διαφορετικός μηχανισμός απαιτήθηκε στα τηλέφωνα: η κύρια κατάσταση του συστήματος είναι η "αδρανοποίηση", η έξοδος από αυτό πραγματοποιείται μόνο σε περιπτώσεις ανάγκης. Έτσι, το σύστημα μπορεί να κοιμηθεί, ακόμη και αν κάποια εφαρμογή είναι ενεργή. Στο Android, εφαρμόστηκε ένας μηχανισμός wakelock: εάν μια εφαρμογή (ή ένας οδηγός) κάνει κάτι σημαντικό που πρέπει να φτάσει στο λογικό συμπέρασμά του, "καταγράφει" το κλείδωμα του ρολογιού, εμποδίζοντας τη συσκευή να κοιμηθεί.

Οι προσπάθειες μεταφοράς του μηχανισμού wakelock στον πυρήνα συναντήθηκαν με αντίσταση από πολλούς προγραμματιστές. Οι προγραμματιστές Android έλυσαν ένα συγκεκριμένο πρόβλημα, η λύση του οποίου ήταν ένας συγκεκριμένος μηχανισμός. Οι συνθήκες του προβλήματος ήταν πολύ περιορισμένες. Η πλατφόρμα -στόχος είναι η ARM, οπότε χρησιμοποιήθηκαν τα χαρακτηριστικά της: Οι επεξεργαστές ARM αρχικά υποθέτουν συχνές αλλαγές στις λειτουργίες «ύπνου» και «αφύπνισης», σε αντίθεση με το x86. Στο Android, οι εφαρμογές επικοινωνούν με το σύστημα διαχείρισης ενέργειας μέσω του PowerManager, αλλά τι πρέπει να κάνουν οι εφαρμογές πελάτη Linux;

Οι προγραμματιστές Android δεν προσπάθησαν καν να βρουν μια κοινή λύση «για το μέλλον», η οποία στη συνέχεια θα συγχωνευόταν στον κύριο πυρήνα χωρίς προβλήματα, δεν συμβουλεύτηκαν την κοινότητα του πυρήνα Linux για αυτό το ζήτημα. Μπορείτε να τους κατηγορήσετε για αυτό; Παρά τα προβλήματα και τις συζητήσεις, όπως προαναφέρθηκε, ένα API με πανομοιότυπη λειτουργία αυτόματου ύπνου εμφανίστηκε στον πυρήνα.

Οι προγραμματιστές εφαρμογών για Android σπάνια πρέπει να αντιμετωπίσουν wakelocks, καθώς η πλατφόρμα και τα προγράμματα οδήγησης επεξεργάζονται τις υποχρεώσεις που τους έχουν ανατεθεί, λαμβάνοντας υπόψη τη λειτουργία "ύπνου". Παρ 'όλα αυτά, το γνωστό PowerManager θα βοηθήσει να παρέμβει σε αυτή τη διαδικασία. Παρεμπιπτόντως, μόνο ένα σενάριο έρχεται στο μυαλό του συγγραφέα: να αποτρέψει το τηλέφωνο να κοιμηθεί κατά την εκκίνηση της υπηρεσίας από το BroadcastReceiver, το οποίο επιλύεται από τη βοηθητική τάξη από τη Βιβλιοθήκη υποστήριξης Android WakefulBroadcastReceiver.

Δολοφόνος χαμηλής μνήμης

Ο τυπικός πυρήνας Linux διαθέτει Out of Memory Killer, ο οποίος, με βάση την παράμετρο κακίας, καθορίζει τη διαδικασία που σκοτώνεται:

Badness_for_task = total_vm_for_task / (sqrt (cpu_time_in_seconds) *
sqrt (sqrt (cpu_time_in_minutes)))

Έτσι, όσο περισσότερο η διαδικασία καταναλώνει τη μνήμη και όσο λιγότερο ζει, τόσο λιγότερο τυχερή θα είναι.

Το διάγραμμα δείχνει το γενικό σύστημα καταγραφής Android. Το πρόγραμμα οδήγησης καταγραφής παρέχει πρόσβαση σε κάθε buffer μέσω / dev / log / *. Οι εφαρμογές δεν έχουν άμεση πρόσβαση σε αυτές, αλλά μέσω της βιβλιοθήκης liblog. Τα μαθήματα Log, Slog και EventLog επικοινωνούν με τη βιβλιοθήκη liblog. Η εντολή adb logcat εμφανίζει τα περιεχόμενα του "κύριου" buffer.

συμπέρασμα

Σε αυτήν την ανάρτηση, εξετάσαμε εν συντομία ορισμένες από τις δυνατότητες του Android ως σύστημα Linux. Ορισμένα άλλα μέρη (pmem, κονσόλα RAM κ.λπ.), καθώς και τόσο σημαντικές πτυχές της πλατφόρμας στο σύνολό της, όπως η Υπηρεσία συστήματος, η διαδικασία εκκίνησης του συστήματος και άλλα, παρέμειναν εκτός παρενθέσεων. Εάν αυτό το θέμα είναι ενδιαφέρον, θα τα εξετάσουμε στα επόμενα άρθρα.

Έχουμε ήδη γράψει για προσαρμοσμένα firmware, εφαρμογές root και εναλλακτικά μενού εκκίνησης. Όλα αυτά είναι τυπικά θέματα στην κοινότητα χάκερ Android, ωστόσο, εκτός από όλα τα παραπάνω, υπάρχει επίσης κάτι σαν «προσαρμοσμένος πυρήνας», ο οποίος μπορεί να δώσει σχεδόν απεριόριστες δυνατότητες ελέγχου του smartphone και του υλικού του στο χαμηλότερο επίπεδο επίπεδο. Σε αυτό το άρθρο θα σας πω τι είναι, γιατί το χρειάζεστε και πώς να επιλέξετε τον σωστό προσαρμοσμένο πυρήνα.

Προσαρμοσμένος πυρήνας;

Τι είναι ένας προσαρμοσμένος πυρήνας; Όπως όλοι γνωρίζουμε, το Android είναι μια πίτα που αποτελείται από τρία βασικά στρώματα: τον πυρήνα Linux, ένα σύνολο βιβλιοθηκών και υπηρεσιών χαμηλού επιπέδου και την εικονική μηχανή Dalvik, πάνω από την οποία λειτουργεί ένα κέλυφος γραφικών, εργαλεία υψηλού επιπέδου και υπηρεσίες, καθώς και σχεδόν όλες οι εφαρμογές που έχουν εγκατασταθεί από την αγορά. Οι δημιουργοί του περισσότερου εναλλακτικού προσαρμοσμένου υλικολογισμικού συνήθως λειτουργούν μόνο με τα δύο πρώτα επίπεδα, προσθέτοντας λειτουργίες στο γραφικό κέλυφος (για παράδειγμα, κουμπιά στην κουρτίνα), αλλάζοντάς το (ο κινητήρας θεμάτων στο CyanogenMod), καθώς και προσθέτοντας νέες υπηρεσίες συστήματος ( ισοσταθμιστής στο CyanogenMod) και βελτιστοποίηση υφιστάμενων.

Οι συντάκτες του δημοφιλούς υλικολογισμικού επίσης, στο μέτρο του δυνατού, κάνουν αλλαγές στον πυρήνα του Linux: βελτιστοποιούν (δημιουργούν με πιο επιθετικές σημαίες βελτιστοποίησης μεταγλωττιστή), περιλαμβάνουν νέες λειτουργίες (για παράδειγμα, υποστήριξη για την μπάλα των Windows) και επίσης κάνουν άλλες αλλαγές , όπως η δυνατότητα αύξησης της συχνότητας του επεξεργαστή υψηλότερη από αυτή που παρέχει ο κατασκευαστής ... Συχνά, όλα αυτά παραμένουν στα παρασκήνια και πολλοί χρήστες προσαρμοσμένου υλικολογισμικού δεν γνωρίζουν καν αυτές τις δυνατότητες, ειδικά επειδή το ίδιο CyanogenMod συνοδεύεται από έναν προσαρμοσμένο πυρήνα μόνο για περιορισμένη σειρά συσκευών για τις οποίες και ο πηγαίος κώδικας του εγγενή πυρήνα και η δυνατότητα αντικατάστασής του είναι διαθέσιμη. Για παράδειγμα, σχεδόν όλο το υλικολογισμικό CyanogenMod για smartphone της Motorola χρησιμοποιεί έναν τυπικό πυρήνα - είναι αδύνατο να τον αντικαταστήσετε με τον δικό σας λόγω της αδιαπέραστης προστασίας του bootloader.

Ωστόσο, ο πυρήνας σε smartphone με ξεκλείδωτο πρόγραμμα εκκίνησης μπορεί να αντικατασταθεί ξεχωριστά από το κύριο υλικολογισμικό. Και δεν είναι εύκολο να αντικατασταθεί, αλλά να εγκατασταθεί ένας πυρήνας με έναν τεράστιο αριθμό διαφορετικών λειτουργιών που απαιτούν ορισμένες τεχνικές γνώσεις για διαχείριση και επομένως συνήθως δεν είναι ενσωματωμένοι στους πυρήνες του δημοφιλούς υλικολογισμικού, όπως το CyanogenMod, το AOKP και το MIUI. Μεταξύ αυτών των δυνατοτήτων μπορείτε να βρείτε υποστήριξη για υψηλές συχνότητες επεξεργαστή, έλεγχο γάμα οθόνης, λειτουργίες εξοικονόμησης ενέργειας, εξαιρετικά αποδοτικούς διαχειριστές ενέργειας και τεράστιο αριθμό άλλων δυνατοτήτων.

Σε αυτό το άρθρο, θα μιλήσουμε για το τι έχουν να μας προσφέρουν οι δημιουργοί των προσαρμοσμένων πυρήνων, θα εξετάσουμε τους κύριους προσαρμοσμένους πυρήνες για διάφορες συσκευές και επίσης θα προσπαθήσουμε να εγκαταστήσουμε τον πυρήνα ανεξάρτητα από το κύριο υλικολογισμικό και θα ελέγξουμε τα πάντα στο δέρμα μας. Τι προτείνουν λοιπόν οι προγραμματιστές εναλλακτικών πυρήνων;

Έξυπνος ελεγκτής κυκλοφορίας

Τα OMAP35XX SoC που χρησιμοποιούνται στα Galaxy S II και Galaxy Nexus, για παράδειγμα, έχουν μια λειτουργία SmartReflex που λειτουργεί ως έξυπνο σύστημα για τη ρύθμιση της τάσης όταν αλλάζει το φορτίο του επεξεργαστή. Στην πραγματικότητα, εξαλείφει την ανάγκη για λεπτό συντονισμό της τάσης από τον χρήστη.


Βελτιστοποίηση

Συχνά ο κύριος στόχος της δημιουργίας ενός προσαρμοσμένου πυρήνα είναι η βελτιστοποίηση της απόδοσης. Συνήθως, ένας προμηθευτής κινητής τεχνολογίας προσπαθεί να διατηρήσει μια ισορροπία μεταξύ απόδοσης και σταθερότητας, οπότε ακόμη και καλές τεχνικές βελτιστοποίησης που μπορούν να αυξήσουν σημαντικά την ταχύτητα μιας συσκευής μπορούν να απορριφθούν από τον κατασκευαστή μόνο με βάση ότι μετά τη χρήση τους, ορισμένες εφαρμογές άρχισαν να καταστρέφονται κάθε δέκατη εκτόξευση. Φυσικά, οι λάτρεις δεν ντρέπονται για τέτοια μικροπράγματα και πολλοί από αυτούς είναι έτοιμοι να εφαρμόσουν οποιεσδήποτε επιλογές μεταγλωττιστή, αλγόριθμους εξοικονόμησης ενέργειας στον πυρήνα της δικής τους συναρμολόγησης και να αυξήσουν τη συχνότητα του επεξεργαστή όσο η συσκευή μπορεί να χειριστεί. Μεταξύ όλων των τεχνικών βελτιστοποίησης, τέσσερις είναι οι πιο συνηθισμένες:



Ένας άλλος τύπος βελτιστοποίησης: αλλαγή του τυπικού χρονοπρογραμματιστή εισόδου / εξόδου. Η κατάσταση σε αυτόν τον τομέα είναι ακόμη πιο ενδιαφέρουσα, διότι αντί να καταλαβαίνουν πώς λειτουργούν οι προγραμματιστές, ορισμένοι κατασκευαστές πυρήνων απλώς διαβάζουν έγγραφα για προγραμματιστές εισόδου / εξόδου για Linux στον Ιστό και εξάγουν συμπεράσματα. Αυτή η προσέγγιση είναι ακόμη πιο διαδεδομένη στους χρήστες. Στην πραγματικότητα, σχεδόν όλοι οι πιο ισχυροί και έξυπνοι προγραμματιστές Linux είναι εντελώς ακατάλληλοι για Android: έχουν σχεδιαστεί για χρήση με μηχανικά καταστήματα δεδομένων, στα οποία η ταχύτητα πρόσβασης στα δεδομένα ποικίλλει ανάλογα με τη θέση του κεφαλιού. Ο προγραμματιστής χρησιμοποιεί διαφορετικά σχήματα για συνδυασμό ερωτημάτων ανάλογα με τη φυσική τοποθεσία των δεδομένων, οπότε τα ερωτήματα σε δεδομένα που βρίσκονται κοντά στην τρέχουσα θέση κεφαλής θα λάβουν υψηλότερη προτεραιότητα. Αυτό είναι εντελώς παράλογο στην περίπτωση της μνήμης στερεάς κατάστασης, η οποία εγγυάται την ίδια ταχύτητα πρόσβασης σε όλα τα κελιά. Οι προχωρημένοι σχεδιαστές θα κάνουν περισσότερο κακό παρά καλό σε ένα smartphone και οι πιο αδέξιοι και πρωτόγονοι θα δείχνουν τα καλύτερα αποτελέσματα. Το Linux έχει τρεις τέτοιους προγραμματιστές:

  • Όχι (Χωρίς λειτουργία)-το λεγόμενο μη χρονοπρογραμματιστή. Μια απλή ουρά αιτημάτων FIFO, το πρώτο αίτημα θα επεξεργαστεί πρώτα, το δεύτερο δεύτερο κ.ο.κ. Κατάλληλο για μνήμη στερεάς κατάστασης και σας επιτρέπει να δίνετε προτεραιότητα σε εφαρμογές για πρόσβαση στη μονάδα δίσκου. Ένα επιπλέον πλεονέκτημα: χαμηλό φορτίο επεξεργαστή λόγω μιας πολύ απλής αρχής λειτουργίας. Μειονέκτημα: δεν λαμβάνεται υπόψη η ιδιαιτερότητα της λειτουργίας της συσκευής, η οποία μπορεί να οδηγήσει σε αποτυχίες απόδοσης.
  • SIO (Simple I / O)- ανάλογο του χρονοπρογραμματιστή Προθεσμία χωρίς να λαμβάνεται υπόψη η εγγύτητα των τομέων μεταξύ τους, δηλαδή σχεδιασμένο ειδικά για μνήμη στερεάς κατάστασης. Υπάρχουν δύο κύρια χαρακτηριστικά: η προτεραιότητα των λειτουργιών ανάγνωσης έναντι των πράξεων εγγραφής και η ομαδοποίηση των πράξεων κατά διαδικασίες με την κατανομή ενός τμήματος χρόνου για κάθε διαδικασία για την εκτέλεση λειτουργιών. Σε smartphone, όπου η ταχύτητα της τρέχουσας εφαρμογής είναι σημαντική και η επικράτηση των λειτουργιών ανάγνωσης έναντι της εγγραφής, δείχνει πολύ καλή απόδοση. Διατίθεται σε Leankernel, πυρήνα Matr1x για Nexus 4 και SiyahKernel.
  • ΣΕΙΡΑ (ΔΙΑΒΑΣΤΕ ΠΕΡΙΓΡΑΦΗ)- χρονοπρογραμματιστής ειδικά σχεδιασμένος για φορητές συσκευές και προστέθηκε στον πυρήνα μόλις πριν από λίγους μήνες. Κύρια πρόκληση: επεξεργασία αιτημάτων ανάγνωσης πρώτα, αλλά δίκαιος χρόνος και για αιτήματα εγγραφής. Θεωρείται ο καλύτερος προγραμματιστής NAND αυτή τη στιγμή, χρησιμοποιείται από προεπιλογή σε Leankernel και Matr1x.

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

# cat / sys / block / * / queue / scheduler

Για αλλαγή, εφαρμόστε τα ακόλουθα (όπου η γραμμή είναι το όνομα του προγραμματιστή):

# για i in / sys / block / * / queue / scheduler; do echo row> $ 1; Έγινε

Ορισμένοι κατασκευαστές πυρήνων χρησιμοποιούν επίσης ένα διαφορετικό είδος βελτιστοποίησης εισόδου / εξόδου. Αυτό απενεργοποιεί την κλήση συστήματος fsync, η οποία χρησιμοποιείται για να εξαναγκάσει τα αλλαγμένα περιεχόμενα των ανοιχτών αρχείων να μεταφερθούν στο δίσκο. Πιστεύεται ότι χωρίς fsync, το σύστημα θα έχει λιγότερη πρόσβαση στη μονάδα δίσκου και έτσι εξοικονομεί χρόνο CPU και ισχύ μπαταρίας. Μια μάλλον αμφιλεγόμενη δήλωση: Το fsync δεν χρησιμοποιείται πολύ συχνά σε εφαρμογές και μόνο για να αποθηκεύσει πραγματικά σημαντικές πληροφορίες, αλλά η απενεργοποίησή του μπορεί να οδηγήσει σε απώλεια αυτών των πληροφοριών σε περίπτωση βλάβης του λειτουργικού συστήματος ή άλλων προβλημάτων. Η δυνατότητα απενεργοποίησης του fsync είναι διαθέσιμη στους πυρήνες franco.Kernel και GLaDOS και το αρχείο / sys / module / sync / parameter / fsync_enabled χρησιμοποιείται για έλεγχο, στο οποίο πρέπει να γράψετε 0 για απενεργοποίηση ή 1 για ενεργοποίηση. Και πάλι, αυτή η δυνατότητα δεν συνιστάται.

Προσθήκη νέων λειτουργιών στον πυρήνα

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

Αυτά είναι κυρίως διάφορα προγράμματα οδήγησης και συστήματα αρχείων. Για παράδειγμα, ορισμένοι πυρήνες περιλαμβάνουν υποστήριξη για τη μονάδα CIFS για την τοποθέτηση σφαιρών Windows. Μια τέτοια ενότητα βρίσκεται στον πυρήνα Matr1x για Nexus S, faux123 για Nexus 7, SiyahKernel και GLaDOS. Από μόνο του, είναι άχρηστο, αλλά υπάρχουν αρκετές εφαρμογές στην αγορά που σας επιτρέπουν να χρησιμοποιήσετε τις δυνατότητές του.

Μια άλλη χρησιμότητα είναι η συμπερίληψη του προγράμματος οδήγησης ntfs-3g στον πυρήνα (πιο συγκεκριμένα, στο πακέτο με τον πυρήνα, το ίδιο το πρόγραμμα οδήγησης λειτουργεί ως εφαρμογή Linux), το οποίο είναι απαραίτητο για την τοποθέτηση μονάδων flash μορφοποιημένων στο σύστημα αρχείων NTFS. Αυτό το πρόγραμμα οδήγησης είναι διαθέσιμο στους πυρήνες faux123 και SiyahKernel. Συνήθως ενεργοποιείται αυτόματα, αλλά αν αυτό δεν συμβεί, μπορείτε να χρησιμοποιήσετε την εφαρμογή StickMount από την αγορά.

Πολλοί πυρήνες περιλαμβάνουν επίσης υποστήριξη για τη λεγόμενη τεχνολογία zram, η οποία σας επιτρέπει να κάνετε κράτηση μικρής ποσότητας RAM (συνήθως 10%) και να τη χρησιμοποιήσετε ως συμπιεσμένη περιοχή ανταλλαγής. Ως αποτέλεσμα, υπάρχει ένα είδος επέκτασης του όγκου της μνήμης, χωρίς σοβαρές συνέπειες για την απόδοση. Διατίθεται στο Leankernel, ενεργοποιημένο με εντολή Trickster MOD ή zram enable.

Οι δύο τελευταίες ενδιαφέρουσες δυνατότητες είναι η γρήγορη φόρτιση USB και το Sweep2wake. Το πρώτο δεν είναι τίποτα περισσότερο από την αναγκαστική συμπερίληψη της λειτουργίας "γρήγορης φόρτισης", ακόμη και αν το smartphone είναι συνδεδεμένο στη θύρα USB του υπολογιστή. Η λειτουργία γρήγορης φόρτισης είναι διαθέσιμη σε όλα τα περισσότερα ή λιγότερο νέα smartphone, ωστόσο, λόγω τεχνικών περιορισμών, δεν μπορεί να ενεργοποιηθεί ταυτόχρονα με την πρόσβαση στην κάρτα μνήμης. Η λειτουργία γρήγορης φόρτισης USB σάς επιτρέπει να ενεργοποιείτε πάντα αυτήν τη λειτουργία, ενώ απενεργοποιείτε την πρόσβαση στη μονάδα δίσκου.

Το Sweep2wake είναι ένας νέος τρόπος αφύπνισης μιας συσκευής, που εφευρέθηκε από τον συγγραφέα του Breaked-kernel. Το νόημά του είναι να ενεργοποιήσετε το smartphone σύροντας το δάχτυλό σας πάνω από τα πλήκτρα πλοήγησης που βρίσκονται κάτω από την οθόνη ή στην ίδια την οθόνη. Αυτό είναι ένα πραγματικά εύχρηστο χαρακτηριστικό, αλλά ως αποτέλεσμα της ενεργοποίησής του, ο αισθητήρας θα παραμείνει ενεργός ακόμη και όταν η συσκευή κοιμάται, γεγονός που μπορεί να αδειάσει σημαντικά την μπαταρία.

Overclocking, εξοικονόμηση τάσης και ισχύος

Το overclocking είναι δημοφιλές όχι μόνο στους ιδιοκτήτες σταθερών υπολογιστών και φορητών υπολογιστών, αλλά και στους λάτρεις της κινητής τεχνολογίας. Όπως και οι πέτρες της αρχιτεκτονικής x86, οι επεξεργαστές και οι πυρήνες γραφικών της κινητής τεχνολογίας είναι εξαιρετικοί στο κυνήγι. Ωστόσο, η ίδια η μέθοδος overclocking και τα βήματα που λαμβάνονται για την εφαρμογή της είναι κάπως διαφορετικά εδώ. Το γεγονός είναι ότι τα τυπικά προγράμματα οδήγησης για SoC, τα οποία είναι υπεύθυνα για την εξοικονόμηση ενέργειας και την αλλαγή της συχνότητας του επεξεργαστή, είναι συνήθως κλειδωμένα σε τυπικές συχνότητες, οπότε για λεπτό συντονισμό πρέπει να εγκαταστήσετε είτε ένα εναλλακτικό πρόγραμμα οδήγησης είτε έναν προσαρμοσμένο πυρήνα.

Σχεδόν όλοι οι περισσότερο ή λιγότερο υψηλής ποιότητας και δημοφιλείς προσαρμοσμένοι πυρήνες περιλαμβάνουν ήδη ξεκλείδωτα προγράμματα οδήγησης, οπότε μετά την εγκατάσταση τους, οι δυνατότητες ελέγχου της "ισχύος" του επεξεργαστή διευρύνονται σημαντικά. Συνήθως, οι κατασκευαστές προσαρμοσμένων πυρήνων κάνουν δύο πράγματα που επηρεάζουν την επιλογή συχνότητας. Αυτή είναι μια επέκταση του εύρους συχνοτήτων πέρα ​​από την αρχικά καθορισμένη - μπορείτε να ορίσετε τόσο υψηλότερη όσο και πολύ χαμηλή συχνότητα επεξεργαστή, η οποία σας επιτρέπει να εξοικονομήσετε μπαταρία και να αυξήσετε τη διαβάθμιση συχνότητας, για παράδειγμα, αντί για τρεις πιθανές συχνότητες, προσφέρεται επιλογή έξι. Το δεύτερο είναι η προσθήκη της δυνατότητας ρύθμισης της τάσης του επεξεργαστή, έτσι ώστε να μπορείτε να μειώσετε την τάση του επεξεργαστή σε χαμηλές συχνότητες για να εξοικονομήσετε ισχύ μπαταρίας και να αυξήσετε σε υψηλές συχνότητες για να αυξήσετε τη σταθερότητα.

Όλα αυτά μπορούν να ελεγχθούν χρησιμοποιώντας το γνωστό βοηθητικό πρόγραμμα SetCPU ή το δωρεάν Trickster MOD. Οι συστάσεις διαχείρισης είναι ίδιες με αυτές για επιτραπέζια συστήματα. Είναι καλύτερα να ρυθμίσετε τη χαμηλότερη συχνότητα επεξεργαστή στο ελάχιστο, αλλά όχι κάτω από 200 MHz (για να αποφύγετε τις καθυστερήσεις), το ανώτερο όριο αυξάνεται σταδιακά με τη δοκιμή της σταθερότητας της λειτουργίας, όταν πέσει, συνιστάται να αυξήσετε ελαφρώς την τάση για αυτή τη συχνότητα. Δεν υπάρχουν συστάσεις για τάση, καθώς κάθε επεξεργαστής είναι μοναδικός και οι τιμές θα είναι διαφορετικές για τον καθένα.

Εκτός από την αλλαγή συχνοτήτων, οι συναρμολογητές συχνά προσθέτουν νέους αλγόριθμους ελέγχου εξοικονόμησης ενέργειας (αυτόματος έλεγχος της συχνότητας του επεξεργαστή) στον πυρήνα, οι οποίοι, κατά τη γνώμη τους, μπορούν να δείξουν καλύτερα αποτελέσματα σε σύγκριση με τους τυπικούς. Σχεδόν όλοι βασίζονται στον αλληλεπιδραστικό αλγόριθμο που χρησιμοποιείται από προεπιλογή σε νέες εκδόσεις του Android, η ουσία του οποίου είναι να αυξήσει απότομα τη συχνότητα του επεξεργαστή στο μέγιστο σε περίπτωση αύξησης του φορτίου και στη συνέχεια να τον μειώσει σταδιακά στο ελάχιστο . Αντικαθιστά τον αλγόριθμο OnDemand που χρησιμοποιήθηκε προηγουμένως, ο οποίος ρυθμίζει ομαλά τη συχνότητα και στις δύο κατευθύνσεις ανάλογα με το φορτίο και καθιστά το σύστημα πιο ανταποκρινόμενο. Οι συλλέκτες εναλλακτικών πυρήνων προσφέρουν τους ακόλουθους αλγόριθμους για να αντικαταστήσουν το Interactive:

  • SmartAssV2- επανεξέταση του διαδραστικού αλγορίθμου με έμφαση στην εξοικονόμηση μπαταρίας. Η κύρια διαφορά είναι να μην σπρώχνετε τον επεξεργαστή σε υψηλές συχνότητες σε περίπτωση σύντομων εκρήξεων φορτίου, για τις οποίες αρκεί η χαμηλή απόδοση του επεξεργαστή. Η προεπιλογή χρησιμοποιείται στον πυρήνα Matr1x.
  • InteractiveX- συντονισμένος διαδραστικός αλγόριθμος, το κύριο χαρακτηριστικό του οποίου είναι το κλείδωμα του επεξεργαστή στην ελάχιστη συχνότητα που ορίζει ο χρήστης και η απενεργοποίηση του δεύτερου πυρήνα επεξεργαστή όταν η οθόνη είναι απενεργοποιημένη. Η προεπιλογή χρησιμοποιείται στο Leankernel.
  • LulzactiveV2είναι ουσιαστικά ένα επανασχεδιασμένο OnDemand. Όταν το φορτίο στον επεξεργαστή υπερβεί το καθορισμένο (από προεπιλογή 60%), ο αλγόριθμος αυξάνει τη συχνότητα κατά συγκεκριμένο αριθμό διαιρέσεων (από προεπιλογή 1), όταν μειώνεται το φορτίο, το χαμηλώνει. Το ιδιαίτερο ενδιαφέρον είναι ότι σας επιτρέπει να ορίσετε ανεξάρτητα τις παραμέτρους της εργασίας, επομένως, είναι κατάλληλο για σκληροπυρηνικούς γκέικ.

Σε γενικές γραμμές, οι συλλέκτες πυρήνων λατρεύουν να βρουν νέους αλγόριθμους εξοικονόμησης ενέργειας λόγω της απλότητας της εφαρμογής τους, οπότε μπορείτε να βρείτε δώδεκα ακόμη. Τα περισσότερα από αυτά είναι πλήρης σκωρία και κατά την επιλογή ενός χρονοπρογραμματιστή, θα πρέπει να καθοδηγείτε από τον κανόνα: είτε ένα από τα τρία που περιγράφονται παραπάνω, είτε το τυπικό Interactive, το οποίο, παρεμπιπτόντως, είναι πολύ καλό. Μπορείτε να κάνετε μια επιλογή χρησιμοποιώντας το ίδιο Trickster MOD.

Διεπαφές διαχείρισης

Οι περισσότεροι από τους δημοφιλείς προσαρμοσμένους πυρήνες περιλαμβάνουν διάφορους μηχανισμούς για τη λεπτομερή ρύθμιση των παραμέτρων του προγράμματος οδήγησης, οι πιο συνηθισμένοι από τους οποίους είναι οι ColorControl, GammaControl, SoundControl και TempControl.

Οι δύο πρώτες διεπαφές είναι διαθέσιμες σχεδόν παντού, συμπεριλαμβανομένων των πυρήνων CyanogenMod, οι δεύτερες δύο είναι διαθέσιμες στο Leankernel και ίσως άλλες. Με τον ένα ή τον άλλο τρόπο, όλα αυτά μπορούν να ελεγχθούν με το Trickster MOD.

Πυρήνες

Ποιον πυρήνα πρέπει να επιλέξετε; Δεν υπάρχει μεμονωμένη απάντηση σε αυτήν την ερώτηση, και όχι επειδή "ο καθένας το δικό του", αλλά επειδή υπάρχει ένας τεράστιος αριθμός συσκευών Android στον κόσμο και σχεδόν τόσοι διαφορετικοί πυρήνες. Ωστόσο, υπάρχουν αρκετοί δημοφιλείς πυρήνες που αναπτύσσονται για πολλές συσκευές ταυτόχρονα. Με τον ένα ή τον άλλο τρόπο, ανέφερα πολλά από αυτά στην πορεία της ιστορίας, εδώ θα δώσω μια σύντομη περιγραφή τους.

  • Το Leankernel είναι ο πυρήνας για τα Galaxy Nexus, Nexus 7 και Galaxy S III. Ο κύριος στόχος της ανάπτυξης είναι στην απλότητα και την ταχύτητα της εργασίας. Αλγόριθμος εξοικονόμησης ενέργειας: InteractiveX V2, I / O: ROW scheduler, όλες οι παραπάνω διεπαφές ελέγχου, υποστήριξη για γρήγορη φόρτιση USB, Swap και zram, ευέλικτες επιλογές overclocking CPU και GPU. Ένας από τους καλύτερους πυρήνες. Διαμορφώσιμο με Trickster MOD.
  • Matr1x (http://goo.gl/FQLBI, goo.gl/ZcyvA) - Kernel για Nexus S και Nexus 4. Απλός και μη υπερφορτωμένος πυρήνας. Υποστηρίζει overclocking CPU και GPU, GammaControl, Fast USB Charge, Sweep2wake, I / O schedulers: SIO, ROW και FIOPS. Προσαρμογές επιδόσεων. Διαμορφώσιμο με Trickster MOD.
  • Bricked-Kernel (http://goo.gl/kd5F4, goo.gl/eZkAV)-απλός και μη υπερφορτωμένος πυρήνας για Nexus 4 και HTC One X. Βελτιστοποιήσεις για Snapdragon S4 και NVIDIA Tegra 3, επανασχεδιασμένη λειτουργία εξοικονόμησης ενέργειας για Tegra 3, η δυνατότητα overclocking, αλγόριθμος εξοικονόμησης ενέργειας: συντονισμένος από το OnDemand (διατίθεται επίσης διαδραστικό).
  • Το SiyahKernel είναι ο πυρήνας για τα Galaxy S II και S III. Ευέλικτες επιλογές overclocking, αυτόματη βαθμονόμηση μπαταρίας, βελτιωμένο πρόγραμμα οδήγησης οθόνης αφής, αλγόριθμοι εξοικονόμησης ενέργειας: smartassV2 και lulzactiveV2, χρονοδιακόπτες εισόδου / εξόδου: όχι, προθεσμία, CFQ, BFQV3r2 (προεπιλογή), V (R), SIO. Προγράμματα οδήγησης CIFS και NTFS (αυτόματη τοποθέτηση). Διαμορφώσιμο με χρήση ExTweaks.
  • franco.Kernel είναι ο πυρήνας για Nexus S, Galaxy Nexus, Nexus 4, Nexus 7, Nexus 10, Galaxy S III, Galaxy Note, Optimus One και One X.

Οι δυνατότητες του πυρήνα διαφέρουν πολύ από συσκευή σε συσκευή, οπότε θα πρέπει να δείτε τις λεπτομέρειες επιτόπου. Παρ 'όλα αυτά, αναβοσβήνοντας αυτόν τον πυρήνα, θα έχετε overclocking, συντονισμό προγράμματος οδήγησης, εξαιρετική απόδοση, καθώς και υποστήριξη για διάφορους αλγόριθμους εξοικονόμησης ενέργειας και χρονοδιακόπτες. Στην πραγματικότητα, ο πυρήνας περιλαμβάνει σχεδόν όλες τις τροποποιήσεις που περιγράφονται στο άρθρο. Θεωρείται ένας από τους καλύτερους διαθέσιμους πυρήνες. Υπάρχει μια εφαρμογή για αυτόματες ενημερώσεις franko.Kernel Updater. Μπορεί να ρυθμιστεί χρησιμοποιώντας Trickster MOD.

Πώς να εγκαταστήσω?

Όλοι οι πυρήνες διανέμονται σε τυπικά αρχεία ZIP ZIP Android, τα οποία πρέπει να αναβοσβήνουν μέσω της κονσόλας ανάκτησης με τον ίδιο τρόπο όπως το εναλλακτικό υλικολογισμικό. Κατά κανόνα, οι πυρήνες είναι συμβατοί με οποιοδήποτε υλικολογισμικό, επομένως, έχοντας επιλέξει τον απαραίτητο πυρήνα, μπορείτε να τον εγκαταστήσετε με ασφάλεια. Το μόνο που πρέπει να προσέξετε είναι η έκδοση του Android με την οποία ο πυρήνας είναι συμβατός. Μπορεί είτε να ταιριάζει σε όλες τις εκδόσεις του Android που είναι διαθέσιμες για τη συσκευή, είτε να λειτουργεί μόνο με μία (ο προγραμματιστής το λέει συνήθως ρητά). Πριν αναβοσβήνει, φροντίστε να δημιουργήσετε αντίγραφο ασφαλείας του τρέχοντος υλικολογισμικού χρησιμοποιώντας την ίδια κονσόλα αποκατάστασης. Εάν κάτι πάει στραβά, μπορείτε πάντα να επιστρέψετε.

συμπεράσματα

Όπως μπορείτε να δείτε, οι προσαρμοσμένοι πυρήνες έχουν πολλά πλεονεκτήματα έναντι των πυρήνων που χρησιμοποιούνται σε τυπικό υλικολογισμικό τρίτων κατασκευαστών. Και το πιο σημαντικό, δεν χρειάζεται να γνωρίζετε όλες τις περιπλοκές του Android για να τις χρησιμοποιήσετε, απλά πρέπει να κατεβάσετε και να εγκαταστήσετε το αρχείο ZIP.

Πρόσφατα, νέες εκδόσεις πυρήνων κυκλοφόρησαν αρκετά συχνά. Μια σταθερή κυκλοφορία κυκλοφορεί κάθε λίγους μήνες. Και οι υποψήφιοι ασταθούς αποδέσμευσης βγαίνουν ακόμη πιο συχνά. Ο Linus Torvalds και πολλοί προγραμματιστές σε όλο τον κόσμο εργάζονται συνεχώς για να βελτιώσουν τους νέους πυρήνες και να προσθέσουν όλο και περισσότερη λειτουργικότητα σε αυτούς.

Με κάθε νέα κυκλοφορία, ο πυρήνας Linux προσθέτει υποστήριξη για πολλές νέες συσκευές, όπως νέους επεξεργαστές, κάρτες βίντεο ή ακόμη και οθόνες αφής. Πρόσφατα, η υποστήριξη για νέο υλικό βελτιώθηκε δραματικά. Επίσης, στον πυρήνα περιλαμβάνονται νέα συστήματα αρχείων, βελτιώνεται η στοίβα δικτύου, διορθώνονται σφάλματα και σφάλματα.

Εάν χρειάζεστε πιο λεπτομερείς πληροφορίες σχετικά με τις αλλαγές σε μια συγκεκριμένη έκδοση πυρήνα, δείτε το Changelog στο kernel.org και σε αυτό το άρθρο θα εξετάσουμε την ενημέρωση του πυρήνα Linux στην πιο πρόσφατη έκδοση. Θα προσπαθήσω να μην συνδέσω την οδηγία σε μια συγκεκριμένη έκδοση πυρήνα, νέοι πυρήνες κυκλοφορούν αρκετά συχνά και θα είναι σχετικοί για καθένα από αυτούς.

Εξετάστε το ενδεχόμενο ενημέρωσης των πυρήνων Ubuntu και CentOS. Αρχικά, ας ρίξουμε μια ματιά στον τρόπο αναβάθμισης του πυρήνα στο Ubuntu 16.04.

Ας δούμε πρώτα ποιον πυρήνα έχετε εγκαταστήσει. Για να το κάνετε αυτό, ανοίξτε ένα τερματικό και εκτελέστε:

Για παράδειγμα, έχω αυτήν τη στιγμή την έκδοση 4.3 και μπορώ να αναβαθμίσω στην πιο πρόσφατη έκδοση. Οι προγραμματιστές του Ubuntu έχουν ήδη βεβαιωθεί ότι οι χρήστες τους δεν δημιουργούν τον πυρήνα με μη αυτόματο τρόπο και κάνουν πακέτα deb της νέας έκδοσης του πυρήνα. Μπορείτε να τα κατεβάσετε από την επίσημη ιστοσελίδα της Canonical.

Θα μπορούσα να απαριθμήσω τις εντολές wget για λήψη εδώ αν ήταν γνωστή η έκδοση του πυρήνα, αλλά στην περίπτωσή μας θα ήταν καλύτερο να χρησιμοποιούμε πρόγραμμα περιήγησης. Μεταβείτε στη διεύθυνση http://kernel.ubuntu.com/~kernel-ppa/mainline/. Εδώ βρίσκονται όλοι οι πυρήνες που καταρτίστηκαν από την ομάδα του Ubuntu. Οι πυρήνες κατασκευάζονται για συγκεκριμένες διανομές, με κωδικό όνομα διανομής, καθώς και γενικές. Επιπλέον, οι πυρήνες από το Ubuntu 16.10 πιθανότατα θα λειτουργήσουν στις 16.04, αλλά από τις 9.04 στο Ubuntu 16.04, δεν πρέπει να εγκαταστήσετε έναν πυρήνα.

Κάντε κύλιση προς τα κάτω, εδώ είναι οι νεότερες εκδόσεις των πυρήνων:

Επιπλέον, στην κορυφή υπάρχει ένας ημερήσιος / τρέχων φάκελος, ο οποίος περιέχει τις πιο πρόσφατες, νυχτερινές κατασκευές πυρήνων. Επιλέξτε τη σωστή έκδοση πυρήνα και κάντε λήψη των δύο κεφαλίδων linux και αρχείων εικόνας linux για την αρχιτεκτονική σας:

Αφού ολοκληρωθεί η λήψη, μπορείτε να προχωρήσετε στην εγκατάσταση. Για να το κάνετε αυτό, κάντε τα εξής στο τερματικό:

Μεταβείτε στο φάκελο με τα πακέτα εγκατάστασης, για παράδειγμα ~ / Λήψεις:

Εκτελέστε την εγκατάσταση:

Εάν αυτή η εντολή δεν λειτούργησε, μπορείτε να πάτε από την άλλη κατεύθυνση. Εγκαταστήστε το βοηθητικό πρόγραμμα gdebi:

sudo apt-get install gdebi

Στη συνέχεια, χρησιμοποιήστε το για να εγκαταστήσετε τον πυρήνα:

sudo gdebi linux-headers * .deb linux-image- *. deb

Ο πυρήνας είναι εγκατεστημένος, απομένει να ενημερώσετε το πρόγραμμα εκκίνησης:

sudo update-grub

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

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

Αυτόματη ενημέρωση πυρήνα Linux στο Ubuntu

Πιο πάνω, καλύψαμε τον τρόπο μη αυτόματης εγκατάστασης της απαιτούμενης έκδοσης πυρήνα. Το Ubuntu είχε ένα PPA για καθημερινές κατασκευές πυρήνα, αλλά τώρα είναι κλειστό. Επομένως, μπορείτε να ενημερώσετε τον πυρήνα μόνο κατεβάζοντας το πακέτο deb και εγκαθιστώντας τον. Αλλά όλα αυτά μπορούν να απλοποιηθούν με ένα ειδικό σενάριο.

Εγκαταστήστε το σενάριο:

cd / tmp
$ git κλωνοποίηση git: //github.com/GM-Script-Writer-62850/Ubuntu-Mainline-Kernel-Updater
$ bash Ubuntu-Mainline-Kernel-Updater / install

Ελεγχος για ενημερώσεις:

KernelUpdateChecker -r yakkety

Η επιλογή -r σάς επιτρέπει να καθορίσετε τον κλάδο της διανομής για τον οποίο θέλετε να αναζητήσετε πυρήνες. Για το xenial, οι πυρήνες δεν κατασκευάζονται πλέον, αλλά οι πυρήνες από την επόμενη έκδοση θα λειτουργήσουν καλά εδώ. Επιπλέον, η επιλογή -no -rc μπορεί να πει στο βοηθητικό πρόγραμμα να μην χρησιμοποιεί υποψηφίους κυκλοφορίας και η επιλογή -v καθορίζει την ακριβή έκδοση του πυρήνα για εγκατάσταση. Εάν δεν σας ενδιαφέρει για ποια διανομή είναι ο πυρήνας, όσο το τελευταίο, χρησιμοποιήστε την επιλογή --any-release. Το σενάριο θα παράγει το ακόλουθο αποτέλεσμα:

Πριν εγκαταστήσετε τον πυρήνα, μπορείτε να δείτε τις λεπτομέρειες ανοίγοντας το αρχείο / tmp / kernel-update:

Εδώ μπορούμε να δούμε ότι πραγματοποιήθηκε αναζήτηση για yakkety, και η έκδοση πυρήνα 4.7-rc6 είναι προς το παρόν διαθέσιμη. Μπορούμε να εγκαταστήσουμε:

sudo / tmp / kernel-update

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

Παλιοί πυρήνες, σε περίπτωση που δεν διαγράψετε (n):

Τέλος, η ενημέρωση του πυρήνα στην πιο πρόσφατη έκδοση έχει ολοκληρωθεί, κάντε επανεκκίνηση του υπολογιστή σας (y):

Ελέγξτε αν η ενημέρωση του πυρήνα του Ubuntu λειτούργησε πραγματικά:

Επιπλέον, το σενάριο προστέθηκε στην εκκίνηση και τώρα θα ελέγχεται αυτόματα για ενημερώσεις 60 δευτερόλεπτα μετά τη σύνδεση. Η συντόμευση αυτόματης φόρτωσης βρίσκεται στο αρχείο:

vi ~ / .config / autostart / KernelUpdate.desktop

Μπορείτε να το αλλάξετε όπως χρειάζεστε ή να το διαγράψετε. Εάν θέλετε να αφαιρέσετε πλήρως το σενάριο από το σύστημα, εκτελέστε:

rm ~ / .config / autostart / KernelUpdate.desktop
$ sudo rm / usr / local / bin / KernelUpdate (Έλεγχος, ScriptGenerator)

Δεν γίνεται λήψη

Εάν προέκυψαν σφάλματα κατά την εγκατάσταση ή ο πυρήνας δεν ενημερώθηκε σωστά και το σύστημα δεν εκκινείται τώρα με τον νέο πυρήνα, μπορείτε να χρησιμοποιήσετε τον παλιό πυρήνα. Επίσης, το σύστημα ενδέχεται να μην ξεκινήσει εάν χρησιμοποιείτε ιδιόκτητο πρόγραμμα οδήγησης για την κάρτα γραφικών NVIDIA, σε αυτήν την περίπτωση μην βιαστείτε να κατεβάσετε την τελευταία έκδοση πυρήνα, χρησιμοποιήστε μόνο σταθερούς πυρήνες, κατά κανόνα, η υποστήριξη για αυτήν την ενότητα έχει ήδη προστεθεί σε αυτούς.

Και για να επαναφέρετε το σύστημα, επιλέξτε το στοιχείο Προηγμένες επιλογές για το Ubuntuστο μενού Grub:

Και ξεκινήστε τον προηγούμενο τρέχοντα πυρήνα:

Μετά την εκκίνηση, απομένει να αφαιρέσετε τον εσφαλμένα εγκατεστημένο πυρήνα και να ενημερώσετε ξανά το Grub, να αντικαταστήσετε την απαιτούμενη έκδοση πυρήνα αντί του 4.7:

sudo apt remove linux-header-4.7 * linux-image-4.7 *

sudo update-grub

Το σύστημά σας είναι τώρα πίσω στην προηγούμενη κατάσταση. Μπορείτε να δοκιμάσετε να εγκαταστήσετε μια παλαιότερη έκδοση πυρήνα ή να δοκιμάσετε ξανά.

Αναβάθμιση του Linux Kernel σε 4.4 στο CentOS

Τώρα ας ρίξουμε μια ματιά στον τρόπο ενημέρωσης του τελευταίου πυρήνα Linux στο CentOS. Οι οδηγίες έχουν δοκιμαστεί στο CentOS 7, αλλά πιθανότατα θα λειτουργήσουν σε RedHat 7, Fedora και άλλες παρόμοιες διανομές.

Κατά κανόνα, οι νέοι πυρήνες δεν περιλαμβάνονται στα επίσημα αποθετήρια CentOS, οπότε για να αποκτήσουμε την τελευταία σταθερή έκδοση θα πρέπει να προσθέσουμε το αποθετήριο ELRepo. Αυτό είναι ένα αποθετήριο Enterprise Linux Packages και υποστηρίζεται επίσης από το RedHat και το Fedora.

Ακολουθήστε αυτά τα βήματα για να προσθέσετε ένα αποθετήριο:

Πρώτα πρέπει να εισαγάγετε το κλειδί:

rpm-εισαγωγή https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

Προσθέστε το αποθετήριο και τα απαιτούμενα στοιχεία στο RHEL / Scientific Linux / CentOS-7:

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

yum εγκατάσταση yum-plugin-fastestmirror

Fedora 22 και αργότερα: