Po dveh in pol letih od objave veje 13.0 je bil izdana različica FreeBSD 14.0. Namestitvene slike so pripravljene za arhitekture amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv7, aarch64 in riscv64. Poleg tega so pripravili pakete za virtualizacijske sisteme (QCOW2, VHD, VMDK, raw) in oblačna okolja Amazon EC2, Google Compute Engine in Vagrant. Veja FreeBSD 14 bo zadnja z podporo za 32-bitne platforme. V FreeBSD 15 bo ostala samo podpora za 64-bitne sisteme, hkrati pa bo ohranjena možnost sestavljanja 32-bitnih programov in uporabe načina COMPAT_FREEBSD32 za zagon 32-bitnih izvršnih datotek v 64-bitnem okolju.
Glavne spremembe:
- Kot privzeti ukazni interpret za uporabnika root je nastavljen /bin/sh.
- Za NVME naprave je privzeto na vseh platformah uporabljen gonilnik nda. Za vrnitev starega gonilnika nvd je v loader.conf predvidena nastavitev „hw.nvme.use_nvd=1“.
- Dodana je nova orodja „fwget“, ki identificira opremo, ki potrebuje programsko opremo, in namešča ustrezne pakete s programsko opremo. Trenutno so podprte samo PCI naprave in programska oprema za GPU Intel in AMD.
- Dodano je novo orodje base64 za kodiranje in dekodiranje podatkov v formatu base64.
- Dodano je orodje tcpsso, ki omogoča nastavitev možnosti soketa za obstoječa TCP povezave (na primer, lahko spremenite modul nadzora preobremenitve ali TCP sklad).
- Kot privzeti poštni dostavni agent je namesto sendmail uporabljen dma (DragonFly Mail Agent). Sendmail je ohranjen v osnovni namestitvi in posodobljen na različico 8.17.1.
- V KTLS, implementaciji protokola TLS, ki deluje na ravni jedra FreeBSD, je bila dodana podpora za strojno pospeševanje TLS 1.3 na sprejemni strani. Pospeševanje je zagotovljeno s prenosom nekaterih operacij, povezanih z obdelavo šifriranih paketov, na mrežno kartico.
- V konfiguracijsko datoteko jail.conf je bila dodana direktiva „.include“, ki omogoča vključitev dodatnih datotek pri nalaganju konfiguracije, pri čemer so v potih dovoljene uporabe mask. Razširjen je sysctl parameter security.bsd.see_jail_proc, s pomočjo katerega lahko nepooblaščenim uporabnikom v ločenem jail okolju zdaj prepovemo prisilno končanje, spreminjanje prioritet in razhroščevanje procesov.
- Programi pw in bsdinstall zdaj privzeto ustvarjata uporabnike v mapi "/home", namesto v "/usr/home". Simbolična povezava za "/home", ki kaže na "/usr/home", ne bo več ustvarjena.
- Privzeto je onemogočena nastavitev gradnje PROFILE – različice sistemskih knjižnic s profilom ne bodo več na voljo, namesto tega je treba uporabiti strojno profiliranje (hwpmc).
- Vklopljena je gradnja izvršnih datotek za 64-bitne arhitekture v načinu PIE (Position Independent Executable).
- V hipervizor Bhyve je bila dodana možnost prevoda dostopa do TPM (Trusted Platform Module) in GPU (v virtualna okolja za čipe AMD in Intel).
- Izvedba datotečnega sistema ZFS je bila posodobljena na različico OpenZFS 2.2. V orodje makefs je bila dodana podpora za datotečni sistem ZFS. Omogočeno je ustvarjanje ZFS bazena, povezanega z enim virtualnim diskom vdev.
- Število podprtih jeder CPU (parameter MAXCPU) v sistemih na osnovi arhitekture amd64 in arm64 se je povečalo s 256 na 1024.
- V UFS za konfiguracije, pri katerih je omogočeno dnevniško beleženje (soft updates), je dovoljeno izvajanje ozadnje preverjanja datotečnega sistema, s pomočjo UFS slik. V superblokih, zemljevidih skupin cilindrov in inode so dodane dodatne preverbe hash za odkrivanje poškodb.
- Dodana je datotečni sistem tarfs, ki ga je mogoče uporabiti s tar-arhivi, stisnjenimi z zstd.
- Dodano je orodje boottrace za sledenje dogodkom, ki so se zgodili med nalaganjem in izklopom sistema.
- Dodana je nastavitev jedra FIRECRACKER za omogočanje zagona FreeBSD v sistemu virtualizacije Firecracker, ki je zasnovan za zagon virtualnih strojev z minimalnimi stroški. Čas nalaganja jedra FreeBSD 14 pod upravljanjem Firecracker je zmanjšan na 25 milisekund, kar omogoča zagon okolij s FreeBSD po potrebi za uresničitev infrastrukture brez strežnikov.
- V zaganjalniku, napisanem v jeziku Lua, je v posebnem okolju sandbox uvedena podpora za izvajanje lua-datotek, ki so shranjene v mapi loader_conf_files.
- Podpora za NFS je bila razširjena. Dodana je nova možnost montaže "syskrb5" za podporo Kerberosu v NFSv 4.1/4.2, prav tako pa je bila uvedena podpora za operacijo ExchangeID. Omogočena je možnost zagona nfsd, nfsuserd, mountd, gssd in rpc.tlsservd v izoliranem omrežnem okolju vnet.
- V skriptu growfs je implementirana možnost postavljanja razdelka za swap na kraju razširljivih območij na disku.
- Dodan je nov DTrace-ponudnik kinst (dtrace_kinst), ki omogoča sledenje strukturom jedra.
- V kriptosistem jedra je dodana podpora za algoritem šifriranja XChaCha20-Poly1035 AEAD, prav tako pa je dodan API za uporabo eliptične krivulje curve25519 (za WireGuard).
- Čas ponovnega zagona je skrajšan. Dodan je sysctl-parametr kern.reboot_wait_time, prek katerega lahko spremenite zamudo pred dejanskim ponovnim zagonom po izpisku vseh diagnostičnih sporočil na konzolo. Privzeto je zamuda odstranjena.
- V jedro je dodan podsistem timerfd, ki poenostavi prenos programov iz Linuxa.
- Dodana je sysctl machdep.mitigations.zenbleed.enable za blokiranje ranljivosti Zenbleed v procesorjih AMD Zen2.
- V wpa_supplicant in hostapd je dodana podpora za Wi-Fi 6. V gonilniku iwlwifi je zagotovljeno delovanje z Intelovimi čipi, ki podpirajo Wi-Fi 6E AX411/AX211/AX210.
- Za jedro na sistemih amd64 je zagotovljena podpora orodij AddressSanitizer in MemorySanitizer iz projekta LLVM.
- V skriptih rc.d je dovoljeno uporabljati metodo status, tudi če v skriptu ni opredeljeno ime programa (procname) in PID-datoteka.
- Hitrost prenosa podatkov prek serijskega porta v jedru, nalagalnikih in uporabniškem prostoru je privzeto povečana s 9600 na 115200 bps. Ton piskanja je privzeto nastavljen na 800Hz. Zagotovljena je integracija z devd za izhod piskanja prek zvočne kartice. Za konzolo vt je piskanje privzeto izklopljeno (za vklop je potrebno izvesti ukaze „sysctl kern.vt.enable_bell=1“ in „kbdcontrol -b normal“).
- Izboljšana je podpora za arhitekturo strojnega pospeševanja omrežnih operacij NXP DPAA2 (Data Path Acceleration Architecture Gen2).
- Dodan je gonilnik igc za Ethernet kontrolerje Intel I225, ki podpira hitrost 2.5 Gbps.
- Privzeto je aktivirana nastavitev net.inet.tcp.nolocaltimewait, ki onemogoča ustvarjanje timewait zapisov za TCP povezave, prekinjene na strani lokalnega sistema.
- Razširjena in privzeto vključena podpora za komunikacijski protokol Netlink (RFC 3549), uporabljen v Linuxu za organizacijo interakcije jedra s procesi v uporabniškem prostoru. Nekatere omrežne programske opreme so prešle na uporabo Netlink.
- V paketu pf je zagotovljena združljivost s sintakso in vedenjem operacij normalizacije paketov (scrubbing) različice pf iz OpenBSD. V pfsync je bila implementirana možnost uporabe prometa IPv6. Oblika paketov pfsync je bila razširjena za podporo vrstam, normalizaciji paketov in pravilom route-to.
- V omrežnem vmesniku if_stf (IPv6 nad IPv4) je dodano podrška za IPv6 Rapid Deployment (RFC 5969). Privzeto je onemogočen način IPv6 nodeinfo (RFC 4620).
- Privzeto je vključen parametre sysctl net.inet.tcp.nolocaltimewait, ki ga ne omogoča ustvarjanje zapisov z stanjem timewait za lokalno prekinjena TCP-povezav.
- Privzeto za TCP je vključen mehanizem upravljanja omrežnega zatiča CUBIC namesto NewReno, kar je omogočilo širšo uporabo razpoložljive pasovne širine.
- V IPv4 je onemogočeno pošiljanje širokopasovnih paketov na ničelni naslov podomrežja, razen če je ta naslov izrecno razglašen kot širokopasovni. Sprememba omogoča uporabo naslovov, ki se končajo na '.0', za gostitelje.
- Spremenjene so nastavitve OpenSSH: v scp je privzeto uporabljen protokol SFTP namesto scp/rcp, podpora za podpise RSA/SHA-1 je onemogočena, parametri VerifyHostKeyDNS in X11Forwarding so nastavljeni na 'ne', direktiva VersionAddendum je odstranjena, podpora za nastavitve HPN je odstranjena.
- V orodje date je dodana možnost '-z' za pretvorbo časovnih pasov.
- V orodje diff je dodana možnost '—color' za vizualno predstavitev sprememb s barvo.
- V orodje sleep je dodana podpora za enote, ki niso sekunde (npr. mogoče je uporabiti 'sleep 1h 30m').
- Orodjema head in tail sta dodani podpori za možnosti '-q' in '-h', prav tako je omogočeno določanje velikosti s priponami v mednarodnem sistemu enot SI. V head je odstranjena omejitev na največje število vrstic 2^31.
- V orodju systat je dodana ukaz 'iolat' za prikaz informacij o zamudah v vhodno/izhodnem procesu, ki jih izračuna razporejevalnik CAM.
- Knjižnica libncursesw je razdeljena na dve knjižnici libtinfow in libncursesw. Dodana je podpora za uporabo baze terminfo v ncurses, ne le termcap.
- Za arhitekturo aarch64 (arm64) je bila implementirana in privzeto vključena možnost za izdelavo COMPAT_LIB32, ki omogoča izdelavo 32-bitnih knjižnic za sisteme ARM64, kar omogoča zagon izvedbenih datotek, izdelanih za platformo armv7.
- Izboljšana podpora za oblake. Za AWS EC2 so dodane eksperimentalne gradnje z glavno datotečnim sistemom ZFS in cloud-init. Za Azure so na voljo slike za arhitekture arm64 in amd64, z izbiro med UFS in ZFS. Dodan je gonilnik za virtualno omrežno kartico gve (Google Virtual NIC).
- V sistem ACPI je dodana podpora za pragovno vrednost _CR3, ki omogoča nastavitev temperature, pri kateri bo sistem preklopljen v način spanja (S3).
- Posodobljene različice v osnovni sistem vključujočih zunanjih aplikacij in knjižnic: OpenSSH 9.5p1, OpenSSL 3.0.12 (prej je bila uporabljena različica 1.1.1), awk 2021072, bc 6.6.0, libbsdxml 2.4.7, libfido2 1.13.0, tcpdump 4.99.4, libpcap 1.10.4, xz 5.4.3, zlib 1.3, zstd 1.5.2. Izvedba orodja objdump je zamenjana z llvm-objdump. Kompilator Clang je posodobljen na različico 16.
- Opravljena je čistka zastarelih sistemov:
- Iz osnovnega sistema je odstranjena podpora za enkratne gesle OPIE (za ponovno uporabo lahko namestite paket security/opie).
- Odstranjeni so gonilniki za zvočne kartice z vmesnikom ISA.
- Odstranjeni so pripomočki fmtree in minigzip.
- Odstranjene so komponente ATM v netgraph (NgATM).
- Odstranjen je ozadni proces telnetd (lahko uporabite paket net/freebsd-telnetd).
- Odstranjen je razred VINUM v geom.
- Odstranjeni so zastareli gonilniki amr, iscsi_initiator, iir, mn, mly, nlmrsa in twa.
- Iz jeder GENERIC in MINIMAL je odstranjen parameter VESA.
- Iz delujoče ravni jedra kriptografskega okvira OCF (Open Cryptographic Framework) je odstranjena podpora za asimetrične kriptografske operacije.
- Orodje mergemaster je označeno kot zastarelo, namesto tega uporabite etcupdate.
- Orodje portsnap je odstranjeno (za ekstrakcijo pristanišč uporabite 'git clone https://git.FreeBSD.org/ports.git /usr/ports').
- Ustvarjanje gradb za arhitekturo armv6 je prenehalo.
- Odstranjena je podpora za arhitekturo MIPS.
Izvor: opennet.ru
