FreeBSD Development Report yekota yekutanga ye2020

rakabudiswa taura nezve kuvandudzwa kweiyo FreeBSD chirongwa kubva muna Ndira kusvika Kurume 2020. Pakati pekuchinja kwatinogona kuona:

  • General uye systemic nyaya
    • Yakabvisa iyo GCC compiler set kubva kuFreeBSD-CURRENT sosi yemuti, pamwe neiyo isina kushandiswa gperf, gcov uye gtc (devicetree compiler) zvishandiso. Mapuratifomu ese asingatsigire Clang akachinjirwa kushandisa ekunze maturusi ekuvaka akaiswa kubva kumadoko. Nheyo yenheyo yakatumira kusunungurwa kwekare kweGCC 4.2.1, uye kubatanidzwa kweshanduro itsva kwakanga kusingakwanisi nekuda kwekuchinja kwe4.2.2 kune GPLv3 rezenisi, iyo yaionekwa seisina kukodzera kuFreeBSD base components. Ikozvino kuburitswa kweGCC, kusanganisira GCC 9, inogona kuisirwa kubva pamapakeji nemadoko.
    • Iyo Linux nharaunda emulation zvivakwa (Linuxulator) yakawedzera rutsigiro rwekutumira faira system kufona, TCP_CORK modhi (inodiwa nginx), uye MAP_32BIT mureza (inogadzirisa dambudziko nekutanga mapakeji neMono kubva kuUbuntu Bionic). Matambudziko neDNS resolution kana uchishandisa glibc nyowani pane 2.30 (semuenzaniso kubva kuCentOS 8) akagadziriswa.
      Iyo inoenderera mberi yekubatanidza zvivakwa inopa kugona kumhanya LTP (Linux Testing Project) mabasa anomhanyisa Linuxulator kuyedza kuvandudzwa kwakaitwa kodhi kutsigira Linux. Inenge 400 miedzo inokundikana uye inoda kugadziriswa (zvimwe zvikanganiso zvinokonzerwa nemafungiro enhema, mamwe anoda zvigadziriswe zvishoma, asi kune zvimwe zvinoda kuwedzera rubatsiro rwekufona kwehurongwa hutsva kugadzirisa). Basa rakaitwa kuchenesa iyo Linuxulator kodhi uye kurerutsa debugging. Mapeche ane rutsigiro rweakawedzera hunhu uye iyo fexecve system yekufona yakagadziriswa, asi haisati yaongororwa.

    • Misangano yeboka rinoshanda rakagadzirwa kuti riite kutama kwemasikisi makodhi kubva kupakati sosi yekudzora system Kushandura kune iyo decentralized system Git inoenderera. Chirevo chine zvikumbiro zvekutama chiri mugadziriro yekugadzirira.
    • Π’ rtld (runtime linker) yakagadziridzwa yakananga execution mode ("/libexec/ld-elf.so.1 {path} {arguments}").
    • Iyo purojekiti yekuongorora kupusa kweiyo FreeBSD kernel uchishandisa iyo syzkaller system inoramba ichikura. Munguva yekubika, matambudziko mu network stack uye kodhi yekushanda nematafura ekutsanangura mafaera akaonekwa uchishandisa syzkaller akabviswa. Kutevera kuongororwa kwekukanganisa, shanduko dzakawedzerwa kune SCTP stack kuita kuti kugadzirisa kuve nyore. Mitemo yakawedzerwa kune iyo stress2 set kuti ione zvinogona kudzokororwa. Yakawedzera tsigiro yekuyedzwa kwefuzz yenharembozha nyowani, kusanganisira copy_file_range (), __realpathat () uye Capsicum subsystem mafoni. Basa rinoramba richivhara iyo Linux emulation layer ine fuzz yekuyedza. Takaongorora nekubvisa zvikanganiso zvakaonekwa mumishumo yazvino yeCoverity Scan.
    • Iyo inoenderera mberi yekubatanidza sisitimu yachinja kuita ese musoro webazi bvunzo chete uchishandisa clang/lld. Paunenge uchiyedza RISC-V, kuumbwa kwemufananidzo wakazara dhisiki kunovimbiswa kumhanya bvunzo muQEMU uchishandisa OpenSBI. Yakawedzera mabasa matsva ekuedza mifananidzo uye powerpc64 virtual machines (FreeBSD-head-powerpc64-images, FreeBSD-head-powerpc64-testvm).
    • Basa riri kuenderera mberi kuendesa Kyua test suite kubva kumadoko (devel/kyua) kuenda kune base system kugadzirisa matambudziko (mapeji akaiswa zvishoma nezvishoma) anomuka kana uchishandisa Kyua pazvivakwa zvitsva, kusimudzira kunoitwa uchishandisa emulator kana FPGA. Kubatanidzwa mukati meiyo base system kucharerutsa zvakanyanya kuyedzwa kweakamisikidzwa mapuratifomu uye interface ine inoenderera mberi yekubatanidza masisitimu.
    • Pakatangwa chirongwa chekugadzirisa mashandiro enetwork bridge driver kana_bhiriji, iyo inoshandisa imwe chete mutex kuvhara data yemukati, iyo isingabvumiri kuwana basa rinodiwa pamasisitimu ane nhamba huru yenzvimbo dzejeri kana michina chaiyo yakabatana mune imwe network. Panguva ino, miedzo yakawedzerwa kune kodhi kudzivirira kudzoreredzwa kubva kuitika panguva yemazuva ano ekushanda nemakiyi. Iko mukana wekushandisa ConcurrencyKit kufananidza ekufambisa data (bridge_input(), bridge_output(), bridge_forward(), ...) iri kutariswa.
    • Yakawedzera imwe sigfastblock system yekufona kubvumidza tambo kuti itaure chivharo chendangariro chekukurumidza chibatiso chechiratidzo kunatsiridza mashandiro evatambi vakasiyana.
    • Iyo kernel inowedzera tsigiro yeLSE (Large System Extension) mirairo yeatomu inotsigirwa neARMv8.1 masisitimu. Iyi mirairo inodiwa kuti uvandudze kushanda paunenge uchimhanya paCavium ThunderX2 uye AWS Graviton mabhodhi 2. Kuchinja kwakawedzerwa kunoona kutsigirwa kweLSE uye kugonesa kushandiswa kweatomu kubva kwavari. Panguva yekuyedzwa, kushandiswa kweLSE kwakaita kuti zvibvire kuderedza processor nguva yakashandiswa pakuunganidza kernel ne15%.
    • Performance optimization yakaitwa uye kushanda kweturusi rekushandisa kwakawedzera mafaera anogona kuitiswa mune ELF fomati.
      Yakawedzera rutsigiro rwe caching DWARF debugging ruzivo, yakagadzirisa matambudziko mu elfcopy/objcopy utilities, yakawedzera DW_AT_ranges kugadzirisa,
      Readelf inoshandisa kugona kudhidha PROTMAX_DISABLE, STKGAP_DISABLE uye WXNEEDED mireza, pamwe neXen neGNU Build-ID.

  • Chengetedzo
    • Kuti uvandudze mashandiro eFreeBSD muAzure cloud environments, basa riri kuenderera mberi kupa rutsigiro rweHyperV Socket mechanism, iyo inobvumira kushandiswa kwesocket interface yekudyidzana pakati pevaenzi system nenzvimbo yekutambira pasina kumisikidza network.
    • Basa riri kuenderera mberi rekupa zvinodzokororwa kuvaka zveFreeBSD, zvichiita kuti zvive nechokwadi chekuti mafaera anoteedzera ezvikamu zvesystem akanyorwa chaizvo kubva kune akaziviswa makodhi makodhi uye haana shanduko dzekunze.
    • Iko kugona kudzora kuisirwa kweimwe nzira dzekudzivirira (ASLR, PROT_MAX, stack gap, W + X mepu) pamwero wemaitiro emunhu akawedzerwa kune elfctl utility.
  • Kuchengetedza uye mafaira maitiro
    • Basa riri kuenderera mberi rekushandisa kugona kweNFS kushanda pamusoro peiyo encrypted yekutaurirana chiteshi inoenderana neTLS 1.3, pachinzvimbo chekushandisa Kerberos (sec=krb5p modhi), iyo inogumira pakuvharidzira chete mameseji eRPC uye inoitwa musoftware chete. Kuitwa kutsva kunoshandisa kernel-yakapihwa TLS stack kugonesa hardware kukurumidza. Iyo NFS pamusoro peTLS kodhi yave kuda kugadzirira kuyedzwa, asi ichiri kuda basa kutsigira zvakasainwa zvitupa zvevatengi uye kugadzirisa kernel TLS stack kutumira NFS data (zvigamba zvekugamuchira zvatogadzirira).
  • Hardware rutsigiro
    • Basa riri kuenderera mberi rekuwedzera rutsigiro rweChinese x86 CPU Hygon zvichibva pahunyanzvi hwe AMD;
    • Sechikamu cheCheriBSD, forogo yeFreeBSD yekutsvagisa processor architecture CHERI (Capability Hardware Enhanced RISC Instructions), tsigiro yeARM Morello processor inoramba ichiitwa, iyo inotsigira iyo CHERI memory access control system yakavakirwa paCapsicum chirongwa chekuchengetedza modhi. Morello chip vari kuronga kuburitswa muna 2021. Basa parizvino rakatarisana nekuwedzera rutsigiro rweArm Neoverse N1 chikuva chinopa Morello simba. Nzvimbo yekutanga yeCheriBSD yeRISC-V yekuvaka yaunzwa. CheriBSD budiriro inoenderera kune iyo CHERI referensi prototype yakavakirwa paMIPS64 yekuvaka.
    • FreeBSD porting inoenderera mberi ye64-bit SoC NXP LS1046A yakavakirwa paARMv8 Cortex-A72 processor ine yakasanganiswa network packet processing acceleration engine, 10 Gb Ethernet, PCIe 3.0, SATA 3.0 uye USB 3.0. Parizvino, vatyairi QorIQ uye LS1046A, GPIO, QorIQ LS10xx AHCI, VF610 I2C, Epson RX-8803 RTC, QorIQ LS10xx SDHCI vari kugadzirira kuendeswa kune chikuru FreeBSD kuumbwa.
    • Mutyairi weena akagadziridzwa kuita shanduro 2.1.1 nerutsigiro rwechizvarwa chechipiri cheENAv2 (Elastic Network Adapter) network adapters inoshandiswa muElastic Compute Cloud (EC2) zvivakwa kuronga kutaurirana pakati peEC2 node nekumhanya kunosvika 25 Gb/ s. Kugadziridzwa kuENA 2.2.0 kuri kugadzirirwa.
    • Kuvandudzwa kweiyo FreeBSD chiteshi cheiyo powerpc64 papuratifomu inoenderera. Tarisiro iri pakupa kuita kwemhando yepamusoro pamasisitimu ane IBM POWER8 uye POWER9 processors. Munguva yekubika, FreeBSD-CURRENT yakaendeswa kuti ishandise LLVM/Clang 10.0 compiler uye lld linker panzvimbo yeGCC. By default, powerpc64 masisitimu anoshandisa ELFv2 ABI uye rutsigiro rweELFv1 ABI rwakamiswa. FreeBSD-STABLE ichine gcc 4.2.1. Matambudziko ane virtio, aacraid uye ixl drivers akagadziriswa. Pane powerpc64 masisitimu zvinokwanisika kumhanya QEMU pasina Huge Mapeji rutsigiro.
    • Basa rinoramba richiita rutsigiro rweRISC-V architecture. Mune chimiro chayo chazvino, FreeBSD yatove bhutsu zvinobudirira paSiFive Hifive Unleashed board, iyo vatyairi vakagadzirirwa.
      UART, SPI uye PRCI, inotsigira OpenSBI uye SBI 0.2 firmware. Munguva yekubika, basa raive rakanangana nekutama kubva kuGCC kuenda kuclang uye lld.

  • Zvishandiso uye port system
    • Iyo FreeBSD ports yekuunganidza yakayambuka chikumbaridzo chezviuru makumi matatu nemazana matatu nemapfumbamwe, huwandu hwemaPRs asina kuvharwa anodarika zvishoma mazana maviri nemazana mana, ayo mazana matanhatu nemakumi mana emaPRs haasati arongwa. Munguva yekuzivisa, 39 shanduko dzakaitwa kubva ku2400 vanogadzira. Vatori vechikamu vana vakagamuchira kodzero dzekuita (LoΓ―c Bartoletti, Mikael Urankar, Kyle Evans, Lorenzo Salvadore). Yakawedzera USES=qca mureza uye yakabviswa USES=zope mureza (nekuda kwekusawirirana nePython 640). Basa riri kuenderera mberi rekubvisa Python 8146 kubva pamuti wechiteshi - ese Python 173-based ports anofanirwa kuendeswa kuPython 3 kana kubviswa. Iyo pkg package maneja yakagadziridzwa kuburitsa 2.7.
    • Yakagadziridzwa graphics stack zvikamu uye xorg zvine hukama ports.
      Sevha yeX.org yakagadziridzwa kuita vhezheni 1.20.8 (yakambotumirwa pabazi 1.18), iyo yakabvumira FreeBSD kusarudzika kushandisa udev/evdev backend yekubata michina yekupinza. Iyo Mesa package yakachinjirwa kushandisa iyo DRI3 yekuwedzera pane DRI2 nekusarudzika. Basa riri kuenderera mberi kuchengetedza madhiraivha emifananidzo, dhizaini yekuisa, uye drm-kmod zvikamu (chiteshi chinogonesa kushanda kweamdgpu, i915 uye radeon DRM modules, uchishandisa iyo linuxkpi chimiro chekuenderana neDirect Rendering Manager weLinux kernel) kusvika pari zvino.

    • Iyo KDE Plasma desktop, KDE Frameworks, KDE Applications uye Qt inochengeterwa kusvika parizvino uye yakagadziridzwa kune ichangoburwa kuburitswa. Iyo nyowani yekushandisa kstars (nyeredzi atlas) yakawedzerwa kumadoko.
    • Basa rakaitwa kuti ribvise shanduko dzekuchinja mu xfwm4 hwindo maneja akaonekwa mushure mekuvandudza Xfce kushanduro 4.14 (semuenzaniso, zvigadzirwa zvakaonekwa pakushongedza mahwindo).
    • Iyo Wine port yakagadziridzwa kuburitsa Wine 5.0 (yaimbova 4.0.3 yaipihwa).
    • Kutanga neshanduro 1.14, mugadziri wemutauro weGo akawedzera tsigiro yepamutemo yeArM64 yekuvaka yeFreeBSD 12.0.
    • OpenSSH pane base system yakagadziridzwa kuburitsa 7.9p1.
    • Iyo raibhurari yesysctlmibinfo2 yakaitwa uye yakaiswa mumadoko (devel/libsysctlmibinfo2), ichipa API yekuwana iyo sysctl MIB uye kushandura mazita esysctl kuita zvinongedzo zvechinhu (OIDs).
    • Chigadziro chekugovera chagadzirwa NomadBSD 1.3.1, inova vhezheni yeFreeBSD yakagadziridzwa kuti ishandiswe seinotakurika desktop bootable kubva ku USB drive. Iyo graphical nharaunda yakavakirwa pane hwindo maneja Openbox. Inoshandiswa kukwirisa madhiraivha DSBMD (kukwira CD9660, FAT, HFS+, NTFS, Ext2/3/4 inotsigirwa), kugadzirisa network isina waya - wifimgr, uye kudzora vhoriyamu - DSBMixer.
    • Yakatanga basa pakunyora magwaro akazara emaneja wenzvimbo yejeri poto. Pot 0.11.0 iri kugadzirirwa kusunungurwa, iyo inosanganisira maturusi ekugadzirisa network stack.

Source: opennet.ru

Voeg