Po dvou letech od vydání verze 14.0 byl uvolněn balík FreeBSD 15.0. Instalace byly připraveny pro architektury amd64, aarch64, armv7, powerpc64, powerpc64le a riscv64. Dále jsou k dispozici balíčky pro virtualizační systémy (QCOW2, VHD, VMDK, raw) a cloudová prostředí Amazon EC2, Google Compute Engine a Vagrant.
Od verze FreeBSD 15 byl zkrácen čas podpory hlavních větví po vydání první verze (15.0) z 5 na 4 roky a nové hlavní větve budou vytvářeny jednou za dva roky. Mezitímní verze (15.1, 15.2, 15.3) se budou vyvíjet v rámci pevného cyklu vývoje, přičemž nové verze v jedné větvi budou vydávány přibližně každých 6 měsíců, nikoli jednou za rok, jak tomu bylo dosud. Vzhledem k současné podpoře dvou různých hlavních větví bude nová meziverze vydávána každé 3 měsíce (15.4, 16.1, 15.5, 16.2 atd.), s výjimkou přípravy prvních vydání nových hlavních větví, před kterými bude 6měsíční pauza ve vydáních (např. verze 15.3 bude vydána v červnu 2027, 16.0 v prosinci 2027, 15.4 v březnu 2028, 16.1 v červnu 2028).
Hlavní změny ve FreeBSD 15.0 (v oficiální poznámce o vydání, kromě specifických změn pro vydání 15.0, jsou zmíněny i mnohé funkce dříve přidané do verzí 14.1, 14.2 a 14.3):
- Byla zavedena možnost používání balíčkového manažera pkg pro instalaci a aktualizaci komponent základního systému. Balíčky pkgbase mohou být dodávány na instalačním médiu pro offline instalaci nebo stahovány z repozitáře pkg.freebsd.org. V konfiguraci pkg (/etc/pkg/FreeBSD.conf) není repozitář FreeBSD-base ve výchozím nastavení zahrnut. Instalátor bsdinstall nabízí dvě možnosti instalace: tradiční a pomocí balíčků (pkgbase). Podporu tradičního způsobu, kdy je základní systém považován za monolitické prostředí aktualizované pomocí nástroje freebsd-update, plánují v rámci verze FreeBSD 16 odstranit. Nová metoda, která předpokládá instalaci základního systému jako souboru balíčků z repozitáře FreeBSD-base, byla ve výchozím nastavení nabídnuta v sestavách pro virtuálních strojů a obrazy pro cloudová prostředí, ale zatím je považována za experimentální pro běžné systémy.
- Byla přidána podpora pro sestavení FreeBSD v nepřístupných prostředích, které nevyžadují práva root. Bez práv root je také možné vytvářet instalační ISO obrazy a systémové obrazy pro virtuální stroje. V průběhu sestavení byla práva root nezbytná pro vytváření zařízení, nastavení přístupových práv a připojení dalších souborových systémů (například při vytváření diskových obrazů).
- Byla implementována podpora pro opakovatelná sestavení, která umožňují ověřit, že distribuované binární soubory byly sestaveny z poskytnutého zdrojového kódu a neobsahují skryté změny. Opakovatelná sestavení zajišťují identitu binárních souborů, které jsou vytvářeny ze zdrojového kódu v různých sestavovacích prostředích.
- Bylo zastaveno vytváření instalačních obrazů a sestavení binárních balíčků pro 32bitové architektury i386, armv6 a powerpc. Z 32bitových platforem byla ponechána pouze armv7. Možnost sestavovat 32bitové programy a používat režim COMPAT_FREEBSD32 pro spouštění 32bitových spustitelných souborů v prostředí založeném na 64bitovém jádře zůstane nejméně do konce životního cyklu větve FreeBSD 16.
- Byly přidány systémové volání s implementací mechanismu inotify pro sledování změn v souborových systémech.
- Byla přidána podpora pojmenovaných atributů souborů (rozšířených atributů ve stylu Solaris), které mají být podporovány jako alternativní mechanismus pro správu rozšířených atributů přístupných pro ZFS a NFSv4. Rozdíly oproti tradičním metodám práce s rozšířenými atributy ve FreeBSD a Linuxu spočívají v tom, že atributy jsou prezentovány ve speciálním adresáři, který není viditelný v hlavním prostoru názvů FS a je asociovaný se souborem. Práce s atributy se provádí stejně jako s běžnými soubory, například pro zjištění seznamu atributů lze použít funkci readdir().
- Byl vyhlášen do provozu modul mac_do, který umožňuje definovat politiky, které umožňují nepřiděleným uživatelům měnit identifikační údaje procesů. Pro spouštění příkazů pod jiným uživatelským účtem byl připraven nástroj mdo, který je podobný nástroji su, ale nevyžaduje suid root.
- Stav ovladačů DRM i915 a amdgpu byl synchronizován s jádrem Linux 6.9. Ovladače bezdrátových zařízení rtw88 (Realtek 802.11n/ac), rtw89 (Realtek 802.11ax) a iwlwifi (Intel 02.11a/b/g/n/ac/ax/be) byly synchronizovány s jádrem Linux 6.17.
- Implementace protokolu TLS na úrovni jádra (KTLS) je ve výchozím nastavení povolena.
- Byl přidán nástroj sndctl pro správu nastavení zvukových karet.
- Byl přidán nástroj mididump pro výpis událostí MIDI 1.0 v reálném čase.
- Do hypervizoru bhyve byl přidán nový síťový backend „slirp“, který používá knihovnu libslirp s realizací síťového zásobníku v uživatelském prostoru. Backend „slirp“ umožňuje organizovat přístup k síti hostitelského systému z hostitelského prostředí bez nutnosti další konfigurace sítě na straně hostitele.
- Realizace Kerberos v hlavní části FreeBSD byla nahrazena Heimdal Kerberos MIT Kerberos. Pro návrat k Heimdal Kerberos při sestavování lze použít přepínač WITHOUT_MITKRB5. Ve FreeBSD 16 bude podpora sestavování Heimdal Kerberos odstraněna.
- Chování systémových volání setgroups, getgroups a initgroups při zpracování uživatelských skupin se přiblížilo chování jiných platforem (rozdíl v implementaci ve FreeBSD spočíval v uchovávání efektivního identifikátoru skupiny procesů v nulovém prvku pole se seznamem skupin).
- V nastavení balíkového správce pkg byl ve výchozím nastavení zahrnut nový repozitář FreeBSD-kmods, ve kterém jsou umístěny balíky s moduly jádra sestavenými pro konkrétní vydané větve 15.x-RELEASE, nikoli trvale aktualizovanou větev 15-STABLE. Repozitář FreeBSD-kmods řeší problém s instalací ovladačů závislých na nestabilních rozhraních jádra (například grafické ovladače). Dříve přítomné repozitáře „FreeBSD“ a „FreeBSD-kmods“ v /etc/pkg/FreeBSD.conf byly přejmenovány na „FreeBSD-ports“ a „FreeBSD-ports-kmods“.
- V NFS byla přidána podpora operace CLONE, definované ve specifikaci NFSv4.2, která umožňuje rychlé kopírování souborů prostřednictvím klonování bloků na serveru. Tento režim zatím funguje pouze při exportu oddílů ZFS přes NFS.
- Na systémech amd64 byla přidána možnost využití více než 4 TB RAM.
- Byl přidán ovladač ufshci pro podporu řadičů úložných systémů s rozhraním UFSHCI (Universal Flash Storage Host Controller Interface).
- Sysctl net.link.bridge.member_ifaddrs je ve výchozím nastavení nastaven na 0, tj. do síťových mostů lze přidávat rozhraní bez. IP adress.
- Byla zvýšena spolehlivost provozu oddílů s FS UFS, které obsahují více než 2,000,000,000 inode. V implementaci FS UFS1 byl vyřešen problém roku 2038 (je možné používat data až do roku 2106).
- Byla přidána možnost síťových soketů SO_SPLICE pro sloučení TCP připojení (podobně jako proxy, která funguje bez kopírování dat do uživatelského prostoru).
- V nástroji grep je ve výchozím nastavení zakázána procházení symbolických odkazů při rekurzivním vyhledávání.
- Byl přidán modul jádra nvmfta pro podporu řadičů NVMe over Fabric a nástroj nvmecontrol pro připojení k externímu řadiči NVMe over Fabric.
- Do nástroje date byla přidána podpora pro výstup času s nanosekundovou přesností, například "date -Ins" vrátí "2024-04-22T12:20:28,763742224+02:00".
- Do jail byla přidána podpora volby zfs.dataset pro přidání oddílu, snapshotu nebo klonu ZFS do izolovaného jailového prostředí. Do příkazu jail byla přidána podpora parametrů „meta“ a „env“, pomocí kterých je možné připojovat metadata nebo přenášet proměnné prostředí. Přidala se možnost adresace jailových prostředí podle jail-deskriptorů, pro práci s nimi byly navrženy funkce jail_set a jail_get, stejně jako systémové volání jail_attach_jd a jail_remove_jd. Také byla přidána možnost používat filtry kevent pro sledování operací vytváření, odstraňování, změny a připojení Jail.
- V utilitě newsyslog byl implementován parametr pro určení výchozího metody komprese (bzip2, xz, zstd, gzip), což eliminuje potřebu uvádění jednotlivých příznaků (J, X, Y, Z) v každém řádku newsyslog.conf.
- Ve standardní C knihovně bylo v mnoha funkcích pro práci se řetězci a pamětí využito optimalizací založených na instrukcích SIMD.
- Do písma Gallant, používaného ve virtuálních terminálech, bylo přidáno více než 4300 nových glyfů, včetně glyfů se znaky cyrilice a matematickými symboly.
- Ve výchozím nastavení má tty nastavený příznak IUTF8, který umožňuje správné mazání znaků UTF-8 při stisku Backspace.
- Utility dialog, používaná v konfiguračním nástroji bsdconfig a instalátoru bsdinstall, byla nahrazena bsddialog.
- V utilitě adduser, používané v bsdinstall, bylo zajištěno vytvoření samostatného ZFS datasetu (oddílu, snapshotu nebo klonu) pro domácí adresář uživatele, pokud je ZFS dataset již používán pro nadřazený adresář. Také byla přidána možnost používání šifrování domácích adresářů prostřednictvím ZFS. Pro správu aktivace těchto možností byly do adduser.conf přidány parametry „Zcreate“ a „Zencrypt“.
- Bylo zajištěno vytváření OCI-kompatibilních obrazů kontejnerů a systémových obrazů pro Oracle Cloud.
- Byl přidán nový typ obrazů „small“ pro cloudová prostředí kompatibilní s AWS EC2. Na rozdíl od základních obrazů byly z nich vyloučeny ladicí data, testy, 32bitové knihovny, debugger LLDB, Amazon SSM Agent a AWS CLI. Spuštění obrazů „base“ pro EC2 bylo urychleno o 76%.
- Nastavení net.inet.tcp.nolocaltimewait je ve výchozím nastavení zakázáno a prohlášeno za zastaralé, tj. byla obnovena výchozí tvorba záznamů TIME_WAIT pro TCP připojení ukončená na straně lokálního systému. Pro nastavení doby, po kterou je spojení ve stavu TIME_WAIT, byl přidán nový sysctl net.inet.tcp.msl_local.
- Ve výchozím nastavení je zakázána podpora vytváření síťových připojení k localhostu, u kterých je uveden INADDR_ANY. Pro obnovení podpory je možné nastavit sysctl net.inet.ip.connect_inaddr_wild sysctl na hodnotu 1.
- Byl odstraněn správce logických svazků gvinum, který se používal pro softwarový RAID. Vývoj Gvinum se zastavil před asi 15 lety, přičemž v kódu je řada známých problémů, které nikdo dosud neopravil. Místo gvinum se doporučuje používat gconcat, gmirror, gstripe, graid nebo zfs.
- Ve FreeBSD 16 je naplánováno odstranění ovladače agp (Accelerated Graphics Port), který je nezbytný pro chod mnoha ovladačů starších grafických karet. Také byly oznámeny jako zastaralé a naplánovány k odstranění ovladače: fdc (IBM PC Floppy Disk Controller), firewire (IEEE1394 Serial Bus), le (AMD Am7900 LANCE a Am79C9xx Ethernet) a upgt (USB 802.11g).
- Funkce readdir_r byla prohlášena za zastaralou.
- Na SNMP serveru bsnmpd byla ukončena podpora transportu UDP.
- Generace hostitelských klíčů RSA pro SSH a EC2 AMI byla ukončena. Podpora DSA byla odstraněna z OpenSSH. Byla odstraněna databáze publickey, závislá na algoritmu DES.
- Z základního systému byly odstraněny ftpd a shar, místo nich by se měly používat porty ftp/freebsd-ftpd a sysutils/freebsd-shar.
- Nástroj fdisk byl vyhlášen jako zastaralý, místo něj by se měl používat gpart.
- Ovladač syscons byl zařazen mezi zastaralé, protože není kompatibilní s UEFI, nepodporuje UTF-8 a je závislý na globální blokaci.
- Byly aktualizovány verze LLVM 19.1.7, OpenSSH 10.0p2, OpenSSL 3.5.4, OpenZFS 2.4.0rc4, Lua 5.4.8, jemalloc 5.3.0, Awk 20250804 (s podporou UTF-8), bc 7.1.0, unicode 16.0.0, ncurses 6.5, libarchive 3.8.2, tcpdump 4.99.5, unbound 1.24.1, less 679, file 5.46, GoogleTest 1.15.2.
Zdroj: opennet.ru
