Rapport om utvecklingen av FreeBSD för första kvartalet 2020

Publicerad Rapport om utvecklingen av projektet FreeBSD frÄn januari till mars 2020. Bland förÀndringarna kan nÀmnas:

  • AllmĂ€nna och systemfrĂ„gor
    • FrĂ„n trĂ€det med kĂ€lltexter FreeBSD-CURRENT har uppsĂ€ttningen av kompilatorer GCC tagits bort, liksom oanvĂ€nda verktyg som gperf, gcov och gtc (kompilator för devicetree). Alla plattformar som inte stöder Clang har övergĂ„tt till anvĂ€ndning av extern byggverktyg som installeras frĂ„n portar. I grundsystemet levererades en förĂ„ldrad version av GCC 4.2.1, och integrationen av nyare versioner var omöjlig pĂ„ grund av övergĂ„ngen av 4.2.2 till GPLv3-licensen, som ansĂ„gs oacceptabel för de grundlĂ€ggande komponenterna av FreeBSD. Aktuella versioner av GCC, inklusive GCC 9, kan fortfarande installeras frĂ„n paket och portar.
    • I infrastrukturen för Linux-emulering (Linuxulator) har stöd för systemanropet sendfile, TCP_CORK-lĂ€get (krĂ€vs för nginx) och flaggan MAP_32BIT lagts till (löser problemet med körning av paket med Mono frĂ„n Ubuntu Bionic). Problem med DNS-upplösning vid anvĂ€ndning av glibc version 2.30 eller senare (t.ex. frĂ„n CentOS 8) har Ă„tgĂ€rdats.
      I infrastrukturen för kontinuerlig integration har körningen av uppgifter för LTP (Linux Testing Project) under Linuxulator sÀkerstÀllts för att testa förbÀttringar som görs i koden för stöd för Linux. Cirka 400 tester avslutas med fel och krÀver korrigering (vissa problem orsakades av falska positiv, medan andra krÀver triviala korrigeringar, men det finns Àven sÄdana som krÀver stöd för nya systemanrop). Arbetet med att stÀda upp koden i Linuxulator och förenkla felsökningen har genomförts. Patcher med stöd för utökade attribut och systemanropet fexecve har förberetts men har Ànnu inte granskats.
    • Arbetet med arbetsgruppen som skapats för att genomföra migreringen av kĂ€lltexter frĂ„n det centraliserade versionshanteringssystemet Subversion till det decentraliserade systemet Git fortsĂ€tter. Rapporten med förslag för migrering Ă€r under framtagning.
    • I rtld (runtime linker) har förbĂ€ttrats för att möjliggöra direkt körlĂ€ge ("/libexec/ld-elf.so.1 {vĂ€g} {argument}").
    • Projektet för fuzzing-testning av FreeBSD-kĂ€rnan fortsĂ€tter att utvecklas med hjĂ€lp av syzkaller-systemet. Under rapportperioden Ă„tgĂ€rdades problem i nĂ€tverksstacken och koden för arbete med filbeskrivartabeller, identifierade med syzkaller. Ändringar har lagts till i SCTP-stacken för att förenkla felsökning baserat pĂ„ feldiagnostiken. I stress2-samlingen har regler lagts till för att upptĂ€cka möjliga regressioner. Stöd för fuzzing-testning av nya systemanrop, inklusive copy_file_range(), __realpathat() och anrop frĂ„n Capsicum-underprogrammet, har lagts till. Arbetet med att tĂ€cka Linux-emuleringslagret med fuzzing-testning fortsĂ€tter. En analys och Ă„tgĂ€rd av fel markerade i fĂ€rska rapporter frĂ„n Coverity Scan har genomförts.
    • I systemet för kontinuerlig integration har övergĂ„ngen genomförts till att köra alla tester i head-grenen endast med clang/lld. Vid testning för RISC-V har ett komplett diskimage skapats för att köra tester i QEMU med OpenSBI. Nya uppgifter för testning av bilder och virtuella maskiner för powerpc64 (FreeBSD-head-powerpc64-images, FreeBSD-head-powerpc64-testvm) har lagts till.
    • Arbetet med att flytta Kyua-testuppsĂ€ttningen frĂ„n portarna (devel/kyua) till basystemet pĂ„gĂ„r för att lösa problemen (paket installeras mycket lĂ„ngsamt) som uppstĂ„r vid anvĂ€ndning av Kyua pĂ„ nya arkitekturer, vars utveckling sker med hjĂ€lp av emulator eller FPGA. Integreringen i basystemet kommer avsevĂ€rt att förenkla testning av inbyggda plattformar och koppla samman med system för kontinuerlig integration.
    • Projektet för optimering av prestandan för nĂ€tverksbryggans drivrutin har startat. if_bridge, som anvĂ€nder en mutex för att lĂ„sa interna data, vilket hindrar uppnĂ„endet av önskad prestanda pĂ„ system med ett stort antal jail-miljöer eller virtuella maskiner som Ă€r kopplade till ett nĂ€tverk. I det hĂ€r skedet har tester lagts till i koden för att förhindra uppkomsten av regressioner under moderniseringen av arbetet med lĂ„sningar. Möjligheten att anvĂ€nda ConcurrencyKit för att parallellisera databehandlingshanterarna (bridge_input(), bridge_output(), bridge_forward(), 
) övervĂ€gs.
    • Ett nytt systemanrop sigfastblock har lagts till, vilket gör det möjligt för trĂ„den att definiera en minnesblock för en snabb handlare för signaler för att förbĂ€ttra prestandan för undantagshanterare.
    • KĂ€rnan har fĂ„tt stöd för atomĂ€ra instruktioner LSE (Large System Extension), som stöds av ARMv8.1-system. Dessa instruktioner Ă€r nödvĂ€ndiga för att förbĂ€ttra prestandan pĂ„ Cavium ThunderX2- och AWS Graviton 2-kort. De tillagda Ă€ndringarna bestĂ€mmer tillgĂ„ngen till LSE-stödet och aktiverar dynamiskt implementationen av atomic baserat pĂ„ dem. Vid testning har anvĂ€ndningen av LSE lett till en 15 % minskning av processortiden som krĂ€vs för att kompilera kĂ€rnan.
    • Prestanda har optimerats och funktionaliteten för verktyg för körbara filer i ELF-format har utökats.
      Stöd för cachning av felsökningsinformation DWARF har lagts till, problem i elfcopy/objcopy-verktygen har lösts, och hantering av DW_AT_ranges har lagts till.
      I readelf har möjligheten att avkoda flaggor PROTMAX_DISABLE, STKGAP_DISABLE och WXNEEDED implementerats, liksom Xen och GNU Build-ID.
  • SĂ€kerhet
    • För att förbĂ€ttra FreeBSD:s funktion i molnmiljöer pĂ„ Azure pĂ„gĂ„r arbete med att sĂ€kerstĂ€lla stöd för mekanismen HyperV Socket, vilket möjliggör anvĂ€ndning av socketgrĂ€nssnittet för interaktion mellan gĂ€stsystemet och vĂ€rdmiljön utan nĂ€tverkskonfiguration.
    • Arbetet med att sĂ€kerstĂ€lla reproducerbara byggnationer av FreeBSD pĂ„gĂ„r, vilket gör att man kan verifiera att de körbara filerna för systemkomponenterna Ă€r byggda exakt frĂ„n de angivna kĂ€llkoderna och inte innehĂ„ller externa Ă€ndringar.
    • I verktyget elfctl har möjligheten att hantera aktivering av ytterligare skyddsmekanismer (ASLR, PROT_MAX, stack gap, W+X mapping) pĂ„ nivĂ„ av enskilda processer lagts till.
  • Lagringssystem och filsystem
    • PĂ„gĂ„ende arbete syftar till att implementera möjligheten att anvĂ€nda NFS över en krypterad kommunikationskanal baserad pĂ„ TLS 1.3, istĂ€llet för att anvĂ€nda Kerberos (lĂ€ge sec=krb5p), vilket begrĂ€nsas till kryptering av endast RPC-meddelanden och görs helt programvarubaserat. Den nya implementeringen anvĂ€nder kĂ€rnans tillhandahĂ„llna TLS-stack, vilket möjliggör anvĂ€ndning av hĂ„rdvaruaccelerationsmedel. Koden för NFS över TLS Ă€r nĂ€stan redo för testning, men krĂ€ver fortfarande arbete med att stödja signerade klientcertifikat och anpassning av kĂ€rnans TLS-stack för att skicka NFS-data (patcharna för att ta emot Ă€r redan klara).
  • Stöd för hĂ„rdvara
    • Arbete pĂ„gĂ„r för att lĂ€gga till stöd för kinesiska x86 CPU Hygon baserat pĂ„ AMD-technologier.
    • Inom ramen för CheriBSD, en avledning frĂ„n FreeBSD för forskningsarkitekturen för processorer. CHERI (Capability Hardware Enhanced RISC Instructions), fortsĂ€tter implementeringen av ARM Morello-processorns stöd, som kommer att stödja minnesĂ„tkomstkontrollsystemet CHERI, baserat pĂ„ Capsicum-projektets skyddmodell. Morello-chipet planerar slĂ€pps 2021. För nĂ€rvarande fokuserar arbetet pĂ„ att lĂ€gga till stöd för Arm Neoverse N1-plattformen, som ligger till grund för Morello. En första port av CheriBSD för RISC-V-arkitekturen har presenterats. Utvecklingen av CheriBSD för CHERI-referensprototypen baserad pĂ„ MIPS64-arkitekturen fortsĂ€tter.
    • Porteringen av FreeBSD för 64-bitars SoC NXP LS1046A baserad pĂ„ ARMv8 Cortex-A72-processorn har fortsatt, med en integrerad motor för nĂ€tverkspaketbehandling, 10 Gb Ethernet, PCIe 3.0, SATA 3.0 och USB 3.0. För nĂ€rvarande förbereds drivrutiner för QorIQ och LS1046A, GPIO, QorIQ LS10xx AHCI, VF610 I2C, Epson RX-8803 RTC, QorIQ LS10xx SDHCI för att ingĂ„ i huvudsakliga FreeBSD-distribution.
    • Till version 2.1.1 har ena drivrutinen uppdaterats 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 koppla samman EC2-noder med hastigheter upp till 25 Gb/s. En uppdatering till ENA 2.2.0 förbereds.
    • FörbĂ€ttringarna av FreeBSD-porten för powerpc64-plattformen fortsĂ€tter. Fokuset ligger pĂ„ att sĂ€kerstĂ€lla hög kvalitet pĂ„ system med IBM POWER8 och POWER9-processorer. Under rapporteringsperioden har FreeBSD-CURRENT övergĂ„tt till att anvĂ€nda LLVM/Clang 10.0-compiler och lld-lĂ€nk istĂ€llet för GCC. Som standard anvĂ€nds ELFv2 ABI för powerpc64-system, medan stödet för ELFv1 ABI har avbrutits. GCC 4.2.1 finns kvar i FreeBSD-STABLE. Problem med virtio-, aacraid- och ixl-drivrutinerna har lösits. PĂ„ powerpc64-system kan QEMU nu köras utan stöd för Huge Pages.
    • Arbetet för att implementera stöd för RISC-V-arkitekturen har fortsatt. I sitt nuvarande skick startar FreeBSD redan framgĂ„ngsrikt pĂ„ SiFive Hifive Unleashed-kortet, för vilket drivrutiner för
      UART, SPI och PRCI har förberetts, och firmware OpenSBI och SBI 0.2 stöds. Under rapporteringsperioden har arbetet fokuserats pÄ migrationen frÄn GCC till clang och lld.
  • Applikationer och portsystem
    • Samlingen av FreeBSD-portar har överstigit 39 000 portar, antalet öppna PR ligger nĂ„got över 2400, varav 640 PR Ă€nnu inte har granskats. Under rapporteringsperioden har 8146 Ă€ndringar gjort av 173 utvecklare. Fyra nya deltagare (LoĂŻc Bartoletti, Mikael Urankar, Kyle Evans, Lorenzo Salvadore) har fĂ„tt commit-rĂ€ttigheter. Flaggan USES=qca har lagts till och flaggan USES=zope har tagits bort (pĂ„ grund av inkompatibilitet med Python 3). Arbetet med att ta bort Python 2.7 frĂ„n porttrĂ€det pĂ„gĂ„r – alla portar som Ă€r beroende av Python 2 mĂ„ste porteras till Python 3 eller kommer att tas bort. Paketmanagern pkg har uppdaterats till version 1.13.2.
    • Komponenterna i grafiska mjukvarustacken och portar relaterade till xorg har uppdaterats.
      X.org-servern har uppdaterats till version 1.20.8 (den tidigare versionen var 1.18), vilket har gjort att FreeBSD som standard övergÄr till att anvÀnda udev/evdev-backenden för hantering av inmatningsenheter. Paketet Mesa har som standard övergÄtt till att anvÀnda DRI3 istÀllet för DRI2. Arbetet med att hÄlla grafiska drivrutiner, inmatningsenhetsstacken och drm-kmod-komponenterna aktuella pÄgÄr (porten som möjliggör drift av DRM-moduler amdgpu, i915 och radeon, med hjÀlp av linuxkpi-ramverket för kompatibilitet med Direct Rendering Manager i Linux-kÀrnan).
    • Skrivbordsmiljön KDE Plasma, KDE Frameworks, KDE Applications och Qt hĂ„lls aktuella och har uppdaterats till de senaste versionerna. Det nya programmet kstars (stjĂ€rnatlas) har lagts till i portarna.
    • Arbetet med att Ă„tgĂ€rda regressionsfel i fönsterhanteraren xfwm4, som uppstod efter uppdateringen av Xfce till version 4.14 (till exempel uppstod artefakter vid dekoration av fönster), har genomförts.
    • Porten för Wine har uppdaterats till Wine 5.0 (den tidigare versionen var 4.0.3).
    • FrĂ„n och med version 1.14 har kompilatorn för Go-sprĂ„ket fĂ„tt officiellt stöd för ARM64-arkitektur för FreeBSD 12.0.
    • OpenSSH i det grundlĂ€ggande systemet har uppdaterats till version 7.9p1.
    • Biblioteket sysctlmibinfo2 (devel/libsysctlmibinfo2) har utvecklats och lagts till i portarna, vilket ger ett API för Ă„tkomst till sysctl MIB och omvandling av sysctl-namn till objektidentifikatorer (OID).
    • Distributionen har uppdaterats NomadBSD 1.3.1, som Ă€r en version av FreeBSD anpassad för att anvĂ€ndas som en portabel skrivbordsmiljö som kan startas frĂ„n ett USB-minne. Det grafiska grĂ€nssnittet baseras pĂ„ ett fönsterhanterare Openbox. För montering av lagringsenheter anvĂ€nds DSBMD (stödjer montering av CD9660, FAT, HFS+, NTFS, Ext2/3/4), för att konfigurera det trĂ„dlösa nĂ€tverket – wifimgr, och för volymkontroll – DSBMixer.
    • Arbetet har pĂ„börjats arbete för att skriva fullstĂ€ndig dokumentation för jail-miljöhanteraren pot. Pot 0.11.0 förbereds för lansering, dĂ€r nĂ€tverksstackhanteringsverktyg kommer att finnas.

KĂ€lla: opennet.ru

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