Dva roky po vydaní vetvy 14.0 bola vydaná verzia FreeBSD 15.0. Inštalačné zostavenia sú k dispozícii pre architektúry amd64, aarch64, armv7, powerpc64, powerpc64le a riscv64. Okrem toho sú k dispozícii zostavenia pre virtualizačné systémy (QCOW2, VHD, VMDK, raw) a cloudové prostredia, ako sú Amazon EC2, Google Compute Engine a Vagrant.
Počnúc vetvou FreeBSD 15 sa obdobie údržby hlavných vetiev po prvom vydaní (15.0) skrátilo z 5 na 4 roky, pričom nové hlavné vetvy sa vytvárajú každé dva roky. Medziľahlé vydania (15.1, 15.2, 15.3) budú vyvíjané v pevnom vývojovom cykle, pričom nové verzie budú publikované v jednej vetve približne každých šesť mesiacov, a nie raz ročne, ako to bolo doteraz. Vzhľadom na súčasnú údržbu dvoch rôznych hlavných vetiev bude nové medziľahlé vydanie publikované každé 3 mesiace (15.4, 16.1, 15.5, 16.2 atď.), s výnimkou prípravy prvých vydaní nových hlavných vetiev, pred ktorými bude 6-mesačná prestávka vo vydávaní (napríklad vydanie 15.3 bude vydané v júni 2027, 16.0 v decembri 2027, 15.4 v marci 2028, 16.1 v júni 2028).
Hlavné zmeny vo FreeBSD 15.0 (oficiálne poznámky k vydaniu okrem zmien špecifických pre 15.0 spomínajú aj mnohé funkcie, ktoré boli predtým pridané do vetví 14.1, 14.2 a 14.3):
- Bola zavedená možnosť používať správcu balíkov pkg na inštaláciu a aktualizáciu komponentov základného systému. Balíky pkgbase je možné dodať na inštalačnom médiu pre offline inštaláciu alebo stiahnuť z repozitára pkg.freebsd.org. Repozitár FreeBSD-base nie je v konfigurácii pkg (/etc/pkg/FreeBSD.conf) štandardne povolený. Inštalačný program bsdinstall ponúka dve možnosti inštalácie: tradičnú a s použitím balíkov (pkgbase). Podpora pre tradičnú metódu, v ktorej sa základný systém považuje za monolitické prostredie aktualizované pomocou nástroja freebsd-update, sa plánuje v zostavách FreeBSD 16 odstrániť. Nová metóda, ktorá zahŕňa inštaláciu základného systému ako sady balíkov z repozitára FreeBSD-base, je štandardne ponúkaná v zostaveniach pre... virtuálne stroje a obrazy pre cloudové prostredia, ale v súčasnosti sa považuje za experimentálny pre bežné systémy.
- Bola pridaná podpora pre zostavovanie FreeBSD v neprivilegovaných prostrediach, ktoré nevyžadujú root oprávnenia. Inštalačné ISO obrazy a systémové obrazy pre virtuálne počítače je možné vytvoriť aj bez root oprávnení. Počas procesu zostavovania boli root oprávnenia potrebné na vytváranie súborov zariadení, nastavovanie oprávnení a pripojenie ďalších súborových systémov (napríklad pri vytváraní obrazov diskov).
- Bola implementovaná podpora pre reprodukovateľné zostavenia, ktorá zabezpečuje, že distribuované binárne súbory sú zostavené z poskytnutého zdrojového kódu a neobsahujú skryté úpravy. Reprodukovateľné zostavenia zabezpečujú, že binárne súbory vygenerované zo zdrojového kódu v rôznych prostrediach zostavovania sú identické.
- Generovanie inštalačných obrazov a zostavení binárnych balíkov pre 32-bitové architektúry i386, armv6 a powerpc bolo ukončené. Z 32-bitových platforiem zostáva iba armv7. Možnosť zostavovať 32-bitové programy a používať režim COMPAT_FREEBSD32 na spúšťanie 32-bitových spustiteľných súborov v 64-bitovom jadre zostane minimálne do konca životného cyklu vetvy FreeBSD 16.
- Pridané systémové volania implementujúce mechanizmus inotify na sledovanie zmien v súborových systémoch.
- Pridaná podpora pre pomenované atribúty súborov (rozšírené atribúty v štýle Solarisu), ktoré sa plánujú podporovať ako alternatívny mechanizmus na správu rozšírených atribútov dostupných pre ZFS a NFSv4. Rozdiely oproti tradičným FreeBSD a Linux Metóda práce s rozšírenými atribútmi sa redukuje na reprezentáciu atribútov v servisnom adresári, ktorý je neviditeľný pre hlavný menný priestor súborového systému a je priradený k súboru. Atribúty sa spracovávajú rovnako ako bežné súbory; napríklad na určenie zoznamu atribútov môžete použiť funkciu readdir().
- Modul mac_do bol deklarovaný ako pripravený na použitie, čo vám umožňuje nastaviť politiky, ktoré povoľujú neprivilegovaným používateľom meniť poverenia procesov. Na spúšťanie príkazov pod iným používateľom je pripravený nástroj mdo, podobný nástroju su, ale nevyžaduje root s oprávneniami suid.
- Stav ovládačov DRM pre i915 a amdgpu je synchronizovaný s jadrom. Linux 6.9. Ovládače bezdrôtových zariadení rtw88 (Realtek 802.11n/ac), rtw89 (Realtek 802.11ax) a iwlwifi (Intel 02.11a/b/g/n/ac/ax/be) sú synchronizované s jadrom Linux 6.17.
- Implementácia TLS na strane jadra (KTLS) je predvolene povolená.
- Pridaný nástroj sndctl na správu nastavení zvukovej karty.
- Pridaný nástroj mididump na dumpovanie udalostí MIDI 1.0 v reálnom čase.
- Do hypervízora bhyve bol pridaný nový sieťový backend „slirp“, ktorý používa knižnicu libslirp s implementáciou sieťového zásobníka v používateľskom priestore. Backend „slirp“ umožňuje organizovať prístup k sieti hosťovského systému z hostiteľského prostredia bez samostatnej konfigurácie siete na strane hostiteľa.
- Implementácia Kerberosu v jadre FreeBSD bola nahradená MIT Kerberos z Heimdal Kerberos. Príznak WITHOUT_MITKRB5 je možné použiť na vrátenie Heimdal Kerberos do pôvodného stavu. Vo FreeBSD 16 bude podpora pre zostavovanie Heimdal Kerberos odstránená.
- Správanie systémových volaní setgroups, getgroups a initgroups pri práci so skupinami používateľov je podobné ako na iných platformách (implementácia vo FreeBSD sa líšila v ukladaní efektívneho identifikátora skupiny procesov do nultého prvku poľa so zoznamom skupín).
- Nový repozitár FreeBSD-kmods je štandardne povolený v nastaveniach správcu balíkov pkg. Obsahuje balíky modulov jadra vytvorené pre špecifické vetvy vydania 15.x-RELEASE, a nie pre neustále aktualizovanú vetvu 15-STABLE. Repozitár FreeBSD-kmods rieši problém inštalácie ovládačov, ktoré sa spoliehajú na nestabilné rozhrania jadra (ako sú napríklad grafické ovládače). Repozitáre „FreeBSD“ a „FreeBSD-kmods“, ktoré boli predtým prítomné v súbore /etc/pkg/FreeBSD.conf, boli premenované na „FreeBSD-ports“ a „FreeBSD-ports-kmods“.
- NFS teraz podporuje operáciu CLONE, definovanú v špecifikácii NFSv4.2, ktorá umožňuje rýchle kopírovanie súborov klonovaním blokov na serveri. Tento režim momentálne funguje iba pri exporte ZFS oddielov cez NFS.
- Na systémoch amd64 bola pridaná možnosť používať viac ako 4 TB pamäte RAM.
- Pridaný ovládač ufshci na podporu radičov úložných systémov s rozhraním UFSHCI (Universal Flash Storage Host Controller Interface).
- Sysctl net.link.bridge.member_ifaddrs je štandardne nastavený na 0, t. j. rozhrania je možné pridať do sieťových mostov bez IP adresy.
- Zlepšená spoľahlivosť pre oddiely UFS obsahujúce viac ako 2 000 000 000 inódov. Problém s rokom 2038 bol v implementácii UFS1 vyriešený (možno použiť dátumy až do roku 2106).
- Pridaná možnosť sieťových soketov SO_SPLICE na združovanie TCP pripojení (ako proxy, ktorá funguje bez kopírovania údajov do používateľského priestoru).
- Nástroj grep štandardne zakazuje prechádzanie symbolických odkazov počas rekurzívneho vyhľadávania.
- Pridaný modul jadra nvmftа na podporu ovládačov NVMe over Fabric a utilita nvmecontrol na pripojenie k externému ovládaču NVMe over Fabric.
- Utilita pre dátum teraz podporuje výstup času s presnosťou na nanosekundy, napríklad „date -Ins“ vypíše „2024-04-22T12:20:28,763742224+02:00“.
- Jail teraz podporuje možnosť zfs.dataset na pridanie ZFS oddielu, snapshotu alebo klonu do izolovaného jailu. Príkaz jail teraz podporuje parametre „meta“ a „env“, ktoré možno použiť na viazanie metadát alebo odovzdávanie premenných prostredia. Adresovanie deskriptorov jailu je teraz podporované pomocou funkcií jail_set a jail_get, ako aj systémových volaní jail_attach_jd a jail_remove_jd. Filtre Kevent možno teraz použiť na sledovanie operácií vytvárania, mazania, úpravy a pripájania jailu.
- Nástroj newsyslog má parameter na nastavenie predvolenej metódy kompresie (bzip2, xz, zstd, gzip), čím sa eliminuje potreba špecifikovať samostatné príznaky (J, X, Y, Z) v každom riadku súboru newsyslog.conf.
- V štandardnej knižnici C mnoho reťazcových a pamäťových funkcií používa optimalizácie založené na SIMD.
- Písmo Gallant používané vo virtuálnych termináloch bolo aktualizované o viac ako 4 300 nových glyfov vrátane glyfov s cyrilickými znakmi a matematickými symbolmi.
- Tty má štandardne nastavený príznak IUTF8, ktorý zabezpečuje správne odstránenie znakov UTF-8 po stlačení klávesu Backspace.
- Nástroj dialógového okna používaný v konfigurátore bsdconfig a inštalátore bsdinstall bol nahradený nástrojom bsddialog.
- Nástroj adduser používaný v bsdinstall teraz vytvára samostatnú sadu údajov ZFS (oddiel, snímku alebo klon) pre domovský adresár používateľa, ak sa pre nadradený adresár už používa sada údajov ZFS. Teraz je podporované aj šifrovanie ZFS pre domovské adresáre. Do súboru adduser.conf boli pridané parametre „Zcreate“ a „Zencrypt“ na ovládanie aktivácie týchto funkcií.
- Umožňuje generovanie kontajnerových a systémových obrazov kompatibilných s OCI pre Oracle Cloud.
- Pre cloudové prostredia kompatibilné s AWS EC2 bol pridaný nový typ „malého“ obrazu. Na rozdiel od základných obrazov tieto obrazy neobsahujú ladiace údaje, testy, 32-bitové knižnice, ladiaci nástroj LLDB, agenta Amazon SSM a rozhranie AWS CLI. Základné obrazy EC2 sa teraz načítavajú o 76 % rýchlejšie.
- Nastavenie net.inet.tcp.nolocaltimewait bolo predvolene zakázané a zastarané, t. j. bolo vrátené predvolené vytváranie záznamov TIME_WAIT pre TCP pripojenia ukončené na strane lokálneho systému. Bol pridaný nový sysctl net.inet.tcp.msl_local na konfiguráciu času, ktorý pripojenie strávi v stave TIME_WAIT.
- Predvolene je podpora pre vytváranie sieťových pripojení k localhost, ktoré špecifikujú INADDR_ANY, zakázaná. Ak chcete podporu povoliť, nastavte systémovú hodnotu net.inet.ip.connect_inaddr_wild na hodnotu 1.
- Správca logických zväzkov gvinum, ktorý sa používal pre softvérový RAID, bol odstránený. Vývoj Gvinum sa zastavil asi pred 15 rokmi, a to aj napriek tomu, že kód má množstvo známych problémov, ktorých opravu sa nikto nepokúsil vykonať. Namiesto gvinum sa odporúča používať gconcat, gmirror, gstripe, graid alebo zfs.
- Ovládač agp (Accelerated Graphics Port), ktorý je potrebný pre mnoho ovládačov starších grafických kariet, bude vo FreeBSD 16 odstránený. Nasledujúce ovládače boli tiež zastarané a ich odstránenie je naplánované: fdc (IBM PC Floppy Disk Controller), firewire (IEEE1394 Serial Bus), le (AMD Am7900 LANCE a Am79C9xx Ethernet) a upgt (USB 802.11g).
- Funkcia readdir_r je zastaraná.
- Server SNMP bsnmpd prestal podporovať prenos UDP.
- Generovanie hostiteľských kľúčov RSA pre SSH a EC2 AMI bolo ukončené. Podpora DSA bola z OpenSSH odstránená. Databáza verejných kľúčov, ktorá sa spolieha na algoritmus DES, bola odstránená.
- Porty ftpd a shar boli odstránené zo základného systému a namiesto nich by sa mali používať porty ftp/freebsd-ftpd a sysutils/freebsd-shar.
- Nástroj fdisk je zastaraný a namiesto neho by sa mal používať gpart.
- Ovládač syscons je zastaraný, pretože nie je kompatibilný s UEFI, nepodporuje UTF-8 a spolieha sa na globálny zámok.
- Aktualizované verzie 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
