FreeBSD Entwécklung Bericht fir den éischte Véierel vun 2020

publizéiert Bericht iwwer d'Entwécklung vum FreeBSD Projet vu Januar bis Mäerz 2020. Ënnert den Ännerungen kënne mir notéieren:

  • Allgemeng a systemesch Themen
    • De GCC Compiler Set aus dem FreeBSD-CURRENT Quellbaum geläscht, souwéi déi onbenotzt gperf, gcov a gtc (Devicetree Compiler) Utilities. All Plattformen déi Clang net ënnerstëtzen, goufen ëmgeschalt fir extern Build Tools ze benotzen déi vu Ports installéiert sinn. De Basissystem huet eng verännert Verëffentlechung vu GCC 4.2.1 geliwwert, an d'Integratioun vun méi neie Versioune war net méiglech wéinst dem Iwwergang vum 4.2.2 op d'GPLv3 Lizenz, déi als onpassend fir d'FreeBSD Basiskomponenten ugesi gouf. Aktuell Verëffentlechunge vu GCC, dorënner GCC 9, kënnen nach ëmmer vu Packagen a Ports installéiert ginn.
    • D'Linux-Ëmfeld-Emuléierungsinfrastruktur (Linuxulator) huet Ënnerstëtzung fir de Sendfile-System Uruff, TCP_CORK Modus (erfuerderlech fir nginx), an de MAP_32BIT Fändel (léist de Problem mam Start vu Packagen mat Mono vun Ubuntu Bionic). Probleemer mat DNS-Resolutioun wann Dir glibc méi nei wéi 2.30 benotzt (zum Beispill vu CentOS 8) goufen geléist.
      Déi kontinuéierlech Integratiounsinfrastruktur bitt d'Fäegkeet fir LTP (Linux Testing Project) Jobs ze lafen déi Linuxulator lafen fir Verbesserungen ze testen, déi am Code gemaach goufen fir Linux z'ënnerstëtzen. Ongeféier 400 Tester feelen a erfuerderen Fixéierung (e puer Feeler ginn duerch falsch Positiver verursaacht, e puer erfuerderen trivial Fixer, awer et ginn anerer déi Ënnerstëtzung fir nei Systemappellen erfuerderen fir ze fixéieren). Aarbecht gouf gemaach fir de Linuxulator Code ze botzen an Debugging ze vereinfachen. Patches mat Ënnerstëtzung fir erweidert Attributer an de fexecve System Uruff goufen virbereet, awer nach net iwwerpréift.

    • Versammlungen vun der Aarbechtsgrupp erstallt fir d'Migratioun vu Quellcoden aus dem zentraliséierte Quellekontrollsystem Subversion an den dezentraliséierte System Git weiderzeféieren. E Rapport mat Virschléi fir Migratioun ass am Prozess vun Virbereedung.
    • В rtld (Runtime Linker) verbessert direkten Ausféierungsmodus ("/libexec/ld-elf.so.1 {path} {Argumenter}").
    • De Projet fir Fuzzing Testen vum FreeBSD Kernel mam Syzkaller System weider ze entwéckelen. Wärend der Berichtungsperiod goufen d'Problemer am Netzstack a Code fir mat Dateideskriptortabellen ze schaffen, déi mat Syzkaller identifizéiert goufen, eliminéiert. No der Fehlerdiagnostik sinn Ännerungen am SCTP-Stack bäigefüügt fir Debugging méi einfach ze maachen. Regele goufen an de Stress2 Set bäigefüügt fir méiglech Regressiounen z'identifizéieren. Dobäi Ënnerstëtzung fir Fuzz Testen vun neie System rifft, dorënner copy_file_range (), __realpathat () an Capsicum subsystem rifft. D'Aarbecht geet weider fir d'Linux Emulatiounsschicht mat Fuzz Testen ze decken. Mir analyséieren an eliminéiert Feeler notéiert an de leschten Coverity Scan Berichter.
    • De kontinuéierleche Integratiounssystem ass gewiesselt fir all Head Branch Tester auszeféieren nëmme mat Clang / lld. Wann Dir fir RISC-V testen, ass d'Bildung vun engem komplette Scheifbild fir Tester am QEMU mat OpenSBI gesuergt. Nei Aufgaben bäigefüügt fir Biller a powerpc64 virtuelle Maschinnen ze testen (FreeBSD-head-powerpc64-images, FreeBSD-head-powerpc64-testvm).
    • D'Aarbecht ass amgaang fir d'Kyua Testsuite vun den Häfen (devel/kyua) an de Basissystem ze transferéieren fir Probleemer ze léisen (Packagen gi ganz lues installéiert) déi entstinn wann Dir Kyua op nei Architekturen benotzt, fir déi Entwécklung mat engem Emulator oder FPGA. Integratioun an de Basissystem wäert d'Tester vun embedded Plattformen an d'Interface mat kontinuéierlechen Integratiounssystemer wesentlech vereinfachen.
    • E Projet gouf gestart fir d'Performance vum Netzbréck Chauffer ze optimiséieren wann_bréck, déi eng eenzeg Mutex benotzt fir intern Donnéeën ze spären, wat et net erlaabt datt déi gewënscht Leeschtung op Systemer mat enger grousser Zuel vu Prisongsëmfeld oder virtuelle Maschinnen an engem Netz vereenegt sinn. Op dëser Etapp goufen Tester op de Code dobäigesat fir Regressiounen ze vermeiden während der Moderniséierung vun der Aarbecht mat Schleisen. D'Méiglechkeet ConcurrencyKit ze benotzen fir Datenübertragungshandteren (bridge_input (), bridge_output (), bridge_forward (), ...) ze parallelliséieren.
    • En neie Sigfastblock System Uruff bäigefüügt fir e Fuedem e Spär vun Erënnerung fir e schnelle Signalhandter ze spezifizéieren fir d'Performance vun Ausnamhanteren ze verbesseren.
    • De Kernel füügt Ënnerstëtzung fir LSE (Large System Extension) Atominstruktiounen ënnerstëtzt vun ARMv8.1 Systemer. Dës Instruktioune sinn erfuerderlech fir d'Performance ze verbesseren wann se op Cavium ThunderX2 an AWS Graviton 2 Boards lafen. Wärend dem Test huet d'Benotzung vu LSE et méiglech gemaach, d'Veraarbechtung vun der Prozessorzäit beim Montage vum Kernel ëm 15% ze reduzéieren.
    • D'Performanceoptimiséierung gouf duerchgefouert an d'Funktionalitéit vum Toolkit gouf fir ausführbar Dateien am ELF-Format erweidert.
      Ënnerstëtzung bäigefüügt fir DWARF Debugging Informatioun ze cachen, Probleemer an den elfcopy / objcopy Utilities geléist, DW_AT_ranges Veraarbechtung bäigefüügt,
      readelf implementéiert d'Fäegkeet fir d'PROTMAX_DISABLE, STKGAP_DISABLE a WXNEEDED Fändelen ze dekodéieren, souwéi Xen a GNU Build-ID.

  • Sécherheet
    • Fir d'Performance vu FreeBSD an Azure Cloud-Ëmfeld ze verbesseren, gëtt d'Aarbecht amgaang fir Ënnerstëtzung fir den HyperV Socket-Mechanismus ze bidden, deen d'Benotzung vun enger Socket-Interface fir Interaktioun tëscht dem Gaaschtsystem an dem Host-Ëmfeld erlaabt ouni en Netz opzestellen.
    • D'Aarbecht ass amgaang fir widderholl Builds vu FreeBSD ze liwweren, sou datt et méiglech ass ze garantéieren datt d'ausführbar Dateie vun de Systemkomponente genee aus den deklaréierten Quellcodes kompiléiert sinn an keng extern Ännerungen enthalen.
    • D'Kapazitéit fir d'Inklusioun vun zousätzleche Schutzmechanismen (ASLR, PROT_MAX, Stack Spalt, W + X Mapping) um Niveau vun eenzelne Prozesser ze kontrolléieren ass an d'elfctl Utility bäigefüügt.
  • Stockage an Fichier Systemer
    • D'Aarbecht ass amgaang fir d'Fäegkeet fir NFS ëmzesetzen iwwer e verschlësselte Kommunikatiounskanal baséiert op TLS 1.3, anstatt Kerberos ze benotzen (sec = krb5p Modus), wat limitéiert ass fir nëmmen RPC Messagen ze verschlësselen an nëmmen a Software ëmgesat gëtt. Déi nei Implementatioun benotzt den Kernel geliwwert TLS Stack fir d'Hardware Beschleunegung z'erméiglechen. Den NFS iwwer TLS Code ass bal prett fir ze testen, awer erfuerdert nach ëmmer Aarbecht fir ënnerschriwwene Clientzertifikater z'ënnerstëtzen an de Kernel TLS Stack unzepassen fir NFS Daten ze schécken (Patches fir ze kréien si scho fäerdeg).
  • Hardware Ënnerstëtzung
    • D'Aarbecht ass amgaang fir Ënnerstëtzung fir Chinesesch x86 CPU Hygon op Basis vun AMD Technologien ze addéieren;
    • Als Deel vun CheriBSD, eng Gabel vu FreeBSD fir Fuerschungsprozessorarchitektur CHERI (Capability Hardware Enhanced RISC Instructions), Ënnerstëtzung fir den ARM Morello Prozessor gëtt weider implementéiert, wat den CHERI Memory Access Control System baséiert op dem Capsicum Projet Sécherheetsmodell ënnerstëtzt. Morello Chip plangen Verëffentlechung am Joer 2021. D'Aarbecht ass de Moment konzentréiert op Ënnerstëtzung fir d'Arm Neoverse N1 Plattform ze addéieren déi de Morello dréit. En initialen Hafen vun CheriBSD fir d'RISC-V Architektur gouf presentéiert. CheriBSD Entwécklung geet weider fir den CHERI Referenz Prototyp baséiert op der MIPS64 Architektur.
    • FreeBSD Porting geet weider fir den 64-Bit SoC NXP LS1046A baséiert op dem ARMv8 Cortex-A72 Prozessor mat engem integréierte Netzwierk Paketveraarbechtungsbeschleunigungsmotor, 10 Gb Ethernet, PCIe 3.0, SATA 3.0 an USB 3.0. Momentan gi Chauffeuren QorIQ an LS1046A, GPIO, QorIQ LS10xx AHCI, VF610 I2C, Epson RX-8803 RTC, QorIQ LS10xx SDHCI virbereet fir den Transfer an d'Haapt FreeBSD Zesummesetzung.
    • Den ena Chauffer gouf op Versioun 2.1.1 aktualiséiert mat Ënnerstëtzung fir déi zweet Generatioun vun ENAv2 (Elastic Network Adapter) Netzwierkadaptere benotzt an der Elastic Compute Cloud (EC2) Infrastruktur fir d'Kommunikatioun tëscht EC2 Noden mat Geschwindegkeete vu bis zu 25 Gb / z'organiséieren. s. En Update op ENA 2.2.0 gëtt virbereet.
    • Verbesserunge vum FreeBSD Hafen fir d'powerpc64 Plattform weider. De Fokus ass op Qualitéitsleeschtung op Systemer mat IBM POWER8 an POWER9 Prozessoren ze liwweren. Wärend der Berichtungsperiod gouf FreeBSD-CURRENT transferéiert fir den LLVM / Clang 10.0 Compiler an lld Linker amplaz GCC ze benotzen. Par défaut benotzen powerpc64 Systemer den ELFv2 ABI an d'Ënnerstëtzung fir den ELFv1 ABI gouf gestoppt. FreeBSD-STABLE huet nach ëmmer gcc 4.2.1. Probleemer mat Virtio, aacraid an ixl Chauffeuren goufen geléist. Op powerpc64 Systemer ass et méiglech QEMU ze lafen ouni Huge Pages Support.
    • D'Aarbecht geet weider fir d'Ënnerstëtzung fir d'RISC-V Architektur ëmzesetzen. A senger aktueller Form boott FreeBSD scho erfollegräich op der SiFive Hifive Unleashed Board, fir déi Treiber virbereet goufen
      UART, SPI an PRCI, ënnerstëtzt OpenSBI an SBI 0.2 Firmware. Wärend der Berichtungsperiod gouf d'Aarbecht op Migratioun vu GCC op Clang an lld konzentréiert.

  • Uwendungen an port System
    • D'FreeBSD Ports Sammlung huet d'Schwell vun 39 Tausend Ports iwwerschratt, d'Zuel vun ongeschlossene PRs liicht méi wéi 2400, vun deenen 640 PRs nach net zortéiert goufen. Wärend der Berichtungsperiod goufen 8146 Ännerungen vun 173 Entwéckler gemaach. Véier nei Participanten kruten engagéiert Rechter (Loïc Bartoletti, Mikael Urankar, Kyle Evans, Lorenzo Salvadore). Derbäi USES = qca Fändel an ewechgeholl USES = zope Fändel (wéinst Inkompatibilitéit mam Python 3). D'Aarbecht ass amgaang fir Python 2.7 aus dem Portsbaum ze läschen - all Python 2-baséiert Ports mussen op Python 3 portéiert ginn oder wäerte geläscht ginn. De pkg Package Manager gouf aktualiséiert fir d'Verëffentlechung 1.13.2.
    • Aktualiséiert Grafikstack Komponenten an xorg verbonne Ports.
      Den X.org Server gouf op d'Versioun 1.20.8 aktualiséiert (virdrun op der 1.18 Branche verschéckt), wat FreeBSD erlaabt huet als Standard den udev / evdev Backend ze benotzen fir Input Geräter ze handhaben. De Mesa Package gouf gewiesselt fir d'DRI3 Extensioun amplaz vun DRI2 als Standard ze benotzen. D'Aarbecht ass amgaang fir d'Grafiktreiber, den Input Apparat Stack an d'drm-kmod Komponenten ze halen (e Port deen d'Operatioun vun amdgpu, i915 an radeon DRM Moduler erméiglecht, mam linuxkpi Kader fir Kompatibilitéit mam Direct Rendering Manager vum Linux Kernel) op dem neiste Stand.

    • De KDE Plasma Desktop, KDE Frameworks, KDE Uwendungen a Qt ginn um neiste Stand gehal an op déi lescht Verëffentlechungen aktualiséiert. Eng nei Applikatioun kstars (Star Atlas) gouf op d'Ports bäigefüügt.
    • Aarbecht gouf gemaach fir regressiv Ännerungen am xfwm4 Fënstermanager z'eliminéieren, deen nom Update Xfce op d'Versioun 4.14 erschéngt (zum Beispill, Artefakte erschéngen beim Dekoratioun vu Fënsteren).
    • De Wäinport gouf aktualiséiert fir Wine 5.0 ze verëffentlechen (virdrun 4.0.3 gouf ugebueden).
    • Vun der Versioun 1.14 un huet de Go Sprooche Compiler offiziell Ënnerstëtzung fir d'ARM64 Architektur fir FreeBSD 12.0 bäigefüügt.
    • OpenSSH am Basissystem gouf aktualiséiert fir 7.9p1 ze verëffentlechen.
    • D'sysctlmibinfo2 Bibliothéik gouf implementéiert an an Ports plazéiert (devel/libsysctlmibinfo2), déi eng API ubitt fir Zougang zum sysctl MIB an d'Iwwersetzung vun sysctl Nimm an Objektidentifizéierer (OIDs).
    • E Verdeelungsaktualiséierung gouf generéiert NomadBSD 1.3.1, dat ass eng Editioun vu FreeBSD ugepasst fir ze benotzen als portable Desktop bootbar vun engem USB Drive. D'grafescht Ëmfeld baséiert op engem Fënstermanager Openbox. Benotzt fir Opriichte fiert DSBMD (Montage CD9660, FAT, HFS+, NTFS, Ext2/3/4 gëtt ënnerstëtzt), fir en drahtlose Netzwierk ze konfiguréieren - wifimgr, a fir de Volume ze kontrolléieren - DSBMixer.
    • Ugefaangen Aarbecht fir komplett Dokumentatioun fir de Prisongsëmfeldmanager ze schreiwen Pot. Pot 0.11.0 gëtt virbereet fir d'Verëffentlechung, déi Tools enthält fir den Netzstack ze managen.

Source: opennet.ru

Setzt e Commentaire