Izlazak FreeBSD 13.0

Nakon dvije i pol godine od formiranja grane 12.x, objavljen je FreeBSD 13.0, koji je pripremljen za arhitekture amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 i riscv64. Dodatno su pripremljene slike za virtualizacijske sustave (QCOW2, VHD, VMDK, raw) i oblake poput Amazon EC2, Google Compute Engine i Vagrant.

Glavne novine:

  • Provedena je migracija na ujednačenu Linux implementaciju datotečnog sustava ZFS iz projekta OpenZFS. Među mogućnostima koje su postale dostupne u FreeBSD-u nakon prelaska na OpenZFS su: prošireni sustav kvota, šifriranje skupova podataka, odvojeni odabir klasa raspodjele blokova (allocation classes), korištenje instrukcija vektorskih procesora za ubrzanje implementacije RAIDZ i izračun kontrolnih zbrojeva, podrška za algoritam kompresije ZSTD, multihost način (MMP, Multi Modifier Protection), unaprijeđeni alati komandne linije, ispravak mnogih grešaka vezanih uz stanja utrke i zaključavanja.
  • Port za arhitekturu ARM64 (AArch64) prebačen je na razinu podrške Prvi nivo (Tier 1), koja podliježe održavanju timovima zaduženim za ispravljanje ranjivosti, pripremu izdanja i održavanje portova. Prvi nivo podrške podrazumijeva formiranje instalacijskih skupova, binarnih ažuriranja i gotovih paketa, kao i pružanje garancija za rješavanje specifičnih problema i očuvanje nepromjenjivosti ABI za korisničko okruženje i jezgru (izuzev određenih podsustava).
  • Arhitektura i386 prebačena je na drugu razinu podrške platformi (Tier 2), pri čemu će se i dalje formirati instalacijski skupovi, binarna ažuriranja i gotovi paketi, ali ne jamči rješenje specifičnih problema. Tip CPU-a (CPUTYPE) za arhitekturu i386 prema zadanim postavkama promijenjen je s 486 na 686 (po želji, skupove za i486 i i586 možete formirati sami).
  • Komponente clang, lld, lldb, compiler-rt, llvm, libunwind i libc++ ažurirane su na verziju 11.
  • Razvoj je prebačen iz centraliziranog sustava upravljanja izvorim tekstovima Subversion u decentralizirani sustav Git.
  • Provedena je čišćenje osnovnog sustava od aplikacija distribucije pod GPL licencom. Iz stabla izvornih tekstova uklonjeni su binutils 2.17 i gcc 4.2.1, sve podržane arhitekture prebačene su na alate LLVM/clang. Uključene su BSD verzije alata grep i dtc (Device Tree Compiler), koje su zamijenile GPL verzije. Uklonjen je proces automatskog montiranja amd, čija funkcionalnost sada je realizirana putem autofs. Uklonjen je alat ctm, umjesto kojeg se preporučuje korištenje porta misc/ctm.
  • Prepisan je stog usmjeravanja, koji sada podržava nexthop objekte koji sadrže informacije o stanju korištenom za slanje paketa na željenu adresu. Dodana je mogućnost uključivanja vlastitih algoritama za pretraživanje ruta. Dodani su algoritmi za pretraživanje ruta iz DPDK (Data Plane Development Kit) librte, koji omogućuju optimizaciju rada s vrlo velikim tablicama usmjeravanja. Za proxyarp upite korišten je fib sučelje. Dodana je mogućnost promjene broja fib u stvarnom vremenu putem sysctl net.fibs. Implementirana je podrška za vremenske rute za IPv4 i IPv6 (s postavljenim vremenom trajanja).
  • Prepisana je i učinjena skalabilnijom podrška za Multipath usmjeravanje, u kojem vrijeme pretraživanja ne ovisi o veličini popisa (O(1)). Nova implementacija Multipath sada je povezana s parametrima jezgre ROUTE_MPATH, koji je zamijenio RADIX_MPATH i uključuje se prema zadanim postavkama. Za upravljanje Multipathom predložen je sysctl net.route.multipath.
  • Preuređen je kriptografski okvir na razini jezgre, koji sada podržava moderne kriptografske algoritme, a sučelje za korištenje enkripcije u upravljačkim programima i drugim komponentama jezgre pojednostavljeno je. Uklonjeni su zastarjeli algoritmi ARC4, Blowfish, CAST128, DES, MD5-HMAC i Skipjack. U IPsec i Kerberos prestala je podrška za algoritme proglašene zastarjelima u RFC 8221 i RFC 6649/8429, uključujući 3DES. Uklonjeni su prethodno proglašeni zastarjeli algoritmi u podsustavu diskovne enkripcije geli i cryptodev.
  • U GENERIC jezgru uključena je podrška za upravljačke programe aesni i armv8crypto za ubrzanje enkripcije diska temeljenog na geli pomoću AES-NI instrukcija za amd64/i386 arhitekture i AES-XTS za ARM64.
  • Dodana je QAT vozač za Intel QuickAssist kriptoakseleratore i ossl vozač s implementacijom ubrzanih softverskih procedura šifriranja iz OpenSSL, optimiziranih pomoću assembler koda. U armv8crypto vozaču dodana je podrška za AES-XTS i AES-GCM korištenjem odgovarajućih ARMv8 instrukcija procesora.
  • Dodana je implementacija TLS (kTLS) koja radi na razini FreeBSD jezgre, omogućujući značajno povećanje performansi šifriranja za TCP socket-e. Podržane su TLS verzije od 1.0 do 1.3. Za šifriranje se koriste kriptovozači jezgre s podrškom za AES-CBC ili AES-GCM. Za korištenje kTLS u korisničkom prostoru potrebna je ponovna kompilacija OpenSSL-a s opcijom WITH_OPENSSL_KTLS.
  • Dodana je nova vrsta mrežnih međuspremnika mbuf (network data buffer) koja može predstavljati nekoliko neodgovorenih fizičkih stranica memorije unutar jednog međuspremnika, što poboljšava performanse poziva sendfile(2) smanjenjem veličine lista mbuf-a u socket međuspremnicima.
  • U TCP stog integrirana je podrška za algoritam proporcionalnog smanjenja intenziteta slanja paketa (Proportional Rate Reduction, RFC 6937), koji omogućava brže vraćanje optimalnih parametara toka nakon privremenih problema s prijenosom podataka. Za isključivanje PRR-a predviđen je sysctl net.inet.tcp.do_prr.
  • Proširene su mogućnosti hipervizora Bhyve: dodana je podrška za dijeljenje datoteka putem VirtIO-9p (VirtFS). Implementirana je mogućnost rada sa snapshot-ima. virtualnih mašinaDodana je podrška za PCI HDAudio uređaje i dodatne serijske portove COM3 i COM4. Uklonjene su zastarjele modele uređaja bvmconsole i bvmdebug. Povećana je stabilnost rada s VNC klijentima, uključujući macOS aplikaciju 'Screen Sharing'.
  • U VirtIO vozače dodana je podrška za specifikaciju VirtIO V1, što je poboljšalo kompatibilnost gostujućih sistema s FreeBSD s raznim emulatorima i hipervizorima.
  • Za procese prikačene na jail okruženja osigurano je prevođenje vezanosti na CPU (prvotno vezan za proces cpuset bit će zamijenjen uzimajući u obzir cpuset jail-a i postavljene limite).
  • Dodana je mogućnost sastavljanja osnovnog sustava FreeBSD u okruženjima temeljenim na drugim operativnim sustavima. Potreba za sastavljanjem u drugim operativnim sustavima proizašla je iz želje da se iskoriste alati kontinuirane integracije vezani uz Linux ili macOS za testiranje FreeBSD-a.
  • Predložen je novi MMC/SD stak temeljen na CAM okviru, koji omogućuje povezivanje uređaja s SDIO (Secure Digital I/O) sučeljem. Na primjer, SDIO se koristi u WiFi i Bluetooth modulima za mnoge ploče, kao što je Raspberry Pi 3. Novi stek također omogućuje korištenje CAM sučelja za slanje SD komandi iz aplikacija u korisničkom prostoru, što omogućava razvoj uređajskih drajvera koji rade na razini korisnika.
  • Poboljšan je rad sloja za kompatibilnost s Linuxom. DTS datoteke (Device Tree Sources) usklađene su s Linux kernelom 5.8.
  • Dodana je podrška za NFSv4.2 (RFC-7862) i omogućena je mogućnost rada NFS-a preko šifrirane veze temeljenom na TLS 1.3, umjesto korištenja Kerberosa (mod sec=krb5p), koji je bio ograničen na šifriranje samo RPC poruka i bio je implementiran samo softverski.
  • Uklonjena je zastarjela verzija debuggerskog GDB-a, koja je ranije bila instalirana u direktoriju /usr/libexec i korištena u alatu crashinfo. Umjesto unaprijed instaliranog GDB-a, za dobivanje detaljnih informacija o uzrocima rušenja sada se preporučuje instalacija nove verzije GDB-a iz portova ili paketa. Prekinuta je podrška za debuggiranje procesa putem procfs-a. Dodan je netgdb drajver koji omogućuje pristup kernel debuggeru putem mreže.
  • Iz libc je uklonjena nesigurna funkcija gets (od C11 standarda ova funkcija je izbačena iz specifikacije) i izvršena je prilagodba portova koji još koriste ovu funkciju. Uklonjene su funkcije cap_random (preporučuje se korištenje getrandom).
  • Dodana je nova sistemska pozivna funkcija copy_file_range, kompatibilna s implementacijom iz Linux kernela, koja omogućuje ubrzavanje kopiranja podataka iz jednog datoteke u drugu, zahvaljujući izvršenju operacije samo na strani kernela bez prethodnog čitanja podataka u memoriju procesa. Ova sistemska pozivna funkcija također se koristi u serveru NFSv4.2 za lokalno izvođenje operacija kopiranja na serveru (bez prijenosa klijentu).
  • U mehanizmu asinhronog ulaza/izlaza POSIX AIO predstavljena je podrška za vektorizovane funkcije. Konkretno, dodani su sistemski pozivi aio_writev i aio_readv, koji omogućavaju implementaciju vektorizovanih ekvivalenata funkcija aio_read i aio_write.
  • Prekinuta je podrška za komponente prostora korisnika za podršku formatu izvršnih datoteka a.out na sistemima sa arhitekturom i386. Uklonjena je utilita elf2aout.
  • Ujedinjene su utilite ping i ping6. U ping je dodana mogućnost postavljanja parametara kvaliteta usluga (QoS) putem IP DSCP i Ethernet PCP.
  • U utiliti freebsd-update omogućeno je prikazivanje napretka preuzimanja datoteka i dodate su komande updatesready i showconfig za proveru dostupnosti ažuriranja i prikaz konfiguracije.
  • Obavljen je značajan rad na unapređenju podrške za NUMA (Non-Uniform Memory Access) sisteme.
  • Ažurirani su grafički drajveri i komponenti grafičkog sloja. Rešeni su problemi sa radom okruženja zasnovanih na Wayland protokolu.
  • Dodata je podsystem za pozadinsku svetlost za stvaranje drajvera za upravljanje osvetljenjem. Dodan je drajver pwm-backlight za upravljanje osvetljenjem Pinebook i Pinebook Pro.
  • Podrška za SCTP protokol izdvojena je u poseban modul sctp.ko, koji je po defaultu onemogućen u GENERIC jezgru.
  • Za ulazne uređaje ponuđen je novi drajver usbhid, koji koristi hid okvir za rad sa USB HID uređajima, umesto drajvera ukbd, ums i uhid.
  • U drajveru cpufreq implementirana je podrška za Intel Speed Shift tehnologiju.
  • Dodata je podrška za nove ploče zasnovane na 64-bitnim CPU ARMv8, uključujući SoC Broadcom BCM5871X i NXP LS1046A.
  • Za AMD64 arhitekturu implementirana je podrška za 57-bitne virtuelne adrese (LA57). Dodata je podrška za kineske x86 CPU Hygon Dhyana zasnovane na tehnologijama AMD.
  • Port za arhitekturu powerpc64 prebačen je na korišćenje LLVM i ABI ELFv2 (binarne datoteke iz ranijih verzija FreeBSD neće moći da se koriste u FreeBSD 13). Za powerpc64 portovani su drajveri virtio, ixl, mrsas, aacraid, cpld.
  • Uklonjeni su drajveri za zastarele Ethernet adaptore:
    • bm(4) BMAC
    • cs(4) Crystal Semiconductor CS8900/CS8920
    • de(4) DEC DC21x4x
    • ed(4) NE-2000 i WD-80×3
    • ep(4) 3Com Etherlink III (3c5x9) ISA
    • ex(4) Intel EtherExpress Pro/10 i 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
  • Uklonjeni su drajveri ubsec (kriptoakseleratori Broadcom BCM58xx), ufm (FM tuner-i sa USB interfejsom), ctau (Cronix Tau), cx (Cronix Sigma) i vpo (SCSI na paralelnom portu).

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster