Umbiko Wokuthuthukiswa Kwe-FreeBSD wekota yokuqala ka-2020

eshicilelwe umbiko ngokuthuthukiswa kwephrojekthi yeFreeBSD kusukela ngoJanuwari kuya kuNdasa wezi-2020. Phakathi kwezinguquko singaziphawula:

  • Imibuzo ejwayelekile kanye nesistimu
    • Kukhishwe isethi ye-GCC compiler esihlahleni somthombo we-FreeBSD-CURRENT, kanye nezinsiza ezingasetshenzisiwe ze-gperf, gcov kanye ne-gtc (devicetree compiler). Zonke izinkundla ezingasekeli i-Clang zishintshelwe ekusebenziseni amathuluzi okwakha angaphandle afakwe ezikhumulweni. Isistimu eyisisekelo ithumele ukukhishwa okuphelelwe yisikhathi kwe-GCC 4.2.1, futhi ukuhlanganiswa kwezinguqulo ezintsha akwenzekanga ngenxa yokushintshwa kwe-4.2.2 kuya kwelayisense ye-GPLv3, ebhekwe njengengafanelekile kuzingxenye eziyisisekelo ze-FreeBSD. Ukukhishwa kwamanje kwe-GCC, okuhlanganisa i-GCC 9, kusengafakwa kusukela kumaphakheji nezimbobo.
    • Ingqalasizinda ye-Linux yokulingisa imvelo (i-Linuxulator) yengeze usekelo lwekholi yesistimu yokuthumela ifayela, imodi ye-TCP_CORK (iyadingeka ku-nginx), kanye nefulegi le-MAP_32BIT (ixazulula inkinga ngokuqalisa amaphakheji nge-Mono esuka ku-Ubuntu Bionic). Izinkinga ngokulungiswa kwe-DNS uma usebenzisa i-glibc entsha kuno-2.30 (isibonelo kusuka ku-CentOS 8) zixazululiwe.
      Ingqalasizinda eqhubekayo yokuhlanganisa inikeza amandla okuqalisa imisebenzi ye-LTP (Linux Testing Project) esebenzisa i-Linuxulator ukuhlola ukuthuthukiswa okwenziwe kukhodi ukusekela i-Linux. Ukuhlola okungaba ngu-400 kuyahluleka futhi kudinga ukulungiswa (amanye amaphutha abangelwa amanga, amanye adinga ukulungiswa okuncane, kodwa kukhona okunye okudinga ukwengeza ukusekelwa ukuze kulungiswe izingcingo zesistimu entsha). Umsebenzi usuwenziwe ukuhlanza ikhodi ye-Linuxulator nokwenza lula ukulungisa iphutha. Amapheshana anosekelo lwezibaluli ezinwetshiwe kanye nekholi yesistimu ye-fexecve aselungisiwe, kodwa okwamanje awakabuyekezwa.

    • Imihlangano yeqembu elisebenzayo eyakhiwe ukuze kwenziwe ukuthuthwa kwamakhodi omthombo kusuka ohlelweni oluphakathi nendawo lokulawula umthombo Ukuguqulwa ukuya ohlelweni oluhlukaniselwe i-Git kuyaqhubeka. Umbiko oneziphakamiso zokufuduka usezinhlelweni zokulungiswa.
    • В rtld (isixhumanisi sesikhathi sokusebenza) imodi yokusebenzisa okuqondile ethuthukisiwe (“/libexec/ld-elf.so.1 {path} {arguments}”).
    • Iphrojekthi yokuhlolwa kwe-fuzzing ye-FreeBSD kernel isebenzisa uhlelo lwe-syzkaller iyaqhubeka nokuthuthuka. Phakathi nesikhathi sokubika, izinkinga kusitaki senethiwekhi kanye nekhodi yokusebenza namatafula esichazi sefayela ahlonzwe kusetshenziswa i-syzkaller zaqedwa. Ngemva kokuxilongwa kwephutha, izinguquko zengeziwe kusitaki se-SCTP ukwenza ukulungisa iphutha kube lula. Imithetho yengeziwe ku-stress2 set ukuze kuhlonzwe ukuhlehla okungaba khona. Usekelo olungeziwe lokuhlolwa kwe-fuzz kwamakholi wesistimu entsha, okuhlanganisa i-copy_file_range(), __realpathat() kanye namakholi wesistimu engaphansi ye-Capsicum. Umsebenzi uyaqhubeka nokumboza isendlalelo sokulingisa se-Linux ngokuhlolwa kwe-fuzz. Sihlaziye futhi sasusa amaphutha aphawulwe emibikweni yakamuva ye-Coverity Scan.
    • Isistimu yokuhlanganisa eqhubekayo ishintshele ekwenzeni zonke izivivinyo zegatsha elikhulu kuphela isebenzisa i-clang/lld. Lapho kuhlolelwa i-RISC-V, ukwakheka kwesithombe sediski esiphelele kuqinisekiswa ukuze kwenziwe izivivinyo ku-QEMU kusetshenziswa i-OpenSBI. Kwengezwe imisebenzi emisha yokuhlola izithombe nemishini ebonakalayo ye-powerpc64 (FreeBSD-head-powerpc64-images, FreeBSD-head-powerpc64-testvm).
    • Umsebenzi uyaqhubeka wokudlulisa i-Kyua test suite isuka emachwebeni (devel/kyua) iye ohlelweni oluyisisekelo ukuze kuxazululwe izinkinga (amaphakheji afakwa kancane kakhulu) avela lapho kusetshenziswa i-Kyua ekwakhiweni okusha, ukuthuthukiswa okwenziwa kusetshenziswa i-emulator noma I-FPGA. Ukuhlanganiswa ohlelweni oluyisisekelo kuzokwenza kube lula kakhulu ukuhlola amapulatifomu ashumekiwe kanye nokuxhumana nezinhlelo zokuhlanganisa eziqhubekayo.
    • Iphrojekthi yethuliwe yokuthuthukisa ukusebenza komshayeli webhuloho lenethiwekhi if_bridge, esebenzisa i-mutex eyodwa ukukhiya idatha yangaphakathi, engavumeli ukuzuza ukusebenza okufunayo kumasistimu anenani elikhulu lezindawo zasejele noma imishini ebonakalayo ehlanganiswe kunethiwekhi eyodwa. Kulesi sigaba, ukuhlolwa kwengezwe kukhodi ukuvimbela ukuhlehla ukuthi kwenzeke ngesikhathi sesimanjemanje sokusebenza ngezingidi. Amathuba okusebenzisa i-ConcurrencyKit ukufanisa izibambi zokudlulisa idatha (bridge_input(), bridge_output(), bridge_forward(), ...) kuyacatshangelwa.
    • Kwengezwe ikholi entsha yesistimu ye-sigfastblock ukuvumela uchungechunge ukuthi lucacise ibhulokhi yememori yesibambi sesignali esisheshayo ukuthuthukisa ukusebenza kwezibambi ezihlukile.
    • I-kernel yengeza usekelo lwemiyalelo ye-athomu ye-LSE (Large System Extension) esekelwa amasistimu e-ARMv8.1. Le miyalo iyadingeka ukuze kuthuthukiswe ukusebenza uma isebenza kumabhodi e-Cavium ThunderX2 kanye ne-AWS Graviton 2. Izinguquko ezingeziwe zithola usekelo lwe-LSE futhi zinike amandla ngokuguquguqukayo ukusetshenziswa kwe-athomu ngokusekelwe kuzo. Ngesikhathi sokuhlolwa, ukusetshenziswa kwe-LSE kwenze kwaba nokwenzeka ukunciphisa isikhathi sokucubungula esichithwa lapho kuhlanganiswa i-kernel ngo-15%.
    • Ukuthuthukiswa kokusebenza kwenziwe futhi ukusebenza kwekhithi yamathuluzi kunwetshiwe kumafayela asebenzisekayo ngefomethi ye-ELF.
      Ukwengezwa okungeziwe kokulondolozwa kwemininingwane ye-DWARF yokulungisa iphutha, kuxazululwe izinkinga kuzinsiza ze-elfcopy/objcopy, kwengezwe ukucubungula kwe-DW_AT_range,
      i-readelf isebenzisa ikhono lokunquma amafulegi angu-PROTMAX_DISABLE, STKGAP_DISABLE kanye ne-WXNEEDED, kanye ne-Xen ne-GNU Build-ID.

  • Ukuphepha
    • Ukuze kuthuthukiswe ukusebenza kwe-FreeBSD ezindaweni zamafu e-Azure, umsebenzi uyaqhubeka ukuze kuhlinzekwe ukusekelwa kwendlela ye-HyperV Socket, evumela ukusetshenziswa kwe-socket interface yokusebenzelana phakathi kwesistimu yezivakashi nendawo yokusingatha ngaphandle kokumisa inethiwekhi.
    • Uyaqhubeka umsebenzi wokuhlinzeka ngezakhiwo eziphindaphindwayo ze-FreeBSD, okwenza kube nokwenzeka ukuqinisekisa ukuthi amafayela asebenzisekayo ezingxenye zesistimu ahlanganiswe ngokuqondile ukusuka kumakhodi omthombo amenyezelwe futhi awaqukethe izinguquko ezidlulele.
    • Amandla okulawula ukufakwa kwezinye izindlela zokuvikela (ASLR, PROT_MAX, igebe lesitaki, i-W+X mapping) ezingeni lezinqubo zomuntu ngamunye lengezwe kunsiza ye-elfctl.
  • Isitoreji namasistimu wefayela
    • Umsebenzi uyaqhubeka ukuze kusetshenziswe ikhono le-NFS lokusebenzisa isiteshi sokuxhumana esibethelwe esisekelwe ku-TLS 1.3, esikhundleni sokusebenzisa i-Kerberos (sec=krb5p mode), ekhawulelwe ekubetheleni imilayezo ye-RPC kuphela futhi isetshenziswa kusofthiwe kuphela. Ukuqaliswa okusha kusebenzisa isitaki se-TLS esinikezwe i-kernel ukunika amandla ukusheshisa kwehadiwe. Ikhodi ye-NFS phezu kwe-TLS isicishe ilungele ukuhlolwa, kodwa isadinga umsebenzi ukuze isekele izitifiketi zeklayenti esayiniwe futhi ivumelanise isitaki se-kernel ye-TLS ukuze ithumele idatha ye-NFS (iziqephu zokwamukela sezilungile).
  • Usekelo Lwezingxenyekazi zekhompuyutha
    • Umsebenzi uyaqhubeka wokwengeza ukwesekwa kwe-Chinese x86 CPU Hygon esekelwe kubuchwepheshe be-AMD;
    • Njengengxenye ye-CheriBSD, imfoloko ye-FreeBSD yokwakhiwa kweprosesa yocwaningo I-CHERI (Iziqondiso Ze-RISC Ezithuthukisiwe Ze-Hardware Ethuthukisiwe), ukusekelwa kwephrosesa ye-ARM Morello kuyaqhubeka nokusetshenziswa, okuzosekela uhlelo lokulawula ukufinyelela kwenkumbulo ye-CHERI ngokusekelwe kumodeli yezokuphepha yephrojekthi ye-Capsicum. Morello chip bayahlela ikhishwe ngo-2021. Okwamanje umsebenzi ugxile ekwengezeni usekelo lwenkundla ye-Arm Neoverse N1 enika u-Morello amandla. Kwethulwe ichweba lokuqala le-CheriBSD le-RISC-V Architecture. Ukuthuthukiswa kwe-CheriBSD kuyaqhubeka ngesibonelo senkomba se-CHERI esisekelwe ekwakhiweni kwe-MIPS64.
    • Ukuthuthwa kwe-FreeBSD kuyaqhubeka ku-64-bit SoC NXP LS1046A esekelwe kuphrosesa ye-ARMv8 Cortex-A72 enenjini ehlanganisiwe yokucubungula iphakethe lenethiwekhi, i-10 Gb Ethernet, i-PCIe 3.0, i-SATA 3.0 ne-USB 3.0. Okwamanje, abashayeli i-QorIQ ne-LS1046A, GPIO, QorIQ LS10xx AHCI, VF610 I2C, Epson RX-8803 RTC, QorIQ LS10xx SDHCI balungiselelwa ukudluliselwa ekuqanjweni okuyinhloko kwe-FreeBSD.
    • Umshayeli we-ena ubuyekezelwe kunguqulo 2.1.1 ngosekelo lwesizukulwane sesibili sama-adaptha enethiwekhi we-ENAv2 (Elastic Network Adapter) asetshenziswa kungqalasizinda ye-Elastic Compute Cloud (EC2) ukuze kuhlelwe ukuxhumana phakathi kwamanodi e-EC2 ngesivinini esingafika ku-25 Gb/ s. Ukubuyekezwa kwe-ENA 2.2.0 kuyalungiswa.
    • Ukuthuthukiswa kwembobo ye-FreeBSD yesikhulumi se-powerpc64 kuyaqhubeka. Okugxilwe kakhulu ekuhlinzekeni ukusebenza kwekhwalithi kumasistimu ane-IBM POWER8 namaphrosesa we-POWER9. Phakathi nenkathi yokubika, i-FreeBSD-CURRENT yadluliselwa ukuze isebenzise i-LLVM/Clang 10.0 compiler kanye ne-lld linker esikhundleni se-GCC. Ngokuzenzakalelayo, amasistimu e-powerpc64 asebenzisa i-ELFv2 ABI futhi usekelo lwe-ELFv1 ABI lunqanyuliwe. I-FreeBSD-STABLE isenayo i-gcc 4.2.1. Izinkinga nge-virtio, aacraid kanye nabashayeli be-ixl sezixazululiwe. Kuzinhlelo ze-powerpc64 kungenzeka ukusebenzisa i-QEMU ngaphandle kokusekelwa kwamakhasi amakhulu.
    • Umsebenzi uyaqhubeka nokusekela ukwakhiwa kwe-RISC-V. Ngendlela yayo yamanje, i-FreeBSD isivele iqala ngempumelelo ebhodini le-SiFive Hifive Unleashed, abashayeli abalungiselelwe lona.
      I-UART, SPI ne-PRCI, isekela i-OpenSBI ne-SBI 0.2 firmware. Ngesikhathi sokubika, umsebenzi ubugxile ekufudukeni ku-GCC kuya ku-clang nase-lld.

  • Izicelo kanye nohlelo lwamachweba
    • Iqoqo lamachweba weFreeBSD leqe umkhawulo wamachweba ayizinkulungwane ezingama-39, inani lamachweba angavaliwe lidlula kancane ama-2400, lawo angama-640 PRs awakahlungwa. Phakathi nesikhathi sokubika, izinguquko ezingu-8146 zenziwe kubathuthukisi abangu-173. Abahlanganyeli abane abasha bathole amalungelo e-committer (Loïc Bartoletti, Mikael Urankar, Kyle Evans, Lorenzo Salvadore). Kwengezwe ifulegi le-USES=qca futhi kwakhishwa ifulegi le-USES=zope (ngenxa yokungahambisani nePython 3). Uyaqhubeka umsebenzi wokukhipha iPython 2.7 esihlahleni samachweba - zonke izimbobo ezisekelwe ku-Python 2 kufanele zithuthwe ku-Python 3 noma zizosuswa. Umphathi wephakheji we-pkg ubuyekeziwe ukuze kukhishwe i-1.13.2.
    • Izingxenye zesitaki sezithombe ezibuyekeziwe nezimbobo ezihlobene ne-xorg.
      Iseva ye-X.org ibuyekezelwe kunguqulo engu-1.20.8 (ngaphambilini eyathunyelwa egatsheni le-1.18), okuvumele i-FreeBSD ukuthi izenzakalelayo isebenzise i-backend ye-udev/evdev yokusingatha amadivayisi okokufaka. Iphakheji ye-Mesa ishintshiwe ukuze isebenzise isandiso se-DRI3 esikhundleni se-DRI2 ngokuzenzakalela. Umsebenzi uyaqhubeka wokugcina izishayeli zezithombe, isitaki sedivayisi yokufaka, kanye nezingxenye ze-drm-kmod (imbobo evumela ukusebenza kwamamojula e-amdgpu, i915 kanye ne-radeon DRM, kusetshenziswa uhlaka lwe-linuxkpi ukuze luhambisane Nomphathi Wokunikeza Okuqondile we-Linux kernel) kusesikhathini.

    • Ideskithophu ye-KDE Plasma, i-KDE Frameworks, i-KDE Applications kanye ne-Qt igcinwa isesikhathini samanje futhi ithuthukela ekukhishweni kwakamuva. Uhlelo olusha lwe-kstars (i-atlas yenkanyezi) lwengezwe ezikhumulweni.
    • Umsebenzi wenziwe ukuze kuqedwe izinguquko ezihlehlayo kusiphathi sewindi se-xfwm4 esivele ngemva kokubuyekeza i-Xfce ibe yinguqulo 4.14 (ngokwesibonelo, izinto zobuciko zavela lapho kuhlotshiswa amawindi).
    • Imbobo yewayini ibuyekeziwe ukuze ikhulule i-Wine 5.0 (ngaphambilini eyayinikezwa i-4.0.3).
    • Kusukela ngenguqulo 1.14, umdidiyeli wolimi lwe-Go wengeze ukusekelwa okusemthethweni kwezakhiwo ze-ARM64 zeFreeBSD 12.0.
    • I-OpenSSH kusistimu yesisekelo ibuyekeziwe ukuze ikhulule i-7.9p1.
    • Umtapo wezincwadi we-sysctlmibinfo2 uqalisiwe futhi wafakwa kumachweba (devel/libsysctlmibinfo2), ukuhlinzeka nge-API yokufinyelela i-sysctl MIB kanye nokuhumusha amagama e-sysctl kuzihlonzi zento (OIDs).
    • Isibuyekezo sokusabalalisa senziwe INomadBSD 1.3.1, okuwuhlelo lwe-FreeBSD eguqulelwe ukusetshenziswa njengedeskithophu ephathekayo ephathekayo esuka kudrayivu ye-USB. Indawo yezithombe isuselwe kusiphathi sewindi I-Openbox. Isetshenziselwa ukukhweza amadrayivu I-DSBMD (ukukhweza i-CD9660, FAT, HFS+, NTFS, Ext2/3/4 kuyasekelwa), ukulungisa inethiwekhi engenantambo - wifimgr, kanye nokulawula ivolumu - I-DSBMixer.
    • Kuqalisiwe umsebenzi ekubhaleni amadokhumenti aphelele omphathi wendawo yejele Ibhodlela. I-Pot 0.11.0 ilungiselelwa ukukhishwa, okuzofaka amathuluzi okuphatha isitaki senethiwekhi.

Source: opennet.ru

Engeza amazwana