Paglabas ng FreeBSD 13.0

Dalawa at kalahating taon pagkatapos ng pagbuo ng 12.x branch, ipinakita ang release ng FreeBSD 13.0, na inihanda para sa amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 at riscv64 na mga arkitektura. Bukod pa rito, nabuo ang mga larawan para sa mga virtualization system (QCOW2, VHD, VMDK, raw) at cloud environment na Amazon EC2, Google Compute Engine at Vagrant.

Mga pangunahing inobasyon:

  • Ang paglipat sa isang pinag-isang pagpapatupad ng Linux ng ZFS file system mula sa proyekto ng OpenZFS ay ginawa. Kabilang sa mga tampok na naging available sa FreeBSD pagkatapos ng paglipat sa OpenZFS: isang pinalawak na sistema ng quota, pag-encrypt ng mga set ng data, hiwalay na pagpili ng mga klase ng block allocation (mga klase ng alokasyon), ang paggamit ng mga tagubilin ng vector processor upang mapabilis ang pagpapatupad ng RAIDZ at checksum mga kalkulasyon, suporta para sa ZSTD compression algorithm, mode multihost (MMP, Multi Modifier Protection), pinahusay na command line instrumentation, inaayos ang maraming bug na nauugnay sa mga kundisyon ng lahi at pagharang.
  • Ang port para sa ARM64 architecture (AArch64) ay inilipat sa unang antas ng suporta (Tier 1), na sinusuportahan ng mga team na responsable sa pag-aalis ng mga kahinaan, paghahanda ng mga release, at pagpapanatili ng mga port. Ang unang antas ng suporta ay nagsasangkot ng paglikha ng mga installation assemblies, binary update at ready-made na mga pakete, pati na rin ang pagbibigay ng mga garantiya para sa paglutas ng mga partikular na problema at pagpapanatili ng hindi nabagong ABI para sa kapaligiran ng gumagamit at kernel (maliban sa ilang mga subsystem).
  • Ang arkitektura ng i386 ay inilipat sa pangalawang antas ng suporta sa platform (Tier 2), kung saan magpapatuloy ang pagbuo ng mga pagtitipon ng pag-install, binary update at mga handa na pakete, ngunit hindi ginagarantiyahan ang isang solusyon sa mga partikular na problema. Ang default na uri ng CPU (CPUTYPE) para sa arkitektura ng i386 ay binago mula 486 hanggang 686 (kung ninanais, ang mga assemblies para sa i486 at i586 ay maaaring gawin nang nakapag-iisa).
  • Ang mga bahagi ng clang, lld, lldb, compiler-rt, llvm, libunwind at libc++ ay na-update sa bersyon 11.
  • Ang pag-unlad ay inilipat mula sa sentralisadong source control system Subversion sa desentralisadong sistemang Git.
  • Ang base system ay nalinis ng mga application na ipinamahagi sa ilalim ng lisensya ng GPL. Ang Binutils 2.17 at gcc 4.2.1 ay inalis mula sa source tree, at lahat ng sinusuportahang arkitektura ay inilipat sa LLVM/clang toolkit. Kasama ang mga bersyong lisensyado ng BSD ng mga utility ng grep at dtc (Device Tree Compiler), na pumapalit sa mga bersyong lisensyado ng GPL. Ang proseso ng awtomatikong pag-mount ng amd ay inalis, ang pagpapaandar nito ay ipinapatupad na ngayon sa pamamagitan ng mga autof. Ang ctm utility ay inalis na, at inirerekumenda na gamitin ang misc/ctm port sa halip.
  • Ang routing stack ay muling isinulat upang isama ang suporta para sa mga nexthop na bagay na nag-iimbak ng data ng estado na ginamit upang ipasa ang isang packet sa nais na patutunguhan. Idinagdag ang kakayahang ikonekta ang iyong sariling mga algorithm sa paghahanap ng ruta. Nagdagdag ng mga algorithm sa paghahanap ng ruta mula sa DPDK (Data Plane Development Kit) librte, na nagbibigay-daan sa iyong i-optimize ang trabaho gamit ang napakalaking mga routing table. Para sa mga kahilingan ng proxyarp, ginagamit ang interface ng fib. Idinagdag ang kakayahang baguhin ang numero ng fib sa mabilisang sa pamamagitan ng sysctl net.fibs. Ipinatupad ang suporta para sa mga pansamantalang ruta para sa IPv4 at IPv6 (na may nakatakdang panghabambuhay).
  • Ang suporta sa pagruruta ng multipath ay muling isinulat at ginawang mas nasusukat, kung saan ang oras ng paghahanap ay hindi nakadepende sa laki ng listahan (O(1)). Ang bagong pagpapatupad ng Multipath ay nauugnay na ngayon sa parameter ng kernel ng ROUTE_MPATH, na pinalitan ang RADIX_MPATH at pinagana bilang default. Upang pamahalaan ang Multipath, ang sysctl net.route.multipath ay iminungkahi.
  • Ang balangkas ng cryptographic na ipinatupad sa antas ng kernel ay muling idinisenyo, nagdaragdag ng suporta para sa mga modernong cryptographic algorithm at pinasimple ang interface para sa paggamit ng pag-encrypt sa mga driver at iba pang mga bahagi ng kernel. Inalis ang mga lumang algorithm na ARC4, Blowfish, CAST128, DES, DES, MD5-HMAC at Skipjack. Hindi na sinusuportahan ng IPsec at Kerberos ang mga algorithm na hindi na ginagamit ng RFC 8221 at RFC 6649/8429, kasama ang 3DES. Inalis ang dating inanunsyo na mga hindi na ginagamit na algorithm sa subsystem ng pag-encrypt ng geli at cryptodev disk.
  • Kasama sa GENERIC kernel ang suporta para sa mga driver ng aesni at armv8crypto upang mapabilis ang pag-encrypt ng disk na nakabase sa geli gamit ang mga tagubilin ng AES-NI para sa mga arkitekturang amd64/i386 at AES-XTS para sa ARM64.
  • Nagdagdag ng qat driver para sa Intel QuickAssist (QAT) crypto accelerators at ossl driver na may pagpapatupad ng mga pinabilis na pamamaraan ng pag-encrypt ng software mula sa OpenSSL, na na-optimize gamit ang assembly language code. Ang driver ng armv8crypto ay nagdaragdag ng suporta para sa AES-XTS at AES-GCM gamit ang kaukulang mga tagubilin para sa mga processor ng ARMv8.
  • Idinagdag ang pagpapatupad ng TLS (kTLS) na tumatakbo sa antas ng kernel ng FreeBSD, na nagbibigay-daan para sa isang makabuluhang pagtaas sa pagganap ng pag-encrypt para sa mga socket ng TCP. Mga sinusuportahang TLS na bersyon 1.0 hanggang 1.3. Para sa pag-encrypt, ginagamit ang mga driver ng kernel crypto na sumusuporta sa AES-CBC o AES-GCM. Ang paggamit ng kTLS sa espasyo ng user ay nangangailangan ng muling pagbuo ng OpenSSL gamit ang opsyong WITH_OPENSSL_KTLS.
  • Nagdagdag ng bagong uri ng mga network buffer, mbuf (network data buffer), na maaaring kumatawan sa maramihang hindi na-map na pisikal na memory page sa isang buffer, na nagpapahusay sa pagganap ng sendfile(2) na tawag sa pamamagitan ng pagbawas sa laki ng mga listahan ng mbuf sa mga socket buffer.
  • Ang TCP stack ay nagsasama ng suporta para sa algorithm para sa proporsyonal na pagbawas sa intensity ng pagpapadala ng mga packet (Proportional Rate Reduction, RFC 6937), na nagbibigay-daan sa iyong mabilis na maibalik ang pinakamainam na mga parameter ng daloy pagkatapos ng mga pansamantalang problema sa paghahatid ng data. Upang huwag paganahin ang PRR, ibinigay ang sysctl net.inet.tcp.do_prr.
  • Ang mga kakayahan ng Bhyve hypervisor ay pinalawak: Nagdagdag ng suporta para sa pagbabahagi ng mga file gamit ang VirtIO-9p (VirtFS). Naipatupad na ang kakayahang magtrabaho kasama ang mga snapshot ng mga virtual machine. Nagdagdag ng suporta para sa mga PCI HDAudio device at karagdagang serial port na COM3 at COM4. Inalis ang mga hindi na ginagamit na modelo ng bvmconsole at bvmdebug device. Pinahusay na katatagan para sa mga kliyente ng VNC, kabilang ang macOS Screen Sharing application.
  • Ang mga driver ng VirtIO ay nagdagdag ng suporta para sa detalye ng VirtIO V1, na nagpabuti sa pagiging tugma ng mga bisita ng FreeBSD na may iba't ibang mga emulator at hypervisors.
  • Para sa mga prosesong naka-attach sa mga kapaligiran ng kulungan, ibinibigay ang conversion ng mga CPU binding (ang cpuset na unang nakatali sa proseso ay papalitan nang isinasaalang-alang ang cpuset ng kulungan at ang mga paghihigpit na itinakda).
  • Idinagdag ang kakayahang bumuo ng base system ng FreeBSD sa mga kapaligiran batay sa iba pang mga operating system. Ang pangangailangan na bumuo sa iba pang mga operating system ay dahil sa pagnanais na gumamit ng tuluy-tuloy na mga tool sa pagsasama batay sa Linux o macOS para sa pagsubok sa FreeBSD.
  • Ang isang bagong MMC/SD stack ay iminungkahi, batay sa CAM framework at nagbibigay-daan sa iyong ikonekta ang mga device gamit ang SDIO (Secure Digital I/O) interface. Halimbawa, ginagamit ang SDIO sa mga module ng WiFi at Bluetooth para sa maraming board, tulad ng Raspberry Pi 3. Ang bagong stack ay nagpapahintulot din sa CAM interface na magamit upang magpadala ng mga SD command mula sa mga application sa espasyo ng user, na ginagawang posible na lumikha ng device mga driver na gumagana sa antas ng user.
  • Pinahusay na pagganap ng layer para sa pagiging tugma sa Linux. Ang mga file ng DTS (Device Tree Sources) ay naka-synchronize sa Linux 5.8 kernel.
  • Nagdagdag ng suporta para sa NFSv4.2 (RFC-7862) at ipinatupad ang kakayahang patakbuhin ang NFS sa isang naka-encrypt na channel ng komunikasyon batay sa TLS 1.3, sa halip na gumamit ng Kerberos (sec=krb5p mode), na limitado sa pag-encrypt lamang ng mga mensahe ng RPC at ipinatupad sa software lang.
  • Ang lumang bersyon ng GDB debugger, na dating naka-install sa /usr/libexec na direktoryo at ginamit sa crashinfo utility, ay inalis na. Sa halip na paunang naka-install na GDB, upang makakuha ng detalyadong impormasyon tungkol sa mga sanhi ng pag-crash, iminumungkahi na ngayong i-install ang pinakabagong bersyon ng GDB mula sa mga port o package. Ang suporta para sa proseso ng pag-debug sa pamamagitan ng mga procf ay hindi na ipinagpatuloy. Ang netgdb driver ay naidagdag, na nagbibigay-daan sa pag-access sa kernel debugger sa network.
  • Ang function na hindi safe gets ay inalis mula sa libc (simula sa pamantayan ng C11, ang function na ito ay hindi kasama sa detalye) at ang mga port na gumagamit pa rin ng function na ito ay naayos na. Inalis ang cap_random function (dapat gamitin ang getrandom).
  • Nagdagdag ng bagong system call copy_file_range, tugma sa pagpapatupad mula sa Linux kernel at nagbibigay-daan sa iyong pabilisin ang pagkopya ng data mula sa isang file patungo sa isa pa sa pamamagitan ng pagsasagawa ng operasyon sa gilid lamang ng kernel nang hindi muna binabasa ang data sa memorya ng proseso. Ginagamit din ang system call sa NFSv4.2 server para magsagawa ng mga operasyon ng kopya nang lokal sa server (nang walang paglilipat sa client).
  • Ang POSIX AIO asynchronous I/O engine ay nagpapakilala ng suporta para sa mga vectorized na function. Sa partikular, ang aio_writev at aio_readv system call ay naidagdag, na nagpapahintulot sa pagpapatupad ng mga vectorized na katumbas ng aio_read at aio_write function.
  • Ang mga bahagi ng user space ay hindi na ipinagpatuloy upang suportahan ang a.out executable file format sa i386 architecture system. Ang elf2aout utility ay inalis na.
  • Ang ping at ping6 utility ay pinagsama. Ang kakayahang magtakda ng mga parameter ng kalidad ng serbisyo (QoS) sa pamamagitan ng IP DSCP at Ethernet PCP ay naidagdag sa ping.
  • Ang freebsd-update utility ay nagpapakita na ngayon ng pag-usad ng pag-download ng file at idinaragdag ang mga updatesready at showconfig na mga utos upang suriin ang mga update at ipakita ang configuration.
  • Napakaraming gawain ang ginawa upang mapabuti ang suporta para sa mga sistema ng NUMA (Non-Uniform Memory Access).
  • Mga na-update na driver ng graphics at mga bahagi ng graphics stack. Ang mga problema sa pagpapatakbo ng mga kapaligiran batay sa protocol ng Wayland ay nalutas na.
  • Nagdagdag ng backlight subsystem para sa paglikha ng mga backlight control driver. Nagdagdag ng pwm-backlight driver para kontrolin ang Pinebook at Pinebook Pro backlight.
  • Ang suporta para sa SCTP protocol ay kasama sa isang hiwalay na module na sctp.ko, na hindi pinagana bilang default sa GENERIC kernel.
  • Para sa mga input device, isang bagong usbhid driver ang iminungkahi na gumagamit ng hid framework para gumana sa USB HID device, sa halip na ang ukbd, ums at uhid drivers.
  • Sinusuportahan ng driver ng cpufreq ang teknolohiya ng Intel Speed ​​​​Shift.
  • Nagdagdag ng suporta para sa mga bagong board batay sa 64-bit na ARMv8 na mga CPU, kabilang ang Broadcom BCM5871X at NXP LS1046A SoCs.
  • Para sa arkitektura ng AMD64, ipinatupad ang suporta para sa 57-bit virtual address (LA57). Nagdagdag ng suporta para sa Chinese x86 CPU na Hygon Dhyana batay sa mga teknolohiya ng AMD.
  • Ang port para sa arkitektura ng powerpc64 ay inilipat upang gamitin ang LLVM at ang ELFv2 ABI (hindi magagamit ang mga binary mula sa mga nakaraang bersyon ng FreeBSD sa FreeBSD 13). Ang mga driver na virtio, ixl, mrsas, aacraid, cpld ay na-port para sa powerpc64.
  • Ang mga driver para sa mga legacy na Ethernet adapter ay inalis:
    • bm(4) BMAC
    • cs(4) Crystal Semiconductor CS8900/CS8920
    • de(4) DEC DC21x4x
    • ed(4) NE-2000 at WD-80Γ—3
    • ep(4) 3Com Etherlink III (3c5x9) ISA
    • ex(4) Intel EtherExpress Pro/10 at 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 / Mabilis na EtherLink III (3c59x) PCI
    • wb(4) Winbond W89C840F
    • xe(4) Xircom PCMCIA
  • Inalis ang mga driver na ubsec (Broadcom BCM58xx crypto accelerators), ufm (FM tuners na may USB interface), ctau (Cronix Tau), cx (Cronix Sigma) at vpo (parallel port SCSI).

Pinagmulan: opennet.ru

Magdagdag ng komento