Ripoti ya Maendeleo ya FreeBSD kwa robo ya kwanza ya 2020

iliyochapishwa ripoti ya maendeleo ya mradi wa FreeBSD kuanzia Januari hadi Machi 2020. Miongoni mwa mabadiliko tunaweza kutambua:

  • Masuala ya jumla na ya kimfumo
    • Imeondoa mkusanyiko wa GCC kutoka kwa mti chanzo wa FreeBSD-CURRENT, pamoja na huduma za gperf, gcov na gtc (devicetree compiler) ambazo hazijatumika. Mifumo yote ambayo haitumii Clang imebadilishwa kwa kutumia zana za ujenzi wa nje zilizosakinishwa kutoka bandari. Mfumo msingi ulisafirisha toleo la zamani la GCC 4.2.1, na ujumuishaji wa matoleo mapya zaidi haukuwezekana kwa sababu ya ubadilishaji wa 4.2.2 hadi leseni ya GPLv3, ambayo ilionekana kuwa haifai kwa vipengee msingi vya FreeBSD. Matoleo ya sasa ya GCC, ikijumuisha GCC 9, bado yanaweza kusakinishwa kutoka kwa vifurushi na bandari.
    • Miundombinu ya uigaji wa mazingira ya Linux (Linuxulator) imeongeza usaidizi kwa simu ya mfumo wa kutuma faili, hali ya TCP_CORK (inahitajika kwa nginx), na bendera ya MAP_32BIT (hutatua tatizo la kuzindua vifurushi na Mono kutoka Ubuntu Bionic). Matatizo ya utatuzi wa DNS unapotumia glibc mpya zaidi ya 2.30 (kwa mfano kutoka CentOS 8) yametatuliwa.
      Miundombinu inayoendelea ya ujumuishaji hutoa uwezo wa kuendesha kazi za LTP (Linux Testing Project) zinazoendesha Linuxulator ili kujaribu maboresho yaliyofanywa kwa msimbo ili kutumia Linux. Takriban majaribio 400 hayafaulu na yanahitaji kurekebishwa (hitilafu zingine husababishwa na chanya za uwongo, zingine zinahitaji marekebisho madogo, lakini kuna zingine zinazohitaji kuongeza usaidizi kwa simu mpya za mfumo kurekebisha). Kazi imefanywa ili kusafisha msimbo wa Linuxulator na kurahisisha utatuzi. Viraka vilivyo na usaidizi wa sifa zilizopanuliwa na simu ya mfumo wa fexecve zimetayarishwa, lakini bado hazijakaguliwa.

    • Mikutano ya kikundi kazi iliyoundwa kutekeleza uhamishaji wa misimbo ya chanzo kutoka kwa mfumo mkuu wa udhibiti wa chanzo Ugeuzaji hadi mfumo uliogatuliwa wa Git unaendelea. Ripoti yenye mapendekezo ya uhamiaji iko katika mchakato wa kutayarishwa.
    • Π’ rtld (kiunganishi cha wakati wa kukimbia) iliboresha hali ya utekelezaji wa moja kwa moja (β€œ/libexec/ld-elf.so.1 {path} {arguments}”).
    • Mradi wa majaribio ya kutatanisha ya kernel ya FreeBSD kwa kutumia mfumo wa syzkaller unaendelea kuendelezwa. Katika kipindi cha kuripoti, matatizo katika mrundikano wa mtandao na msimbo wa kufanya kazi na majedwali ya maelezo ya faili yaliyotambuliwa kwa kutumia syzkaller yaliondolewa. Kufuatia utambuzi wa hitilafu, mabadiliko yameongezwa kwenye rafu ya SCTP ili kurahisisha utatuzi. Sheria zimeongezwa kwa mkazo2 uliowekwa ili kutambua uwezekano wa kurudi nyuma. Usaidizi umeongezwa kwa majaribio ya fuzz ya simu mpya za mfumo, ikiwa ni pamoja na copy_file_range(), __realpathat() na simu za mfumo mdogo wa Capsicum. Kazi inaendelea kufunika safu ya uigaji ya Linux kwa majaribio ya fuzz. Tulichanganua na kuondoa hitilafu zilizobainishwa katika ripoti za hivi punde za Uchanganuzi wa Coverity.
    • Mfumo unaoendelea wa ujumuishaji umebadilika hadi kutekeleza majaribio yote ya tawi la kichwa kwa kutumia clang/lld pekee. Wakati wa kupima RISC-V, uundaji wa picha kamili ya diski inahakikishwa kwa ajili ya kufanya majaribio katika QEMU kwa kutumia OpenSBI. Imeongeza kazi mpya za kujaribu picha na mashine pepe za powerpc64 (FreeBSD-head-powerpc64-images, FreeBSD-head-powerpc64-testvm).
    • Kazi inaendelea ya kuhamisha kitengo cha majaribio cha Kyua kutoka kwa bandari (devel/kyua) hadi mfumo wa msingi ili kutatua matatizo (vifurushi vimewekwa polepole sana) vinavyotokea wakati wa kutumia Kyua kwenye usanifu mpya, maendeleo ambayo hufanywa kwa kutumia emulator au FPGA. Ujumuishaji katika mfumo wa msingi utarahisisha kwa kiasi kikubwa majaribio ya majukwaa yaliyopachikwa na kiolesura na mifumo endelevu ya ujumuishaji.
    • Mradi umezinduliwa ili kuboresha utendakazi wa kiendesha daraja la mtandao ikiwa_daraja, ambayo hutumia bubu moja ili kufunga data ya ndani, ambayo hairuhusu kufikia utendaji unaohitajika kwenye mifumo yenye idadi kubwa ya mazingira ya jela au mashine pepe zilizounganishwa katika mtandao mmoja. Katika hatua hii, vipimo vimeongezwa kwa msimbo ili kuzuia kurudi nyuma kutokea wakati wa kisasa wa kufanya kazi na kufuli. Uwezekano wa kutumia ConcurrencyKit kusawazisha vidhibiti vya uhamishaji data (bridge_input(), bridge_output(), bridge_forward(), ...) unazingatiwa.
    • Imeongeza simu mpya ya mfumo wa sigfastblock ili kuruhusu mazungumzo kubainisha kizuizi cha kumbukumbu kwa kidhibiti cha mawimbi chenye kasi ili kuboresha utendakazi wa vidhibiti vighairi.
    • Kokwa huongeza usaidizi kwa maagizo ya atomiki ya LSE (Kiendelezi Kikubwa cha Mfumo) inayoungwa mkono na mifumo ya ARMv8.1. Maagizo haya yanahitajika ili kuboresha utendakazi unapoendesha kwenye vibao vya Cavium ThunderX2 na AWS Graviton 2. Mabadiliko yaliyoongezwa yanatambua usaidizi wa LSE na kuwezesha utekelezaji wa atomiki kulingana nao. Wakati wa kupima, matumizi ya LSE ilifanya iwezekanavyo kupunguza muda wa processor uliotumiwa wakati wa kukusanya kernel kwa 15%.
    • Uboreshaji wa utendakazi umefanywa na utendakazi wa kisanduku cha zana umepanuliwa kwa faili zinazoweza kutekelezwa katika umbizo la ELF.
      Usaidizi ulioongezwa wa kuakibisha maelezo ya utatuzi wa DWARF, ulitatua matatizo katika huduma za elfcopy/objcopy, iliongeza uchakataji wa DW_AT_ranges,
      readelf hutumia uwezo wa kusimbua bendera PROTMAX_DISABLE, STKGAP_DISABLE na WXNEEDED, pamoja na Xen na GNU Build-ID.

  • usalama
    • Ili kuboresha utendaji wa FreeBSD katika mazingira ya wingu ya Azure, kazi inaendelea ili kutoa usaidizi kwa utaratibu wa Soketi ya HyperV, ambayo inaruhusu matumizi ya kiolesura cha tundu kwa mwingiliano kati ya mfumo wa wageni na mazingira ya mwenyeji bila kusanidi mtandao.
    • Kazi inaendelea ili kutoa miundo inayoweza kurudiwa ya FreeBSD, na kuifanya iwezekane kuhakikisha kuwa faili zinazoweza kutekelezeka za vipengee vya mfumo zimekusanywa haswa kutoka kwa misimbo ya chanzo iliyotangazwa na hazina mabadiliko ya nje.
    • Uwezo wa kudhibiti ujumuishaji wa mbinu za ziada za ulinzi (ASLR, PROT_MAX, pengo la rafu, ramani ya W+X) katika kiwango cha michakato ya mtu binafsi umeongezwa kwa matumizi ya elfctl.
  • Mifumo ya uhifadhi na faili
    • Kazi inaendelea ili kutekeleza uwezo wa NFS kufanya kazi kwenye chaneli ya mawasiliano iliyosimbwa kwa njia fiche kulingana na TLS 1.3, badala ya kutumia Kerberos (sec=krb5p mode), ambayo inadhibitiwa katika kusimba ujumbe wa RPC pekee na inatekelezwa tu katika programu. Utekelezaji mpya unatumia rafu ya TLS iliyotolewa na kernel ili kuwezesha kuongeza kasi ya maunzi. Msimbo wa NFS juu ya TLS unakaribia kuwa tayari kufanyiwa majaribio, lakini bado inahitaji kazi ili kuauni vyeti vya mteja vilivyotiwa saini na kurekebisha safu ya kernel ya TLS kutuma data ya NFS (vibaka vya kupokea tayari viko tayari).
  • Msaada wa vifaa
    • Kazi inaendelea ya kuongeza usaidizi kwa Kichina x86 CPU Hygon kulingana na teknolojia za AMD;
    • Kama sehemu ya CheriBSD, uma ya FreeBSD kwa usanifu wa kichakataji cha utafiti CHERI (Uwezo wa Maagizo ya RISC ya Uwezeshaji), usaidizi wa kichakataji cha ARM Morello unaendelea kutekelezwa, ambao utasaidia mfumo wa udhibiti wa ufikiaji wa kumbukumbu wa CHERI kulingana na mfano wa usalama wa mradi wa Capsicum. Chip ya Morello wanapanga kutolewa mwaka 2021. Kazi kwa sasa inalenga kuongeza usaidizi kwa jukwaa la Arm Neoverse N1 ambalo linampa nguvu Morello. Bandari ya awali ya CheriBSD ya usanifu wa RISC-V imewasilishwa. Ukuzaji wa CheriBSD unaendelea kwa mfano wa marejeleo wa CHERI kulingana na usanifu wa MIPS64.
    • Uhamishaji wa FreeBSD unaendelea kwa 64-bit SoC NXP LS1046A kulingana na kichakataji cha ARMv8 Cortex-A72 chenye injini jumuishi ya kuchakata pakiti za mtandao, 10 Gb Ethernet, PCIe 3.0, SATA 3.0 na USB 3.0. Kwa sasa, viendeshaji QorIQ na LS1046A, GPIO, QorIQ LS10xx AHCI, VF610 I2C, Epson RX-8803 RTC, QorIQ LS10xx SDHCI vinatayarishwa kuhamishiwa kwenye muundo mkuu wa FreeBSD.
    • Kiendeshaji cha ena kimesasishwa hadi toleo la 2.1.1 kwa kutumia kizazi cha pili cha adapta za mtandao za ENAv2 (Elastic Network Adapter) zinazotumika katika miundombinu ya Elastic Compute Cloud (EC2) ili kupanga mawasiliano kati ya nodi za EC2 kwa kasi ya hadi 25 Gb/ s. Sasisho la ENA 2.2.0 linatayarishwa.
    • Uboreshaji wa mlango wa FreeBSD wa jukwaa la powerpc64 unaendelea. Lengo ni kutoa utendakazi wa ubora kwenye mifumo iliyo na vichakataji vya IBM POWER8 na POWER9. Katika kipindi cha kuripoti, FreeBSD-CURRENT ilihamishwa ili kutumia kikusanyaji cha LLVM/Clang 10.0 na kiunganishi cha lld badala ya GCC. Kwa chaguomsingi, mifumo ya powerpc64 hutumia ELFv2 ABI na usaidizi wa ELFv1 ABI umekatishwa. FreeBSD-STABLE bado ina gcc 4.2.1. Matatizo na viendeshi vya virtio, aacraid na ixl yametatuliwa. Kwenye mifumo ya powerpc64 inawezekana kuendesha QEMU bila usaidizi wa Kurasa Kubwa.
    • Kazi inaendelea kutekeleza msaada kwa usanifu wa RISC-V. Katika hali yake ya sasa, FreeBSD tayari inafanikiwa kwenye bodi ya SiFive Hifive Unleashed, ambayo madereva yametayarishwa.
      UART, SPI na PRCI, hutumia programu dhibiti ya OpenSBI na SBI 0.2. Katika kipindi cha kuripoti, kazi ililenga kuhama kutoka GCC hadi clang na lld.

  • Maombi na mfumo wa bandari
    • Mkusanyiko wa bandari za FreeBSD umevuka kizingiti cha bandari elfu 39, idadi ya PRs ambazo hazijafungwa inazidi kidogo 2400, ambazo PRs 640 bado hazijapangwa. Katika kipindi cha kuripoti, mabadiliko 8146 yalifanywa kutoka kwa watengenezaji 173. Washiriki wanne wapya walipokea haki za kujitolea (LoΓ―c Bartoletti, Mikael Urankar, Kyle Evans, Lorenzo Salvadore). Imeongezwa USES=qca bendera na kuondolewa USES=bendera ya zope (kwa sababu ya kutopatana na Python 3). Kazi inaendelea ya kuondoa Chatu 2.7 kutoka kwa mti wa bandari - bandari zote zenye msingi wa Python 2 lazima zipelekwe kwenye Python 3 au zitaondolewa. Kidhibiti cha kifurushi cha pkg kimesasishwa ili kutolewa 1.13.2.
    • Vijenzi vya rafu za michoro na bandari zinazohusiana na xorg.
      Seva ya X.org imesasishwa hadi toleo la 1.20.8 (lililosafirishwa hapo awali kwenye tawi la 1.18), ambalo liliruhusu FreeBSD kuwa chaguomsingi kutumia udev/evdev backend kwa kushughulikia vifaa vya kuingiza data. Kifurushi cha Mesa kimebadilishwa ili kutumia kiendelezi cha DRI3 badala ya DRI2 kwa chaguomsingi. Kazi inaendelea ya kuweka viendeshi vya michoro, mrundikano wa kifaa cha kuingiza data, na vipengele vya drm-kmod (mlango unaowezesha utendakazi wa moduli za amdgpu, i915 na radeon DRM, kwa kutumia mfumo wa linuxkpi kwa uoanifu na Kidhibiti cha Utoaji cha Moja kwa Moja cha kinu cha Linux) hadi sasa.

    • Kompyuta ya mezani ya KDE Plasma, Mifumo ya KDE, Programu za KDE na Qt husasishwa na kusasishwa hadi matoleo mapya zaidi. Programu mpya ya kstars (atlasi ya nyota) imeongezwa kwenye bandari.
    • Kazi imefanywa ili kuondoa mabadiliko ya regressive katika meneja wa dirisha la xfwm4 ambayo ilionekana baada ya kusasisha Xfce hadi toleo la 4.14 (kwa mfano, mabaki yalionekana wakati wa kupamba madirisha).
    • Bandari ya Mvinyo imesasishwa ili kutoa Wine 5.0 (hapo awali 4.0.3 ilitolewa).
    • Kuanzia na toleo la 1.14, mkusanyaji wa lugha ya Go aliongeza usaidizi rasmi wa usanifu wa ARM64 wa FreeBSD 12.0.
    • OpenSSH kwenye mfumo msingi imesasishwa ili kutoa 7.9p1.
    • Maktaba ya sysctlmibinfo2 imetekelezwa na kuwekwa kwenye bandari (devel/libsysctlmibinfo2), ikitoa API ya kufikia sysctl MIB na kutafsiri majina ya sysctl kuwa vitambulishi vya vitu (OIDs).
    • Sasisho la usambazaji limetolewa NomadBSD 1.3.1, ambalo ni toleo la FreeBSD lililobadilishwa kwa matumizi kama kompyuta ya mezani inayoweza kusongeshwa kutoka kwa hifadhi ya USB. Mazingira ya picha yanategemea kidhibiti dirisha Openbox. Inatumika kwa kuweka anatoa DSBMD (kuweka CD9660, FAT, HFS+, NTFS, Ext2/3/4 inatumika), kusanidi mtandao wa wireless - wifimgr, na kudhibiti sauti - DSBMixer.
    • Ilianza kazi juu ya kuandika nyaraka kamili kwa meneja wa mazingira wa jela sufuria. Pot 0.11.0 inatayarishwa kwa kutolewa, ambayo itajumuisha zana za kudhibiti mrundikano wa mtandao.

Chanzo: opennet.ru

Kuongeza maoni