Etter to og et halvt år siden publiseringen av versjon 13.0 er utgivelsen av FreeBSD 14.0 klar. Installajonsbilde er forberedt for arkitekturer som amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv7, aarch64 og riscv64. I tillegg er det forberedt bygg for virtualiseringssystemer (QCOW2, VHD, VMDK, raw) og skyomgivelser som Amazon EC2, Google Compute Engine og Vagrant. FreeBSD 14 vil være den siste som støtter 32-bit plattformer. I FreeBSD 15 vil det bare være støtte for 64-bit systemer, men det vil fortsatt være mulig å kompilere 32-bit programmer og bruke COMPAT_FREEBSD32-modus for å kjøre 32-bit kjørbare filer i et 64-bit miljø.
Hovedendringer:
- Som standard kommandotolk for brukeren root er satt til /bin/sh.
- For NVMe-enheter brukes som standard nda-driveren på alle plattformer. For å gjenopprette den gamle nvd-driveren kan «hw.nvme.use_nvd=1» legges til i loader.conf.
- Det er lagt til et nytt verktøy, «fwget», som identifiserer maskinvare som trenger firmware og installerer de nødvendige firmware-pakkene. For øyeblikket støttes kun PCI-enheter og firmware for Intel og AMD GPU-er.
- Et nytt verktøy, base64, er lagt til for koding og dekoding av data i base64-format.
- Det er lagt til et verktøy, tcpsso, som gjør det mulig å angi sokkelalternativer for eksisterende TCP-forbindelser (for eksempel kan man bytte kontrollmodul for overbelastning eller TCP-stakken).
- Som standard postleveringsagent brukes dma (DragonFly Mail Agent) i stedet for sendmail. Sendmail er bevart i basispakken og oppdatert til versjon 8.17.1.
- I KTLS, implementeringen av TLS-protokollen som kjører på kjernenivå i FreeBSD, er det lagt til støtte for maskinvareakselerasjon av TLS 1.3 på mottakersiden. Akselerasjonen oppnås ved å flytte noen operasjoner knyttet til behandling av krypterte pakker til nettverkskortet.
- I konfigurasjonsfilen jail.conf er det lagt til en direktiv «.include», som gjør det mulig å inkludere ytterligere filer ved oppstart av konfigurasjonen, med støtte for masker i filbanene. Sysctl-parameteren security.bsd.see_jail_proc er utvidet slik at uautoriserte brukere i et eget jail-miljø nå kan nektes å tvangsavslutte, endre prioritet og feilsøke prosesser.
- Programmer pw og bsdinstall lagar no brukarar som standard i katalogen «/home», ikkje i «/usr/home». Symbolsk lenke for «/home», som peikar til «/usr/home», blir ikkje lenger laga.
- Byggingskonfigurasjonen PROFILE er som standard av, profilerte versjonar av systembibliotek blir ikkje lenger tilbydd; i staden skal ein bruke maskinvareprofilering (hwpmc).
- Bygging av kjørbare filer for 64-bits arkitekturar i PIE-modus (Position Independent Executable) er aktivert.
- Hypervisoren Bhyve støttar no videresending til TPM (Trusted Platform Module) og GPU (i virtuelle miljø for AMD- og Intel-brikker).
- Implementasjonen av filsystemet ZFS er oppdatert til OpenZFS 2.2. Verktøyet makefs har fått støtte for filsystemet ZFS. Det er no mogleg å opprette ein ZFS-pool knytt til ein virtuell disk vdev.
- Tal på støtta CPU-kjerner (parameter MAXCPU) er auka frå 256 til 1024 i systemer basert på amd64- og arm64-arkitekturar.
- I UFS for konfigurasjonar der journaling (soft updates) er aktivert, er det tillete å utføre bakgrunnssjekk av filsystemet ved å bruke UFS-snapshots. Ekstra hash-kontroller er lagt til superblokker, gruppesylinderkart og inode for å oppdage skader.
- Det er lagt til filsystemet tarfs som kan brukast med tar-arkiv som er komprimert ved hjelp av zstd.
- Verktøyet boottrace er lagt til for å spore hendingar som skjer under oppstart og avslutting av systemet.
- Kjernen FIRECRACKER er lagt til for å sikre at FreeBSD kan startast i Firecracker-virtualiseringssystemet, som er laga for å køyre virtuelle maskiner med minimale kostnader. Tida for oppstart av FreeBSD 14 under Firecracker er redusert til 25 millisekund, noko som gjer det mogleg å køyre omgivelsar med FreeBSD etter behov for serverlaus infrastruktur.
- I bootloaderen, skrive i Lua, er det implementert støtte for å køyre lua-filer lagra i katalogen loader_conf_files i eit spesialtilpassa sandbox-miljø.
- Støtte for NFS er utvida. Ein ny monteringsalternativ «syskrb5» er lagt til for å støtte Kerberos i NFSv 4.1/4.2, og operasjonen ExchangeID er implementert. Det er mogleg å køyre nfsd, nfsuserd, mountd, gssd og rpc.tlsservd i eit isolert nettverksmiljø vnet.
- I skriptet growfs er det implementert en mulighet for å plassere swap-partisjonen på slutten av det utvidbare området på disken.
- En ny DTrace-leverandør kinst (dtrace_kinst) er lagt til, som muliggjør sporing av kjernekonstruksjoner.
- Kryptosystemet i kjernen har fått støtte for krypteringsalgoritmen XChaCha20-Poly1035 AEAD, samt et API for bruk av den elliptiske kurven curve25519 (for WireGuard).
- Tiden for omstart er redusert. En sysctl-parameter kern.reboot_wait_time er lagt til, som gjør at man kan endre forsinkelsen før selve omstarten etter at alle diagnosemeldinger er skrevet til konsollen. Som standard er forsinkelsen fjernet.
- Kjernen har fått under-systemet timerfd, som forenkler portering av programmer fra Linux.
- Sysctl machdep.mitigations.zenbleed.enable er lagt til for å blokkere sårbarheten Zenbleed i AMD Zen2-prosessorer.
- Støtte for Wi-Fi 6 er lagt til i wpa_supplicant og hostapd. I driveren iwlwifi er det sikret funksjonalitet med Intel-brikker som støtter Wi-Fi 6E AX411/AX211/AX210.
- For kjernen på amd64-systemer er det gitt støtte for AddressSanitizer og MemorySanitizer-verktøyene fra LLVM-prosjektet.
- I rc.d-skriptene er det nå tillatt å bruke metoden status, selv om programnavnet (procname) og PID-filen ikke er definert i skriptet.
- Dataoverføringshastigheten gjennom den serielle porten i kjernen, bootloadere og brukerrommet er som standard økt fra 9600 til 115200 bps. Den standard pipetonen er stilt til 800Hz. Det er integrert med devd for å spille pipetonen gjennom lydkortet. For konsollen vt er pipetonen som standard deaktivert (for å aktivere den må man kjøre kommandoene «sysctl kern.vt.enable_bell=1» og «kbdcontrol -b normal»).
- Støtten for NXP DPAA2 (Data Path Acceleration Architecture Gen2) maskinvareakselerasjonsarkitektur er forbedret.
- Driveren igc for Intel I225 Ethernet-kontrollere er lagt til, og støtter hastigheter på 2.5 Gbps.
- Som standard er innstillingen net.inet.tcp.nolocaltimewait aktivert, som deaktiverer opprettelsen av timewait-poster for TCP-tilkoblinger avsluttet på den lokale systemets side.
- Støtten for kommunikasjonsprotokollen Netlink (RFC 3549) er utvidet og aktivert som standard, som brukes i Linux for å tilrettelegge kommunikasjonen mellom kjernen og prosesser i brukerrommet. Noen nettverksverktøy er oversatt til å bruke Netlink.
- I pakkefiltrene pf er det sikret kompatibilitet med syntaks og atferd for pakke-normaliseringsoperasjoner (scrubbing) fra pf-versjonen i OpenBSD. Pfsync har implementert muligheten for å bruke IPv6-transport. Formatet for pfsync-pakker er utvidet for å støtte køer, pakke-normalisering og route-to-regler.
- I nettverksgrensesnittet if_stf (IPv6 over IPv4) er det lagt til støtte for IPv6 Rapid Deployment (RFC 5969). IPv6 nodeinfo-modus (RFC 4620) er som standard deaktivert.
- Sysctl-parameteren net.inet.tcp.nolocaltimewait er som standard aktivert, og hindrer opprettelsen av registreringer med tilstanden timewait for lokalt avbrutte TCP-tilkoblinger.
- Som standard er TCP-utstyrt med mekanismen for nettverksbelastningskontroll CUBIC i stedet for NewReno, noe som har utvidet bruken av tilgjengelig båndbredde.
- I IPv4 er sending av kringkastingspakker til nulladressen i subnettet deaktivert, med mindre denne adressen eksplisitt er deklarert som kringkastingsadresse. Endringen tillater bruk av adresser som slutter på '.0' for verter.
- Innstillingene for OpenSSH er endret: I scp er SFTP-protokollen aktivert som standard i stedet for scp/rcp, støtten for RSA/SHA-1signaturer er deaktivert, parameterne VerifyHostKeyDNS og X11Forwarding er satt til «no», direktivet VersionAddendum er fjernet, og støtten for HPN-innstillinger er fjernet.
- Verktøyet date har fått alternativet «-z» for å konvertere tidssoner.
- Verktøyet diff har fått alternativet «—color» for visuell fremheving av endringer i farger.
- Verktøyet sleep har fått støtte for måleenheter som ikke er sekunder (for eksempel kan man angi «sleep 1h 30m»).
- Verktøyene head og tail har fått støtte for alternativene «-q» og «-h», og det er blitt implementert mulighet for å angi verdier med suffikser i det internasjonale systemet for enheter (SI). I head er begrensningen på det maksimale antallet linjer 2^31 fjernet.
- Verktøyet systat har fått kommandoen «iolat» for å vise informasjon om inndata/utdata-forsinkelse, beregnet av CAM-planleggeren.
- Biblioteket libncursesw er delt opp i to biblioteker, libtinfow og libncursesw. Støtten for å bruke terminfo-databasen i ncurses, i stedet for kun termcap, er lagt til.
- For arkitekturen aarch64 (arm64) er det realisert og som standard aktivert en kompilasjonsinnstilling COMPAT_LIB32, som gir bygging av 32-biters biblioteker for ARM64-systemer, slik at de kan kjøre kjørbare filer bygget for plattformen armv7.
- Forbedret støtte for skytjenester. For AWS EC2 er det lagt til eksperimentelle bygg med rotfilsystemet ZFS og cloud-init. For Azure er det gitt bilder for arkitekturene arm64 og amd64, med valg av UFS eller ZFS. En driver for den virtuelle nettverkskortet gve (Google Virtual NIC) er lagt til.
- Systemet ACPI har fått støtte for terskelverdien _CR3, som gjør det mulig å sette temperaturen der systemet settes i hvilemodus (S3).
- Oppdaterte versjoner av tredjepartsapplikasjoner og biblioteker som inngår i det grunnleggende systemet: OpenSSH 9.5p1, OpenSSL 3.0.12 (tidligere ble versjon 1.1.1 brukt), 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. Implementeringen av verktøyet objdump er blitt byttet ut med llvm-objdump. Kompilatoren Clang er oppdatert til versjon 16.
- Det er blitt ryddet opp i utdaterte systemer:
- Støtte for engangspassord OPIE er fjernet fra det grunnleggende systemet (for å gjenoppta bruken kan porten security/opie installeres).
- Drivere for lydkort med ISA-grensesnitt er fjernet.
- Verktøyene fmtree og minigzip er fjernet.
- ATM-komponentene i netgraph (NgATM) er fjernet.
- Bakgrunnsprosessen telnetd er fjernet (porten net/freebsd-telnetd kan brukes).
- VINUM-klassen i geom er fjernet.
- Utdaterte drivere som amr, iscsi_initiator, iir, mn, mly, nlmrsa og twa er fjernet.
- Parameteren VESA er fjernet fra kjernene GENERIC og MINIMAL.
- Støtte for asymmetrisk kryptografi er fjernet fra det kjernelagede kryptografiske rammeverket OCF (Open Cryptographic Framework).
- Verktøyet mergemaster er erklært utdaterte, og det anbefales å bruke etcupdate i stedet.
- Verktøyet portsnap er fjernet (for å hente porter, bruk «git clone https://git.FreeBSD.org/ports.git /usr/ports»).
- Byggingen for armv6-arkitekturen er stoppet.
- Støtten for MIPS-arkitekturen er fjernet.
Kilde: opennet.ru
