След като шест месеца разработка, изданието FreeBSD 15.1 е завършено. Инсталационните пакети са подготвени за архитектури amd64, aarch64, armv7, powerpc64, powerpc64le и riscv64. Допълнително се предлагат пакети за виртуализационни системи (QCOW2, VHD, VMDK, raw) и облачни среди Amazon EC2, Google Compute Engine и Vagrant. FreeBSD 15.1 ще бъде поддържано до април 2027 година, а актуализации за версия 15.x ще се издават до 31 декември 2029 година.
Основни промени:
- Драйверите за безжични устройства rtw88 (Realtek 802.11n/ac), rtw89 (Realtek 802.11ax) и iwlwifi (Intel 02.11a/b/g/n/ac/ax/be) са синхронизирани с ядрото на Linux 7.0.
- В ядрото е реализиран фреймуърк за избор на планировчик на задачи. В конфигурацията на ядрото на системите amd64, в допълнение към използвания по подразбиране планировчик SCHED_ULE, е активирана версията класическия планировчик на задачи SCHED_4BSD. За избор на планировчик на задачи по време на зареждане е добавен sysctl параметър kern.sched.
- Извършена е работа за осигуряване на поддръжка на стандарта C23 в кодовата база за компилаторите в режим C23. Пълната поддръжка на C23 се очаква в версия FreeBSD 16. В новия стандарт са добавени константи nullptr, тип _BitInt(n) и ключовите думи bool, true и false, които могат да конфликтуват с идентификатори в стария код със същото име. Поддръжката на C23 ще позволи използването на нови възможности на езика в кода на FreeBSD, като заглавния файл stdbit.h, функцията memalignment(), обновените limits.h и stdint.h с макроса _WIDTH и типа char8_t.
- В пакетния филтър ipfw е реализирана възможността за задаване на произволни маски в таблиците (lookup table), позволяващи игнориране на всякакви комбинации от битове в ключовете и елементите на таблицата; например, могат да се използват непоследователни маски, IP адресикато «lookup src-ip4:255.255.253.255». Кодът за съвместимост с версиите на пакетния филтър ipfw, предлагани преди изданието на FreeBSD 8, е премахнат.
- Разрешено е насочването на IPv6 пакети към divert сокети, в които преди това беше разрешена работа само с IPv4. В командата ifconfig е добавен флаг ‘stableaddr’ за генериране на стабилни IPv6 адреси, които не се променят за всяка подсет (Stateless Address Autoconfiguration, RFC 7217).
- Командната обвивка по подразбиране за потребителите «root» и «freebsd» е сменена от csh на sh.
- Добавен е инструмент setaudit за управление на политиките на системния одит.
- В инструмента find са добавени опции «-xattr» и «-xattrname» за търсене на файлове с оглед на разширените атрибути на файловете.
- В утилитата newfs е добавена опция «-u», която деактивира механизма за софтуерни актуализации и журналиране за UFS2.
- По подразбиране е премахната утилитата ipfs, използвана за запазване и възстановяване на таблиците за адресна транслация, и е изключена необходимата за нейната работа функционалност в ядрото (може да бъде възстановена в настройките на сборката).
- В скрипта bsdinstall по подразбиране е включена инсталацията на pkgbase с компонентите, посочени в променливата COMPONENTS. Старият метод на инсталация базиран на distset остава достъпен, ако е определена променливата DISTRIBUTIONS.
- В стандартните библиотеки са добавени функции tdestroy,
strdupa,
strndupa,
posix_spawnattr_getexecfd_np,
posix_spawnattr_setexecfd_np,
pthread_tryjoin_np.
В функциите memcpy, memmove и memset на системите AArch64 са внедрени оптимизации на базата на инструкции MOPS (Memory Operations). - Добавена е библиотеката libuvmem с реализации на механизма за разпределение на памет vmem, работещ в потребителското пространство и предоставяща съвместимо с vmem API за приложенията.
- В образите за на виртуални машини и облачни системи е включен пакетен мениджър pkg и е реализирана поддръжка за атомно обновление на пакета с основната система при първоначално зареждане.
- В конфигурацията на ядрото MINIMAL е включен драйвера virtio_scsi, позволяващ зареждането на системата в виртуални машини на базата на qemu/kvm.
- Реализирани са системни извиквания pdwait и pdfork за новия механизъм за създаване и завършване на процеси, използващ дескриптори на процеси.
- В прослойката за съвместимост с Linux е добавен fcntl F_DUPFD_QUERY, използващ kcmp KCMP_FILE за проверка на файлов дескриптор в Linux контейнери.
- Включена е сборка на драйвера iwx за безжични адаптери Intel AX210/AX211/AX411 с поддръжка за Wi-Fi 6E и Wi-Fi 7.
- Драйверите са обновени. Добавена е поддръжка за мрежови адаптери Intel E835-XXV-4 и Intel E835 Ethernet, RAID контролери, използвани в сървъри Fujitsu PRIMERGY, а също и NVMe устройства, приложени в Google Compute Engine C4. Поддръжката на платформи Raspberry Pi е подобрена. Добавена е поддръжка за броячи за проследяване на производителността (hwpmc), предоставени в процесорите Intel Alder Lake, Alder Lake-N и Emerald Rapids.
- Драйверът hid е конфигуриран да предоставя достъп на потребителите от групата game, което позволява достъп до игрови контролери без повишаване на привилегии, използвайки библиотеки, подобни на libsdl.
- В утилитата mt е осигурена съвместимост с лентови устройства, поддържащи стандартите LTO-10 и LTO-10P (Linear Tape-Open Generation 10).
- В екипа «zpool prefetch» е добавена поддръжка на метаданни BRT (Block Reference Table), които подобряват производителността на клониране и освобождаване на блокове.
- В клиента NFS е добавена поддръжка за експортиране на файлови системи, които не вземат предвид регистъра на символите при имената на файлове и директории.
При бездискова зареждане чрез NFSv4 е реализирана поддръжка за монтиране на NFS-раздел в качеството на основна файловата система и мапинг на имена или идентификатори на потребители чрез nfsuserd. Добавена е начална поддръжка на разширение към NFSv4.2 с POSIX ACL. сървър В клиента NFSv4 е добавена поддръжка на атрибута архивиране (UF_ARCHIVE), използван в NFS-клиента на Windows. - В интерфейса splash е добавена възможността за задаване на заставка в PNG формат, показвана при изключване на системата.
- Добавен е sysctl net.inet.ipf.jail_allowed, който позволява свързването с набор от настройки и правила за пакетно филтриране ipfilter в Jail-окружение.
- Добавен е sysctl allow.vmm_ppt за пробив на достъп до PCI-устройства в изолирани среди на базата на хипервизора bhyve.
- В GPU-драйвера на базата на virtio е реализирана поддръжка на виртуални среди, базирани на Parallels Desktop.
- Добавена е поддръжка на регистрите FGT (Fine-Grained Trap), механизма Extended Destination ID и инструкциите MOPS (Memory Operations), които разширяват възможностите за виртуализация и увеличават производителността на системи ARM64. Добавена е поддръжка на ARM64-расширението LASS (Linear Address Space Separation) за усилване на изолацията между ядрото и потребителското пространство.
- В реализацията на framebuffer на хипервизора bhyve е добавена поддръжка на UNIX-сокети, позволяващи прехвърляне на графичната конзола в Jail без мрежа.
- Актуализирани версии на OpenZFS 2.4.2, OpenSSL 3.5.6, NSS 3.123.1, xz 5.8.3, tcpdump 4.99.6, zlib 1.3.2, zstd 1.5.7, blocklistd 2026-02-07, ncurses 6.6, bsddialog 1.0.5, bmake 20251111, SQLite 3.50.4, unbound 1.25.1, MIT Kerberos 1.22.2, Heimdal Kerberos 1.22.2.
- Конзолният шрифт spleen е актуализиран до версия 2.2.0 и разширен с допълнителни символи (дълго тире, кратко тире, дефис, ъглови скоби, бял квадрат, кръст и двойен кръст). Подобрен е подравняването на символите на екрани с висока плътност на пиксели. Тablците на символи Unicode са актуализирани до версия 17.0.0, в която са добавени 4803 символа.
- Подсистемата blacklist е прекръстена на blocklist с фонов процес blocklistd. Старите настройки в rc-скриптове и правила за пакетно филтриране продължават да действат, но водят до показване на предупреждение.
- Инструментите OpenPAM са пренесени в новия пакет FreeBSD-pam, а библиотеката Zstandard и утилитата zstd в пакета FreeBSD-zstd.
- На системите, инсталирани чрез пакетите freebsd-base, е блокиран извикването на строителните скриптове installworld и installkernel, за да се избегне несъответствие между състоянието на системата и пакетите.
- Създаването на сборки в OCI (Oracle Cloud Infrastructure) формат е прекратено.
- Утилитите fdisk, bsdlabel, lpr, lpd, lpc, lpq, lprm, lp, pac, lptest и chkprintcap са обявени за остарели и ще бъдат премахнати в клон FreeBSD 16. Вместо fdisk и bsdlabel, се препоръчва да се използват gpart или bsdinstall за работа с дискови дялове, а за организиране на печат - порт print/cups или sysutils/LPRng. В FreeBSD 16 също така се планира да бъдат премахнати sysctls hw.ata.rotating и hw.ata.unmapped_io, както и драйверите hifn (криптоускорители Hifn 7751/7951/7811/7955/7956), safe (криптоускорители SafeNet SafeXcel 1141/1741), le (AMD Am7900 LANCE и Am79C9xx ILACC/PCnet Ethernet), fdc (контролер за флопи диск) и agp (Accelerated Graphics Port).
Източник: opennet.ru
