The release of the free UNIX-like operating system OpenBSD 7.2 has been announced. The OpenBSD project was founded by Theo de Raadt in 1995 after a conflict with the developers of NetBSD, which resulted in Theo being denied access to the NetBSD CVS repository. Following this, Theo de Raadt, along with a group of like-minded individuals, created a new open operating system based on the source code tree of NetBSD, with the primary goals of portability (supporting 13 hardware platforms), standardization, correct operation, proactive security, and integrated cryptographic tools. The size of the complete installation ISO image of the basic OpenBSD 7.2 system is 556 MB.
In addition to the operating system itself, the OpenBSD project is known for its components that have been adopted in other systems and proven to be among the most secure and high-quality solutions. Among them: LibreSSL (a fork of OpenSSL), OpenSSH, the packet filter PF, routing daemons OpenBGPD and OpenOSPFD, the NTP server OpenNTPD, mail server OpenSMTPD, terminal multiplexer (analog of GNU screen) tmux, identd daemon implementing the IDENT protocol, BSDL alternative to the GNU groff package — mandoc, protocol for organizing fault-tolerant systems CARP (Common Address Redundancy Protocol), lightweight HTTP server, and the file synchronization utility OpenRSYNC.
Key Improvements:
- Support for ARM architecture-based systems has been improved, including support for Apple M2 and Ampere Altra ARM chips. Support for the Lenovo ThinkPad x13s laptop and other devices based on the Qualcomm Snapdragon 8cx Gen 3 (SC8280XP) SoC has been added.
- The ability to boot in Oracle Cloud environments with the ramdisk kernel (bsd.rd) and multiprocessor systems kernel (bsd.mp) has been added.
- The kstat device has been included, which exports statistics about kernel operations that can be viewed using the kstat utility.
- Frequency sensors for each CPU core supporting MPERF/APERF have been implemented. When operating on battery, CPU frequency scaling based on load is enabled.
- Initial sleep mode support has been added for ARM64 systems. The limit on the number of supported CPUs has been increased to 256. The ability to switch from a framebuffer-based console (glass console) to a serial port-based console (serial console) has been implemented.
- Code for detecting CPUs 386sx/386dx, NexGen, Rise, and older Cyrix processors released before the Cyrix M2 chip has been removed.
- Support for multiprocessor systems (SMP) has been enhanced. Rate limit functions, ARP record lookup, and route timer have been made mp-safe. The ability to perform operations such as IPv4 packet reassembly and IP packet redirection in parallel has been implemented. Socket locks using mutex have been added to the functions handling incoming UDP and IP packets. The kbind and pledge system calls have been freed from locks. UNIX socket locks that operate at the level of individual sockets have also been implemented.
- The implementation of the DRM (Direct Rendering Manager) framework is synchronized with the Linux kernel 5.15.69 (previously 5.15.26). Support for Intel chips based on Alder Lake and Raptor Lake microarchitectures has been added to the inteldrm driver. Support for framebuffers that are not page-aligned (used, for example, in the MacBook Pro 2021 14" and 16") has been implemented.
- Improvements have been made to the VMM hypervisor. Support for user-space handlers based on MMIO has been added to vmd. In vmm, I/O port emulation has been moved to user space. Internal structures and interfaces in vmd, vmctl, and vmm have been unified. Monitoring capabilities have been added of virtual machines using SNMP AgentX, utilizing VM-MIB parameters (RFC7666).
- The variable $rcexec in rc.d initialization scripts has been replaced with the rc_exec function. A new variable daemon_execdir has been added to allow changing the directory before executing the rc_exec function. rc.d and rcctl have a new action configtest added to check configuration syntax.
- Included is the ts utility, which adds the time reflecting the moment each line is received to the lines fed through standard input.
- The ps utility has gained the option '-f' for tree grouping of processes, reflecting the relationship between parent and child processes.
- The openrsync utility has implemented the '--contimeout' option to set the connection timeout.
- The pkg_add utility now includes caching by default, optimizes package handling, and provides a progress indicator during data transfer.
- Improvements have been made to fdisk for GPT and MBR tables, adding warnings for improper placement of MBR and GPT partitions.
- The disklabel utility has added support for the raid keyword in templates for automatic placement of RAID partitions. Support for editing disk geometry information has been discontinued. Support for attributes 'bs' (boot block size), 'sb' (superblock size), and d[0-4] (disk data) has been discontinued.
- A collection of useful btrace scripts for dynamic tracing and inspecting applications has been placed in the directory /usr/share/btrace.
- The sndio audio library has added the sio_flush function for immediate playback stopping.
- Included is the llvm-profdata utility for profiling data handling.
- The wc utility has been optimized for faster word counting.
- Support for new hardware has been added, including new drivers:
- aplaudio (Apple audio subsystem).
- aplmca (Apple MCA controller).
- aplsart (Apple SART).
- alpdc, apldchidev, apldckbd, apldcms, aplrtk (keyboard and trackpad for Apple M2).
- qcgpio, qciic (GPIO and GENI I2C controllers for Qualcomm Snapdragon).
- sfgpio, stfclock, stfpinctrl, stftemp (drivers for GPIO, timer, and sensors on SiFive boards).
- sxirintc (interrupt controller for Allwinner chips).
- gpiorestart (driver for reset via GPIO).
- Support for power sensors has been expanded in ipmi.
- Support for the controller used on Marvell 3720 boards has been added in ehci.
- The igc driver for Intel I225 gigabit Ethernet adapters includes hardware acceleration for checksum calculations for IPv4, TCP, and UDP. The ix driver for Intel 82598/82599/X540/X550 Ethernet adapters supports hardware acceleration for TCP segmentation processing (Large Receive Offloading), enabled with the tso option in ifconfig.
- Support for Intel AX210/AX211 chips has been added in the iwx driver, broadening the range of recognized wireless devices.
- Booting from softraid software RAID 1 partitions is now possible on amd64, sparc64, and arm64 systems.
- Privilege separation has been implemented in snmpd and xlock.
- Isolation via the unveil system call has been ensured in the bind and connect functions for UNIX sockets.
- A new system call ypconnect has been added to create a socket for connecting to proxy server YP using an IP address from the blocked ypbinding file. The ‘local bind’ mode has been added to ypldap, which binds the RPC socket to the loopback interface to exclude external connections to the server.
- Programs hcpleased, mountd, nfsd, pflogd, resolvd, slaacd, and unwind, located in the /sbin directory, have switched to using dynamic linking for additional protection measures applicable to dynamically linked executables.
- System calls sendmmsg and recvmmsg have been implemented in the network stack, allowing the sending and reading of multiple messages within a single system call that would previously require separate sendmsg and recvmsg calls.
- The pf packet filter has changed how it handles IGMP and ICMP6 MLD (Multicast Listener Discovery) packets, allowing for the proper functioning with multicast control packets in the default configuration. A stricter check of IGMP/MLD messages has been implemented.
- IPsec has improved its work with certificates. The iked has improved compatibility with OpenIKED. The ikectl show stats command now includes statistics about successful and failed connections to iked.
- A max-communities filter has been added to bgpd to limit the number of allowed communities, implementing RFC 9234 (Route Leak Prevention and Detection Using Roles in UPDATE and OPEN Messages) and providing full support for RFC 7911 (Advertisement of Multiple Paths in BGP). Static hashes have been replaced with RB-trees to enhance performance for large systems. A bgplgd process has been added with the implementation of a FastCGI server, providing a REST API for bgpctl commands.
- The rpki-client now allows the use of multiple CRL URIs in certificates, implements a skiplist parameter for ignoring domains, adds the ability to check ASPA (Autonomous System Provider Authorization) and sig files, implements decoding of TAL (RFC 8630), tightens the checking of EE certificates, and improves compatibility with HTTP specifications.
- In snmpd, the use of object names in snmpd.conf is now permitted in addition to OID. A blacklist feature has been implemented to exclude subtrees from output. The implementation of the AgentX protocol has added support for a master agent.
- New MIME type definitions have been proposed for httpd.
- The ftp utility has been adapted to use connections processed in a non-blocking mode using ppoll.
- In tmux ("terminal multiplexer"), the ability to use ACL for organizing multiple users' connections through a single socket has been added.
- The LibreSSL and OpenSSH packages have been updated. A detailed overview of improvements can be found in the reviews of LibreSSL 3.6.0 and OpenSSH 9.1.
- The number of ports for the AMD64 architecture amounted to 11451 (previously 11301), for aarch64 - 11261 (previously 11081), for i386 - 10225 (previously 10136). Among the application versions in the ports:
- Asterisk 16.28.0, 18.14.0 and 19.6.0
- Audacity 2.4.2
- CMake 3.24.2
- Chromium 105.0.5195.125
- Emacs 28.2
- FFmpeg 4.4.2
- GCC 8.4.0 and 11.2.0
- GHC 9.2.4
- GNOME 42.4
- Go 1.19.1
- JDK 8u342, 11.0.16 and 17.0.4
- KDE Gear 22.08.1
- KDE Frameworks 5.98.0
- Krita 5.1.1
- LLVM/Clang 13.0.0
- LibreOffice 7.4.1.2
- Lua 5.1.5, 5.2.4 and 5.3.6
- MariaDB 10.9.3
- Mono 6.12.0.182
- Mozilla Firefox 105.0.1 and ESR 102.3.0
- Mozilla Thunderbird 102.3.0
- Mutt 2.2.7 and NeoMutt 20220429
- Node.js 16.17.1
- OCaml 4.12.1
- OpenLDAP 2.6.3
- PHP 7.4.30, 8.0.23 and 8.1.10
- Postfix 3.7.2
- PostgreSQL 14.5
- Python 2.7.18, 3.9.14 and 3.10.7
- Qt 5.15.6 and 6.3.1
- R 4.2.1
- Ruby 2.7.6, 3.0.4 and 3.1.2
- Rust 1.63.0
- SQLite 3.39.3
- Shotcut 22.06.23
- Sudo 1.9.11.2
- Suricata 6.0.6
- Tcl/Tk 8.5.19 and 8.6.12
- TeX Live 2021
- Vim 9.0.0192 and Neovim 0.7.2
- Xfce 4.16
- Third-party components included in OpenBSD 7.2 have been updated:
- The graphical stack Xenocara based on X.Org 7.7 with xserver 1.21.4 + patches, freetype 2.12.1, fontconfig 2.13.94, Mesa 22.1.7, xterm 372, xkeyboard-config 2.20, fonttosfnt 1.2.2.
- LLVM/Clang 13.0.0 (+ patches)
- GCC 4.2.1 (+ patches) and 3.3.6 (+ patches)
- Perl 5.32.1 (+ patches)
- NSD 4.6.0
- Unbound 1.16.3
- Ncurses 5.7
- Binutils 2.17 (+ patches)
- Gdb 6.3 (+ patch)
- Awk 12.9.2022
- Expat 2.4.9
Source: opennet.ru
