FreeBSD Development Report för första kvartalet 2020

publiceras en rapport om utvecklingen av FreeBSD-projektet frÄn januari till mars 2020. Bland förÀndringarna kan vi notera:

  • AllmĂ€nna och systemiska frĂ„gor
    • GCC-kompilatorsviten har tagits bort frĂ„n FreeBSD-CURRENT-kĂ€llkodstrĂ€det, liksom de oanvĂ€nda verktygen gperf, gcov och gtc (devicetree compiler). Alla plattformar som inte stöder Clang har bytts till att anvĂ€nda externa byggverktyg installerade frĂ„n portar. Bassystemet levererades med den förĂ„ldrade GCC 4.2.1-utgĂ„van, och integration av nyare versioner var inte möjlig pĂ„ grund av 4.2.2:s övergĂ„ng till GPLv3-licensen, vilket ansĂ„gs oacceptabelt för FreeBSD-baskomponenterna. Nuvarande GCC-utgĂ„vor, inklusive GCC 9, kan fortfarande installeras frĂ„n paket och portar.
    • I miljöns emuleringsinfrastruktur Linux (Linuxulator) lade till stöd för systemanropet sendfile, TCP_CORK-lĂ€ge (krĂ€vs för nginx) och flaggan MAP_32BIT (löser problemet med att köra paket med Mono frĂ„n Ubuntu Bionic). DNS-lösningsproblem vid anvĂ€ndning av glibc nyare Ă€n 2.30 (till exempel frĂ„n CentOS 8).
      Den kontinuerliga integrationsinfrastrukturen ger möjlighet att köra jobb för att köra LTP (Linux Testprojekt) under ledning av Linuxulator för att testa förbÀttringar gjorda i koden för att stödja LinuxOmkring 400 tester misslyckas och krÀver ÄtgÀrd (vissa fel orsakas av falska positiva resultat, vissa krÀver enkla ÄtgÀrdar och andra krÀver att stöd för nya systemanrop lÀggs till). Kodrensningen har slutförts. Linuxulator och förenkla felsökning. Patchar som stöder utökade attribut och systemanropet fexecve har förberetts men Ànnu inte granskats.
    • Arbetsgruppen som skapats för att migrera kĂ€llkod frĂ„n det centraliserade Subversion-kĂ€llkodskontrollsystemet till det decentraliserade Git-systemet fortsĂ€tter att mötas. En rapport med migreringsförslag Ă€r under utarbetande.
    • В rtld (runtime-lĂ€nkare) förbĂ€ttrade direktkörningslĂ€ge ("/libexec/ld-elf.so.1 {path} {arguments}").
    • FreeBSD-kĂ€rnprojektet för fuzzing med syzkaller-systemet fortsĂ€tter att utvecklas. Under rapporteringsperioden Ă„tgĂ€rdades problem i nĂ€tverksstacken och kod för att arbeta med filbeskrivningstabeller som identifierats med syzkaller. Efter feldiagnostik lades Ă€ndringar till i SCTP-stacken för att förenkla felsökning. Regler för att identifiera potentiella regressioner lades till i stress2-uppsĂ€ttningen. Stöd för fuzzingtestning av nya systemanrop har lagts till, inklusive copy_file_range(), __realpathat() och Capsicum-subsystemanrop. Arbetet fortsĂ€tter med att tĂ€cka emuleringsskiktet med fuzzingtestning. LinuxFel som identifierats i de senaste Coverity Scan-rapporterna har analyserats och korrigerats.
    • I det kontinuerliga integrationssystemet övergick man till att köra alla tester av head-grenen endast med clang/lld. Vid testning för RISC-V genereras en fullstĂ€ndig diskavbildning för att köra tester i QEMU med OpenSBI. Nya uppgifter för att testa powerpc64-avbildningar och virtuella maskiner (FreeBSD-head-powerpc64-images, FreeBSD-head-powerpc64-testvm) har lagts till.
    • Arbete pĂ„gĂ„r för att migrera Kyuas testsvit frĂ„n portar (devel/kyua) till bassystemet för att Ă„tgĂ€rda problem (paket installeras mycket lĂ„ngsamt) som uppstĂ„r nĂ€r Kyua anvĂ€nds pĂ„ nya arkitekturer dĂ€r utvecklingen sker med hjĂ€lp av en emulator eller FPGA. Integrering i bassystemet kommer avsevĂ€rt att förenkla testning av inbyggda plattformar och grĂ€nssnitt mot kontinuerliga integrationssystem.
    • Projekt för att optimera prestandan för nĂ€tverksbryggans drivrutiner har startat om_brygga, som anvĂ€nder en enda mutex för att lĂ„sa interna data, vilket inte möjliggör att önskad prestanda uppnĂ„s pĂ„ system med ett stort antal jail-miljöer eller virtuella maskiner sammankopplade i ett enda nĂ€tverk. I detta skede har tester lagts till i koden för att förhindra regressioner under uppgraderingsprocessen för arbete med lĂ„s. Möjligheten att anvĂ€nda ConcurrencyKit för att parallellisera dataöverföringshanterare (bridge_input(), bridge_output(), bridge_forward(), ...) övervĂ€gs.
    • Ett nytt sigfastblock-systemanrop har lagts till som tillĂ„ter en trĂ„d att specificera ett minnesblock för en snabb signalhanterare för att förbĂ€ttra prestandan för undantagshanterare.
    • KĂ€rnan stöder nu LSE-atominstruktioner (Large System Extension) som stöds av ARMv8.1-system. Dessa instruktioner krĂ€vs för att förbĂ€ttra prestandan pĂ„ Cavium ThunderX2- och AWS Graviton 2-kort. De tillagda Ă€ndringarna detekterar förekomsten av LSE-stöd och aktiverar dynamiskt atomimplementering baserat pĂ„ dem. Under testning möjliggjorde anvĂ€ndningen av LSE en minskning av processortiden som spenderades pĂ„ kĂ€rnmontering med 15 %.
    • Prestandaoptimeringar har gjorts och funktionaliteten i verktygslĂ„dan för ELF-körbara filer har utökats.
      Lade till stöd för cachning av DWARF-felsökningsinformation, löste problem i elfcopy/objcopy-verktygen, lade till hantering av DW_AT_ranges,
      readelf har nu möjligheten att avkoda flaggorna PROTMAX_DISABLE, STKGAP_DISABLE och WXNEEDED, sÄvÀl som Xen och GNU Build-ID.
  • Đ‘Đ”Đ·ĐŸĐżĐ°ŃĐœĐŸŃŃ‚ŃŒ
    • För att förbĂ€ttra FreeBSD-prestanda i Azure-molnmiljöer pĂ„gĂ„r arbete med att ge stöd för HyperV Socket-mekanismen, som tillĂ„ter anvĂ€ndning av ett socket-grĂ€nssnitt för interaktion mellan gĂ€st och vĂ€rd utan nĂ€tverkskonfiguration.
    • Arbete pĂ„gĂ„r för att sĂ€kerstĂ€lla repeterbara FreeBSD-byggen, vilket gör att vi kan verifiera att de körbara filerna för systemkomponenterna Ă€r byggda frĂ„n den deklarerade kĂ€llkoden och inte innehĂ„ller nĂ„gra ovidkommande Ă€ndringar.
    • Verktyget elfctl har nu möjlighet att kontrollera inkluderingen av ytterligare skyddsmekanismer (ASLR, PROT_MAX, stack gap, W+X-mappning) pĂ„ nivĂ„n för enskilda processer.
  • Lagring och filsystem
    • Arbete pĂ„gĂ„r för att implementera möjligheten att köra NFS över en krypterad kommunikationskanal baserad pĂ„ TLS 1.3, istĂ€llet för att anvĂ€nda Kerberos (sec=krb5p-lĂ€ge), vilket Ă€r begrĂ€nsat till att endast kryptera RPC-meddelanden och endast implementeras i programvara. Den nya implementeringen anvĂ€nder TLS-stacken som tillhandahĂ„lls av kĂ€rnan, vilket möjliggör anvĂ€ndning av hĂ„rdvaruaccelerationsverktyg. NFS över TLS-koden Ă€r nĂ€stan redo för testning, men krĂ€ver fortfarande arbete för att stödja signerade klientcertifikat och anpassa kĂ€rnans TLS-stack för att skicka NFS-data (patchar för mottagning Ă€r redan klara).
  • HĂ„rdvarustöd
    • Arbete pĂ„gĂ„r för att lĂ€gga till stöd för den kinesiska x86-processorn Hygon baserad pĂ„ AMD-teknik;
    • Inom CheriBSD, en förgrening av FreeBSD för en forskningsprocessorarkitektur CHERI (Capability Hardware Enhanced RISC Instructions), fortsĂ€tter att stödja ARM Morello-processorn, som kommer att stödja CHERI-minnesĂ„tkomstkontrollsystemet baserat pĂ„ Capsicum-projektskyddsmodellen. Morello-chippet planerar slĂ€ppas 2021. Arbetet fokuseras för nĂ€rvarande pĂ„ att lĂ€gga till stöd för Arm Neoverse N1-plattformen, som ligger till grund för Morello. En första portning av CheriBSD för RISC-V-arkitekturen har presenterats. CheriBSD-utvecklingen fortsĂ€tter för den MIPS64-baserade CHERI-referensprototypen.
    • FreeBSD-portningen för 64-bitars NXP LS1046A SoC baserad pĂ„ ARMv8 Cortex-A72-processorn med en integrerad nĂ€tverkspaketaccelerationsmotor, 10 Gb Ethernet, PCIe 3.0, SATA 3.0 och USB 3.0 har fortsatt. Drivrutinerna QorIQ och LS1046A, GPIO, QorIQ LS10xx AHCI, VF610 I2C, Epson RX-8803 RTC och QorIQ LS10xx SDHCI förbereds för nĂ€rvarande för inkludering i den huvudsakliga FreeBSD-distributionen.
    • Ena-drivrutinen har uppdaterats till version 2.1.1 med stöd för andra generationens ENAv2 (Elastic Network Adapter) nĂ€tverkskort som anvĂ€nds i Elastic Compute Cloud (EC2)-infrastrukturen för att organisera kommunikation mellan EC2-noder med hastigheter upp till 25 Gb/s. En uppdatering till ENA 2.2.0 förbereds.
    • FreeBSD-porten för powerpc64-plattformen fortsĂ€tter att förbĂ€ttras. Huvudfokus ligger pĂ„ att sĂ€kerstĂ€lla högkvalitativ drift pĂ„ system med IBM POWER8- och POWER9-processorer. Under rapporteringsperioden överfördes FreeBSD-CURRENT till att anvĂ€nda LLVM/Clang 10.0-kompilatorn och lld-lĂ€nkaren istĂ€llet för GCC. Som standard Ă€r ELFv64 ABI aktiverat för powerpc2-system, och stödet för ELFv1 ABI har upphört. FreeBSD-STABLE har fortfarande gcc 4.2.1. Problem med virtio-, aacraid- och ixl-drivrutiner har lösts. PĂ„ powerpc64-system Ă€r det nu möjligt att köra QEMU utan stöd för Huge Pages.
    • Arbetet med att implementera stöd för RISC-V-arkitekturen har fortsatt. I sin nuvarande form startar FreeBSD redan framgĂ„ngsrikt pĂ„ SiFive Hifive Unleashed-kortet, för vilket drivrutiner har förberetts.
      UART, SPI och PRCI, stöder OpenSBI och SBI 0.2 firmware. Under rapporteringsperioden fokuserade arbetet pÄ migrering frÄn GCC till clang och lld.
  • Applikationer och hamnsystem
    • FreeBSD-portsamlingen har passerat 39 2400 portningar, med drygt 640 8146 oavslutade PR:er, varav 173 PR:er Ă€nnu inte har lösts. Under rapporteringsperioden gjordes 3 2.7 Ă€ndringar av 2 utvecklare. Fyra nya bidragsgivare fick committer-rĂ€ttigheter (LoĂŻc Bartoletti, Mikael Urankar, Kyle Evans, Lorenzo Salvadore). Flaggan USES=qca lades till och flaggan USES=zope togs bort (pĂ„ grund av inkompatibilitet med Python 3). Arbete pĂ„gĂ„r för att ta bort Python 1.13.2 frĂ„n porttrĂ€det — alla portar kopplade till Python XNUMX mĂ„ste portas till Python XNUMX eller tas bort. Pakethanteraren pkg har uppdaterats till version XNUMX.
    • Uppdaterade grafikstackkomponenter och xorg-relaterade portar.
      X.org-servern har uppdaterats till version 1.20.8 (tidigare levererades 1.18-grenen), vilket har gjort det möjligt för FreeBSD att byta till att anvÀnda udev/evdev-backend som standard för hantering av inmatningsenheter. Mesa-paketet har bytts till att anvÀnda DRI3-tillÀgget som standard istÀllet för DRI2. Arbete pÄgÄr för att hÄlla grafikdrivrutiner, inmatningsenhetsstacken och drm-kmod-komponenter uppdaterade (en port som möjliggör DRM-moduler för amdgpu, i915 och radeon, med hjÀlp av linuxkpi-ramverket för kompatibilitet med kÀrnans Direct Rendering Manager). Linux).
    • KDE Plasma-skrivbordet, KDE-ramverk, KDE-program och Qt hĂ„lls uppdaterade och uppdaterade till de senaste utgĂ„vorna. Ett nytt program, kstars (star atlas), har lagts till i porteringarna.
    • Arbete har utförts för att eliminera regressiva förĂ€ndringar i fönsterhanteraren xfwm4 som uppstod efter uppdateringen av Xfce till version 4.14 (till exempel uppstod artefakter vid fönsterdekorering).
    • Wine-porteringen har uppdaterats till Wine 5.0 (tidigare erbjöds 4.0.3).
    • FrĂ„n och med version 1.14 lĂ€gger Go-kompilatorn till officiellt stöd för ARM64-arkitekturen för FreeBSD 12.0.
    • OpenSSH i bassystemet har uppdaterats till version 7.9p1.
    • sysctlmibinfo2-biblioteket har implementerats och placerats i portar (devel/libsysctlmibinfo2), vilket tillhandahĂ„ller ett API för Ă„tkomst till sysctl MIB och översĂ€ttning av sysctl-namn till objektidentifierare (OID).
    • Distributionsuppdatering genererad NomadBSD 1.3.1, som Ă€r en utgĂ„va av FreeBSD anpassad för anvĂ€ndning som ett bĂ€rbart skrivbord som kan startas frĂ„n en USB-enhet. Den grafiska miljön Ă€r baserad pĂ„ en fönsterhanterare Öppen lĂ„da. AnvĂ€nds för montering av drivenheter DSBMD (montering av CD9660, FAT, HFS+, NTFS, Ext2/3/4 stöds), för att konfigurera ett trĂ„dlöst nĂ€tverk - wifimgr, och för att kontrollera volymen - DSBMixer.
    • Började arbete om att skriva fullstĂ€ndig dokumentation för fĂ€ngelsemiljöchefen krukapot 0.11.0 förbereds för release, vilket kommer att inkludera verktyg för hantering av nĂ€tverksstackar.

KĂ€lla: opennet.ru

Köp pĂ„litlig hosting för webbplatser med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster