Το Glibc 2.36 έρχεται με νέες δυνατότητες για Linux, βελτιώσεις και άλλα

Μετά από έξι μήνες ανάπτυξης, ανακοινώθηκε η κυκλοφορία της νέας έκδοσης του glibc 2.36, η οποία συμμορφώνεται πλήρως με τις απαιτήσεις των προτύπων ISO C11 και POSIX.1-2017 και στην οποία η νέα έκδοση περιλαμβάνει διορθώσεις από 59 προγραμματιστές. .

Για όσους δεν είναι εξοικειωμένοι με το Glibc, θα πρέπει να γνωρίζουν τι είναι μια βιβλιοθήκη GNU C, κοινώς γνωστή ως glibc είναι η τυπική βιβλιοθήκη χρόνου εκτέλεσης GNU C. Σε συστήματα όπου χρησιμοποιείται, αυτή η βιβλιοθήκη C που παρέχει και καθορίζει κλήσεις συστήματος και άλλες βασικές λειτουργίες, χρησιμοποιείται σχεδόν από όλα τα προγράμματα. 

Κύρια νέα χαρακτηριστικά του Glibc 2.36

Σε αυτή τη νέα έκδοση που παρουσιάζεται, επισημαίνεται ότι πρόσθεσε υποστήριξη για μια νέα μορφή σχετικής διεύθυνσης μετεγκατάστασης DT_RELR, το οποίο σας επιτρέπει να μειώσετε το μέγεθος των σχετικών μετεγκαταστάσεων σε κοινόχρηστα αντικείμενα και συνδεδεμένα εκτελέσιμα στη λειτουργία PIE (Position Independent Executables). Η χρήση του πεδίου DT_RELR σε αρχεία ELF απαιτεί υποστήριξη για την επιλογή "-z pack-relative-relocs" στον σύνδεσμο, που εισάγεται στο binutils 2.38.

Μια άλλη αλλαγή που ξεχωρίζει στη νέα έκδοση είναι ότι για Linux οι λειτουργίες pidfd_open, pidfd_getfd και pidfd_send_signal υλοποιήθηκαν για να παρέχουν πρόσβαση στη λειτουργία pidfd που βοηθά στον χειρισμό καταστάσεων επαναχρησιμοποίησης PID για την ακριβέστερη αναγνώριση των διεργασιών που έχουν πρόσβαση στα παρακολουθούμενα αρχεία (το pidfd σχετίζεται με μια συγκεκριμένη διαδικασία και δεν αλλάζει, ενώ το PID μπορεί να προσαρτηθεί σε άλλη διεργασία μετά το τέλος της διαδικασίας). τρέχουσα διαδικασία που σχετίζεται με αυτήν PID).

Εκτός αυτού, Επίσης στο Linux έρχεται το process_madvise()Ότι επιτρέπει σε μια διεργασία να εκτελέσει μια κλήση συστήματος madvise() για λογαριασμό μιας άλλης διεργασίας, προσδιορίζοντας τη διαδικασία στόχου χρησιμοποιώντας το pidfd. Μέσω του madvise(), μπορείτε να ενημερώσετε τον πυρήνα για τα χαρακτηριστικά της εργασίας με τη μνήμη για τη βελτιστοποίηση της διαχείρισης μνήμης της διαδικασίας, για παράδειγμα, με βάση τις πληροφορίες που έχουν περάσει, ο πυρήνας μπορεί να αρχίσει να απελευθερώνει επιπλέον ελεύθερη μνήμη.

Σημειώνεται επίσης ότι η συνάρτηση προστέθηκε process_mrelease(), που σας επιτρέπει να επιταχύνετε την απελευθέρωση της μνήμης για μια διεργασία που τερματίζει την εκτέλεσή της. Υπό κανονικές συνθήκες, η απελευθέρωση πόρων και ο τερματισμός της διαδικασίας δεν είναι στιγμιαία και μπορεί να καθυστερήσουν για διάφορους λόγους, παρεμποδίζοντας τα συστήματα έγκαιρης προειδοποίησης του χώρου χρήστη όπως το oomd (παρέχεται από το systemd). Καλώντας το process_mrelease, αυτά τα συστήματα μπορούν πιο προβλέψιμα να ξεκινήσουν ανακτήσεις μνήμης για διαδικασίες που τερματίστηκαν αναγκαστικά.

Από την άλλη, σημειώνεται ότι έχει προστεθεί υποστήριξη για την επιλογή "no-aaaa". για την ολοκληρωμένη εφαρμογή του Ανάλυση DNS, η οποία σας επιτρέπει να απενεργοποιήσετε την αποστολή αιτημάτων DNS για εγγραφές AAAA (καθορισμός διεύθυνσης IPv6 κατά όνομα κεντρικού υπολογιστή), ακόμη και όταν εκτελούνται λειτουργίες NSS όπως το getaddrinfo(), για απλοποίηση της αντιμετώπισης προβλημάτων. Αυτή η επιλογή δεν επηρεάζει τον χειρισμό των συνδέσεων διευθύνσεων IPv6 που ορίζονται στο /etc/hosts και τις κλήσεις προς getaddrinfo() με τη σημαία AI_PASSIVE.

Για Linux, προστέθηκαν οι λειτουργίες fsopen, fsmount, move_mount, fsconfig, fspick, open_tree και mount_setattr για παρέχει πρόσβαση σε ένα νέο API πυρήνα για τον έλεγχο του τρόπου με τον οποίο προσαρτώνται τα συστήματα αρχείων με βάση τους χώρους ονομάτων προσαρτήσεων. Οι προτεινόμενες λειτουργίες επιτρέπουν τη χωριστή επεξεργασία διαφορετικών βημάτων στερέωσης (επεξεργασία του superblock, λήψη πληροφοριών για το σύστημα αρχείων, τοποθέτηση, προσάρτηση στο σημείο προσάρτησης), τα οποία προηγουμένως εκτελούνταν χρησιμοποιώντας την κοινή συνάρτηση mount().

Προστέθηκαν τις λειτουργίες arc4random, arc4random_buf και arc4random_uniform για την παροχή δεσμεύσεων στην κλήση συστήματος τυχαία και τη διεπαφή / dev / urandom, επιστρέφοντας ψευδοτυχαίους αριθμούς υψηλής ποιότητας.

Όταν εκτελείται σε Linux, παρέχεται υποστήριξη για την αρχιτεκτονική. από το σύνολο οδηγιών LoongArch χρησιμοποιείται σε επεξεργαστές Loongson 3 5000 και έχει εφαρμοστεί ένα νέο RISC ISA παρόμοιο με το MIPS και το RISC-V. Στην τρέχουσα μορφή του, είναι διαθέσιμη μόνο συμβατότητα με παραλλαγή 64 bit από το LoongArch (LA64). Απαιτεί τουλάχιστον binutils 2.38, GCC 12 και Linux kernel 5.19 για να εκτελεστεί.

Από τις άλλες αλλαγές που ξεχωρίζουν:

  • Ο μηχανισμός προσύνδεσης, καθώς και οι συσχετισμένες μεταβλητές περιβάλλοντος LD_TRACE_PRELINKING και LD_USE_LOAD_BIAS και οι δυνατότητες σύνδεσης, έχουν καταργηθεί και θα καταργηθούν σε μελλοντική έκδοση.
  • Καταργήθηκε ο κώδικας για τον έλεγχο της έκδοσης του πυρήνα του Linux και τον χειρισμό της μεταβλητής περιβάλλοντος LD_ASSUME_KERNEL. Η ελάχιστη έκδοση του πυρήνα που υποστηρίζεται κατά τη μεταγλώττιση του Glibc καθορίζεται από το πεδίο ELF NT_GNU_ABI_TAG.
  • Η μεταβλητή περιβάλλοντος LD_LIBRARY_VERSION έχει καταργηθεί στην πλατφόρμα Linux.

Τέλος, εάν ενδιαφέρεστε να μάθετε περισσότερα σχετικά, μπορείτε να συμβουλευτείτε τις λεπτομέρειες Στον ακόλουθο σύνδεσμο.


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.