Miaka miwili na nusu baada ya kuundwa kwa tawi la 12.x, kutolewa kwa FreeBSD 13.0 iliwasilishwa, ambayo imeandaliwa kwa ajili ya usanifu wa amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 na riscv64. Zaidi ya hayo, picha zilitolewa kwa mifumo ya uboreshaji (QCOW2, VHD, VMDK, ghafi) na mazingira ya wingu Amazon EC2, Google Compute Engine na Vagrant.
Ubunifu kuu:
- Mpito hadi c iliyounganishwa umekamilika Linux Utekelezaji wa mradi wa OpenZFS wa mfumo wa faili wa ZFS. Vipengele vilivyopatikana katika FreeBSD baada ya kubadili hadi OpenZFS ni pamoja na: mfumo uliopanuliwa wa mgao, usimbaji fiche wa seti ya data, uteuzi tofauti wa madarasa ya mgao, matumizi ya maagizo ya kichakataji cha vekta ili kuharakisha utekelezaji wa RAIDZ na hesabu za checksum, usaidizi wa algoriti ya mgandamizo ya ZSTD, hali ya mwenyeji wengi (MMP, Ulinzi wa Virekebishaji Vingi), uboreshaji wa zana za mstari wa amri, na marekebisho ya hali nyingi za mbio na hitilafu za kufunga.
- Bandari ya usanifu wa ARM64 (AArch64) imehamishwa hadi kiwango cha kwanza cha usaidizi (Tier 1), ambacho kinasaidiwa na timu zinazohusika na kuondoa udhaifu, kuandaa matoleo na kudumisha bandari. Ngazi ya kwanza ya usaidizi inahusisha uundaji wa makusanyiko ya ufungaji, sasisho za binary na vifurushi vilivyotengenezwa tayari, pamoja na kutoa dhamana ya kutatua matatizo maalum na kudumisha ABI isiyobadilika kwa mazingira ya mtumiaji na kernel (isipokuwa baadhi ya mifumo ndogo).
- Usanifu wa i386 umehamishiwa kwenye ngazi ya pili ya usaidizi wa jukwaa (Tier 2), ambapo uundaji wa makusanyiko ya ufungaji, sasisho za binary na vifurushi tayari zitaendelea, lakini haitoi ufumbuzi wa matatizo maalum. Aina ya CPU chaguo-msingi (CPUTYPE) ya usanifu wa i386 imebadilishwa kutoka 486 hadi 686 (ikiwa inataka, mikusanyiko ya i486 na i586 inaweza kuundwa kwa kujitegemea).
- Vipengele vya clang, lld, lldb, compiler-rt, llvm, libunwind na libc++ vimesasishwa hadi toleo la 11.
- Uendelezaji umehamishwa kutoka mfumo mkuu wa udhibiti wa chanzo Ugeuzaji hadi mfumo wa ugatuzi wa Git.
- Mfumo wa msingi ulisafishwa kwa maombi yaliyosambazwa chini ya leseni ya GPL. Binutils 2.17 na gcc 4.2.1 zimeondolewa kwenye mti chanzo, na usanifu wote unaotumika umehamishwa hadi kwa LLVM/clang toolkit. Yaliyojumuishwa ni matoleo yenye leseni ya BSD ya huduma za grep na dtc (Kikusanya Miti ya Kifaa), ambayo huchukua nafasi ya matoleo yaliyoidhinishwa na GPL. Mchakato wa kupachika kiotomatiki wa amd umeondolewa, utendakazi ambao sasa unatekelezwa kupitia autofs. Huduma ya ctm imeondolewa, na inashauriwa kutumia lango la misc/ctm badala yake.
- Rafu ya uelekezaji imeandikwa upya ili kujumuisha usaidizi wa vipengee vya nexthop ambavyo huhifadhi data ya hali inayotumiwa kusambaza pakiti hadi unakotaka. Imeongeza uwezo wa kuunganisha algoriti zako za utafutaji wa njia. Aliongeza algoriti za utafutaji wa njia kutoka DPDK (Data Plane Development Kit) librte, kukuruhusu kuboresha kazi kwa kutumia majedwali makubwa sana ya kuelekeza. Kwa maombi ya proxyarp, kiolesura cha fib kinatumika. Imeongeza uwezo wa kubadilisha nambari ya fib kwenye kuruka kupitia sysctl net.fibs. Usaidizi uliotekelezwa kwa njia za muda za IPv4 na IPv6 (pamoja na maisha yaliyowekwa).
- Usaidizi wa uelekezaji wa njia nyingi umeandikwa upya na kufanywa kuongezwa zaidi, ambapo muda wa utafutaji hautegemei ukubwa wa orodha (O(1)). Utekelezaji mpya wa Njia nyingi sasa unahusishwa na kigezo cha ROUTE_MPATH kernel, ambacho kimechukua nafasi ya RADIX_MPATH na kuwezeshwa kwa chaguomsingi. Ili kudhibiti Njia nyingi, sysctl net.route.multipath inapendekezwa.
- Mfumo wa kriptografia uliotekelezwa katika kiwango cha kernel umeundwa upya, na kuongeza usaidizi kwa algoriti za kisasa za kriptografia na kurahisisha kiolesura cha kutumia usimbaji fiche katika viendeshaji na vipengee vingine vya kernel. Imeondoa algoriti zilizopitwa na wakati ARC4, Blowfish, CAST128, DES, DES, MD5-HMAC na Skipjack. IPsec na Kerberos hazitumii tena algoriti zilizoondolewa na RFC 8221 na RFC 6649/8429, ikijumuisha 3DES. Imeondoa algoriti zilizotangazwa hapo awali zilizoacha kutumika katika mfumo mdogo wa usimbaji wa diski ya geli na cryptodev.
- Kiini cha GENERIC kinajumuisha usaidizi wa viendeshi vya aesni na armv8crypto ili kuharakisha usimbaji fiche wa diski kulingana na geli kwa kutumia maagizo ya AES-NI ya usanifu wa amd64/i386 na AES-XTS kwa ARM64.
- Imeongeza kiendesha mirungi ya vichapuzi vya Intel QuickAssist (QAT) na kiendesha ossl pamoja na utekelezaji wa taratibu za usimbaji fiche za programu kutoka OpenSSL, zilizoboreshwa kwa kutumia msimbo wa lugha ya kuunganisha. Kiendeshaji cha armv8crypto huongeza usaidizi kwa AES-XTS na AES-GCM kwa kutumia maagizo yanayolingana kwa vichakataji vya ARMv8.
- Utekelezaji wa TLS (kTLS) ulioongezwa unaoendeshwa katika kiwango cha kernel ya FreeBSD, ambayo inaruhusu ongezeko kubwa la utendakazi wa usimbaji fiche kwa soketi za TCP. Matoleo ya TLS yanayotumika 1.0 hadi 1.3. Kwa usimbaji fiche, viendeshi vya kernel crypto vinavyounga mkono AES-CBC au AES-GCM hutumiwa. Kutumia kTLS katika nafasi ya mtumiaji kunahitaji kujenga upya OpenSSL kwa chaguo la WITH_OPENSSL_KTLS.
- Imeongeza aina mpya ya vihifadhi mtandao, mbuf (bafa ya data ya mtandao), ambayo inaweza kuwakilisha kurasa nyingi za kumbukumbu zisizo na ramani katika bafa moja, ambayo huboresha utendakazi wa simu ya sendfile(2) kwa kupunguza ukubwa wa orodha za mbuf katika vibafa vya soketi.
- Mkusanyiko wa TCP huunganisha usaidizi wa algorithm kwa kupunguza uwiano katika ukubwa wa kutuma pakiti (Kupunguza Kiwango cha Uwiano, RFC 6937), ambayo inakuwezesha kurejesha haraka vigezo vya mtiririko bora baada ya matatizo ya muda na maambukizi ya data. Ili kuzima PRR, sysctl net.inet.tcp.do_prr imetolewa.
- Uwezo wa Bhyve hypervisor umepanuliwa: Usaidizi wa kushiriki faili kwa kutumia VirtIO-9p (VirtFS) umeongezwa. Usaidizi wa picha umetekelezwa. mashine pepeImeongeza usaidizi kwa vifaa vya PCI HDAudio na milango ya ziada ya mfululizo COM3 na COM4. Imeondoa mifumo ya vifaa vya bvmconsole na bvmdebug iliyopitwa na wakati. Uthabiti ulioboreshwa na wateja wa VNC, ikiwa ni pamoja na macOS-Programu ya Kushiriki Skrini.
- Madereva ya VirtIO yameongeza usaidizi kwa uainishaji wa VirtIO V1, ambayo imeboresha utangamano wa wageni wa FreeBSD na emulators na hypervisors mbalimbali.
- Kwa michakato iliyoambatanishwa na mazingira ya jela, ubadilishaji wa vifungo vya CPU hutolewa (cpuset iliyofungwa hapo awali kwenye mchakato itabadilishwa kwa kuzingatia cpuset ya jela na vizuizi vilivyowekwa).
- Uwezo wa kujenga mfumo wa msingi wa FreeBSD katika mazingira kulingana na mifumo mingine ya uendeshaji umeongezwa. Haja ya kujenga juu ya mifumo mingine ya uendeshaji inaendeshwa na hamu ya kutumia zana za ujumuishaji endelevu kwa ajili ya kujaribu FreeBSD, ambazo zinategemea Linux au macOS.
- Rafu mpya ya MMC/SD inapendekezwa, kulingana na mfumo wa CAM na kukuruhusu kuunganisha vifaa na kiolesura cha SDIO (Secure Digital I/O). Kwa mfano, SDIO inatumika katika moduli za WiFi na Bluetooth kwa mbao nyingi, kama vile Raspberry Pi 3. Raspberry Pi XNUMX. Raspberry Pi XNUMX. Rasi hii mpya pia inaruhusu kiolesura cha CAM kitumike kutuma amri za SD kutoka kwa programu katika nafasi ya mtumiaji, ambayo huwezesha kuunda kifaa. madereva wanaofanya kazi katika kiwango cha mtumiaji.
- Utendaji ulioboreshwa wa tabaka mbalimbali kwa ajili ya utangamano na LinuxFaili za DTS (Vyanzo vya Mti wa Kifaa) zimesawazishwa na kiini Linux 5.8.
- Imeongeza usaidizi kwa NFSv4.2 (RFC-7862) na kutekeleza uwezo wa kuendesha NFS kwenye chaneli ya mawasiliano iliyosimbwa kwa msingi wa TLS 1.3, badala ya kutumia Kerberos (sec=krb5p mode), ambayo ilikuwa na usimbaji fiche wa ujumbe wa RPC pekee na ilitekelezwa. tu katika programu.
- Toleo la kizamani la kitatuzi cha GDB, ambalo hapo awali lilisakinishwa kwenye saraka ya /usr/libexec na kutumika katika matumizi ya crashinfo, limeondolewa. Badala ya GDB iliyosakinishwa awali, ili kupata maelezo ya kina kuhusu sababu za kuacha kufanya kazi, sasa inapendekezwa kusakinisha toleo jipya zaidi la GDB kutoka bandari au vifurushi. Usaidizi wa utatuzi wa mchakato kupitia procfs umekatishwa. Kiendeshaji cha netgdb kimeongezwa, kikiruhusu ufikiaji wa kitatuzi cha kernel kwenye mtandao.
- Chaguo za kukokotoa zisizo salama zimeondolewa kwenye libc (kuanzia kiwango cha C11, chaguo la kukokotoa halijajumuishwa kwenye vipimo) na bandari ambazo bado zinatumia chaguo za kukokotoa zimerekebishwa. Vitendaji vya cap_random vimeondolewa (getrandom inapaswa kutumika).
- Imeongeza simu mpya ya mfumo wa copy_file_range inayoendana na utekelezaji wa kernel. Linux na inaruhusu kuharakisha kunakili data kutoka faili moja hadi nyingine kwa kufanya operesheni hiyo upande wa kiini pekee bila kwanza kusoma data kwenye kumbukumbu ya mchakato. Simu ya mfumo pia hutumika katika seva NFSv4.2 kwa ajili ya kufanya shughuli za kunakili ndani ya seva (bila kusambaza kwa mteja).
- Injini ya POSIX AIO isiyolingana ya I/O inatanguliza usaidizi kwa vitendakazi vilivyowekwa vekta. Hasa, simu za mfumo wa aio_writev na aio_readv zimeongezwa, kuruhusu utekelezaji wa vipengee sawa vya kazi za aio_read na aio_write.
- Vipengee vya nafasi ya mtumiaji vimekomeshwa ili kusaidia umbizo la faili inayoweza kutekelezeka ya a.out kwenye mifumo ya usanifu ya i386. Huduma ya elf2aout imeondolewa.
- Huduma za ping na ping6 zimeunganishwa. Uwezo wa kuweka vigezo vya ubora wa huduma (QoS) kupitia IP DSCP na Ethernet PCP umeongezwa kwenye ping.
- Huduma ya usasishaji wa freebsd sasa inaonyesha maendeleo ya upakuaji wa faili na inaongeza amri za sasisho tayari na showconfig ili kuangalia masasisho na kuonyesha usanidi.
- Kazi kubwa imefanywa ili kuboresha usaidizi kwa mifumo ya NUMA (Non-Uniform Memory Access).
- Viendeshi vya michoro vilivyosasishwa na vijenzi vya rafu za michoro. Matatizo na utendakazi wa mazingira kulingana na itifaki ya Wayland yametatuliwa.
- Mfumo mdogo wa taa za nyuma kwa kuunda viendeshaji vya kudhibiti taa za nyuma. Kiendeshaji cha pwm-backlight kimeongezwa ili kudhibiti taa ya nyuma ya Pinebook na Pinebook Pro.
- Usaidizi wa itifaki ya SCTP umejumuishwa katika moduli tofauti ya sctp.ko, ambayo imezimwa kwa chaguo-msingi katika kerneli ya GENERIC.
- Kwa vifaa vya kuingiza data, kiendeshi kipya cha usbhid kimependekezwa ambacho kinatumia mfumo uliofichwa kufanya kazi na vifaa vya USB HID, badala ya viendeshi vya ukbd, ums na uhid.
- Dereva ya cpufreq inasaidia teknolojia ya Intel Speed Shift.
- Usaidizi umeongezwa kwa bodi mpya kulingana na 64-bit ARMv8 CPUs, ikiwa ni pamoja na Broadcom BCM5871X na NXP LS1046A SoCs.
- Kwa usanifu wa AMD64, msaada wa anwani za 57-bit (LA57) zinatekelezwa. Usaidizi umeongezwa kwa Kichina x86 CPU Hygon Dhyana kulingana na teknolojia za AMD.
- Lango la usanifu wa powerpc64 limebadilishwa ili kutumia LLVM na ELFv2 ABI (nakala kutoka kwa matoleo ya awali ya FreeBSD hazitaweza kutumika katika FreeBSD 13). Viendeshaji virtio, ixl, mrsas, aacraid, cpld vimehamishwa kwa powerpc64.
- Viendeshi vya adapta za Ethaneti za urithi zimeondolewa:
- bm(4) BMAC
- cs(4) Semicondukta ya Kioo CS8900/CS8920
- de(4) DEC DC21x4x
- ed(4) NE-2000 na WD-80×3
- ep(4) 3Com Etherlink III (3c5x9) ISA
- ex(4) Intel EtherExpress Pro/10 na 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) Vyombo vya Texas ThunderLAN
- tx(4) SMC 83c17x
- txp(4) 3Com 3XP Kimbunga/Sidewinder (3CR990)
- vx(4) 3Com EtherLink III / Fast EtherLink III (3c59x) PCI
- wb(4) Winbond W89C840F
- xe(4) Xircom PCMCIA
- Viendeshaji vilivyoondolewa ubsec (vichapuzi vya Broadcom BCM58xx crypto), ufm (vitafuta umeme vya FM vilivyo na kiolesura cha USB), ctau (Cronix Tau), cx (Cronix Sigma) na vpo (bandari sambamba SCSI).
Chanzo: opennet.ru
