Pusstā divu ar pusi gadu pēc 12.x zari izveidošanas ir izlaista FreeBSD 13.0 versija, kas ir sagatavota arhitektūrām amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 un riscv64. Papildus ir izveidoti attēli virtualizācijas sistēmām (QCOW2, VHD, VMDK, raw) un mākoņu vidēm Amazon EC2, Google Compute Engine un Vagrant.
Galvenās jauninājumi:
- Ir īstenota pāreja uz vienotu Linux realizāciju failu sistēmai ZFS no projekta OpenZFS. Starp iespējām, kas kļuvušas pieejamas FreeBSD pēc pārejas uz OpenZFS, ir: paplašināta kvotu sistēma, datu kopu šifrēšana, atsevišķa bloku sadales klasifikācija (allocation classes), vektoru procesoru instrukciju izmantošana RAIDZ paātrinājuma un kontrolsummu aprēķina uzlabošanai, ZSTD saspiešanas algoritma atbalsts, multihost režīms (MMP, Multi Modifier Protection), uzlabots komandrindas rīku komplekts, daudzu kļūdu, kas saistītas ar sacensībām un bloķēšanu, labojumi.
- Porte ARM64 (AArch64) ir pārcelts uz pirmo atbalsta līmeni (Tier 1), kas ietilpst komandu uzraudzībā, kas atbild par ievainojamību novēršanu, laidienu sagatavošanu un portu uzturēšanu. Pirmais atbalsta līmenis ietver instalācijas komplektu, bināro atjauninājumu un gatavo pakotņu izveidi, kā arī garantijas specifisku problēmu risināšanai un ABI nemainīguma saglabāšanai lietotāja vidē un kodolā (izņemot dažas apakšsistēmas).
- i386 arhitektūra ir pārcelta uz otro atbalsta platformu līmeni (Tier 2), kur turpinās instalācijas komplektu, bināro atjauninājumu un gatavo pakotņu izveide, taču netiek garantēta specifisku problēmu risināšana. CPU tips (CPUTYPE) i386 arhitektūrai ir noklusējuma mainīts no 486 uz 686 (ja vēlas, var paši izveidot 486 un 586 komplektus).
- Komponenti clang, lld, lldb, compiler-rt, llvm, libunwind un libc++ ir atjaunināti uz 11. versiju.
- Izstrāde ir pārcelta no centralizētas avota koda vadības sistēmas Subversion uz decentralizētu sistēmu Git.
- Tika veikta tīrīšana no pamatā esošā sistēmas lietojumprogrammām, kas tiek izplatītas ar GPL licenci. No avota koka ir noņemti binutils 2.17 un gcc 4.2.1, visu atbalstīto arhitektūru rīki ir pārvietoti uz LLVM/clang. Iekļautas BSD licencē izplatītās utilītas grep un dtc (Device Tree Compiler), kas aizstāja GPL licenci versijas. Noņemta automātiskās montēšanas procesa amd funkcionalitāte, kuru tagad nodrošina autofs. Noņemta utilīta ctm, kuru ieteicams aizvietot ar misc/ctm portu.
- Pārrakstīts maršrutēšanas steks, kurā pievienota atbalsts nexthop objektiem, kas glabā stāvokļa datus, ko izmanto, lai nosūtītu paketi uz vēlamo galamērķi. Pievienota iespēja pieslēgt savus maršrutu meklēšanas algoritmus. Pievienoti maršrutu meklēšanas algoritmi no DPDK (Data Plane Development Kit) librte, kas ļauj optimizēt darbu ar ļoti lielām maršrutēšanas tabulām. Proxyarp pieprasījumiem tiek izmantota fib saskarne. Pievienota spēja mainīt fib skaitu reālajā laikā, izmantojot sysctl net.fibs. Realizēta īslaicīgu maršrutu atbalsts gan IPv4, gan IPv6 (ar noteiktu dzīves ilgumu).
- Pārrakstīta un padarīta mērogojamāka Multipath maršrutēšanas atbalsts, kurā meklēšanas laiks vairs nav atkarīgs no saraksta lieluma (O(1)). Jaunā Multipath realizācija tagad ir saistīta ar kodola parametru ROUTE_MPATH, kas aizvietoja RADIX_MPATH un ir iekļauts pēc noklusējuma. Multipath pārvaldībai ieteikts sysctl net.route.multipath.
- Pārbūvēta kodola līmeņa kriptogrāfiskā ietvara, kurā pievienots atbalsts mūsdienu kriptogrāfiskajiem algoritmiem un vienkāršots interfeiss šifrēšanas izmantošanai draiveros un citos kodola komponentos. Noņemti novecojušie algoritmi ARC4, Blowfish, CAST128, DES, MD5-HMAC un Skipjack. IPsec un Kerberos pārtraukta novecojušo algoritmu atbalsts, kas norādīti RFC 8221 un RFC 6649/8429, tostarp 3DES. Noņemti iepriekš deklarētie novecojušie algoritmi diska šifrēšanas apakšsistēmā geli un cryptodev.
- GENERIC kodolā iekļauta aesni un armv8crypto draiveru atbalsts, lai paātrinātu diska šifrēšanu uz geli bāzes, izmantojot AES-NI instrukcijas amd64/i386 arhitektūrām un AES-XTS ARM64.
- Pievienots qat draiveris Intel QuickAssist (QAT) kriptoakseleratoriem un ossl draiveris ar paātrināto šifrēšanas programmatūru, kas optimizēta, izmantojot asemblera kodu. armv8crypto draiverī pievienota AES-XTS un AES-GCM atbalsta izmantošana, izmantojot atbilstošās ARMv8 procesoru instrukcijas.
- Pievienota TLS (kTLS) ieviešana, kas darbojas FreeBSD kodola līmenī, ļaujot ievērojami uzlabot šifrēšanas veiktspēju TCP soketiem. Atbalstītās TLS versijas ir no 1.0 līdz 1.3. Šifrēšanai tiek izmantoti kodola kripto draiveri ar AES-CBC vai AES-GCM atbalstu. Lai izmantotu kTLS lietotāja telpā, nepieciešama OpenSSL pārbūve ar iespēju WITH_OPENSSL_KTLS.
- Pievienots jauns tīkla buferu mbuf (tīkla datu buferis) tips, kas vienā buferī var pārstāvēt vairākus neatsaucamus fiziskos atmiņas lapas, tādējādi paaugstinot veiktspēju, zvanot uz sendfile(2) un samazinot mbuf sarakstu lielumu soketa buferos.
- TCP stekā integrēta proporciju samazināšanas paketes sūtīšanas algoritma (Proportional Rate Reduction, RFC 6937) atbalsts, kas ļauj ātrāk atjaunot optimālos plūsmas parametrus pēc īslaicīgām datu pārsūtīšanas problēmām. PRR atslēgšanai ir paredzēts sysctl net.inet.tcp.do_prr.
- Paplašinātas hipervizora Bhyve iespējas: pievienota atbalsts failu koplietošanai, izmantojot VirtIO-9p (VirtFS). Iespējams strādāt ar snapshots. virtuālo mašīnuPievienota PCI HDAudio ierīču atbalsts un papildu sērijas porti COM3 un COM4. Novakts novecojis bvmconsole un bvmdebug ierīču modeļi. Uzlabota VNC klientu stabilitāte, tostarp macOS lietotnes „Screen Sharing”.
- VirtIO draiveros pievienots VirtIO V1 specifikācijas atbalsts, kas uzlabo viesu sistēmu saderību ar FreeBSD un dažādiem emulatoriem un hipervizoriem.
- Pieslēgto jail-vidēm procesu CPU piesaistes pārveidošana ir nodrošināta (sākotnēji piesaistītais cpuset tiks nomainīts, ņemot vērā jail cpuset un noteiktos ierobežojumus).
- Ir pievienota iespēja izveidot pamata FreeBSD sistēmas versijas citos operētājsistēmu vidē. Nepieciešamība veidot citās operētājsistēmās ir saistīta ar vēlmi izmantot Linux vai macOS balstītās nepārtrauktas integrācijas rīkus FreeBSD testēšanai.
- Ierosināts jauns MMC/SD staks, kas balstīts uz CAM ietvara un ļauj pievienot SDIO (Secure Digital I/O) interfeisa ierīces. Piemēram, SDIO tiek izmantots WiFi un Bluetooth moduļos daudziem dēļiem, piemēram, Raspberry Pi 3. Jaunais staks arī ļauj izmantot CAM interfeisu, lai sūtītu SD komandas lietojumprogrammām lietotāja telpā, dodot iespēju izveidot ierīču draiverus, kas darbojas lietotāja līmenī.
- Uzlabota saskarne Linux saderībai. DTS (Device Tree Sources) faili ir sinhronizēti ar Linux 5.8 kodolu.
- Pievienota atbalsts NFSv4.2 (RFC-7862) un ieviesta iespēja darboties NFS virs šifrēta komunikācijas kanāla, pamatojoties uz TLS 1.3, nevis izmantojot Kerberos (sec=krb5p režīmā), kas ierobežoja tikai RPC ziņojumu šifrēšanu un tika īstenots tikai programmatūras veidā.
- Noņemta novecojusi GDB saskarne, kas iepriekš bija instalēta direktorijā /usr/libexec un tika izmantota crashinfo utilītē. Aizvietojot iepriekšējo GDB, tagad ieteicams instalēt jauno GDB versiju no portiem vai pakotnēm, lai iegūtu detalizētu informāciju par crashes. Tika pārtraukta atbalsta sniegšana procesu atkļūdošanai caur procfs. Pievienots netgdb draiveris, kas ļauj piekļūt kodola atkļūdošanas rīkam tīklā.
- No libc ir noņemta nedroša funkcija gets (sākot ar C11 standartu šī funkcija tika izslēgta no specifikācijas) un veiktas izmaiņas portos, kas vēl izmantoja šo funkciju. Noņemtas funkcijas cap_random (jāizmanto getrandom).
- Pievienots jauns sistēmas izsaukums copy_file_range, kas ir saderīgs ar Linux kodola īstenojumu un ļauj paātrināt datu kopēšanu no viena faila uz citu, veicot operāciju tikai kodola pusē bez iepriekšējas datu nolasīšanas procesora atmiņā. Šis sistēmas izsaukums tiek izmantots arī serveri NFSv4.2 lokālo operāciju kopēšanai serverī (bez klienta nodošanas).
- POSIX AIO asinchronā ievadē/izvadē mehānismā ir ieviesta atbalsta vektorizētajām funkcijām. Īpaši pievienoti sistēmas izsaukumi aio_writev un aio_readv, kas ļauj realizēt vektorizētos ekvivalentus funkcijām aio_read un aio_write.
- Pārtraukts lietotāju telpas komponentu atbalsts izpildāmo failu formāta a.out atbalstam i386 arhitektūras sistēmās. Noņemtā utilīta elf2aout.
- Apvienotas utilītas ping un ping6. Utilītā ping pievienota iespēja noteikt pakalpojumu kvalitātes (QoS) parametrus, izmantojot IP DSCP un Ethernet PCP.
- Utilītā freebsd-update nodrošināta failu lejupielādes progresu parādīšana un pievienotas komandas updatesready un showconfig, lai pārbaudītu atjauninājumu pieejamību un rādītu konfigurāciju.
- Veikts liels darbs, lai uzlabotu NUMA (No-Uniform Memory Access) sistēmu atbalstu.
- Atjaunināti grafiskie draiveri un grafiskā steka komponentes. Atrisinātas problēmas ar vidi, kas balstīta uz Wayland protokolu.
- Pievienota apgaismojuma kontroles draiveriem paredzēta apakšsistēma. Pievienots draiveris pwm-backlight, lai pārvaldītu Pinebook un Pinebook Pro apgaismojumu.
- SCTP protokola atbalsts ir izcelts atsevišķā modulī sctp.ko, kas pēc noklusējuma ir atslēgts GENERIC kodolā.
- Ievades ierīcēm piedāvāts jauns draiveris usbhid, kas izmanto hid ietvaru, lai strādātu ar USB HID ierīcēm, nevis draiveriem ukbd, ums un uhid.
- cpufreq draiverī ir īstenota atbalsta Intel Speed Shift tehnoloģijai.
- Pievienots atbalsts jaunām platēm ar 64-bit CPU ARMv8, tostarp SoC Broadcom BCM5871X un NXP LS1046A.
- AMD64 arhitektūrā īstenots 57-bit virtuālo adresu (LA57) atbalsts. Pievienots atbalsts ķīniešu x86 CPU Hygon Dhyana, kas balstīts uz AMD tehnoloģijām.
- Ports powerpc64 arhitektūrai pārgājis uz LLVM izmantošanu un ABI ELFv2 (bija iepriekšējo versiju FreeBSD binārie faili nevarēs tikt izmantoti FreeBSD 13). Powerpc64 portēti draiveri virtio, ixl, mrsas, aacraid, cpld.
- Noņemti draiveri novecojušiem Ethernet adapteriem:
- bm(4) BMAC
- cs(4) Crystal Semiconductor CS8900/CS8920
- de(4) DEC DC21x4x
- ed(4) NE-2000 and WD-80×3
- ep(4) 3Com Etherlink III (3c5x9) ISA
- ex(4) Intel EtherExpress Pro/10 and 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
- Noņemti draiveri ubsec (kryptoakseleratori Broadcom BCM58xx), ufm (FM radio uztvērēji ar USB interfeisu), ctau (Cronix Tau), cx (Cronix Sigma) un vpo (sērijas port SCSI).
Avots: opennet.lv
