Validation of new features introduced in FreeBSD 15.0-RELEASE on nexus server.
| Feature | Description | Status |
|---|---|---|
| Native inotify | Linux-compatible file notification API | PASS |
| OpenZFS 2.4.0 | Latest ZFS with improvements | PASS |
| OpenSSL 3.5 | Post-quantum cryptography support | PASS |
| pkgbase | Base system installable via pkg | N/A |
| libsys separation | Cleaner syscall interface | PASS |
FreeBSD 15.0 adds native inotify(7) support for Linux compatibility.
/* inotify_test.c - Test inotify on FreeBSD 15.0 */
#include <stdio.h>
#include <sys/inotify.h>
#include <unistd.h>
int main() {
int fd = inotify_init();
if (fd < 0) {
perror("inotify_init");
return 1;
}
int wd = inotify_add_watch(fd, "/tmp", IN_CREATE | IN_DELETE);
if (wd < 0) {
perror("inotify_add_watch");
close(fd);
return 1;
}
printf("inotify working on FreeBSD 15.0!\n");
printf("fd=%d, wd=%d\n", fd, wd);
inotify_rm_watch(fd, wd);
close(fd);
return 0;
}cc -o /tmp/inotify_test examples/inotify_test.c && /tmp/inotify_testinotify enables tools like inotifywait and applications expecting Linux-style
file change notifications to work natively on FreeBSD.
pkg install inotify-tools # Optional
inotifywait -m /tmp & # Monitor /tmp for changesFreeBSD 15.0 includes OpenZFS 2.4.0 with performance improvements.
zfs versionzpool status zroot | head -15
zfs list -o name,used,available,compression | head -10
- Block cloning support
- Performance optimizations
- Better memory management
- Enhanced error handling
FreeBSD 15.0 includes OpenSSL 3.5 with ML-KEM (Kyber) support.
openssl version -a | head -5openssl list -kem-algorithms
openssl genpkey -algorithm ML-KEM-768 -out /tmp/mlkem.pem
openssl pkey -in /tmp/mlkem.pem -text -noout | head -8
rm -f /tmp/mlkem.pem
| Algorithm | Security Level | Notes |
|---|---|---|
| ML-KEM-512 | NIST Level 1 | Lightweight, fast |
| ML-KEM-768 | NIST Level 3 | Balanced (recommended) |
| ML-KEM-1024 | NIST Level 5 | Highest security |
| X25519MLKEM768 | Hybrid | Classical + PQC combined |
openssl ciphers -v 'TLSv1.3' | head -5FreeBSD 15.0 supports installing base system components via pkg (optional).
cat /etc/pkg/FreeBSD-base.conf 2>/dev/null || echo "pkgbase not configured (traditional install)"Create /usr/local/etc/pkg/repos/FreeBSD-base.conf:
FreeBSD-base: {
url: "pkg+https://pkg.FreeBSD.org/${ABI}/base_release"
mirror_type: "srv"
signature_type: "fingerprints"
fingerprints: "/usr/share/keys/pkg"
enabled: yes
}Then:
pkg update
pkg install FreeBSD-runtime FreeBSD-utilities- Granular base system updates
- Remove unused base components
- Mix release and stable packages
- Easier jail/container management
FreeBSD 15.0 introduces libsys.so.7 for cleaner syscall separation.
ls -la /lib/libsys.so*ldd /bin/ls | grep -E "(libc|libsys)"+-------------+
| Application |
+------+------+
|
v
+------+------+
| libc.so.7 | <- Standard C library functions
+------+------+
|
v
+------+------+
| libsys.so.7 | <- System call wrappers (NEW in 15.0)
+------+------+
|
v
+------+------+
| Kernel | <- FreeBSD kernel
+-------------+
- Cleaner architecture separation
- Easier syscall tracing with dtrace/ktrace
- Better security boundaries
- Simplified library updates
This is why interrupting freebsd-update install during 15.0 upgrade is
dangerous: if libc.so.7 is installed before libsys.so.7, all dynamic
executables fail with:
ld-elf.so.1: Shared object "libsys.so.7" not found
See: FreeBSD Bug 289769, fixed in FreeBSD-EN-25:18
uname -a
freebsd-version -kusysctl hw.model hw.ncpu hw.physmem | awk '/physmem/ {printf "%s %.2f GB\n", $1, $2/1024/1024/1024} !/physmem/ {print}'=== FreeBSD 15.0 Features Validation Summary === 1. Native inotify: Status: PASS 2. OpenZFS 2.4.0: zfs-2.4.0-rc4-FreeBSD_g099f69ff5 Status: PASS 3. OpenSSL 3.5 + Post-Quantum: OpenSSL 3.5.4 30 Sep 2025 ML-KEM-768: Available Status: PASS 4. pkgbase: Not configured (traditional install) Status: N/A (optional) 5. libsys separation: /lib/libsys.so.7 present Status: PASS === All core features validated ===