Κυκλοφορεί το FreeBSD 13.2 με υποστήριξη Netlink και WireGuard

Μετά από 11 μήνες ανάπτυξης, κυκλοφόρησε το FreeBSD 13.2. Οι εικόνες εγκατάστασης δημιουργούνται για τις αρχιτεκτονικές amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 και riscv64. Επιπλέον, έχουν προετοιμαστεί εκδόσεις για συστήματα εικονικοποίησης (QCOW2, VHD, VMDK, raw) και περιβάλλοντα cloud του Amazon EC2, Google Compute Engine και Vagrant.

Βασικές αλλαγές:

  • Εφάρμοσε τη δυνατότητα δημιουργίας στιγμιότυπων συστημάτων αρχείων UFS και FFS με ενεργοποιημένη την καταγραφή (soft updates). Προστέθηκε επίσης υποστήριξη για την αποθήκευση dumps στο παρασκήνιο (εκτελείται απόρριψη με τη σημαία "-L") με τα περιεχόμενα των μονταρισμένων συστημάτων αρχείων UFS με ενεργοποιημένο το journaling. Από τις δυνατότητες που δεν είναι διαθέσιμες όταν χρησιμοποιείτε το journaling, υπάρχει έλεγχος ακεραιότητας φόντου χρησιμοποιώντας το βοηθητικό πρόγραμμα fsck.
  • Το πρόγραμμα οδήγησης wg που λειτουργεί σε επίπεδο πυρήνα με την υλοποίηση της διεπαφής δικτύου για το VPN WireGuard έχει υιοθετηθεί ως το κύριο μέρος. Για τη χρήση των κρυπτογραφικών αλγορίθμων που απαιτούνται από το πρόγραμμα οδήγησης, επεκτάθηκε το API του υποσυστήματος κρυπτογράφησης πυρήνα του FreeBSD, στο οποίο προστέθηκε μια σύνδεση που επιτρέπει τη χρήση αλγορίθμων από τη βιβλιοθήκη libsodium που δεν υποστηρίζονται στο FreeBSD μέσω του τυπικού API κρυπτογράφησης. Κατά τη διαδικασία ανάπτυξης, πραγματοποιήθηκαν επίσης βελτιστοποιήσεις για την ομοιόμορφη εξισορρόπηση της ανάθεσης εργασιών κρυπτογράφησης και αποκρυπτογράφησης στους πυρήνες της CPU, γεγονός που μείωσε την επιβάρυνση της επεξεργασίας των πακέτων WireGuard.

    Η τελευταία απόπειρα συμπερίληψης του WireGuard στο FreeBSD έγινε το 2020, αλλά κατέληξε σε σκάνδαλο, με αποτέλεσμα να αφαιρεθεί ο ήδη προστιθέμενος κώδικας λόγω χαμηλής ποιότητας, απρόσεκτου χειρισμού buffer, χρήσης stubs αντί επιταγών, ελλιπούς εφαρμογής του πρωτοκόλλου και παραβίαση της άδειας GPL. Μια νέα υλοποίηση που προετοιμάστηκε από κοινού από τις βασικές ομάδες ανάπτυξης του FreeBSD και του WireGuard με τη συμβολή του Jason A. Donenfeld, συγγραφέα του VPN WireGuard, και του John H. Baldwin, διάσημου προγραμματιστή του FreeBSD. Έγινε πλήρης ανασκόπηση των αλλαγών με την υποστήριξη του FreeBSD Foundation πριν γίνει αποδεκτός ο νέος κώδικας.

  • Υλοποιήθηκε η υποστήριξη για το πρωτόκολλο επικοινωνίας Netlink (RFC 3549), το οποίο χρησιμοποιείται στο Linux για την οργάνωση της αλληλεπίδρασης μεταξύ του πυρήνα και των διεργασιών στο χώρο του χρήστη. Το έργο περιορίζεται στην υποστήριξη της οικογένειας λειτουργιών NETLINK_ROUTE για τη διαχείριση της κατάστασης του υποσυστήματος δικτύου στον πυρήνα, η οποία επιτρέπει στο FreeBSD να χρησιμοποιεί το βοηθητικό πρόγραμμα ip Linux από το πακέτο iproute2 για τη διαχείριση διεπαφών δικτύου, τον ορισμό διευθύνσεων IP, τη διαμόρφωση δρομολόγησης και τον χειρισμό αντικείμενα nexthop που αποθηκεύουν δεδομένα κατάστασης που χρησιμοποιούνται για την προώθηση του πακέτου στον επιθυμητό προορισμό.
  • Όλα τα εκτελέσιμα αρχεία του βασικού συστήματος σε πλατφόρμες 64-bit έχουν ενεργοποιημένη από προεπιλογή την τυχαιοποίηση διάταξης χώρου διευθύνσεων (ASLR). Για να απενεργοποιήσετε επιλεκτικά το ASLR, μπορείτε να χρησιμοποιήσετε τις εντολές "proccontrol -ma aslr -s disable" ή "elfctl -e +noaslr".
  • Το ipfw χρησιμοποιεί πίνακες Radix για να αναζητήσει διευθύνσεις MAC, κάτι που σας επιτρέπει να δημιουργείτε πίνακες με διευθύνσεις MAC και να τους χρησιμοποιείτε για να φιλτράρετε την κυκλοφορία. Για παράδειγμα: ipfw πίνακας 1 δημιουργία τύπου mac ipfw πίνακα 1 προσθήκη 11:22:33:44:55:66/48 ipfw προσθήκη skipto tablearg src-mac 'table(1)' ipfw προσθήκη άρνησης src-mac 'table(1, 100 )' ipfw προσθέστε άρνηση αναζήτησης dst-mac 1
  • Προστέθηκαν και διατίθενται για φόρτωση μέσω του loader.conf είναι οι μονάδες πυρήνα dpdk_lpm4 και dpdk_lpm6 με την υλοποίηση του αλγόριθμου αναζήτησης διαδρομής DIR-24-8 για IPv4/IPv6, ο οποίος σας επιτρέπει να βελτιστοποιήσετε τις λειτουργίες δρομολόγησης για κεντρικούς υπολογιστές με πολύ μεγάλους πίνακες δρομολόγησης (δοκιμές παρουσιάζουν αύξηση ταχύτητας 25 %). Το βασικό βοηθητικό πρόγραμμα διαδρομής μπορεί να χρησιμοποιηθεί για τη διαμόρφωση μονάδων (έχει προστεθεί η επιλογή FIB_ALGO).
  • Η υλοποίηση του συστήματος αρχείων ZFS έχει ενημερωθεί στην έκδοση του OpenZFS 2.1.9. Το σενάριο εκκίνησης zfskeys παρέχει αυτόματη φόρτωση κλειδιών που είναι αποθηκευμένα στο σύστημα αρχείων ZFS. Προστέθηκε ένα νέο zpoolreguid σεναρίου RC για την εκχώρηση ενός GUID σε ένα ή περισσότερα zpool (χρήσιμο για κοινόχρηστα περιβάλλοντα εικονικοποίησης δεδομένων, για παράδειγμα).
  • Ο hypervisor Bhyve και η μονάδα vmm υποστηρίζουν τη σύνδεση περισσότερων από 15 εικονικών CPU στο σύστημα φιλοξενούμενων (ρυθμιζόμενη μέσω sysctl hw.vmm.maxcpu). Το βοηθητικό πρόγραμμα bhyve υλοποιεί μια εξομοίωση της συσκευής εισόδου virtio, με την οποία μπορείτε να αντικαταστήσετε τα συμβάντα εισαγωγής πληκτρολογίου και ποντικιού στο σύστημα επισκεπτών.
  • Το KTLS, μια υλοποίηση του πρωτοκόλλου TLS που εκτελείται σε επίπεδο πυρήνα του FreeBSD, προσθέτει υποστήριξη για την επιτάχυνση υλικού TLS 1.3 εκφορτώνοντας ορισμένες από τις λειτουργίες που σχετίζονται με την επεξεργασία κρυπτογραφημένων εισερχόμενων πακέτων στους ώμους της κάρτας δικτύου. Προηγουμένως, αυτή η δυνατότητα ήταν διαθέσιμη για TLS 1.1 και TLS 1.2.
  • Στο σενάριο έναρξης growfs, κατά την επέκταση του ριζικού FS, διασφαλίζεται ότι προστίθεται ένα διαμέρισμα swap εάν ένα τέτοιο διαμέρισμα δεν υπήρχε αρχικά (για παράδειγμα, είναι χρήσιμο κατά την εγκατάσταση μιας έτοιμης εικόνας συστήματος σε μια κάρτα SD). Μια νέα επιλογή, growfs_swap_size, προστέθηκε στο rc.conf για τον έλεγχο του μεγέθους swap.
  • Το σενάριο εκκίνησης του hostid διασφαλίζει ότι δημιουργείται ένα τυχαίο UUID σε περίπτωση που λείπει το αρχείο /etc/hostid και δεν μπορεί να ληφθεί το UUID από το υλικό. Προστίθεται επίσης το αρχείο /etc/machine-id με μια συμπαγή αναπαράσταση του αναγνωριστικού κεντρικού υπολογιστή (χωρίς παύλες).
  • Οι μεταβλητές defaultrouter_fibN και ipv6_defaultrouter_fibN έχουν προστεθεί στο rc.conf, μέσω των οποίων μπορείτε να προσθέσετε προεπιλεγμένες διαδρομές σε πίνακες FIB διαφορετικούς από τον κύριο.
  • Στη βιβλιοθήκη libmd προστέθηκε υποστήριξη για κατακερματισμούς SHA-512/224.
  • Η βιβλιοθήκη pthread υλοποιεί υποστήριξη για τη σημασιολογία των συναρτήσεων που χρησιμοποιούνται στο Linux.
  • Υποστήριξη για την αποκωδικοποίηση κλήσεων συστήματος Linux έχει προστεθεί στο kdump. Η υποστήριξη για την ανίχνευση syscall τύπου Linux έχει προστεθεί στο kdump και στο sysdecode.
  • Το βοηθητικό πρόγραμμα killall έχει τώρα τη δυνατότητα να στέλνει ένα σήμα σε διεργασίες που συνδέονται σε ένα συγκεκριμένο τερματικό (για παράδειγμα, "killall -t pts/1").
  • Προστέθηκε το βοηθητικό πρόγραμμα nproc για την εμφάνιση του αριθμού των υπολογιστικών μονάδων που είναι διαθέσιμες στην τρέχουσα διαδικασία.
  • Υποστήριξη για την αποκωδικοποίηση παραμέτρων ACS (Access Control Services) έχει προστεθεί στο βοηθητικό πρόγραμμα pciconf.
  • Η ρύθμιση SPLIT_KERNEL_DEBUG έχει προστεθεί στον πυρήνα, η οποία επιτρέπει την αποθήκευση πληροφοριών εντοπισμού σφαλμάτων για τις μονάδες πυρήνα και πυρήνα σε ξεχωριστά αρχεία.
  • Το linux ABI είναι σχεδόν πλήρες με την υποστήριξη του μηχανισμού vDSO (εικονικά δυναμικά κοινόχρηστα αντικείμενα), ο οποίος παρέχει ένα περιορισμένο σύνολο κλήσεων συστήματος που είναι διαθέσιμες στο χώρο του χρήστη χωρίς εναλλαγή περιβάλλοντος. Το linux ABI στα συστήματα ARM64 έχει εξισωθεί με την υλοποίηση για την αρχιτεκτονική AMD64.
  • Βελτιωμένη υποστήριξη υλικού. Προστέθηκε υποστήριξη παρακολούθησης απόδοσης (hwpmc) για επεξεργαστές Intel Alder Lake. Ενημερωμένο πρόγραμμα οδήγησης iwlwifi για ασύρματες κάρτες Intel με υποστήριξη για νέα τσιπ και πρότυπο 802.11ac. Προστέθηκε πρόγραμμα οδήγησης rtw88 για ασύρματες κάρτες Realtek PCI. Επέκτασε το επίπεδο linuxkpi για χρήση με προγράμματα οδήγησης FreeBSD Linux.
  • Η βιβλιοθήκη OpenSSL έχει ενημερωθεί στην έκδοση 1.1.1t, το LLVM/Сlang έχει ενημερωθεί στην έκδοση 14.0.5 και ο διακομιστής SSH και ο πελάτης έχουν ενημερωθεί σε OpenSSH 9.2p1 (η προηγούμενη έκδοση χρησιμοποιούσε OpenSSH 8.8p1). Επίσης ενημερώθηκαν τα bc 6.2.4, expat 2.5.0, file 5.43, less 608, libarchive 3.6.2, sendmail 8.17.1, sqlite 3.40.1, unbound 1.17.1, zlib 1.2.13.

Επιπλέον, έχει καταργηθεί και καταργηθεί από τον κλάδο του FreeBSD 14.0 για κωδικούς πρόσβασης μίας χρήσης OPIE, προγράμματα οδήγησης ce και cp, προγράμματα οδήγησης καρτών ISA, βοηθητικά προγράμματα mergemaster και minigzip, στοιχεία ATM στο netgraph (NgATM), τη διαδικασία telnetd background και το VINUM μάθημα γεωμ.

Πηγή: opennet.ru

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