Lipoti lachitukuko cha FreeBSD lachigawo choyamba cha 2020

Lofalitsidwa lipoti pakukula kwa projekiti ya FreeBSD kuyambira Januware mpaka Marichi 2020. Zina mwa zosintha zomwe tingazindikire:

  • General ndi zokhudza zonse
    • Yachotsa gulu la GCC kuchokera ku mtengo wamtundu wa FreeBSD-CURRENT, komanso gperf, gcov ndi gtc (devicetree compiler) zosagwiritsidwa ntchito. Mapulatifomu onse omwe sagwirizana ndi Clang asinthidwa kuti agwiritse ntchito zida zomangira zakunja zomwe zidayikidwa kuchokera kumadoko. Dongosolo loyambira lidatumiza kutulutsidwa kwakanthawi kwa GCC 4.2.1, ndipo kuphatikiza kwamitundu yatsopano sikunatheke chifukwa cha kusintha kwa 4.2.2 kupita ku laisensi ya GPLv3, yomwe inkaonedwa ngati yosayenera pazigawo zoyambira za FreeBSD. Zomwe zatulutsidwa pano za GCC, kuphatikiza GCC 9, zitha kukhazikitsidwabe kuchokera pamaphukusi ndi madoko.
    • Linux chilengedwe emulation infrastructure (Linuxulator) yawonjezera chithandizo cha foni ya sendfile system, TCP_CORK mode (yofunikira nginx), ndi mbendera ya MAP_32BIT (amathetsa vuto poyambitsa phukusi ndi Mono kuchokera ku Ubuntu Bionic). Mavuto a DNS resolution mukamagwiritsa ntchito glibc yatsopano kuposa 2.30 (mwachitsanzo kuchokera ku CentOS 8) adathetsedwa.
      Kuphatikizika kopitilira muyeso kumapereka kuthekera koyendetsa ntchito za LTP (Linux Testing Project) zomwe zikuyenda pa Linuxulator kuyesa kusintha komwe kwapangidwa pama code kuti athandizire Linux. Pafupifupi mayesero a 400 amalephera ndipo amafuna kukonza (zolakwa zina zimayamba chifukwa cha zolakwika, zina zimafuna kukonza pang'ono, koma pali zina zomwe zimafuna kuwonjezera thandizo la mafoni atsopano kuti akonze). Ntchito yachitika kuyeretsa kachidindo ka Linuxulator ndikuchepetsa kuchotsera. Zigamba zokhala ndi chithandizo chowonjezera komanso kuyimba foni ya fexecve zakonzedwa, koma sizinawunikidwebe.

    • Misonkhano ya gulu logwira ntchito lomwe linapangidwa kuti likwaniritse kusamuka kwa ma source code kuchokera ku centralized source control system Kusinthidwa kupita ku dongosolo logawikana ndi Git akupitiliza. Lipoti lokhala ndi malingaliro osamukira kumayiko ena lili mkati mokonzekera.
    • Π’ rtld (runtime linker) adawongolera njira yopangira mwachindunji ("/libexec/ld-elf.so.1 {path} {arguments}").
    • Pulojekiti yoyesa kusokoneza kernel ya FreeBSD pogwiritsa ntchito syzkaller system ikupitilizabe. Pa nthawi yopereka lipoti, mavuto omwe ali pa intaneti ndi code yogwirira ntchito ndi matebulo ofotokozera mafayilo odziwika pogwiritsa ntchito syzkaller adachotsedwa. Kutsatira kuzindikira zolakwika, zosintha zawonjezedwa ku stack ya SCTP kuti kuwongolera kukhale kosavuta. Malamulo awonjezedwa ku stress2 yokhazikitsidwa kuti azindikire kubweza kotheka. Thandizo lowonjezera pakuyesa kwa fuzz pama foni atsopano, kuphatikiza ma copy_file_range(), __realpathat() ndi ma call subsystem a Capsicum. Ntchito ikupitilizabe kubisa kusanja kwa Linux ndikuyesa kwa fuzz. Tidasanthula ndikuchotsa zolakwika zomwe zalembedwa m'malipoti aposachedwa a Coverity Scan.
    • Njira yophatikizira yosalekeza yasinthiratu kuyesa mayeso onse a nthambi yamutu pogwiritsa ntchito clang/lld. Mukayesa RISC-V, kupangidwa kwa chithunzi chonse cha disk kumatsimikiziridwa kuti muyese mayeso mu QEMU pogwiritsa ntchito OpenSBI. Anawonjezera ntchito zatsopano zoyesera zithunzi ndi makina enieni a powerpc64 (FreeBSD-head-powerpc64-images, FreeBSD-head-powerpc64-testvm).
    • Ntchito ikuchitika kusamutsa mayeso a Kyua kuchokera ku madoko (devel / kyua) kupita ku dongosolo loyambira kuti athetse mavuto (maphukusi amaikidwa pang'onopang'ono) omwe amayamba pogwiritsa ntchito Kyua pa zomangamanga zatsopano, chitukuko chomwe chimagwiritsidwa ntchito pogwiritsa ntchito emulator kapena FPGA. Kuphatikizika mu dongosolo loyambira kudzachepetsa kwambiri kuyesa kwa nsanja zophatikizidwa ndi mawonekedwe ndi machitidwe ophatikizana mosalekeza.
    • Pulojekiti yakhazikitsidwa kuti ikwaniritse magwiridwe antchito a network bridge driver ngati_bridge, yomwe imagwiritsa ntchito mutex imodzi kuti itseke deta yamkati, yomwe silola kukwaniritsa zomwe mukufuna pa machitidwe omwe ali ndi malo ambiri a ndende kapena makina enieni ogwirizana pa intaneti imodzi. Pa nthawiyi, mayesero awonjezedwa ku code kuti atetezedwe kuti zisachitike panthawi yamakono yogwira ntchito ndi maloko. Kuthekera kogwiritsa ntchito ConcurrencyKit kufananiza othandizira kusamutsa deta (bridge_input(), bridge_output(), bridge_forward(), ...) akuganiziridwa.
    • Yawonjezera kuyimba kwatsopano kwa sigfastblock kuti mulole ulusi kuti utchule chipika cha kukumbukira kwa chothandizira ma sigino mwachangu kuti apititse patsogolo magwiridwe antchito aothandizira.
    • Kernel imawonjezera thandizo la malangizo a atomiki a LSE (Large System Extension) mothandizidwa ndi machitidwe a ARMv8.1. Malangizowa akufunika kuti apititse patsogolo ntchito pamene akuyendetsa pa Cavium ThunderX2 ndi AWS Graviton matabwa 2. Zosintha zowonjezera zimazindikira kuthandizira kwa LSE ndikuthandizira mwamphamvu kukhazikitsidwa kwa atomiki kutengera iwo. Pakuyesa, kugwiritsa ntchito LSE kunapangitsa kuti athe kuchepetsa nthawi ya purosesa yogwiritsidwa ntchito posonkhanitsa kernel ndi 15%.
    • Kukhathamiritsa kwa magwiridwe antchito kwachitika ndipo magwiridwe antchito a zida zawonjezeredwa kwa mafayilo omwe angathe kuchitika mumtundu wa ELF.
      Thandizo lowonjezera la caching DWARF debugging, kuthetsa mavuto mu elfcopy/objcopy utility, anawonjezera DW_AT_ranges processing,
      readelf imagwiritsa ntchito luso lotha kuzindikira mbendera za PROTMAX_DISABLE, STKGAP_DISABLE ndi WXNEEDED, komanso Xen ndi GNU Build-ID.

  • Chitetezo
    • Kupititsa patsogolo ntchito ya FreeBSD m'madera amtambo a Azure, ntchito ikuchitika kuti ipereke chithandizo cha HyperV Socket mechanism, yomwe imalola kugwiritsa ntchito mawonekedwe a socket kuti agwirizane pakati pa dongosolo la alendo ndi malo ochitira alendo popanda kukhazikitsa maukonde.
    • Ntchito ikuchitika kuti apereke zomanga zobwerezabwereza za FreeBSD, kupangitsa kuti zitheke kuwonetsetsa kuti mafayilo omwe achotsedwa pazigawo zamakina apangidwa ndendende kuchokera pamakhodi omwe adalengezedwa ndipo alibe zosintha zina.
    • Kutha kuwongolera kuphatikizika kwa njira zowonjezera zodzitetezera (ASLR, PROT_MAX, gap gap, W+X mapu) pamlingo wazomwe munthu aliyense wachita zawonjezedwa ku elfctl utility.
  • Makina osungira ndi mafayilo
    • Ntchito ikuchitika kuti akwaniritse kuthekera kwa NFS kuti igwiritse ntchito njira yolumikizirana yobisidwa yozikidwa pa TLS 1.3, m'malo mogwiritsa ntchito Kerberos (sec=krb5p mode), yomwe imangokhala kubisa mauthenga a RPC okha ndipo imagwira ntchito pamapulogalamu okha. Kukhazikitsa kwatsopano kumagwiritsa ntchito stack ya TLS yoperekedwa ndi kernel kuti ithandizire kuthamanga kwa hardware. Khodi ya NFS pa TLS yatsala pang'ono kuyesedwa, komabe imafunikirabe ntchito kuti ithandizire ziphaso zamakasitomala osayinidwa ndikusinthira kernel ya TLS stack kutumiza data ya NFS (zigamba zolandirira zakonzeka kale).
  • Thandizo la Hardware
    • Ntchito ikuchitika kuti awonjezere chithandizo cha Chinese x86 CPU Hygon kutengera matekinoloje a AMD;
    • Monga gawo la CheriBSD, foloko ya FreeBSD yomanga ma processor ofufuza CHERI (Capability Hardware Enhanced RISC Instructions), chithandizo cha purosesa ya ARM Morello chikupitirirabe kukhazikitsidwa, chomwe chidzathandizira dongosolo la CHERI memory access control potengera chitsanzo cha chitetezo cha polojekiti ya Capsicum. Morello chip akukonzekera kumasulidwa mu 2021. Ntchito pakadali pano ikuyang'ana pakuwonjezera chithandizo cha nsanja ya Arm Neoverse N1 yomwe imapatsa mphamvu Morello. Doko loyamba la CheriBSD la zomangamanga za RISC-V laperekedwa. Kukula kwa CheriBSD kukupitilizabe kwa CHERI kutengera kamangidwe ka MIPS64.
    • Kuyika kwa FreeBSD kumapitilira 64-bit SoC NXP LS1046A kutengera purosesa ya ARMv8 Cortex-A72 yokhala ndi injini yophatikizika yamapaketi opangira paketi, 10 Gb Ethernet, PCIe 3.0, SATA 3.0 ndi USB 3.0. Pakadali pano, madalaivala a QorIQ ndi LS1046A, GPIO, QorIQ LS10xx AHCI, VF610 I2C, Epson RX-8803 RTC, QorIQ LS10xx SDHCI akukonzekera kusamutsidwa kugulu lalikulu la FreeBSD.
    • Dalaivala wa ena wasinthidwa kukhala mtundu wa 2.1.1 mothandizidwa ndi m'badwo wachiwiri wa ma adapter a netiweki a ENAv2 (Elastic Network Adapter) omwe amagwiritsidwa ntchito mu Elastic Compute Cloud (EC2) kukonza kulumikizana pakati pa EC2 node pa liwiro la 25 Gb/ s. Kusintha kwa ENA 2.2.0 kukukonzekera.
    • Kusintha kwa doko la FreeBSD papulatifomu ya powerpc64 kukupitilira. Cholinga chake ndikupereka magwiridwe antchito pamakina omwe ali ndi mapurosesa a IBM POWER8 ndi POWER9. Panthawi yopereka lipoti, FreeBSD-CURRENT idasamutsidwa kuti igwiritse ntchito LLVM/Clang 10.0 compiler ndi lld linker m'malo mwa GCC. Mwachisawawa, makina a powerpc64 amagwiritsa ntchito ELFv2 ABI ndipo kuthandizira kwa ELFv1 ABI kwatha. FreeBSD-STABLE ikadali ndi gcc 4.2.1. Mavuto ndi madalaivala a virtio, aacraid ndi ixl athetsedwa. Pa machitidwe a powerpc64 ndizotheka kuyendetsa QEMU popanda thandizo la Masamba Akuluakulu.
    • Ntchito ikupitirizabe kukhazikitsa chithandizo cha zomangamanga za RISC-V. M'mawonekedwe ake apano, FreeBSD idayamba kale bwino pa SiFive Hifive Unleashed board, yomwe madalaivala adakonzedwa.
      UART, SPI ndi PRCI, imathandizira OpenSBI ndi SBI 0.2 firmware. Munthawi yopereka lipoti, ntchito idayang'ana pa kusamuka kuchokera ku GCC kupita ku clang ndi lld.

  • Mapulogalamu ndi ma port system
    • Kutoleredwa kwa madoko a FreeBSD kudadutsa malire a madoko 39, kuchuluka kwa ma PR osatsekedwa kumadutsa pang'ono 2400, pomwe ma 640 PRs sanasankhidwe. Panthawi yopereka lipoti, zosintha za 8146 zidapangidwa kuchokera kwa opanga 173. Otsatira anayi atsopano adalandira maufulu ochita nawo ntchito (LoΓ―c Bartoletti, Mikael Urankar, Kyle Evans, Lorenzo Salvadore). Anawonjezera USES=qca mbendera ndikuchotsa USES=zope mbendera (chifukwa chosagwirizana ndi Python 3). Ntchito ikuchitika yochotsa Python 2.7 pamtengo wamadoko - madoko onse a Python 2 ayenera kutumizidwa ku Python 3 kapena achotsedwa. Woyang'anira phukusi la pkg wasinthidwa kuti amasule 1.13.2.
    • Zida zosinthidwa zazithunzi ndi madoko okhudzana ndi xorg.
      Seva ya X.org yasinthidwa kuti ikhale 1.20.8 (yomwe idatumizidwa kale panthambi ya 1.18), zomwe zinalola FreeBSD kukhala yosasintha kuti igwiritse ntchito udev / evdev backend pakugwira zipangizo zolowetsa. Phukusi la Mesa lasinthidwa kuti ligwiritse ntchito kuwonjezera kwa DRI3 m'malo mwa DRI2 mwachisawawa. Ntchito ikuchitika yosunga madalaivala azithunzi, zoyika zida zolowetsa, ndi zida za drm-kmod (doko lomwe limathandizira ma module amdgpu, i915 ndi radeon DRM, pogwiritsa ntchito dongosolo la linuxkpi kuti ligwirizane ndi Direct Rendering Manager wa Linux kernel) zaposachedwa.

    • KDE Plasma desktop, KDE Frameworks, KDE Applications ndi Qt zimasungidwa mpaka pano ndikusinthidwa mpaka zatsopano. Pulogalamu yatsopano ya kstars (nyenyezi atlas) yawonjezedwa pamadoko.
    • Ntchito yachitidwa kuti athetse kusintha kosinthika mu xfwm4 woyang'anira zenera yemwe adawonekera pambuyo pakusintha Xfce ku mtundu wa 4.14 (mwachitsanzo, zinthu zakale zidawonekera pokongoletsa mawindo).
    • Doko la Vinyo lasinthidwa kuti amasule Wine 5.0 (kale 4.0.3 idaperekedwa).
    • Kuyambira ndi mtundu wa 1.14, wolemba chilankhulo cha Go adawonjezera chithandizo cha zomangamanga za ARM64 za FreeBSD 12.0.
    • OpenSSH pamakina oyambira asinthidwa kuti amasule 7.9p1.
    • Laibulale ya sysctlmibinfo2 yakhazikitsidwa ndikuyika madoko (devel/libsysctlmibinfo2), kupereka API yofikira sysctl MIB ndikumasulira mayina a sysctl kukhala zozindikiritsa zinthu (OIDs).
    • Kusintha kogawa kwapangidwa NomadBSD 1.3.1, lomwe ndi mtundu wa FreeBSD wosinthidwa kuti ugwiritsidwe ntchito ngati chosinthira pakompyuta kuchokera pa USB drive. Chilengedwe chojambula chimakhazikitsidwa ndi woyang'anira zenera Openbox. Amagwiritsidwa ntchito kukwera ma drive Chithunzi cha DSBMD (kuyika CD9660, FAT, HFS +, NTFS, Ext2/3/4 imathandizidwa), kukonza maukonde opanda zingwe - wifimgr, ndi kuwongolera voliyumu - DSBMixer.
    • Anayamba Job polemba zolemba zonse za woyang'anira chilengedwe cha ndende mphika. Pot 0.11.0 ikukonzekera kumasulidwa, yomwe ikuphatikizapo zida zoyendetsera stack network.

Source: opennet.ru

Kuwonjezera ndemanga