Το Linux δεν υπέφερε ποτέ από το διαβόητο BSoD, συντομογραφία του Μπλε οθόνη του θανάτου, το όνομα που δόθηκε στο επίφοβο μήνυμα "κάτι πήγε τρομερά λάθος" που σχετίζεται με ένα σφάλμα συστήματος των Windows.
Η Microsoft έχει δοκιμάσει πολλά πράγματα όλα αυτά τα χρόνια για να κουνήσει αυτό το ψευδώνυμο "BSoD", συμπεριλαμβανομένης της αλλαγής του χρώματος φόντου που χρησιμοποιείται όταν εμφανίζονται μηνύματα σύγκρουσης, προσθέτοντας ένα εικονίδιο λυπητερού προσώπου για να κάνει το μήνυμα πιο συμπονετικό, εμφανίζοντας κωδικούς QR που μπορείτε κουμπώστε με το τηλέφωνό σας για να σας βοηθήσει να διαγνώσετε το πρόβλημα και να μην γεμίσετε την οθόνη με μια λίστα technobabble αντικειμένων κώδικα πυρήνα που μόλις έτυχε να φορτωθούν εκείνη τη στιγμή.
(Αυτές οι λίστες απόρριψης σφαλμάτων συχνά οδηγούσαν στο λογισμικό προστασίας από ιούς και πρόληψης απειλών να κατηγορείται για κάθε σφάλμα συστήματος, απλώς επειδή τα ονόματά τους έτειναν να εμφανίζονται στην κορυφή ή κοντά στην κορυφή της λίστας των φορτωμένων λειτουργικών μονάδων – όχι επειδή είχαν κάτι να κάνουν με τη συντριβή, αλλά επειδή γενικά φόρτωσαν νωρίς και απλώς έτυχε να βρίσκονται στην κορυφή της λίστας, δημιουργώντας έτσι έναν βολικό αποδιοπομπαίο τράγο.)
Ακόμα καλύτερα, το "BSoD" δεν είναι πλέον ο καθημερινός, πετυχημένος υποτιμητικός όρος που ήταν, επειδή τα Windows κολλάνε πολύ λιγότερο συχνά από ό,τι παλιά.
Δεν προτείνουμε ότι τα Windows δεν διακόπτονται ποτέ, ούτε υπονοούμε ότι είναι πλέον χωρίς σφάλματα ως δια μαγείας. Σημειώνοντας απλώς ότι γενικά δεν χρειάζεστε τη λέξη BSoD τόσο συχνά όσο παλιά.
Ειδοποιήσεις σφαλμάτων Linux
Φυσικά, το Linux δεν είχε ποτέ BSoD, ούτε καν όταν τα Windows φαινόταν να τα έχουν συνεχώς, αλλά αυτό δεν συμβαίνει επειδή το Linux δεν κολλάει ποτέ ή είναι ως δια μαγείας χωρίς σφάλματα.
Απλώς, το Linux δεν κάνει BSoD (ναι, ο όρος μπορεί να χρησιμοποιηθεί ως αμετάβατο ρήμα, όπως στο "ο φορητός μου υπολογιστής BSoDded στα μισά του email"), γιατί – σε μια ευχάριστη συγκατάθεση – υποφέρει ουπς, ή εάν το ουπς είναι αρκετά σοβαρό ώστε το σύστημα να μην μπορεί να παραμείνει αξιόπιστα ακόμα και με υποβαθμισμένη απόδοση, πανικοβάλλονται.
(Είναι επίσης δυνατό να διαμορφώσετε έναν πυρήνα Linux έτσι ώστε ένα ουπς πάντα «προβιβάζεσαι» σε α πανικός, για περιβάλλοντα όπου οι λόγοι ασφαλείας καθιστούν καλύτερο να υπάρχει ένα σύστημα που κλείνει απότομα, αν και ορισμένα δεδομένα δεν αποθηκεύονται εγκαίρως, παρά ένα σύστημα που καταλήγει σε αβέβαιη κατάσταση που θα μπορούσε να οδηγήσει σε διαρροή δεδομένων ή καταστροφή δεδομένων.)
An ουπς συνήθως παράγει έξοδο κονσόλας κάτι σαν αυτό (παρέχουμε τον πηγαίο κώδικα παρακάτω αν θέλετε να εξερευνήσετε ουπς και πανικοβάλλονται για τον εαυτό σου):
[12710.153112] ωχ init (επίπεδο = 1) [12710.153115] ενεργοποίηση oops μέσω BUG() [12710.153127] -------------[ κόψτε εδώ ]------------- [12710.153128] ΣΦΑΛΜΑ πυρήνα στο /home/duck/Articles/linuxoops/oops.c:17! [12710.153132] μη έγκυρος κωδικός ενεργοποίησης: 0000 [#1] PREEMPT SMP PTI [12710.153748] CPU: 0 PID: 5531 Comm: insmod . . . [12710.154322] Όνομα υλικού: XXXX [12710.154940] RIP: 0010:oopsinit+0x3a/0xfc0 [oops] [12710.155548] Κωδικός: . . . . . [12710.156191] RSP: . . . ΕΣΗΜΑΙΑ: . . . [12710.156849] RAX: . . . RBX: . . . RCX: . . . [12710.157513] RDX: . . . RSI: . . . RDI: . . . [12710.158171] RBP: . . . R08: . . . R09: . . . [12710.158826] R10: . . . R11: . . . R12: . . . [12710.159483] R13: . . . R14: . . . R15: . . . [12710.160143] FS: . . . ΓΣ: . . . knlGS: . . . . . . . . [12710.163474] Call Trace: [12710.164129] [12710.164779] do_one_initcall+0x56/0x230 [12710.165424] do_init_module+0x4a/0x210 [12710.166050] __do_sys_finit_module+0x9e/0xf0 [12710.166711] do_syscall_64+0x37/0x90 [12710.167320] entry_SYSCALL_64_after_hwframe+0x72/0xdc [ 12710.167958] RIP: 0033:0x7f6c28b15e39 [12710.168578] Κωδικός: . . . . . [. . . . . [12710.173349] [12710.174032] Ενότητες συνδεδεμένες σε: . . . . . [12710.180294] ---[ ίχνος τέλους 0000000000000000 ]---
Δυστυχώς, όταν κυκλοφόρησε η έκδοση 6.2.3 του πυρήνα στα τέλη της περασμένης εβδομάδας, αποδείχθηκαν γρήγορα δύο μικρές αλλαγές προβληματικός, με τους χρήστες να αναφέρουν όψεις του πυρήνα κατά τη διαχείριση της αποθήκευσης δίσκου.
Ο πυρήνας 6.1.16 προφανώς υπόκειται στις ίδιες αλλαγές, και επομένως επιρρεπής στην ίδια αδυναμία.
Για παράδειγμα, η σύνδεση μιας αφαιρούμενης μονάδας και η τοποθέτησή της λειτούργησε μια χαρά, αλλά η αποσυναρμολόγηση της μονάδας όταν τελειώσατε με αυτήν θα μπορούσε να προκαλέσει ουπς.
Παρόλο που ένα ωχ δεν παγώνει αμέσως ολόκληρο τον υπολογιστή, ο κώδικας σε επίπεδο πυρήνα διακόπτεται κατά την αφαίρεση του αποθηκευτικού χώρου του δίσκου είναι αρκετά ανησυχητικό που ένας καλά ενημερωμένος χρήστης θα ήθελε πιθανώς να τερματίσει τη λειτουργία του το συντομότερο δυνατό, σε περίπτωση συνεχούς προβλήματος που οδηγεί σε καταστροφή δεδομένων …
…αλλά μερικοί χρήστες ανέφεραν ότι το ουπς απέτρεψε αυτό που στην ορολογία είναι γνωστό ως an τακτική διακοπή λειτουργίας, που απαιτεί αναγκαστική ανακύκλωση της τροφοδοσίας, κρατώντας πατημένο το κουμπί λειτουργίας για αρκετά δευτερόλεπτα ή διακόπτοντας προσωρινά την παροχή ρεύματος σε έναν διακομιστή.
Τα καλά νέα είναι ότι οι πυρήνες 6.2.4 και 6.1.17 αφέθηκαν αμέσως ελεύθεροι το Σαββατοκύριακο για να αποκαταστήσουν τα προβλήματα.
Δεδομένης της ταχύτητας των εκδόσεων του πυρήνα Linux, αυτές οι ενημερώσεις έχουν ήδη ακολουθηθεί 6.2.5 και 6.1.18, τα οποία ενημερώθηκαν οι ίδιοι (σήμερα, 2023-03-13) από 6.2.6 και 6.1.19.
Τι να κάνω;
Εάν χρησιμοποιείτε πυρήνα Linux έκδοσης 6.x και δεν είστε ήδη ενημερωμένοι, φροντίστε να μην εγκαταστήσετε την 6.2.3 ή την 6.1.16 στην πορεία.
Εάν έχετε ήδη μία από αυτές τις εκδόσεις (είχαμε 6.2.3 για μερικές μέρες και δεν καταφέραμε να προκαλέσουμε σύγκρουση προγράμματος οδήγησης, πιθανώς επειδή η διαμόρφωση του πυρήνα μας προστατεύει κατά λάθος από την ενεργοποίηση του σφάλματος), σκεφτείτε να ενημερώσετε το συντομότερο δυνατό…
…επειδή ακόμα κι αν δεν έχετε αντιμετωπίσει κανένα πρόβλημα με βάση τον όγκο δίσκου μέχρι στιγμής, μπορεί να έχετε ανοσία από καλή τύχη, αλλά αναβαθμίζοντας ξανά τον πυρήνα σας θα γίνετε άνοσοι από το σχεδιασμό.
ΕΞΕΡΕΥΝΗΣΕΙΣ ΜΟΝΟΙ ΣΟΥ ΟΥΠΣ ΚΑΙ ΓΕΓΟΝΟΤΑ ΠΑΝΙΚΟΥ
Θα χρειαστείτε έναν πυρήνα κατασκευασμένο από πηγαίο κώδικα που είναι ήδη εγκατεστημένος στον δοκιμαστικό υπολογιστή σας.
Δημιουργήστε έναν κατάλογο, ας τον ονομάσουμε /test/oops
και αποθηκεύστε αυτόν τον πηγαίο κώδικα ως oops.c
:
#include <linux/kernel.h> #include <linux/module.h> #include <linux/moduleparam.h> #include <linux/init.h> MODULE_LICENSE("GPL"); static int level = 0; module_param(level,int,0660); static int oopsinit(void) { printk("oops init (level = %d)n",level); // level: 0->just load; 1->oops; 2->panic switch (level) { case 1: printk("triggering oops via BUG()n"); BUG(); break; case 2: printk("forcing a full-on panic()n"); panic("oops module"); break; } return 0; } static void oopsexit(void) { printk("oops exitn"); } module_init(oopsinit); module_exit(oopsexit);
Δημιουργήστε ένα αρχείο στον ίδιο κατάλογο που ονομάζεται Kbuild
για να ελέγξετε τις παραμέτρους κατασκευής, ως εξής:
EXTRA_CFLAGS = -Wall -g obj-m = oops.o
Στη συνέχεια, δημιουργήστε τη μονάδα όπως φαίνεται παρακάτω.
Η -C
η επιλογή λέει make
πού να αρχίσετε να ψάχνετε Makefiles
, δείχνοντας έτσι τη διαδικασία κατασκευής στο δεξί δέντρο πηγαίου κώδικα του πυρήνα και το M=
η ρύθμιση λέει make
πού να βρείτε τον πραγματικό κώδικα της ενότητας που θα δημιουργήσετε σε αυτήν την περίπτωση.
Πρέπει να παρέχετε την πλήρη, απόλυτη διαδρομή για M=
, επομένως μην προσπαθήσετε να αποθηκεύσετε την πληκτρολόγηση χρησιμοποιώντας ./
(ο τρέχων κατάλογος μετακινείται κατά τη διάρκεια της διαδικασίας κατασκευής):
/test/oops$ make -C /where/you/built/the/kernel M=/test/oops CC [M] /home/duck/Articles/linuxoops/oops.o MODPOST /home/duck/Articles/linuxoops/ Module.symvers CC [M] /home/duck/Articles/linuxoops/oops.mod.o LD [M] /home/duck/Articles/linuxoops/oops.ko
Μπορείτε να φορτώσετε και να ξεφορτώσετε το νέο oops.ko
μονάδα πυρήνα με την παράμετρο level=0
απλά για να ελέγξω ότι λειτουργεί.
Κοιτάξτε μέσα dmesg
για ένα ημερολόγιο του init
και exit
κλήσεις:
/test/oops# insmod oops.ko level=0 /test/oops# rmmod oops /test/oops# dmesg . . . [12690.998373] ωχ: φόρτωση της μονάδας εκτός δέντρου αλλοιώνει τον πυρήνα. [12690.999113] ουπς init (επίπεδο = 0) [12704.198814] ωχ έξοδος
Να προκαλέσει ένα ουπς (ανακτήσιμο) ή α πανικός (θα κρεμάσει τον υπολογιστή σας), χρησιμοποιήστε level=1
or level=2
αντίστοιχα.
Μην ξεχάσετε να αποθηκεύσετε όλη την εργασία σας πριν ενεργοποιήσετε οποιαδήποτε συνθήκη (θα χρειαστεί να κάνετε επανεκκίνηση στη συνέχεια) και μην το κάνετε στον υπολογιστή κάποιου άλλου χωρίς επίσημη άδεια.
- SEO Powered Content & PR Distribution. Ενισχύστε σήμερα.
- Platoblockchain. Web3 Metaverse Intelligence. Ενισχύθηκε η γνώση. Πρόσβαση εδώ.
- πηγή: https://nakedsecurity.sophos.com/2023/03/13/linux-gets-double-quick-double-update-to-fix-kernel-oops/
- :είναι
- $UP
- 1
- a
- απότομα
- Απόλυτος
- Όλα
- ήδη
- πάντοτε
- και
- εμφανίζομαι
- ΕΙΝΑΙ
- γύρω
- AS
- συσχετισμένη
- At
- συγγραφέας
- αυτόματη
- πίσω
- φόντο
- background-image
- BE
- επειδή
- γίνονται
- πριν
- είναι
- παρακάτω
- Καλύτερα
- σύνορο
- Κάτω μέρος
- Διακοπή
- Έντομο
- χτίζω
- χτισμένο
- κουμπί
- by
- κλήση
- που ονομάζεται
- κλήσεις
- CAN
- περίπτωση
- Αιτία
- Κέντρο
- Αλλαγές
- αλλαγή
- έλεγχος
- κωδικός
- χρώμα
- Comm
- υπολογιστή
- κατάσταση
- διαμόρφωση
- Εξετάστε
- θεωρήσεις
- πρόξενος
- έλεγχος
- Βολικός
- Διαφθορά
- θα μπορούσε να
- Ζευγάρι
- Πορεία
- κάλυμμα
- Crash
- Ρεύμα
- Τομή
- τομή
- ημερομηνία
- διαρροή δεδομένων
- Ημ.
- γοητευτικός
- Υπηρεσίες
- Display
- εμφάνιση
- Όχι
- Μην
- κάτω
- αυτοκίνητο
- οδηγός
- χωματερή
- κατά την διάρκεια
- Νωρίς
- είτε
- Άλλος
- τελειώνει
- αρκετά
- περιβάλλοντα
- Even
- εκδηλώσεις
- Κάθε
- καθημερινά
- παράδειγμα
- έξοδος
- διερευνήσει
- Αρχεία
- Εύρεση
- τέλος
- σταθερός
- ακολουθείται
- Για
- επίσημος
- Τύχη
- Πάγωμα
- από
- FS
- πλήρη
- γενικά
- παίρνω
- να πάρει
- δεδομένου
- καλός
- Ήμισυ
- Κρεμώ
- συνέβη
- υλικού
- Έχω
- ύψος
- βοήθεια
- εδώ
- κράτημα
- φτερουγίζω
- HTTPS
- αμέσως
- in
- Συμπεριλαμβανομένου
- κακόφημος
- εγκαθιστώ
- εγκατασταθεί
- IT
- ορολογία
- γνωστός
- laptop
- Επίθετο
- οδηγήσει
- που οδηγεί
- Led
- Επίπεδο
- Μου αρέσει
- συνδέονται
- linux
- Λιστα
- Λίστες
- φορτίο
- φόρτωση
- πλέον
- κοιτάζοντας
- Παρτίδα
- κάνω
- Κατασκευή
- διαχείριση
- πολοί
- Περιθώριο
- max-width
- απλώς
- μήνυμα
- μηνύματα
- Μονάδα μέτρησης
- ενότητες
- περισσότερο
- κινήσεις
- όνομα
- ονόματα
- Κοντά
- Ανάγκη
- Νέα
- νέα
- κανονικός
- αντικειμένων
- ευκαιρία
- of
- on
- ONE
- συνεχή
- Κώδικας πράξης
- Επιλογή
- παραγωγή
- Πανικός
- παράμετρος
- παράμετροι
- μονοπάτι
- Παύλος
- επίδοση
- άδεια
- τηλέφωνο
- Πλάτων
- Πληροφορία δεδομένων Plato
- Πλάτωνα δεδομένα
- θέση
- δυνατός
- Δημοσιεύσεις
- δύναμη
- πιθανώς
- Πρόβλημα
- προβλήματα
- διαδικασια μας
- αποδείχθηκε
- παρέχουν
- παρέχεται
- qr-κωδικοί
- γρήγορα
- RBX
- κυκλοφόρησε
- Δελτία
- αναφέρθηκαν
- Αναφορά
- απόδοση
- Ρολό
- RSI
- ίδιο
- Αποθήκευση
- Οθόνη
- δευτερόλεπτα
- ασφάλεια
- φαινόταν
- τον καθορισμό
- διάφοροι
- αυστηρός
- Κοντά
- δείχνουν
- παρουσιάζεται
- τερματίστε
- Κλείνει
- απλά
- Θραύση
- So
- μέχρι τώρα
- λογισμικό
- στέρεο
- μερικοί
- Κάποιος
- κάτι
- Πηγή
- πρωτογενής κώδικας
- Εκκίνηση
- Κατάσταση
- παραμονή
- χώρος στο δίσκο
- θέμα
- Υποφέρει
- προμήθεια
- SVG
- διακόπτης
- σύστημα
- λέει
- δοκιμή
- ότι
- Η
- τους
- Τους
- τους
- πράγματα
- Μέσω
- ώρα
- Τίτλος
- προς την
- σήμερα
- κορυφή
- Ιχνος
- μετάβαση
- διαφανής
- ενεργοποίηση
- ταλαιπωρία
- συνήθως
- Αβέβαιος
- up-to-ημερομηνία
- ενημερώθηκε
- ενημερώσεις
- ενημέρωση
- URL
- us
- χρήση
- Χρήστες
- Χρήστες
- Ταχύτητα
- εκδοχή
- μέσω
- Τρόπος..
- εβδομάδα
- σαββατοκύριακο
- Ποιό
- ολόκληρο
- πλάτος
- θα
- παράθυρα
- με
- χωρίς
- λέξη
- Εργασία
- εργάστηκαν
- δούλεψε μια χαρά
- λειτουργεί
- θα
- χρόνια
- Εσείς
- Σας
- τον εαυτό σας
- zephyrnet