Po dveh letih od objave veje 14.0 je bil ustvarjen izdajni paket FreeBSD 15.0. Namestitveni paketi so pripravljeni za arhitekture amd64, aarch64, armv7, powerpc64, powerpc64le in riscv64. Dodatno so na voljo paketi za virtualizacijske sisteme (QCOW2, VHD, VMDK, raw) in oblačna okolja Amazon EC2, Google Compute Engine in Vagrant.
Začnemo z vejo FreeBSD 15, se je čas trajanja pomembnih vej po izdaji prve različice (15.0) skrajšal s 5 let na 4 leta, nove pomembne veje pa bodo ustvarjene na vsakih dve leti. Prehodne različice (15.1, 15.2, 15.3) bodo razvite v okviru fiksnega razvojnega cikla, ki predvideva objavo novih različic v eni veji približno vsakih 6 mesecev, namesto enkrat na leto, kot je bilo do zdaj. Ob upoštevanju sočasnega vzdrževanja dveh različnih pomembnih vej bo nova prehodna različica izšla enkrat na 3 mesece (15.4, 16.1, 15.5, 16.2 itd.), razen pri pripravi prvih izdaj novih pomembnih vej, kjer bo pred tem 6-mesečni premor med izdajami (na primer, izdaja 15.3 bo ustvarjena junija 2027, 16.0 decembra 2027, 15.4 pa marca 2028, 16.1 junija 2028).
Glavne spremembe v FreeBSD 15.0 (v uradnem spremnem pismu k različici, poleg sprememb specifičnih za izdajo 15.0 so omenjene številne funkcionalnosti, ki so bile prej dodane v veje 14.1, 14.2 in 14.3):
- Možnost uporabe upravitelja paketov pkg za namestitev in posodabljanje komponent osnovnega sistema je bila omogočena. Paketi pkgbase so lahko na voljo na namestitvenem nosilcu za offline namestitev ali jih je mogoče prenesti iz repozitorija pkg.freebsd.org. V konfiguraciji pkg (/etc/pkg/FreeBSD.conf) repozitorij FreeBSD-base ni privzeto vključen. Namestitveni program bsdinstall ponuja dve možnosti namestitve: tradicionalno in z uporabo paketov (pkgbase). Podpora tradicionalni metodi, kjer se osnovni sistem obravnava kot monolitno okolje, ki se posodablja s pomočjo orodja freebsd-update, naj bi bila odstranjena v veji FreeBSD 16. Nov metod, ki predvideva namestitev osnovnega sistema kot nabor paketov iz repozitorija FreeBSD-base, je privzeto predlagan v izdajah za virtualnih naprav in slike za oblačna okolja, vendar je za zdaj obravnavan kot eksperimentalni za običajne sisteme.
- Dodana je podpora za gradnjo FreeBSD v neprivilegiranih okoljih, ki ne zahtevajo pravic root. Brez pravic root je prav tako mogoče ustvariti namestitvene iso-podobe in sistemske podobe za virtualne stroje. V fazi gradnje so bile pravice root potrebne za ustvarjanje napravnih datotek, dodeljevanje dostopnih pravic in montiranje dodatnih datotečnih sistemov (na primer pri ustvarjanju diskovnih podob).
- Implementirana je podpora za reproducibilne gradnje, ki omogočajo preverjanje, da so distribuirane binarne datoteke zbrane iz danega izvornega kode in ne vsebujejo skritih sprememb. Reproducibilne gradnje zagotavljajo identiteto binarnih datotek, ki so oblikovane iz izvornega kode v različnih gradbenih okoljih.
- Ustavljanje generiranja namestitvenih podob in zbiranja binarnih paketov za 32-bitne arhitekture i386, armv6 in powerpc. Od 32-bitnih platform ostane le armv7. Možnost zbiranja 32-bitnih programov in uporabe načina COMPAT_FREEBSD32 za zagon 32-bitnih izvršnih datotek v okolju, ki temelji na 64-bitnem jedru, bo ohranjena vsaj do konca življenjskega cikla veje FreeBSD 16.
- Dodani so sistemski klici z implementacijo mehanizma inotify za sledenje spremembam v datotečnih sistemih.
- Dodana je podpora poimenovanih atributov datotek (razširjenih atributov v slogu Solaris), ki jih nameravajo podpirati kot alternativni mehanizem za upravljanje razširjenih atributov, dostopnih za ZFS in NFSv4. Razlike od tradicionalnih metod dela z razširjenimi atributi v FreeBSD in Linux se nanašajo na predstavitev atributov v službeni imenik, ki ni viden v glavnem prostoru imen FS in je povezan z datoteko. Z operacijami z atributi se ravna kot z običajnimi datotekami, na primer, za določitev seznama atributov lahko izvedemo funkcijo readdir().
- Objavljen je modul mac_do, ki omogoča določitev politik, ki dovoljujejo neprivilegiranim uporabnikom spreminjanje poverilnic procesov. Orodje mdo, podobno orodju su, je pripravljeno za zagon ukazov pod drugim uporabnikom, vendar ne zahteva suid root.
- Stanje DRM gonilnikov i915 in amdgpu je usklajeno z jedrom Linux 6.9. Gonilniki brezžičnih naprav rtw88 (Realtek 802.11n/ac), rtw89 (Realtek 802.11ax) in iwlwifi (Intel 02.11a/b/g/n/ac/ax/be) so usklajeni z jedrom Linux 6.17.
- Izvedba protokola TLS na strani jedra (KTLS) je privzeto vključena.
- Dodana je orodje sndctl za upravljanje nastavitev zvočnih kartic.
- Dodana je orodje mididump za posnetke MIDI 1.0 dogodkov v realnem času.
- V hipervizor bhyve je dodan nov omrežni vmesnik 'slirp', ki uporablja knjižnico libslirp z implementacijo omrežnega sklada v prostoru uporabnika. Vmesnik 'slirp' omogoča dostop do omrežja gostiteljskega sistema iz okolja gostitelja brez dodatne konfiguracije omrežja na strani gostitelja.
- Izvedba Kerberosa v osnovni sestavi FreeBSD je zamenjana iz Heimdal Kerberosa na MIT Kerberos. Za vračanje Heimdal Kerberosa pri gradnji lahko uporabite zastavico WITHOUT_MITKRB5. V FreeBSD 16 bo podpora za gradnjo Heimdal Kerberosa odstranjena.
- Obnašanje sistemskih klicev setgroups, getgroups in initgroups pri obdelavi skupin uporabnikov je približano drugim platformam (razlika v izvedbi v FreeBSD se je nanašala na shranjevanje učinkovitega identifikatorja skupine procesov v ničelni element tabele s seznamom skupin).
- V nastavitvah upravitelja paketov pkg je privzeto vključen nov repozitorij FreeBSD-kmods, v katerem so paketi z modulini jedra, zgrajenimi za specifične izdajne veje 15.x-RELEASE, namesto neprekinjeno posodobljene veje 15-STABLE. Repozitorij FreeBSD-kmods rešuje težave s nameščanjem gonilnikov, vezanih na nestabilne vmesnike jedra (na primer grafične gonilnike). Prej prisotni repozitoriji v /etc/pkg/FreeBSD.conf 'FreeBSD' in 'FreeBSD-kmods' so preimenovani v 'FreeBSD-ports' in 'FreeBSD-ports-kmods'.
- V NFS je dodana podpora za operacijo CLONE, določeno v specifikaciji NFSv4.2, ki omogoča hitro kopiranje datotek s kloniranjem blokov na strežniku. Način trenutno deluje samo pri izvozu delitev ZFS preko NFS.
- Na amd64 sistemima dodana je mogućnost korišćenja više od 4TB RAM-a.
- Dod driver ufshci za podršku kontrolerima skladišta sa interfejsom UFSHCI (Universal Flash Storage Host Controller Interface).
- Sysctl net.link.bridge.member_ifaddrs po defaultu je postavljen na 0, tj. u mrežne bridge moguće je dodavati interfejse bez IP naslovov.
- Povečana je zanesljivost delovanja razdelkov z datotečnim sistemom UFS, ki vsebujejo več kot 2.000.000.000 inode. V implementaciji datotečnega sistema UFS1 je bila rešena težava iz leta 2038 (uporaba datumov do leta 2106 je mogoča).
- Dodata je opcija mrežnih soketa SO_SPLICE za spajanje TCP veza (poput proxy-ja, koji radi bez kopiranja podataka u korisnički prostor).
- U alatu grep po defaultu je isključen obilazak simboličkih linkova prilikom rekurzivnog pretraživanja.
- Dodan je nvmfta kernel modul za podršku NVMe preko Fabric kontrolera i alat nvmecontrol za povezivanje sa spoljnim NVMe over Fabric kontrolerom.
- Alatu date dodata je podrška za ispis vremena sa nanosekundnom preciznošću, na primer, "date -Ins" će prikazati "2024-04-22T12:20:28,763742224+02:00".
- V zaporu je dodana podpora za možnost zfs.dataset za dodajanje razdelka, posnetka ali klona ZFS v izolirano okolje zapora. V ukaz jail je dodana podpora za parametre 'meta' in 'env', preko katerih je mogoče povezovati metapodatke ali prenašati okoljske spremenljivke. Dodana je možnost naslavljanja zaporov po opisnikih zapora, za katerih obravnavo so na voljo funkcije jail_set in jail_get, pa tudi sistemski klici jail_attach_jd in jail_remove_jd. Dodana je možnost uporabe filtrov kevent za sledenje operacijam ustvarjanja, odstranjevanja, spremembe in povezovanja Jaila.
- V orodju newsyslog je implementirana možnost za določitev privzetega načina stiskanja (bzip2, xz, zstd, gzip), kar odpravlja potrebo po natančni navedbi ločenih oznak (J, X, Y, Z) v vsaki vrstici newsyslog.conf.
- V standardni knjižnici C je v mnogih funkcijah za delo s nizi in pomnilnikom uporabljena optimizacija na osnovi SIMD navodil.
- V pisavi Gallant, ki se uporablja v virtualnih terminalih, je bilo dodanih več kot 4300 novih glifov, vključno z glifi s cirilskimi znaki in matematičnimi znaki.
- U tty po defaultu je postavljena zastavica IUTF8, pri kojoj se ispravno uklanjaju UTF-8 simboli pritiskom na Backspace.
- Orodje dialog, uporabljeno v konfiguratorju bsdconfig in namestitvenem programu bsdinstall, je zamenjano z bsddialog.
- V orodju adduser, ki se uporablja v bsdinstall, je zagotovljeno ustvarjanje ločenega ZFS dataset-a (razdelka, posnetka ali klona) za domači imenik uporabnika, če je ZFS dataset že uporabljen za matični imenik. Dodana je tudi možnost uporabe šifriranja domačih imenikov z ZFS. Za upravljanje aktivacije teh možnosti so v adduser.conf dodani parametri 'Zcreate' in 'Zencrypt'.
- Zagotovljeno je oblikovanje OCI-veljavnih slik kontejnerjev in sistemskih slik za Oracle Cloud.
- Dodana je nova vrsta slik 'small' za oblačna okolja, združljiva z AWS EC2. V nasprotju z osnovnimi slikami so iz njih odstranjeni podatki za odpravljanje napak, testi, 32-bitne knjižnice, razhroščevalnik LLDB, Amazon SSM Agent in AWS CLI. Nalaganje slik 'base' za EC2 je pospešeno za 76%.
- Po defaultu je isključena i označena kao zastarela postavka net.inet.tcp.nolocaltimewait, tj. vraćeno je kreiranje po defaultu TIME_WAIT zapisa za TCP veze, prekinute na strani lokalnog sistema. Dodata je nova sysctl postavka net.inet.tcp.msl_local za podešavanje vremena trajanja veze u stanju TIME_WAIT.
- Privzeto je onemogočena podpora ustvarjanju mrežnih povezav na localhost, ki navajajo INADDR_ANY. Za ponovno omogočanje podpore je mogoče nastaviti sysctl net.inet.ip.connect_inaddr_wild na vrednost 1.
- Odstranjen je upravitelj logičnih volumov gvinum, ki je bil uporabljen za programski RAID. Razvoj Gvinuma se je ustavil pred približno 15 leti, pri čemer v kodi obstaja vrsta znanih težav, katerih ni nihče prevzel, da bi jih popravili. Namesto gvinuma se priporoča uporaba gconcat, gmirror, gstripe, graid ali zfs.
- V FreeBSD 16 je napovedano odstranjevanje gonilnika agp (Accelerated Graphics Port), ki je potreben za delovanje mnogih gonilnikov za stare grafične kartice. Prav tako so razglašeni za zastarele in načrtovani za odstranitev gonilniki: fdc (IBM PC Floppy Disk Controller), firewire (IEEE1394 Serial Bus), le (AMD Am7900 LANCE in Am79C9xx Ethernet) in upgt (USB 802.11g).
- Funkcija readdir_r je označena kao zastarela.
- U SNMP serveru bsnmpd prestala je podrška za UDP transport.
- Generiranje gostiteljskih ključev RSA za SSH in EC2 AMI je prenehalo. Podpora DSA je odstranjena iz OpenSSH. Podatkovna baza publickey, vezana na algoritem DES, je bila odstranjena.
- Iz osnovnega sistema sta bila odstranjena ftpd in shar, namesto katerih je treba uporabiti pakete ftp/freebsd-ftpd in sysutils/freebsd-shar.
- Orodje fdisk je razglašeno za zastarelo, namesto njega je treba uporabiti gpart.
- Gonilnik syscons je razglašen za zastarelo, ni združljiv z UEFI, ne podpira UTF-8 in je odvisen od globalne zaklepanja.
- Izvedene so bile posodobitve različic 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 podporo za 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.
Izvor: opennet.ru
