Ingxelo yoPhuhliso lwasimahla lweBSD kwikota yokuqala ka-2020

ipapashiwe ingxelo ngophuhliso lweprojekthi yeFreeBSD ukusuka ngoJanuwari ukuya kuMatshi ka-2020. Phakathi kotshintsho sinokuqaphela:

  • Imiba ngokubanzi kunye nenkqubo
    • Ikhutshiwe isethi yomqokeleli ye-GCC ukusuka kwi-FreeBSD-CURRENT yomthombo womthi, kunye ne-gperf engasetyenziswanga, i-gcov kunye ne-gtc (umqokeleli wesixhobo) eziluncedo. Onke amaqonga angaxhasi uClang atshintshelwe ekusebenziseni izixhobo zokwakha zangaphandle ezifakwe kumazibuko. Inkqubo yesiseko ithumele ukukhululwa kwexesha le-GCC 4.2.1, kwaye ukuhlanganiswa kweenguqulelo ezintsha kwakungenakwenzeka ngenxa yokutshintshwa kwe-4.2.2 kwilayisenisi ye-GPLv3, eyayithathwa njengengafanelekanga kumacandelo esiseko se-FreeBSD. Ukukhutshwa kwangoku kwe-GCC, kuquka i-GCC 9, kusenokufakwa kwiipakethe namazibuko.
    • I-Linux environment emulation infrastructure (Linuxulator) yongeze inkxaso yendlela yokuthumela umnxeba, imo ye-TCP_CORK (efunekayo kwi-nginx), kunye ne-MAP_32BIT iflegi (isombulula ingxaki ngokusungula iipakethe nge-Mono esuka ku-Ubuntu Bionic). Iingxaki ngesisombululo se-DNS xa usebenzisa i-glibc entsha kune-2.30 (umzekelo ukusuka kwi-CentOS 8) ziye zasonjululwa.
      Isiseko sokuhlanganiswa okuqhubekayo sibonelela ngokukwazi ukuqhuba imisebenzi ye-LTP (i-Linux Testing Project) eqhuba i-Linuxulator ukuvavanya ukuphuculwa okwenziwe kwikhowudi ukuxhasa i-Linux. Iimvavanyo ezimalunga ne-400 zingaphumeleli kwaye zifuna ukulungiswa (ezinye iimpazamo zibangelwa ubuxoki, ezinye zifuna ukulungiswa okuncinci, kodwa kukho ezinye ezifuna ukongeza inkxaso kwiifowuni zenkqubo entsha ukulungisa). Umsebenzi wenziwe ukucoca ikhowudi ye-Linuxulator kunye nokwenza lula ukulungisa ingxaki. Iipetshi ezinenkxaso yeempawu ezongeziweyo kunye nomnxeba wenkqubo ye-fexecve zilungisiwe, kodwa ayikaphononongwa.

    • Iintlanganiso zeqela elisebenzayo ezidalwe ukwenza imfuduko yeekhowudi zomthombo ukusuka kwinkqubo yolawulo lwemithombo ephakathi Ukuguqulwa kwinkqubo yokwabela amagunya iGit iyaqhubeka. Ingxelo enezindululo zokufuduka ikwinkqubo yolungiselelo.
    • Π’ rtld (i-runtime linker) iphuculwe indlela yokuphumeza ngokuthe ngqo (β€œ/libexec/ld-elf.so.1 {path} {ingxoxo}”).
    • Iprojekthi yokuvavanya i-fuzzing ye-FreeBSD kernel isebenzisa inkqubo ye-syzkaller iyaqhubeka nokuphuhlisa. Ngethuba lokunika ingxelo, iingxaki kwi-stack yenethiwekhi kunye nekhowudi yokusebenza kunye neetafile zokuchaza iifayile ezichongiweyo usebenzisa i-syzkaller zaye zacinywa. Ukulandela ukuxilongwa kwemposiso, utshintsho longezwe kwisitaki se-SCTP ukwenza ulungiso lube lula. Imithetho yongezwa kwi-stress2 iseti ukuchonga ukuhlehla okunokwenzeka. Inkxaso eyongeziweyo yovavanyo lwe-fuzz lweefowuni zenkqubo entsha, kubandakanywa ikopi_file_range (), __realpathat () kunye neefowuni zeCapsicum subsystem. Umsebenzi uyaqhubeka ukugubungela umaleko we-Linux ngovavanyo lwe-fuzz. Sihlalutye kwaye sazisusa iimpazamo eziphawulwe kwiingxelo zamva nje ze-Coverity Scan.
    • Inkqubo yokudibanisa eqhubekayo itshintshele ekwenzeni zonke iimvavanyo zesebe lentloko kuphela usebenzisa i-clang/lld. Xa kuvavanywa i-RISC-V, ukubunjwa komfanekiso wediski opheleleyo kuqinisekiswa ukuqhuba iimvavanyo kwi-QEMU usebenzisa i-OpenSBI. Yongeza imisebenzi emitsha yokuvavanya imifanekiso kunye noomatshini benyani be-powerpc64 (FreeBSD-head-powerpc64-images, FreeBSD-head-powerpc64-testvm).
    • Umsebenzi uyaqhubeka ukudlulisa i-suite yovavanyo lwe-Kyua ukusuka kumazibuko (i-devel/kyua) ukuya kwinkqubo yesiseko ukusombulula iingxaki (iiphakheji zifakwe ngokucothayo) ezivela xa usebenzisa i-Kyua kwizakhiwo ezintsha, uphuhliso oluqhutywa kusetyenziswa i-emulator okanye i-emulator. FPGA. Ukudityaniswa kwinkqubo yesiseko kuya kwenza lula kakhulu uvavanyo lwamaqonga adibeneyo kunye nojongano kunye neenkqubo eziqhubekayo zokudibanisa.
    • Kuqaliswe iprojekthi yokwandisa ukusebenza komqhubi webhulorho wothungelwano ukuba_ibhulorho, esebenzisa i-mutex enye ukuvala idatha yangaphakathi, engavumeli ukufezekisa ukusebenza okufunayo kwiinkqubo ezinobuninzi beendawo zentolongo okanye oomatshini benyani abadibeneyo kwinethiwekhi enye. Ngeli nqanaba, iimvavanyo zongezwe kwikhowudi yokuthintela ukuhlehla ukuba kwenzeke ngexesha lokuphucula ukusebenza kunye nezitshixo. Ithuba lokusebenzisa i-ConcurrencyKit ukufanisa abaphathi bokudlulisa idatha (bridge_input (), bridge_output (), bridge_forward (), ...) iyaqwalaselwa.
    • Yongeza umnxeba omtsha wenkqubo ye-sigfastblock ukuvumela umsonto ukuba uchaze ibhloko yememori yomphathi wesignali okhawulezayo ukuphucula usebenziso lwabaphathi abahlukileyo.
    • I-kernel yongeza inkxaso ye-LSE (i-Large System Extension) imiyalelo ye-athomu exhaswa ziinkqubo ze-ARMv8.1. Le miyalelo ifunekayo ukuze kuphuculwe ukusebenza xa uqhuba kwiibhodi zeCavium ThunderX2 kunye ne-AWS Graviton 2. Utshintsho olongezelelweyo lubona ukuxhaswa kwe-LSE kwaye lwenza ngamandla ukuphunyezwa kwe-athomu ngokusekelwe kubo. Ngexesha lokuvavanya, ukusetyenziswa kwe-LSE kwenze ukuba kube lula ukunciphisa ixesha leprosesa elichithwe xa kuhlanganiswa i-kernel nge-15%.
    • Ukulungiswa kwentsebenzo kuye kwenziwa kwaye ukusebenza kwe-toolkit kwandiswe kwiifayile eziphunyezwayo kwifomathi ye-ELF.
      Inkxaso eyongeziweyo yogcino lweenkcukacha zolungiso lwe-DWARF, iingxaki ezisonjululwe kwii-elfcopy/objcopy eziluncedo, zongezelelwe i-DW_AT_ranges processing,
      i-readelf iphumeza ukukwazi ukucacisa iiflegi ze-PROTMAX_DISABLE, STKGAP_DISABLE kunye ne-WXNEEDED, kunye ne-Xen kunye ne-GNU Build-ID.

  • Khu seleko
    • Ukuphucula ukusebenza kwe-FreeBSD kwiindawo zefu ze-Azure, umsebenzi uyaqhubeka ukubonelela ngenkxaso ye-HyperV Socket mechanism, evumela ukusetyenziswa kwe-socket interface yokusebenzisana phakathi kwenkqubo yeendwendwe kunye ne-host environment ngaphandle kokumisela inethiwekhi.
    • Umsebenzi uyaqhubeka wokubonelela ngokwakhiwa okuphindaphindwayo kwe-FreeBSD, okwenza kube lula ukuqinisekisa ukuba iifayile eziphunyezwayo zamacandelo enkqubo zihlanganiswe ngokuthe ngqo ukusuka kwiikhowudi zomthombo ezibhengeziweyo kwaye aziqulathanga utshintsho lwangaphandle.
    • Ukukwazi ukulawula ukubandakanywa kweendlela zokukhusela ezongezelelweyo (ASLR, PROT_MAX, i-gap stack, i-W + X mapping) kwinqanaba leenkqubo zomntu ngamnye zongezwe kwi-elfctl utility
  • Ukugcinwa kunye neenkqubo zeefayile
    • Umsebenzi uyaqhubeka ukuphumeza isakhono se-NFS sokusebenza phezu kwetshaneli yonxibelelwano efihliweyo esekelwe kwi-TLS 1.3, endaweni yokusebenzisa i-Kerberos (i-sec=krb5p mode), elinganiselwe ekuguquleleni imiyalezo ye-RPC kuphela kwaye iphunyezwe kuphela kwi-software. Ukuphunyezwa okutsha kusebenzisa istaki se-TLS esibonelelwe ngekernel ukwenza ukukhawuleza kwehardware. Ikhowudi ye-NFS phezu kwe-TLS iphantse ilungele ukuvavanywa, kodwa isafuna umsebenzi wokuxhasa izatifikethi zabaxumi abasayiniweyo kunye nokulungelelanisa isitaki se-kernel ye-TLS ukuthumela idatha ye-NFS (iipetshi zokufumana sele zilungile).
  • Inkxaso yehardware
    • Umsebenzi uyaqhubeka wokongeza inkxaso kwi-Chinese x86 CPU Hygon esekelwe kubuchwephesha be-AMD;
    • Njengenxalenye yeCheriBSD, ifolokhwe yeFreeBSD yoyilo lweprosesa yophando ICHERI (I-Capability Hardware Enhanced RISC Imiyalelo), inkxaso ye-ARM Morello processor iyaqhubeka iphunyezwa, eya kuxhasa inkqubo yokulawula ukufikelela kwimemori ye-CHERI esekelwe kwimodeli yokhuseleko yeprojekthi yeCapsicum. Morello chip bayacwangcisa ikhutshwe ngo-2021. Umsebenzi ngoku ugxile ekongezeni inkxaso yeqonga leArm Neoverse N1 elinika amandla eMorello. Izibuko lokuqala le-CheriBSD loyilo lwe-RISC-V libonisiwe. Uphuhliso lweCheriBSD luyaqhubeka kwi-CHERI ireferensi prototype esekwe kuyilo lwe-MIPS64.
    • Ukuhanjiswa kwe-FreeBSD kuyaqhubeka kwi-64-bit ye-SoC NXP LS1046A esekwe kwiprosesa ye-ARMv8 Cortex-A72 ene-injini edityanisiweyo ye-packet processing acceleration injini, i-10 Gb Ethernet, i-PCIe 3.0, i-SATA 3.0 kunye ne-USB 3.0. Okwangoku, abaqhubi be-QorIQ kunye ne-LS1046A, i-GPIO, i-QorIQ LS10xx AHCI, VF610 I2C, i-Epson RX-8803 RTC, i-QorIQ LS10xx SDHCI ilungiselelwa ukudluliselwa kwi-FreeBSD yokuqulunqwa.
    • Umqhubi we-ena uhlaziywe kwinguqulo ye-2.1.1 kunye nenkxaso yesizukulwana sesibini se-ENAv2 (i-Elastic Network Adapter) i-adapter yenethiwekhi esetyenziswa kwi-Elastic Compute Cloud (EC2) iziseko zoncedo ukulungiselela unxibelelwano phakathi kwe-EC2 nodes ngesantya ukuya kwi-25 Gb / s. Uhlaziyo lwe-ENA 2.2.0 luyalungiswa.
    • Uphuculo kwizibuko leFreeBSD leqonga le-powerpc64 liyaqhubeka. Ugxininiso kukubonelela ngokusebenza okusemgangathweni kwiinkqubo ezine-IBM POWER8 kunye ne-POWER9 processors. Ngethuba lokunika ingxelo, i-FreeBSD-CURRENT yatshintshelwa ukusebenzisa i-LLVM/Clang 10.0 compiler kunye nelld linker endaweni ye-GCC. Ngokungagqibekanga, iinkqubo ze-powerpc64 zisebenzisa i-ELFv2 ABI kunye nenkxaso ye-ELFv1 ABI iyekisiwe. I-FreeBSD-STABLE isenayo i-gcc 4.2.1. Iingxaki nge-virtio, aacraid kunye nabaqhubi be-ixl ziye zasonjululwa. Kwiinkqubo ze-powerpc64 kuyenzeka ukuba usebenzise i-QEMU ngaphandle kwenkxaso yaMaphepha amakhulu.
    • Umsebenzi uyaqhubeka nokuphumeza inkxaso yoyilo lwe-RISC-V. Kwimo yayo yangoku, i-FreeBSD sele iqalile ngempumelelo kwibhodi yeSiFive Hifive Unleashed, apho abaqhubi balungiselelwe.
      I-UART, i-SPI kunye ne-PRCI, ixhasa i-OpenSBI kunye ne-SBI 0.2 firmware. Ngexesha lokunika ingxelo, umsebenzi wawugxile ekufudukeni ukusuka kwi-GCC ukuya kwi-clang kunye nelld.

  • Usetyenziso kunye nenkqubo yezibuko
    • Ingqokelela yamazibuko e-FreeBSD iye yawela umda wamachweba angama-39 amawaka, inani lee-PRs ezingavalwanga lidlula kancinci i-2400, apho i-640 PRs ayikahlelwa. Ngexesha lokunika ingxelo, utshintsho lwe-8146 lwenziwe kubaphuhlisi be-173. Abathathi-nxaxheba abane abatsha bafumana amalungelo e-committer (uLoΓ―c Bartoletti, uMikael Urankar, uKyle Evans, uLorenzo Salvadore). Kongezwe i-USES=qca iflegi yaza yasuswa USES=iflegi yezope (ngenxa yokungahambelani nePython 3). Umsebenzi uyaqhubeka ukususa iPython 2.7 kumthi wamazibuko - onke amazibuko asekwe kwiPython 2 kufuneka afakwe kwiPython 3 okanye aya kususwa. Umphathi wephakheji ye-pkg uhlaziywe ukukhulula i-1.13.2.
    • Imizobo ehlaziyiweyo yezakhelo kunye nezibuko ezinxulumene ne-xorg.
      Umncedisi we-X.org uhlaziywe kwi-version 1.20.8 (ngaphambili yathunyelwa kwisebe le-1.18), eyavumela i-FreeBSD ukuba ingagqibekanga ekusebenziseni i-udev / evdev backend yokuphatha izixhobo zokufaka. Iphakheji ye-Mesa itshintshelwe ukusebenzisa ulwandiso lwe-DRI3 endaweni ye-DRI2 ngokungagqibekanga. Umsebenzi uyaqhubeka ukugcina abaqhubi bemizobo, isitaki sesixhobo segalelo, kunye nezixhobo ze-drm-kmod (izibuko elenza ukusebenza kwe-amdgpu, i915 kunye neemodyuli ze-radeon DRM, kusetyenziswa isakhelo se-linuxkpi sokuhambelana noMphathi oBonelelo ngokuthe ngqo we-Linux kernel) isemgangathweno.

    • I KDE Plasma desktop, KDE Frameworks, KDE Applications kunye ne Qt zigcinwa zisexesheni kwaye zihlaziywa kukhupho lwamva nje. Isicelo esitsha kstars (star atlas) yongezwe kumazibuko.
    • Umsebenzi wenziwe ukuphelisa utshintsho olubuyela emva kumphathi wefestile we-xfwm4 owavela emva kokuhlaziya i-Xfce kwinguqulo ye-4.14 (umzekelo, i-artifacts yavela xa kuhonjiswa iifestile).
    • I-Wine port ihlaziyiwe ukukhulula i-Wine 5.0 (ngaphambili i-4.0.3 yayinikezelwa).
    • Ukuqala ngoguqulelo 1.14, umqokeleli wolwimi lwesiGo wongeze inkxaso esemthethweni yolwakhiwo lwe-ARM64 lweFreeBSD 12.0.
    • I-OpenSSH kwinkqubo yesiseko ihlaziywe ukukhulula i-7.9p1.
    • Ithala leencwadi le-sysctlmibinfo2 liphunyeziwe kwaye libekwe kumazibuko (i-devel/libsysctlmibinfo2), ibonelela nge-API yokufikelela kwi-sysctl MIB kunye nokuguqulela amagama e-sysctl kwizinto zokuchonga izinto (OIDs).
    • Uhlaziyo losasazo lwenziwe I-NomadBSD 1.3.1, oluluhlelo lweFreeBSD elungiselelwe ukusetyenziswa njengedesktop ephathwayo eqalekayo ukusuka kwi-USB drive. Imeko-bume yomzobo isekwe kumphathi wefestile Openbox. Isetyenziselwa ukufaka iidrive DSBMD (ukunyuka kwe-CD9660, FAT, HFS+, NTFS, Ext2/3/4 ixhaswa), ukuqwalasela inethiwekhi engenazingcingo - wifimgr, kunye nokulawula umthamo - DSBMixer.
    • Qalile msebenzi ekubhaleni amaxwebhu apheleleyo omphathi wendawo yentolongo imbiza. I-Pot 0.11.0 ilungiselelwa ukukhululwa, okuya kubandakanya izixhobo zokulawula i-stack yenethiwekhi.

umthombo: opennet.ru

Yongeza izimvo