FreeBSD 13.0 leidimas

Praėjus dvejiems su puse metų nuo 12.x šakos suformavimo, buvo pristatytas FreeBSD 13.0 leidimas, paruoštas amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 ir riscv64 architektūroms. Be to, buvo sukurti vaizdai virtualizavimo sistemoms (QCOW2, VHD, VMDK, raw) ir debesų aplinkoms Amazon EC2, Google Compute Engine ir Vagrant.

Pagrindinės naujovės:

  • Buvo atliktas perėjimas prie vieningo „Linux“ ZFS failų sistemos diegimo iš OpenZFS projekto. Tarp funkcijų, kurios tapo prieinamos FreeBSD po perėjimo prie OpenZFS: išplėstinė kvotų sistema, duomenų rinkinių šifravimas, atskiras blokų paskirstymo klasių (paskirstymo klasių) pasirinkimas, vektorinio procesoriaus nurodymų naudojimas pagreitinant RAIDZ diegimą ir kontrolinė suma. skaičiavimai, ZSTD glaudinimo algoritmo palaikymas, daugialypės terpės režimas (MMP, Multi Modifier Protection), patobulinta komandų eilutės įranga, ištaisyta daug klaidų, susijusių su lenktynių sąlygomis ir blokavimu.
  • ARM64 architektūros prievadas (AArch64) buvo perkeltas į pirmąjį palaikymo lygį (1 pakopa), kurį palaiko komandos, atsakingos už pažeidžiamumų pašalinimą, leidimų paruošimą ir prievadų priežiūrą. Pirmasis palaikymo lygis apima diegimo rinkinių, dvejetainių atnaujinimų ir paruoštų paketų kūrimą, taip pat garantijų suteikimą sprendžiant konkrečias problemas ir išlaikant nepakitusią vartotojo aplinkos ir branduolio ABI (išskyrus kai kuriuos posistemius).
  • i386 architektūra buvo perkelta į antrąjį platformos palaikymo lygį (2 pakopa), kuriame bus tęsiamas diegimo rinkinių, dvejetainių atnaujinimų ir paruoštų paketų formavimas, tačiau negarantuoja konkrečių problemų sprendimo. Numatytasis procesoriaus tipas (CPUTYPE) i386 architektūrai buvo pakeistas iš 486 į 686 (jei pageidaujama, i486 ir i586 rinkinius galima sukurti atskirai).
  • Komponentai clang, lld, lldb, compiler-rt, llvm, libunwind ir libc++ buvo atnaujinti į 11 versiją.
  • Plėtra iš centralizuoto šaltinio valdymo sistemos Subversion perkelta į decentralizuotą sistemą Git.
  • Bazinė sistema buvo išvalyta nuo taikomųjų programų, platinamų pagal GPL licenciją. Binutils 2.17 ir gcc 4.2.1 buvo pašalinti iš šaltinio medžio, o visos palaikomos architektūros buvo perkeltos į LLVM/clang įrankių rinkinį. Įtrauktos BSD licencijuotos grep ir dtc (Device Tree Compiler) paslaugų versijos, kurios pakeičia GPL licencijuotas versijas. Pašalintas amd automatinio prijungimo procesas, kurio funkcionalumas dabar įgyvendinamas per autofs. Ctm įrankis buvo pašalintas, todėl rekomenduojama naudoti prievadą misc/ctm.
  • Maršrutizavimo krūva buvo perrašyta, kad būtų palaikyta nexthop objektų, kurie saugo būsenos duomenis, naudojamus paketui persiųsti į norimą vietą, palaikymą. Pridėta galimybė prijungti savo maršruto paieškos algoritmus. Pridėtas maršruto paieškos algoritmas iš DPDK (Data Plane Development Kit) librte, leidžiantis optimizuoti darbą su labai didelėmis maršruto lentelėmis. Proxyarp užklausoms naudojama fib sąsaja. Pridėta galimybė greitai pakeisti FIB numerį per sysctl net.fibs. Įdiegtas laikinų IPv4 ir IPv6 maršrutų palaikymas (su nustatytu tarnavimo laiku).
  • Kelių kelių maršruto parinkimo palaikymas buvo perrašytas ir tapo labiau keičiamas, kai paieškos laikas nepriklauso nuo sąrašo dydžio (O(1)). Naujasis kelių kelių diegimas dabar susietas su ROUTE_MPATH branduolio parametru, kuris pakeitė RADIX_MPATH ir yra įjungtas pagal numatytuosius nustatymus. Norint valdyti Multipath, siūloma sysctl net.route.multipath.
  • Branduolio lygiu įdiegta kriptografinė sistema buvo perkurta, pridedant modernių kriptografinių algoritmų palaikymą ir supaprastinant sąsają, skirtą naudoti šifravimą tvarkyklėse ir kituose branduolio komponentuose. Pašalinti pasenę algoritmai ARC4, Blowfish, CAST128, DES, DES, MD5-HMAC ir Skipjack. „IPsec“ ir „Kerberos“ nebepalaiko RFC 8221 ir RFC 6649/8429, įskaitant 3DES, nebenaudojamų algoritmų. Pašalinti anksčiau paskelbti nebenaudojami algoritmai geli ir cryptodev disko šifravimo posistemyje.
  • GENERIC branduolys apima aesni ir armv8crypto tvarkyklių palaikymą, kad pagreitintų geli pagrindu pagrįstą disko šifravimą, naudojant AES-NI instrukcijas, skirtas amd64/i386 architektūrai ir AES-XTS, skirtas ARM64.
  • Pridėta qat tvarkyklė, skirta „Intel QuickAssist“ (QAT) kriptovaliutų spartintuvams ir ossl tvarkyklė, įdiegta pagreitintos programinės įrangos šifravimo procedūros iš OpenSSL, optimizuota naudojant surinkimo kalbos kodą. „Armv8crypto“ tvarkyklė palaiko AES-XTS ir AES-GCM, naudodama atitinkamas ARMv8 procesorių instrukcijas.
  • Pridėtas TLS (kTLS) diegimas, veikiantis FreeBSD branduolio lygiu, kuris leidžia žymiai padidinti TCP lizdų šifravimo našumą. Palaikomos TLS versijos nuo 1.0 iki 1.3. Šifravimui naudojamos branduolio kriptovaliutų tvarkyklės, palaikančios AES-CBC arba AES-GCM. Norint naudoti kTLS vartotojo erdvėje, reikia iš naujo sukurti OpenSSL naudojant WITH_OPENSSL_KTLS parinktį.
  • Pridėtas naujas tinklo buferių tipas mbuf (tinklo duomenų buferis), kuris viename buferyje gali atvaizduoti kelis nesusietus fizinės atminties puslapius, o tai pagerina sendfile(2) iškvietimo našumą sumažinant mbuff sąrašų dydį lizdų buferiuose.
  • TCP krūva integruoja palaikymą proporcingo paketų siuntimo intensyvumo mažinimo algoritmui (Proportional Rate Reduction, RFC 6937), kuris leidžia greitai atkurti optimalius srauto parametrus iškilus laikinoms duomenų perdavimo problemoms. Norėdami išjungti PRR, pateikiamas sysctl net.inet.tcp.do_prr.
  • „Bhyve hypervisor“ galimybės buvo išplėstos: Pridėtas failų bendrinimo naudojant VirtIO-9p (VirtFS) palaikymas. Įdiegta galimybė dirbti su virtualių mašinų momentinėmis nuotraukomis. Pridėtas PCI HDAudio įrenginių palaikymas ir papildomi nuoseklieji prievadai COM3 ir COM4. Pašalinti pasenę bvmconsole ir bvmdebug įrenginių modeliai. Patobulintas VNC klientų, įskaitant „macOS“ ekrano bendrinimo programą, stabilumas.
  • VirtIO tvarkyklės papildė VirtIO V1 specifikaciją, kuri pagerino FreeBSD svečių suderinamumą su įvairiais emuliatoriais ir hipervizoriais.
  • Procesams, prijungtiems prie kalėjimo aplinkos, numatytas procesoriaus susiejimo konvertavimas (iš pradžių su procesu susietas procesoriaus rinkinys bus pakeistas atsižvelgiant į kalėjimo procesoriaus rinkinį ir nustatytus apribojimus).
  • Pridėta galimybė kurti FreeBSD bazinę sistemą aplinkose, pagrįstose kitomis operacinėmis sistemomis. Poreikis kurti kitas operacines sistemas kyla dėl noro naudoti nuolatinės integracijos įrankius, paremtus Linux arba macOS, testuojant FreeBSD.
  • Siūlomas naujas MMC/SD kaminas, pagrįstas CAM sistema ir leidžiantis prijungti įrenginius su SDIO (Secure Digital I/O) sąsaja. Pavyzdžiui, SDIO naudojamas WiFi ir Bluetooth moduliuose daugeliui plokščių, tokių kaip Raspberry Pi 3. Naujasis kaminas taip pat leidžia naudoti CAM sąsają siųsti SD komandas iš vartotojų erdvėje esančių programų, todėl galima sukurti įrenginį. tvarkyklės, veikiančios vartotojo lygiu.
  • Pagerintas sluoksnio našumas, kad būtų suderinamas su Linux. DTS (Device Tree Sources) failai sinchronizuojami su Linux 5.8 branduoliu.
  • Pridėtas NFSv4.2 (RFC-7862) palaikymas ir įdiegta galimybė valdyti NFS šifruotu ryšio kanalu, pagrįstu TLS 1.3, o ne naudoti Kerberos (sec=krb5p režimas), kuris apsiribojo tik RPC pranešimų šifravimu ir buvo įdiegtas. tik programinėje įrangoje.
  • Pasenusi GDB derinimo priemonės versija, kuri anksčiau buvo įdiegta /usr/libexec kataloge ir naudota „crashinfo“ programoje, buvo pašalinta. Vietoj iš anksto įdiegto GDB, norint gauti išsamią informaciją apie gedimo priežastis, dabar siūloma įdiegti naujausią GDB versiją iš prievadų ar paketų. Proceso derinimo per procfs palaikymas buvo nutrauktas. Netgdb tvarkyklė buvo pridėta, suteikianti prieigą prie branduolio derinimo per tinklą.
  • Funkcija nesaugus gauna pašalinta iš libc (pradedant nuo C11 standarto, ši funkcija neįtraukta į specifikaciją), o prievadai, kurie vis dar naudoja šią funkciją, buvo pakoreguoti. Pašalintos cap_random funkcijos (reikia naudoti getrandom).
  • Pridėtas naujas sistemos iškvietimas copy_file_range, suderinamas su diegimu iš Linux branduolio ir leidžiantis pagreitinti duomenų kopijavimą iš vieno failo į kitą, atliekant operaciją tik branduolio pusėje, prieš tai neskaitant duomenų į proceso atmintį. Sistemos iškvietimas taip pat naudojamas NFSv4.2 serveryje kopijavimo operacijoms atlikti vietoje (neperkeliant klientui).
  • POSIX AIO asinchroninis I/O variklis palaiko vektorines funkcijas. Visų pirma, buvo pridėti aio_writev ir aio_readv sistemos iškvietimai, leidžiantys įgyvendinti vektorinius funkcijų aio_read ir aio_write ekvivalentus.
  • Vartotojo erdvės komponentai buvo nutraukti, kad būtų palaikomas a.out vykdomojo failo formatas i386 architektūros sistemose. „elf2aout“ programa pašalinta.
  • Ping ir ping6 komunalinės paslaugos buvo sujungtos. Prie ping pridėta galimybė nustatyti paslaugų kokybės (QoS) parametrus per IP DSCP ir Ethernet PCP.
  • „Freebsd-update“ programa dabar rodo failų atsisiuntimo eigą ir prideda komandas „ updatesready“ ir „showconfig“, kad patikrintų, ar yra naujinimų ir rodoma konfigūracija.
  • Buvo atlikta daug darbo gerinant NUMA (nevienodos atminties prieigos) sistemų palaikymą.
  • Atnaujintos grafikos tvarkyklės ir grafikos kamino komponentai. Išspręstos Wayland protokolu pagrįstų aplinkų veikimo problemos.
  • Pridėta foninio apšvietimo posistemė, skirta sukurti foninio apšvietimo valdymo tvarkykles. Pridėta pwm-backlight tvarkyklė, skirta valdyti Pinebook ir Pinebook Pro foninį apšvietimą.
  • SCTP protokolo palaikymas įtrauktas į atskirą modulį sctp.ko, kuris pagal numatytuosius nustatymus yra išjungtas GENERIC branduolyje.
  • Įvesties įrenginiams buvo pasiūlyta nauja usbhid tvarkyklė, kuri naudoja paslėptą sistemą darbui su USB HID įrenginiais, o ne ukbd, ums ir uhid tvarkykles.
  • „Cpufreq“ tvarkyklė palaiko „Intel Speed ​​​​Shift“ technologiją.
  • Pridėtas palaikymas naujoms plokštėms, pagrįstoms 64 bitų ARMv8 procesoriais, įskaitant Broadcom BCM5871X ir NXP LS1046A SoC.
  • AMD64 architektūrai įdiegtas 57 bitų virtualių adresų (LA57) palaikymas. Pridėtas Kinijos x86 procesoriaus Hygon Dhyana palaikymas, pagrįstas AMD technologijomis.
  • Powerpc64 architektūros prievadas buvo perjungtas į LLVM ir ELFv2 ABI (dvejetainiai iš ankstesnių FreeBSD versijų negalės būti naudojami FreeBSD 13). Tvarkyklės virtio, ixl, mrsas, aacraid, cpld buvo perkeltos powerpc64.
  • Senų Ethernet adapterių tvarkyklės buvo pašalintos:
    • bm(4) BMAC
    • cs(4) Crystal Semiconductor CS8900/CS8920
    • de(4) DEC DC21x4x
    • ed(4) NE-2000 ir WD-80×3
    • ep(4) 3Com Etherlink III (3c5x9) ISA
    • ex(4) Intel EtherExpress Pro/10 ir 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
  • Pašalintos tvarkyklės ubsec (Broadcom BCM58xx šifravimo greitintuvai), ufm (FM imtuvai su USB sąsaja), ctau (Cronix Tau), cx (Cronix Sigma) ir vpo (lygiagretus prievadas SCSI).

Šaltinis: opennet.ru

Добавить комментарий