Udgivelse af FreeBSD 13.0

To et halvt år efter dannelsen af 12.x-grenen præsenteres udgivelsen af FreeBSD 13.0, som er forberedt til arkitekturerne amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 og riscv64. Derudover er der oprettet billeder til virtualiseringssystemer (QCOW2, VHD, VMDK, raw) og cloud-miljøer som Amazon EC2, Google Compute Engine og Vagrant.

Hovednyhederne:

  • Overgangen til en ensartet Linux-implementering af filsystemet ZFS fra OpenZFS-projektet er gennemført. Blandt de funktioner, der er blevet tilgængelige i FreeBSD efter overgangen til OpenZFS, er: udvidet kvotesystem, kryptering af datasæt, separat valg af allokering klasser, brug af vektorprocessorinstruktioner til acceleration af RAIDZ-implementering og kontrolsumberegning, understøttelse af ZSTD-komprimeringsalgoritmen, multihost-tilstand (MMP, Multi Modifier Protection), forbedret kommandolinjeværktøjer, og rettelse af mange fejl relateret til race-tilstande og låsninger.
  • Porten til ARM64-arkitekturen (AArch64) er blevet flyttet til første supportniveau (Tier 1), som er under vedligeholdelse af teams, der håndterer sårbarheder, forbereder udgivelser og vedligeholder porte. Første supportniveau indebærer oprettelse af installationsopbygninger, binære opdateringer og færdige pakker samt at give garantier for løsning af specifikke problemer og opretholdelse af ABI-uforanderlighed for brugerens miljø og kernen (undtagen visse subsystemer).
  • i386-arkitekturen er blevet flyttet til det andet supportniveau (Tier 2), hvor oprettelsen af installationsopbygninger, binære opdateringer og færdige pakker fortsætter, men det sikrer ikke løsning af specifikke problemer. CPU-typen (CPUTYPE) for i386-arkitekturen er som standard ændret fra 486 til 686 (hvis ønskes, kan opbygninger til i486 og i586 laves selv).
  • Komponenterne clang, lld, lldb, compiler-rt, llvm, libunwind og libc++ er blevet opdateret til version 11.
  • Udviklingen er blevet flyttet fra et centraliseret system til administration af kildekoder, Subversion, til et decentralt system, Git.
  • Rensningen af basissystemet for applikationer distribueret under GPL-licensen er gennemført. Binutils 2.17 og gcc 4.2.1 er fjernet fra kildetræet, og alle understøttede arkitekturer er blevet overført til LLVM/clang-værktøjet. BSD-versionerne af værktøjerne grep og dtc (Device Tree Compiler), som har erstattet GPL-versionerne, er blevet inkluderet. Automatisk montering af amd er fjernet, og funktionaliteten er nu implementeret gennem autofs. Værktøjet ctm er fjernet, og det anbefales at bruge porten misc/ctm i stedet.
  • Routestakken er blevet omskrevet med støtte til nexthop-objekter, der gemmer statusoplysninger brugt til at sende pakker til den ønskede destination. Muligheden for at tilslutte egne rutingsalgoritmer er blevet tilføjet. Rutingsalgoritmer fra DPDK (Data Plane Development Kit) librte er blevet tilføjet, hvilket muliggør optimering af arbejdet med meget store rutetabeller. Til proxyarp-anmodninger er fib-grænsefladen blevet aktiveret. Muligheden for on-the-fly ændring af antallet af fib gennem sysctl net.fibs er blevet implementeret. Der er tilføjet støtte til midlertidige ruter for både IPv4 og IPv6 (med angivet livstid).
  • Støtten til Multipath-routing er blevet omskrevet og gjort mere skalerbar, hvor søgetiden ikke afhænger af størrelsen på listen (O(1)). Den nye implementering af Multipath er nu knyttet til kerneparameteren ROUTE_MPATH, som har erstattet RADIX_MPATH og er aktiveret som standard. Der er foreslået sysctl net.route.multipath til kontrol af Multipath.
  • Den implementerede kryptografiske ramme i kernen er blevet redesignet, hvilket nu inkluderer støtte til moderne kryptografiske algoritmer og forenkler grænsefladen til brug af kryptering i drivere og andre komponenter i kernen. Forældede algoritmer som ARC4, Blowfish, CAST128, DES, MD5-HMAC og Skipjack er blevet fjernet. I IPsec og Kerberos er støtten til algoritmer, der er erklæret forældede i RFC 8221 og RFC 6649/8429, herunder 3DES, blevet afsluttet. Forældede algoritmer i disk- krypteringssystemet geli og cryptodev er blevet fjernet.
  • Der er inkluderet støtte til aesni- og armv8crypto-drivere i GENERIC-kernen for at accelerere disk-kryptering baseret på geli ved hjælp af AES-NI-instruktioner for amd64/i386-arkitekturer og AES-XTS for ARM64.
  • Tilføjet qat-driver til Intel QuickAssist (QAT) kryptoacceleratorer og ossl-driver med implementering af accelererede softwareprocedurer til kryptering fra OpenSSL, optimeret ved hjælp af assemblerkode. Driveren armv8crypto har fået tilføjet support for AES-XTS og AES-GCM ved brug af de relevante ARMv8 processor instrukser.
  • Implementeringen af TLS (kTLS) på niveauet af FreeBSD-kernen er blevet tilføjet, hvilket markant øger krypteringsydelsen for TCP-sokler. Versioner af TLS fra 1.0 til 1.3 understøttes. Krypteringen benytter kernelens kryptodrivere med support for AES-CBC eller AES-GCM. For at bruge kTLS i brugerrummet kræves en genkompilering af OpenSSL med muligheden WITH_OPENSSL_KTLS.
  • En ny type netværksbuffere mbuf (network data buffer) er blevet tilføjet, som kan repræsentere flere ikke-refererede fysiske hukommelsessider i en enkelt buffer, hvilket øger ydeevnen ved kald til sendfile(2) ved at reducere størrelsen på mbuf-listerne i sokkelbuffere.
  • TCP-stakken har integreret support til algoritmen for proportional reduktion af pakkeafsendelseshastighed (Proportional Rate Reduction, RFC 6937), som hurtigere kan gendanne de optimale strømparametre efter midlertidige problemer med datatransmissionen. For at deaktivere PRR er der tilføjet sysctl net.inet.tcp.do_prr.
  • Mulighederne for hypervisoren Bhyve er blevet udvidet: Der er tilføjet support til deling af filer ved hjælp af VirtIO-9p (VirtFS). Muligheden for at arbejde med snapshots er blevet implementeret. virtual machinesSupport til PCI HDAudio-enheder og yderligere serielle porte COM3 og COM4 er blevet tilføjet. Forældede enhedsmodeller bvmconsole og bvmdebug er blevet fjernet. Stabiliteten af VNC-klienterne er forbedret, herunder macOS-appen 'Screen Sharing'.
  • VirtIO-drivere har fået support til VirtIO V1-specifikationen, hvilket har forbedret kompatibiliteten af gæstesystemer med FreeBSD med forskellige emulatorer og hypervisorer.
  • For processer knyttet til jail-miljøer er der sikret en konvertering af CPU-bindings (den oprindeligt bundet cpuset til processen vil blive erstattet under hensyntagen til cpuset jail'en og de angivne begrænsninger).
  • Muligheden for at bygge et grundlæggende FreeBSD-system i miljøer baseret på andre operativsystemer er blevet tilføjet. Behovet for at bygge i andre operativsystemer kommer fra ønsket om at bruge værktøjer til kontinuerlig integration, der er afhængige af Linux eller macOS, til test af FreeBSD.
  • En ny MMC/SD-stak baseret på CAM-rammeværket er blevet foreslået, hvilket gør det muligt at tilslutte enheder med SDIO (Secure Digital I/O) interface. SDIO bruges f.eks. i WiFi- og Bluetooth-moduler til mange boards, såsom Raspberry Pi 3. Den nye stak tillader også brugen af CAM-interface til at sende SD-kommandoer fra applikationer i brugerdefineret rum, hvilket giver mulighed for at oprette enhedsdrivere, der fungerer på brugerniveau.
  • Arbejdet med lag til kompatibilitet med Linux er forbedret. DTS-filer (Device Tree Sources) er synkroniseret med Linux-kernen 5.8.
  • Understøttelse af NFSv4.2 (RFC-7862) er blevet tilføjet, og muligheden for at køre NFS over en krypteret kommunikationskanal baseret på TLS 1.3 i stedet for at bruge Kerberos (mode sec=krb5p), som kun begrænsede kryptering til RPC-beskeder og kun blev implementeret softwaremæssigt, er blevet realiseret.
  • Den forældede version af debuggeren GDB, som tidligere var installeret i kataloget /usr/libexec og blev brugt i crashinfo-værktøjet, er blevet fjernet. I stedet for at bruge den forudinstallerede GDB anbefales det nu at installere en ny version af GDB fra ports eller pakker for at få detaljerne om crashårsagerne. Støtten til debugging af processer via procfs er blevet ophørt. En netgdb-driver, der gør det muligt at få adgang til kernel-debuggeren over netværket, er blevet tilføjet.
  • Den usikre funktion gets er blevet fjernet fra libc (denne funktion er blevet udelukket fra specifikationen siden C11-standarden), og portene, der stadig bruger denne funktion, er blevet justeret. Funktionerne cap_random er blevet fjernet (brug getrandom i stedet).
  • Der er tilføjet et nyt systemopkald, copy_file_range, der er kompatibelt med implementeringen fra Linux-kernen og gør det muligt at fremskynde kopiering af data fra en fil til en anden ved kun at udføre operationen på kerne-niveau uden forudgående læsning af data i procesminnet. Systemopkaldet anvendes også i serveren NFSv4.2 til lokalt at udføre kopieringsoperationer på serveren (uden at sende til klienten).
  • I POSIX AIOs asynkrone input/output-mekanisme er der støtte for vektorriserede funktioner. Især er systemkald som aio_writev og aio_readv blevet tilføjet, som muliggør vektorriserede ækvivalenter til funktionerne aio_read og aio_write.
  • Understøttelsen af brugerrumskomponenter til a.out eksekveringsfilformatet på i386 arkitektur er blevet ophævet. Værktøjet elf2aout er fjernet.
  • Værktøjerne ping og ping6 er blevet slået sammen. I ping er muligheden for at indstille kvalitetssikring (QoS) via IP DSCP og Ethernet PCP blevet tilføjet.
  • I værktøjet freebsd-update er der tilføjet visning af filoverførselsprogres og kommandoerne updatesready og showconfig til at tjekke for tilgængelige opdateringer og vise konfigurationen.
  • Der er udført en stor indsats for at forbedre understøttelsen af NUMA-systemer (Non-Uniform Memory Access).
  • Grafikdrivere og grafiske stakkomponenter er blevet opdateret. Problemer med Wayland-baserede miljøer er blevet løst.
  • Der er tilføjet en backlight-understøttelse for at skabe drivere til baggrundsbelysning. Driveren pwm-backlight er blevet tilføjet til at styre baggrundsbelysningen på Pinebook og Pinebook Pro.
  • SCTP-protokollen er flyttet til en separat modul sctp.ko, som som standard er deaktiveret i GENERIC-kernen.
  • En ny usbhid-driver er blevet foreslået til input-enheder, som bruger hid-rammeværket til at arbejde med USB HID-enheder i stedet for drivere som ukbd, ums og uhid.
  • I cpufreq-driveren er der implementeret support til Intel Speed Shift-teknologi.
  • Understøttelse af nye kort baseret på 64-bit CPU ARMv8, herunder SoC Broadcom BCM5871X og NXP LS1046A, er blevet tilføjet.
  • Der er implementeret understøttelse af 57-bit virtuelle adresser (LA57) for AMD64 arkitekturen. Understøttelse af de kinesiske x86 CPU Hygon Dhyana baseret på AMD-teknologier er blevet tilføjet.
  • Porten til powerpc64-arkitekturen er blevet konverteret til at bruge LLVM og ABI ELFv2 (binariske filer fra tidligere versioner af FreeBSD vil ikke kunne bruges i FreeBSD 13). Drivere som virtio, ixl, mrsas, aacraid, cpld er blevet portet for powerpc64.
  • Drevene til forældede Ethernet-adaptere er blevet 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
  • Drevene ubsec (kryptoacceleratorer Broadcom BCM58xx), ufm (FM-tunere med USB-interface), ctau (Cronix Tau), cx (Cronix Sigma) og vpo (parallel port SCSI) er blevet fjernet.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster