Utgivelse av FreeBSD 13.0

Etter to og et halvt år etter opprettelsen av gren 12.x, er FreeBSD 13.0 lansert, som er tilpasset arkitekturene amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 og riscv64. I tillegg er det laget bilder for virtualiseringssystemer (QCOW2, VHD, VMDK, raw) og skytjenester som Amazon EC2, Google Compute Engine og Vagrant.

Hovudnyhende:

  • Overgangen til den forenede Linux-implementeringen av filsystemet ZFS fra prosjektet OpenZFS er gjennomført. Blant mulighetene som nå er tilgjengelige i FreeBSD etter overgangen til OpenZFS er: utvidet kvotesystem, kryptering av datasett, separate valg av tildelingsklasser, bruk av vektorprosessorkommander for å akselerere RAIDZ-implementeringen og beregning av sjekksummer, støtte for ZSTD-kompresjonsalgoritmen, multihost-modus (MMP, Multi Modifier Protection), forbedrede kommandolinjeverktøy, samt retting av mange feil relatert til race conditions og låsing.
  • Porten for ARM64-arkitekturen (AArch64) er flyttet til første nivå støtte (Tier 1), som omfattes av teamene som er ansvarlige for å fikse sårbarheter, forberede utgivelser og opprettholde porter. Første nivå støtte innebærer opprettelse av installasjonsbygg, binære oppdateringer og ferdige pakker, samt garanti for løsning av spesifikke problemer og opprettholdelse av ABI-integritet for brukerens miljø og kjernen (med unntak av enkelte subsystemer).
  • i386-arkitekturen er flyttet til det andre nivået av plattformstøtte (Tier 2), hvor opprettelse av installasjonsbygg, binære oppdateringer og ferdige pakker vil fortsette, men det garanterer ikke løsning av spesifikke problemer. Type CPU (CPUTYPE) for i386-arkitekturen er som standard endret fra 486 til 686 (det er mulig å lage bygg for i486 og i586 selv om ønskelig).
  • Komponentene clang, lld, lldb, compiler-rt, llvm, libunwind og libc++ er oppdatert til versjon 11.
  • Utviklingen er flyttet fra det sentraliserte systemet for kildekodeadministrasjon Subversion til det desentraliserte systemet Git.
  • Det er gjennomført en rensing av det grunnleggende systemet for applikasjoner distribuert under GPL-lisens. Binutils 2.17 og gcc 4.2.1 er fjernet fra kildekoden, og alle støttede arkitekturer er overført til verktøyene LLVM/clang. BSD-lisensierte varianter av verktøyene grep og dtc (Device Tree Compiler) er inkludert, som har erstattet GPL-versjonene. Prosessen for automatisk montering av amd er fjernet, og funksjonaliteten er nå implementert gjennom autofs. Verktøyet ctm er fjernet, og det anbefales å bruke porten misc/ctm.
  • Routingstakken er omskrevet, og støtten for nexthop-objekter, som lagrer tilstandsinformasjon brukt til å sende pakker til ønsket destinasjon, er lagt til. Muligheten for å koble til egne rutefinningsalgoritmer er lagt til. Rutefinningsalgoritmer fra DPDK (Data Plane Development Kit) librte er inkludert, noe som optimaliserer arbeidet med veldig store rutetabeller. Proxyarp-forespørselene benytter fib-grensesnittet. Muligheten for å endre antall fibs dynamisk gjennom sysctl net.fibs er også implementert. Støtte for midlertidige ruter for IPv4 og IPv6 (med satt levetid) er realisert.
  • Støtten for Multipath-routing er omskrevet og gjort mer skalerbar, hvor søketiden ikke avhenger av størrelsen på listen (O(1)). Den nye implementeringen av Multipath er nå knyttet til kjernens parameter ROUTE_MPATH, som har erstattet RADIX_MPATH og er aktivert som standard. For å administrere Multipath er sysctl net.route.multipath foreslått.
  • Det kryptografiske rammeverket, implementert på kjern nivå, er omarbeidet for å støtte moderne kryptografiske algoritmer, og grensesnittet for bruk av kryptering i drivere og andre kjernkomponenter er forenklet. Utdaterte algoritmer som ARC4, Blowfish, CAST128, DES, MD5-HMAC og Skipjack er fjernet. I IPsec og Kerberos er støtten for algoritmer som ble erklært utdaterte i RFC 8221 og RFC 6649/8429, inkludert 3DES, avsluttet. Tidligere erklærte utdaterte algoritmer i disk krypteringssystemet geli og cryptodev er fjernet.
  • Kjernen GENERIC har fått støtte for driverne aesni og armv8crypto for å akselerere disk kryptering basert på geli ved hjelp av AES-NI-instruksjoner for arkitekturene amd64/i386 og AES-XTS for ARM64.
  • Legg til qat-driveren for Intel QuickAssist (QAT) kryptokseleratorer og ossl-driveren med implementering av akselererte programvareprosedyrer for kryptering fra OpenSSL, optimalisert ved hjelp av assemblerkode. ARMv8crypto-driveren har fått støtte for AES-XTS og AES-GCM ved å bruke de aktuelle ARMv8-prosessorinstruksene.
  • Implementeringen av TLS (kTLS) er lagt til og fungerer på FreeBSD-kjernen, som gir betydelig økt ytelse for kryptering av TCP-sockets. Versjoner av TLS fra 1.0 til 1.3 støttes. Kryptering utføres ved hjelp av kjerne-kryptodrivere med støtte for AES-CBC eller AES-GCM. For å bruke kTLS i brukerrommet er det nødvendig å rekonstruere OpenSSL med alternativet WITH_OPENSSL_KTLS.
  • En ny type nettverksbuffer mbuf (nettverksdata-buffer) er lagt til, som kan representere flere ureflekterte fysiske minnesider i en enkelt buffer, noe som øker ytelsen til sendfile(2) ved å redusere størrelsen på mbuf-listene i socket-bufferne.
  • Støtten for algoritmen for proporsjonal reduksjon av pakkeutsendingsintensitet (Proportional Rate Reduction, RFC 6937) er integrert i TCP-stakken, noe som gjør det mulig å gjenopprette optimale flytparametere raskere etter midlertidige problemer med datatransmisjon. For å deaktivere PRR finnes det en sysctl net.inet.tcp.do_prr.
  • Bhyve-hypervisorens funksjoner er utvidet: Støtte for fildeling via VirtIO-9p (VirtFS) er lagt til. Muligheten for å arbeide med snapshots er implementert. virtual machinesStøtte for PCI HDAudio-enheter og ekstra serielle porter COM3 og COM4 er lagt til. Utdaterte enhetsmodeller bvmconsole og bvmdebug er fjernet. Stabiliteten i arbeidet med VNC-klienter er forbedret, inkludert macOS-applikasjonen «Screen Sharing».
  • VirtIO-driverne har fått støtte for VirtIO V1-spesifikasjonen, noe som forbedrer kompatibiliteten til gjestesystemene med FreeBSD med forskjellige emulatorer og hypervisorer.
  • For prosesser som er festet til jail-miljøer, er det sikret en konvertering av CPU-bindinger (den opprinnelig bundet cpuset til prosessen vil bli erstattet med henhold til cpuset til jail-en og de angitte begrensningene).
  • Det er lagt til muligheten for å kompilere det grunnleggende FreeBSD-systemet i miljøer basert på andre operativsystemer. Behovet for å kompilere i andre operativsystemer kommer av ønsket om å bruke verktøy for kontinuerlig integrasjon, knyttet til Linux eller macOS, for testing av FreeBSD.
  • Det er foreslått en ny MMC/SD-stakk basert på CAM-rammeverket, som gjør det mulig å koble til enheter med SDIO (Secure Digital I/O)-grensesnittet. For eksempel brukes SDIO i WiFi- og Bluetooth-moduler for mange kort, som Raspberry Pi 3. Den nye stakken gjør det også mulig å bruke CAM-grensesnittet for å sende SD-kommandoer fra applikasjoner i brukerrommet, noe som gir mulighet for å lage enhetsdrivere som fungerer på brukernivå.
  • Arbeidet med laget for Linux-kompatibilitet er forbedret. DTS (Device Tree Sources)-filer er synkronisert med Linux-kjernen 5.8.
  • Støtten for NFSv4.2 (RFC-7862) er lagt til, og muligheten for å bruke NFS over en kryptert kommunikasjonskanal basert på TLS 1.3 er implementert, i stedet for å bruke Kerberos (modusen sec=krb5p), som var begrenset til kryptering av bare RPC-meldinger og kun ble implementert programmatisk.
  • Den utdaterte versjonen av GDB-debuggeren, som tidligere var installert i katalogen /usr/libexec og ble brukt i crashinfo-verktøyet, er fjernet. I stedet for forhåndsinstallert GDB, som gir detaljerte opplysninger om årsakene til systemkrasj, anbefales det nå å installere den nyeste versjonen av GDB fra porter eller pakker. Støtte for å feilsøke prosesser via procfs er også stoppet. Det er lagt til en netgdb-driver som gjør det mulig å få tilgang til kjernedebuggeren over nettverket.
  • Den usikre funksjonen gets er fjernet fra libc (denne funksjonen er utelatt fra spesifikasjonen siden C11-standarden) og det er gjort justeringer i portene som fortsatt bruker denne funksjonen. Funksjonene cap_random er fjernet (bruk getrandom i stedet).
  • Det er lagt til et nytt systemkall copy_file_range, kompatibelt med implementeringen fra Linux-kjernen, som gjør det raskere å kopiere data fra en fil til en annen, takket være at operasjonen bare utføres på kjerner siden uten å lese dataene inn i prosessminnet først. Systemkallet brukes også i serveren NFSv4.2 for lokal utførelse av kopieringsoperasjoner på serveren (uten å overføre til klienten).
  • I mekanismen for asynkron input/output POSIX AIO er det lagt til støtte for vektorisert funksjoner. Spesielt er systemkallene aio_writev og aio_readv lagt til, som muliggjør vektorisert tilsvarende av funksjonene aio_read og aio_write.
  • Støtten for komponenter i brukerspace for å støtte a.out-formatet på systemer med i386-arkitektur er fjernet. Verktøyet elf2aout er slettet.
  • Verktøyene ping og ping6 er slått sammen. Ping har fått muligheten til å sette kvalitetsservicens (QoS) parametere gjennom IP DSCP og Ethernet PCP.
  • I verktøyet freebsd-update er det lagt til fremdriftsvisning av filnedlasting, og kommandoene updatesready og showconfig for å sjekke tilgjengelige oppdateringer og vise konfigurasjonen er lagt til.
  • Det er gjort betydelig arbeid for å forbedre støtten for NUMA-systemer (Non-Uniform Memory Access).
  • Grafikkdriverne og komponentene i grafikkstakken er oppdatert. Problemer med drift i Wayland-baserte miljøer er løst.
  • Det er lagt til en baklyssystem for å lage drivere for bakgrunnsbelysning. Driveren pwm-backlight er lagt til for å kontrollere bakgrunnsbelysningen til Pinebook og Pinebook Pro.
  • Støtte for SCTP-protokollen er flyttet til en egen modul sctp.ko, som er deaktivert som standard i GENERIC-kjernen.
  • For innganger er det foreslått en ny driver usbhid som bruker rammeverket hid for å arbeide med USB HID-enheter, i stedet for driverne ukbd, ums og uhid.
  • I cpufreq-driveren er det implementert støtte for Intel Speed Shift-teknologi.
  • Det er lagt til støtte for nye kort basert på 64-bits CPU ARMv8, inkludert SoC Broadcom BCM5871X og NXP LS1046A.
  • For arkitekturen AMD64 er det implementert støtte for 57-bits virtuelle adresser (LA57). Støtten for kinesiske x86 CPU Hygon Dhyana basert på AMD-teknologier er lagt til.
  • Porten for arkitekturen powerpc64 er flyttet til bruk av LLVM og ABI ELFv2 (binaryer fra tidligere versjoner av FreeBSD kan ikke brukes i FreeBSD 13). For powerpc64 er driverne virtio, ixl, mrsas, aacraid, cpld portert.
  • Driverne for utdaterte Ethernet-adaptere er fjernet:
    • bm(4) BMAC
    • cs(4) Crystal Semiconductor CS8900/CS8920
    • de(4) DEC DC21x4x
    • ed(4) NE-2000 og WD-80×3
    • ep(4) 3Com Etherlink III (3c5x9) ISA
    • ex(4) Intel EtherExpress Pro/10 og Pro/10+
    • fe(4) Fujitsu MB86960A/MB86965A
    • hme(4) Sun Microelectronics STP2002-STQ
    • pcn(4) AMD PCnet
    • sf(4) Starfire
    • sn(4) SMC 91Cxx
    • tl(4) Texas Instruments ThunderLAN
    • tx(4) SMC 83c17x
    • txp(4) 3Com 3XP Typhoon/Sidewinder (3CR990)
    • vx(4) 3Com EtherLink III/Fast EtherLink III (3c59x) PCI
    • wb(4) Winbond W89C840F
    • xe(4) Xircom PCMCIA
  • Driverne ubsec (kryptoakseleratorer Broadcom BCM58xx), ufm (FM-tunere med USB-grensesnitt), ctau (Cronix Tau), cx (Cronix Sigma) og vpo (parallellport SCSI) er fjernet.

Kilde: opennet.ru

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster