Dalawa at kalahating taon pagkatapos ng pagbuo ng 12.x branch, inilabas ang FreeBSD 13.0, na tina-target ang amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64, at riscv64 na mga arkitektura. Bukod pa rito, ang mga larawan ay ginawa para sa mga virtualization system (QCOW2, VHD, VMDK, raw) at cloud environment gaya ng Amazon EC2, Google Compute Engine, at Vagrant.
Mga pangunahing inobasyon:
- Nakumpleto na ang paglipat sa isang pinag-isang c Linux Ang implementasyon ng proyektong OpenZFS ng ZFS file system. Ang mga tampok na naging available sa FreeBSD pagkatapos lumipat sa OpenZFS ay kinabibilangan ng: isang pinalawak na sistema ng quota, pag-encrypt ng data set, hiwalay na pagpili ng klase ng alokasyon, ang paggamit ng mga tagubilin ng vector processor upang mapabilis ang implementasyon ng RAIDZ at mga kalkulasyon ng checksum, suporta para sa ZSTD compression algorithm, multihost mode (MMP, Multi Modifier Protection), pinahusay na command-line tooling, at mga pag-aayos para sa maraming kondisyon ng karera at mga bug sa pag-lock.
- Ang port para sa arkitektura ng ARM64 (AArch64) ay na-promote sa Tier 1 na suporta, na sinusuportahan ng mga team na responsable para sa mga pag-aayos ng kahinaan, paghahanda sa paglabas, at pagpapanatili ng port. Kasama sa suporta sa Tier 1 ang paglikha ng mga install build, binary update, at ready-to-use na package, pati na rin ang mga garantiya na malulutas ang mga partikular na isyu at ang ABI para sa userland at kernel (maliban sa ilang partikular na subsystem) ay mananatiling hindi magbabago.
- Ang arkitektura ng i386 ay inilipat sa suporta sa platform ng Tier 2, na patuloy na bubuo ng mga build ng pag-install, binary update, at mga pre-built na pakete, ngunit hindi ginagarantiyahan ang paglutas ng mga partikular na isyu. Ang default na uri ng CPU (CPUTYPE) para sa arkitektura ng i386 ay binago mula 486 hanggang 686 (ang mga build para sa i486 at i586 ay maaaring mabuo nang hiwalay kung nais).
- Ang clang, lld, lldb, compiler-rt, llvm, libunwind, at libc++ na mga bahagi ay na-update sa bersyon 11.
- Ang pag-unlad ay inilipat mula sa sentralisadong sistema ng pamamahala ng source code ng Subversion patungo sa desentralisadong sistema ng Git.
- Ang base system ay nalinis ng mga application na lisensyado 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 toolchain. Ang mga bersyong lisensyado ng BSD ng grep at dtc (Device Tree Compiler) ay isinama, na pinapalitan ang mga bersyong lisensyado ng GPL. Ang proseso ng amd automount ay inalis, kasama ang pagpapagana nito na ipinatupad na ngayon sa pamamagitan ng mga autof. Ang ctm utility ay tinanggal; ang misc/ctm port ay inirerekomenda sa halip.
- Ang routing stack ay muling isinulat upang suportahan ang mga nexthop object, na nag-iimbak ng data ng estado na ginamit upang ipasa ang isang packet sa nais nitong patutunguhan. Naidagdag na ang kakayahang isama ang mga custom na algorithm sa pagtuklas ng ruta. Ang mga algorithm ng pagtuklas ng ruta mula sa DPDK (Data Plane Development Kit) ng librte ay idinagdag, na nagbibigay-daan para sa pag-optimize ng napakalaking mga routing table. Ang fib interface ay ginagamit na ngayon para sa proxyarp query. Ang kakayahang baguhin ang bilang ng mga fibs on the fly sa pamamagitan ng net.fibs sysctl ay naidagdag. Ang mga pansamantalang ruta na may naka-configure na panghabambuhay ay ipinatupad para sa IPv4 at IPv6.
- Ang suporta sa pagruruta ng multipath ay muling isinulat at ginawang mas nasusukat, na may oras ng paghahanap na hiwalay sa laki ng listahan (O(1)). Ang bagong pagpapatupad ng Multipath ay naka-link na ngayon sa parameter ng kernel ng ROUTE_MPATH, na pumapalit sa RADIX_MPATH at pinagana bilang default. Ang net.route.multipath sysctl ay ipinakilala para sa pamamahala ng Multipath.
- Ang kernel-level cryptographic framework ay muling idinisenyo upang suportahan ang mga modernong cryptographic algorithm at pasimplehin ang interface para sa paggamit ng encryption sa mga driver at iba pang mga bahagi ng kernel. Ang mga hindi na ginagamit na algorithm gaya ng ARC4, Blowfish, CAST128, DES, MD5-HMAC, at Skipjack ay inalis na. Ibinaba ng IPsec at Kerberos ang suporta para sa mga algorithm na hindi na ginagamit sa RFC 8221 at RFC 6649/8429, kasama ang 3DES. Ang mga dating hindi na ginagamit na algorithm ay inalis mula sa geli at cryptodev disk encryption subsystem.
- 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 arkitektura ng amd64/i386 at mga tagubilin sa AES-XTS para sa ARM64.
- Ang qat driver para sa Intel QuickAssist (QAT) crypto accelerators at ang ossl driver ay naidagdag, na nagpapatupad ng pinabilis na software encryption routines mula sa OpenSSL, na na-optimize gamit ang assembly code. Sinusuportahan na ngayon ng armv8crypto driver ang AES-XTS at AES-GCM gamit ang kaukulang mga tagubilin sa processor ng ARMv8.
- Ang pagpapatupad ng TLS (kTLS) ay naidagdag sa kernel ng FreeBSD, na makabuluhang nagpapataas ng pagganap ng pag-encrypt para sa mga TCP socket. Ang mga bersyon 1.0 hanggang 1.3 ng TLS ay sinusuportahan. Ang mga driver ng kernel crypto na may suporta sa AES-CBC o AES-GCM ay ginagamit para sa pag-encrypt. Ang paggamit ng kTLS sa espasyo ng user ay nangangailangan ng muling pagbuo ng OpenSSL gamit ang opsyong WITH_OPENSSL_KTLS.
- Isang bagong network data buffer (mbuf) na uri ay naidagdag na maaaring kumatawan sa maramihang hindi naka-map na pisikal na memory page sa iisang buffer, na nagpapahusay sa pagganap ng sendfile(2) sa pamamagitan ng pagbawas sa laki ng mga listahan ng mbuf sa mga socket buffer.
- Ang TCP stack ay nagsasama ng suporta para sa Proportional Rate Reduction (RFC 6937) algorithm, na nagbibigay-daan para sa mas mabilis na pagbawi ng pinakamainam na mga parameter ng daloy pagkatapos ng pansamantalang mga problema sa paghahatid ng data. Ang net.inet.tcp.do_prr sysctl ay magagamit para sa hindi pagpapagana ng PRR.
- Pinalawak ang mga kakayahan ng Bhyve hypervisor: Naidagdag ang suporta para sa pagbabahagi ng file gamit ang VirtIO-9p (VirtFS). Naipatupad na ang suporta sa Snapshot. mga virtual na makinaNagdagdag 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 estabilidad sa mga VNC client, kabilang ang macOS-Aplikasyon sa Pagbabahagi ng Screen.
- Ang mga driver ng VirtIO ay na-update upang suportahan ang detalye ng VirtIO V1, pagpapabuti ng pagiging tugma ng mga bisita ng FreeBSD na may iba't ibang mga emulator at hypervisors.
- Para sa mga prosesong naka-attach sa mga jail environment, ang mga CPU affinity ay kino-convert (ang cpuset na unang naka-attach sa proseso ay papalitan nang isinasaalang-alang ang jail cpuset at ang mga paghihigpit na itinakda).
- Idinagdag ang kakayahang bumuo ng FreeBSD base system sa mga kapaligirang nakabatay sa ibang mga operating system. Ang pangangailangang bumuo sa ibang mga operating system ay hinihimok ng pagnanais na gumamit ng mga continuous integration tool para sa pagsubok ng FreeBSD, na nakabatay sa Linux o macOS.
- Ang isang bagong MMC/SD stack batay sa CAM framework ay iminungkahi, na nagpapagana ng koneksyon ng mga device na may 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 nagbibigay-daan din sa paggamit ng interface ng CAM para sa pagpapadala ng mga SD command mula sa mga application ng user-space, na nagpapagana sa paglikha ng mga driver ng device sa antas ng user.
- Pinahusay na pagganap ng interlayer para sa pagiging tugma sa LinuxAng mga file ng DTS (Device Tree Sources) ay naka-synchronize sa kernel Linux 5.8.
- Nagdagdag ng suporta para sa NFSv4.2 (RFC-7862) at ipinatupad ang kakayahang magpatakbo ng 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 lamang sa software.
- Ang lumang bersyon ng GDB debugger, na dati nang naka-install sa /usr/libexec na direktoryo at ginamit ng crashinfo utility, ay inalis na. Sa halip na ang paunang naka-install na GDB, ang isang mas bagong bersyon ng GDB mula sa mga port o mga pakete ay inaalok na ngayon para sa pagkuha ng detalyadong impormasyon ng pag-crash. Ang suporta para sa mga 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 (ang function na ito ay hindi natukoy mula noong C11 standard), at ang mga port na gumagamit pa rin ng function na ito ay na-adjust. Ang cap_random function ay inalis na (gamitin ang getrandom sa halip).
- Nagdagdag ng bagong copy_file_range system call na tugma sa implementasyon ng kernel. Linux at nagbibigay-daan upang mapabilis ang pagkopya ng data mula sa isang file patungo sa isa pa sa pamamagitan ng pagsasagawa lamang ng operasyon sa panig ng kernel nang hindi muna binabasa ang data sa memorya ng proseso. Ginagamit din ang system call sa server NFSv4.2 para sa pagsasagawa ng mga operasyon sa pagkopya nang lokal sa server (nang hindi nagpapadala sa kliyente).
- Sinusuportahan na ngayon ng POSIX AIO asynchronous na mekanismo ng I/O ang mga vectorized na function. Sa partikular, ang aio_writev at aio_readv system call ay naidagdag, na nagbibigay-daan para sa pagpapatupad ng mga vectorized na katumbas ng aio_read at aio_write function.
- Ang suporta para sa mga bahagi ng user-space na sumusuporta sa a.out executable na format sa mga i386 system ay hindi na ipinagpatuloy. Ang elf2aout utility ay inalis na.
- Ang ping at ping6 utilities ay pinagsama. Sinusuportahan na ngayon ng Ping ang pagtatakda ng mga parameter ng kalidad ng serbisyo (QoS) sa pamamagitan ng IP DSCP at Ethernet PCP.
- Ang freebsd-update utility ay nagpapakita na ngayon ng pag-usad ng pag-download ng file at idinadagdag ang mga updatesready at showconfig na mga utos upang suriin ang mga update at ipakita ang configuration.
- Napakaraming trabaho ang ginawa upang mapabuti ang suporta para sa mga sistema ng NUMA (Non-Uniform Memory Access).
- Ang mga driver ng graphics at mga bahagi ng graphics stack ay na-update. Ang mga isyu sa Wayland-based na kapaligiran ay nalutas na.
- Nagdagdag ng backlight subsystem para sa paglikha ng mga backlight control driver. Idinagdag ang pwm-backlight driver para sa Pinebook at Pinebook Pro na kontrol sa backlight.
- Ang suporta para sa SCTP protocol ay inilipat sa isang hiwalay na module, sctp.ko, na hindi pinagana bilang default sa GENERIC kernel.
- Para sa mga input device, isang bagong driver, ang usbhid, ay ipinakilala na gumagamit ng hid framework para gumana sa mga USB HID device, na pinapalitan ang ukbd, ums, at uhid driver.
- Ang driver ng cpufreq ay nagpapatupad ng suporta para sa teknolohiya ng Intel Speed Shift.
- Nagdagdag ng suporta para sa mga bagong board batay sa 64-bit na ARMv8 na mga CPU, kasama ang Broadcom BCM5871X at NXP LS1046A SoCs.
- Ang suporta para sa 57-bit virtual address (LA57) ay ipinatupad para sa AMD64 architecture. Idinagdag ang suporta para sa mga Chinese x86 Hygon Dhyana na CPU batay sa mga teknolohiya ng AMD.
- Na-convert ang powerpc64 port upang gamitin ang LLVM at ang ELFv2 ABI (hindi magagamit ang mga binary mula sa mga nakaraang bersyon ng FreeBSD sa FreeBSD 13). Ang virtio, ixl, mrsas, aacraid, at cpld driver ay na-port na 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 na mga driver: 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
