Release of FreeBSD 13.0

Two and a half years after the 12.x branch was formed, FreeBSD 13.0 has been released, prepared for the amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64, and riscv64 architectures. Additional images have been created for virtualization systems (QCOW2, VHD, VMDK, raw) and cloud environments such as Amazon EC2, Google Compute Engine, and Vagrant.

Key innovations:

  • The transition to a unified c Linux implementation of the ZFS file system from the OpenZFS project has been completed. Among the features now available in FreeBSD after the switch to OpenZFS are: an extended quota system, dataset encryption, separate selection of allocation classes, the use of vector processor instructions to accelerate RAIDZ implementation and checksum calculations, support for the ZSTD compression algorithm, multihost mode (MMP, Multi Modifier Protection), improved command-line tools, and fixes for many race condition and lock-related issues.
  • The port for the ARM64 (AArch64) architecture has been promoted to Tier 1 support level, which is maintained by teams responsible for addressing vulnerabilities, preparing releases, and maintaining ports. Tier 1 support includes the creation of installation builds, binary updates, and ready packages, as well as guarantees for resolving specific issues and maintaining ABI stability for user environments and the kernel (with exceptions for certain subsystems).
  • The i386 architecture has been moved to Tier 2 support for platforms, under which the creation of installation builds, binary updates, and ready packages will continue, but it does not guarantee the resolution of specific issues. The CPU type (CPUTYPE) for the i386 architecture has been changed from 486 to 686 by default (if desired, builds for i486 and i586 can be created manually).
  • The components clang, lld, lldb, compiler-rt, llvm, libunwind, and libc++ have been updated to version 11.
  • Development has been migrated from the centralized Subversion source code management system to a decentralized Git system.
  • The basic system has been cleaned of applications distributed under the GPL license. Binutils 2.17 and gcc 4.2.1 have been removed from the source tree, and all supported architectures have been transitioned to the LLVM/clang toolchain. BSD-licensed versions of grep and dtc (Device Tree Compiler) have been included, replacing the GPL-licensed versions. The amd automatic mounting process has been removed, with its functionality now implemented via autofs. The ctm utility has been removed, with the miscellaneous/ctm port recommended instead.
  • The routing stack has been rewritten, introducing support for nexthop objects that store state information used for delivering packets to their desired destination. The ability to plug in custom routing algorithms has been added. Routing algorithms from DPDK (Data Plane Development Kit) librte have been integrated, allowing optimization for handling very large routing tables. The proxyarp requests now leverage the fib interface. The ability to change the number of fibs on the fly through sysctl net.fibs has been implemented. Support for temporary routes for IPv4 and IPv6 (with a set time-to-live) has been realized.
  • Support for Multipath routing has been rewritten and made more scalable, where search time is independent of the list size (O(1)). The new Multipath implementation is associated with the kernel parameter ROUTE_MPATH, which has replaced RADIX_MPATH and is enabled by default. A sysctl net.route.multipath has been proposed for Multipath management.
  • The cryptographic framework implemented at the kernel level has been revamped, now supporting modern cryptographic algorithms and simplifying the interface for utilizing encryption in drivers and other kernel components. Outdated algorithms such as ARC4, Blowfish, CAST128, DES, DES, MD5-HMAC, and Skipjack have been removed. In IPsec and Kerberos, support for algorithms declared obsolete in RFC 8221 and RFC 6649/8429, including 3DES, has been discontinued. Previously declared obsolete algorithms in the disk encryption subsystem geli and cryptodev have been eliminated.
  • Support for aesni and armv8crypto drivers has been added to the GENERIC kernel to accelerate disk encryption based on geli using AES-NI instructions for amd64/i386 architectures and AES-XTS for ARM64.
  • A driver for Intel QuickAssist Crypto Accelerators (QAT) has been added along with an ossl driver that implements accelerated software encryption routines from OpenSSL, optimized using assembly code. The armv8crypto driver now supports AES-XTS and AES-GCM using the relevant ARMv8 processor instructions.
  • A TLS (kTLS) implementation has been added, operating at the FreeBSD kernel level, which significantly enhances encryption performance for TCP sockets. It supports TLS versions from 1.0 to 1.3. The kernel cryptographic drivers use either AES-CBC or AES-GCM for encryption. To use kTLS in user space, OpenSSL needs to be rebuilt with the WITH_OPENSSL_KTLS option.
  • A new type of network buffer (mbuf) has been introduced, which can represent multiple non-reflected physical memory pages in a single buffer, allowing for improved performance of sendfile(2) calls by reducing the size of mbuf lists in socket buffers.
  • Support for the Proportional Rate Reduction algorithm (RFC 6937) has been integrated into the TCP stack, enabling faster recovery of optimal flow parameters after temporary data transmission issues. To disable PRR, the sysctl net.inet.tcp.do_prr is available.
  • The capabilities of the Bhyve hypervisor have been expanded: support for file sharing via VirtIO-9p (VirtFS) has been added. Snapshot functionality has also been implemented. of virtual machinesSupport for PCI HDAudio devices and additional serial ports COM3 and COM4 has been added. Deprecated device models bvmconsole and bvmdebug have been removed. Stability in working with VNC clients has been improved, including the macOS application 'Screen Sharing.'
  • VirtIO drivers now support the VirtIO V1 specification, improving compatibility of guest systems with FreeBSD across various emulators and hypervisors.
  • For processes attached to jail environments, CPU binding conversion is ensured (the initially bound cpuset to the process will be replaced considering the cpuset of the jail and applied constraints).
  • The ability to build a basic FreeBSD system in environments based on other operating systems has been added. The need for building in other operating systems arises from the desire to utilize Linux or macOS-based continuous integration tools for testing FreeBSD.
  • A new MMC/SD stack has been proposed, based on the CAM framework, allowing the connection of devices with the SDIO (Secure Digital I/O) interface. For instance, SDIO is used in WiFi and Bluetooth modules for many boards, such as the Raspberry Pi 3. The new stack also enables the use of the CAM interface to send SD commands from user-space applications, allowing for the creation of device drivers that operate at the user level.
  • The compatibility layer with Linux has been improved. The DTS (Device Tree Sources) files have been synchronized with the Linux 5.8 kernel.
  • Support for NFSv4.2 (RFC-7862) has been added, and the capability of running NFS over an encrypted communication channel based on TLS 1.3 has been implemented, instead of using Kerberos (sec=krb5p mode), which was limited to encrypting only RPC messages and implemented only in software.
  • The outdated version of the GDB debugger, which was previously installed in the /usr/libexec directory and used by the crashinfo utility, has been removed. Instead of the preinstalled GDB for obtaining detailed information about crash reasons, users are now encouraged to install a fresh version of GDB from ports or packages. Support for debugging processes through procfs has been discontinued. The netgdb driver has been added, allowing access to the kernel debugger over the network.
  • The unsafe gets function has been removed from libc (this function has been excluded from the C11 standard). Adjustments have been made to ports still using this function. The cap_random functions have been removed (use getrandom instead).
  • A new system call copy_file_range has been added, compatible with the implementation from the Linux kernel, allowing data to be copied from one file to another more quickly by performing the operation solely in the kernel without prior reading of data into the process's memory. This system call is also used in server NFSv4.2 for local execution of copy operations on the server (without transferring to the client).
  • The POSIX AIO asynchronous I/O mechanism features support for vectorized functions. In particular, the system calls aio_writev and aio_readv have been added, allowing for vectorized equivalents of the aio_read and aio_write functions.
  • Support for user space components to handle the a.out executable file format on i386 architecture systems has been discontinued. The elf2aout utility has been removed.
  • The ping and ping6 utilities have been merged. The ping utility now supports setting Quality of Service (QoS) parameters via IP DSCP and Ethernet PCP.
  • The freebsd-update utility now displays progress for file downloads and has added the updatesready and showconfig commands to check for updates and display configuration.
  • Significant work has been done to improve support for NUMA (Non-Uniform Memory Access) systems.
  • Graphics drivers and components of the graphical stack have been updated. Issues with environments based on the Wayland protocol have been resolved.
  • A backlight subsystem has been added to create backlight control drivers. The pwm-backlight driver has been added for controlling the backlight of the Pinebook and Pinebook Pro.
  • SCTP protocol support has been moved to a separate sctp.ko module, which is disabled by default in the GENERIC kernel.
  • A new usbhid driver has been proposed for input devices, utilizing the hid framework to work with USB HID devices, instead of the ukbd, ums, and uhid drivers.
  • The cpufreq driver has implemented support for Intel Speed Shift technology.
  • Support for new boards based on 64-bit ARMv8 CPUs has been added, including the Broadcom BCM5871X and NXP LS1046A SoCs.
  • Support for 57-bit virtual addresses (LA57) has been implemented for the AMD64 architecture. Support for Chinese x86 CPUs Hygon Dhyana based on AMD technologies has also been added.
  • The port for the powerpc64 architecture has been transitioned to use LLVM and ABI ELFv2 (binary files from previous versions of FreeBSD will not be compatible with FreeBSD 13). Drivers for virtio, ixl, mrsas, aacraid, and cpld have been ported for powerpc64.
  • Drivers for obsolete Ethernet adapters have been removed:
    • bm(4) BMAC
    • cs(4) Crystal Semiconductor CS8900/CS8920
    • de(4) DEC DC21x4x
    • ed(4) NE-2000 and WD-80×3
    • ep(4) 3Com Etherlink III (3c5x9) ISA
    • ex(4) Intel EtherExpress Pro/10 and Pro/10+
    • fe(4) Fujitsu MB86960A/MB86965A
    • hme(4) Sun Microelectronics STP2002-STQ
    • pcn(4) AMD PCnet
    • sf(4) Starfire
    • sn(4) SMC 91Cxx
    • tl(4) Texas Instruments ThunderLAN
    • tx(4) SMC 83c17x
    • txp(4) 3Com 3XP Typhoon/Sidewinder (3CR990)
    • vx(4) 3Com EtherLink III / Fast EtherLink III (3c59x) PCI
    • wb(4) Winbond W89C840F
    • xe(4) Xircom PCMCIA
  • Drivers ubsec (Broadcom BCM58xx crypto accelerators), ufm (USB FM tuners), ctau (Cronix Tau), cx (Cronix Sigma), and vpo (parallel port SCSI) have been removed.

Source: opennet.ru

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster