The release of the desktop-oriented operating system MidnightBSD 4.0 has taken place, based on FreeBSD with elements ported from DragonFly BSD, OpenBSD and NetBSD. The basic desktop environment is built on the basis of Xfce (optionally, you can install the GNUstep + Window Maker + GWorkspace combination). Unlike other FreeBSD desktop builds, MidnightBSD was originally developed as a fork of FreeBSD 6.1-beta, which was synchronized with the FreeBSD 7 codebase in 2011 and subsequently absorbed many features from the FreeBSD 9-13 branches. For package management, MidnightBSD uses the mport system, which uses a SQLite database to store indexes and metadata, or the Ravenports toolkit. To download a 1 GB installation image has been prepared (i386, amd64).
The release is notable for updating versions of third-party libraries and transferring fixes and new features from the FreeBSD 13 branch. Main innovations:
- The mport package manager has been updated to version 2.7.3, which now includes the ability to check individual ports with the “mport verify” command and restore checksums with the “mport verify” command -r”. The mport_install command provides work with dependencies.
- The init, service and cron programs use environment variables set for a user or user class via login.conf.
- The kernel has added support for memory mapping in W^X mode, which prohibits simultaneous write and execution access.
- Instead of GNU grep, a BSD-licensed version of the grep utility has been used.
- Added compatible with Linux copy_file_range system call, as well as aio_readv and aio_writev system calls.
- Added support for process debugging using procfs.
- Added backlight driver to control backlighting.
- The cpufreq driver now supports Intel Speed Shift technology.
- Added support for NFSv4.2, NFS over TLS, and extended attributes.
- The transition to the implementation of the ZFS file system from the OpenZFS project (2.1.15) has been made.
- The implementation of the FUSE subsystem has been updated to version 7.28 with support for FUSE_COPY_FILE_RANGE and FUSE_LSEEK.
- Support for the algorithm for proportional reduction in the rate of sending packets has been integrated into the TCP stack (Proportional Rate Reduction, RFC 6937), which allows you to quickly restore optimal flow parameters after temporary problems with data transfer.
- Added support for nested VLANs (802.1ad).
- Support for the SCTP protocol has been moved to a separate module sctp.ko, which is disabled by default in the GENERIC kernel.