A FreeBSD fejlődési jelentése a 2020-as év első negyedévében

Megjelent A FreeBSD projekt fejlesztési jelentése 2020 januárja és márciusa között. Az alábbi változások emelhetők ki:

  • Általános és rendszerbeli kérdések
    • A FreeBSD-CURRENT forrásfákból eltávolításra került a GCC fordítók készlete, valamint a gperf, gcov és gtc (eszközfa fordító) nem használt utilitások. Minden olyan platform, amely nem támogatja a Clang-t, átállt egy külső build eszközkészlet használatára, amely a portokból telepíthető. Az alapértelmezett rendszerben egy elavult GCC 4.2.1 verzió volt beszállítva, míg a frissebb verziók integrálása lehetetlenné vált a 4.2.2 GPLv3 licenszre való áttérés miatt, amelyet a FreeBSD alapvető komponensei számára elfogadhatatlannak ítéltek. A jelenlegi GCC kiadások, beleértve a GCC 9-et, továbbra is telepíthetők csomagokból és portokból.
    • A Linux környezet emulációs infrastruktúrájában (Linuxulator) hozzáadva lett a sendfile rendszerhívás támogatása, a TCP_CORK mód (amely szükséges az nginx számára), valamint a MAP_32BIT zászló (amely megoldja a Mono csomagok Ubuntu Bionic-ból való futtatásával kapcsolatos problémákat). Megoldásra kerültek a DNS feloldással kapcsolatos problémák, amikor a glibc újabb, mint a 2.30 (például a CentOS 8-ból).
      A folyamatos integráció infrastruktúrájában biztosítva lett a feladatok indítása az LTP (Linux Tesztelő Projekt) futtatására a Linuxulator alatt a Linux támogatására irányuló kódjavítások tesztelésére. Körülbelül 400 teszt hibával zárul, és javítást igényel (néhány hiba hamis riasztások miatt adódik, néhány könnyű javítást igényel, de van, amelyhez új rendszerhívások támogatásának hozzáadása szükséges). Munkát végeztek a Linuxulator kódjának tisztításán és a hibakeresés egyszerűsítésén. Készen állnak, de még nem felülvizsgálták a kibővített attribútumok és az fexecve rendszerhívás támogatását biztosító javítások.
    • Tovább folytatódnak a munkacsoport ülései, amely a forrásfák központosított Subversion rendszerből decentralizált Git rendszerbe történő migrálását végzi. A migrálási javaslatokról szóló jelentés készítése folyamatban van.
    • A rtld (runtime linker) javítva lett a közvetlen végrehajtás módja ("/libexec/ld-elf.so.1 {út} {argumentumok}").
    • Folyamatban van a FreeBSD kernel fuzzing tesztelési projekt fejlesztése a syzkaller rendszer használatával. A beszámoló időszak alatt megszüntették a problémákat a hálózati veremben és a fájlleíró táblázatokkal kapcsolatos kódokban, amelyeket a syzkaller segítségével azonosítottak. A SCTP verem hibadiagnosztikája alapján módosításokat adtak hozzá, amelyek megkönnyítik a hibakeresést. A stress2 készlethez új szabályok kerültek, hogy lehetőség szerint azonosítsák a regressziókat. Fuzzing-tesztelés támogatása került bevezetésre új rendszerhívásokhoz, beleértve a copy_file_range(), __realpathat() és a Capsicum alrendszer hívásait. A Linux emulációs réteg fuzzing-tesztelésére irányuló munka folytatódik. Az újonnan megjelent Coverity Scan riportokban jelzett hibákat elemezték és megszüntették.
    • A folyamatos integrálás rendszerében átálltak, hogy az összes head ág tesztjeit kizárólag clang/lld használatával hajtsák végre. RISC-V tesztelésekor teljes lemezkép létrehozása biztosítva lett a QEMU tesztjeihez az OpenSBI használatával. Új feladatok kerültek hozzáadásra a powerpc64 (FreeBSD-head-powerpc64-images, FreeBSD-head-powerpc64-testvm) képek és virtuális gépek tesztelésére.
    • Folyamatban van a Kyua tesztkészlet áttelepítése a portokból (devel/kyua) az alap rendszerbe, hogy megoldják a problémákat (a csomagok nagyon lassan települnek), amelyek a Kyua új architektúrákon való használatakor merülnek fel, amelyeket emulator és FPGA segítségével fejlesztenek. Az alap rendszerbe való integráció jelentősen egyszerűsíti az beágyazott platformok tesztelését és a folyamatos integrálási rendszerekkel való összehangolást.
    • Megkezdődött a hálózati hidak teljesítményoptimalizálási projektje. if_bridge, amely egy mutexet használ a belső adatok zárolására, így nem éri el a kívánt teljesítményt nagy számú jail környezettel vagy virtuális gépekkel rendelkező rendszereken, amelyek egy hálózatba csoportosítva működnek. A jelenlegi szakaszban a kódhoz teszteket adtak hozzá, hogy megakadályozzák a regressziók megjelenését a zárolásokkal kapcsolatos munkafolyamatok modernizálása során. A ConcurrencyKit felhasználásának lehetőségét mérlegelik az adatátviteli kezelők (bridge_input(), bridge_output(), bridge_forward(), …) párhuzamosítására.
    • Új rendszerhívás került bevezetésre, a sigfastblock, amely lehetővé teszi a szál számára, hogy meghatározza a memória blokkot a gyors jelkezelő számára, a kivételek kezelésének teljesítményének növelése érdekében.
    • A mag lebonyolította a LSE (Large System Extension) atomikus utasítások támogatását, amelyet az ARMv8.1 rendszerek támogatnak. Ezek az utasítások szükségesek a teljesítmény növelésére a Cavium ThunderX2 és AWS Graviton 2 alaplapokon végzett munkák során. Az új változtatások lehetővé teszik az LSE támogatásának ellenőrzését és az atomikus megvalósítás dinamikus aktiválását ezek alapján. A tesztelés során az LSE használata 15%-kal csökkentette a kernel összeállítása során használt processzidőt.
    • Teljesítményoptimalizálást hajtottunk végre, és bővítettük az ELF formátumú végrehajtható fájlok eszközkészletének funkcionalitását.
      Hozzáadtuk a DWARF hibakeresési adatok gyorsítótárazásának támogatását, megoldottuk az elfcopy/objcopy eszközök problémáit, és implementáltuk a DW_AT_ranges feldolgozását.
      A readelf-ben megvalósítottuk a PROTMAX_DISABLE, STKGAP_DISABLE és WXNEEDED zászlók dekódolásának lehetőségét, valamint a Xen és GNU Build-ID támogatását.
  • Biztonság
    • A FreeBSD felhőalapú környezetekben való jobb működése érdekében dolgozunk a HyperV Socket mechanizmus támogatásán, amely lehetővé teszi a vendég rendszer és a gazda környezet közötti kapcsolatot hálózati beállítások nélkül.
    • Dolgozunk a FreeBSD ismételhető összeállításainak biztosításán, lehetővé téve, hogy megbizonyosodjunk arról, hogy a rendszer komponenst képező végrehajtható fájlok pontosan a megadott forráskódokból készülnek, és nem tartalmaznak idegen módosításokat.
    • Az elfctl eszközhöz hozzáadtuk az extra védelmi mechanizmusok (ASLR, PROT_MAX, stack gap, W+X mapping) egyes folyamatok szintjén történő aktiválásának kezelését.
  • Tárolórendszerek és fájlrendszerek
    • Dolgozunk az NFS TLS 1.3 alapú titkosított adatátviteli csatornán való működésének biztosításán a Kerberos (sec=krb5p üzemmódban) helyett, amely csak az RPC üzenetek titkosítására korlátozódik és csak szoftveresen valósul meg. Az új megvalósítás a kernel által biztosított TLS verem használatával lehetővé teszi a hardveres gyorsítás alkalmazását. Az NFS TLS alatti kód már majdnem kész a tesztelésre, de még szükséges a hitelesített kliens tanúsítványok támogatásának kidolgozása és a kernel TLS veremének NFS adatok küldésére való alkalmassága (már kész patch-ek a fogadásra).
  • Hardver támogatás
    • Dolgozunk a Hygon kínai x86 CPU-k AMD technológiákon alapuló támogatásának hozzáadásán.
    • A CheriBSD keretében, a FreeBSD egy elágazása a kutatási processzor architektúrához. CHERI (Capability Hardware Enhanced RISC Instructions) folytatódik az ARM Morello processzor támogatásának megvalósítása, amely támogatni fogja a CHERI memóriahozzáférési vezérlőrendszert, mely a Capsicum projekt védelmi modelljén alapul. A Morello chip tervezik 2021-ben kerül kiadásra. Jelenleg a munka az Arm Neoverse N1 platform támogatásának hozzáadására összpontosít, amely a Morello alapja. Az első CheriBSD port bemutatása a RISC-V architektúrához. Továbbra is fejlődik a CheriBSD a MIPS64 architektúrájú CHERI referencia prototípus számára.
    • Folyamatos a FreeBSD portolása az ARMv8 Cortex-A72 processzorral rendelkező 64 bites NXP LS1046A SoC-hez, amely integrált hálózati csomagfeldolgozó gyorsító motorral, 10 Gb Ethernet, PCIe 3.0, SATA 3.0 és USB 3.0-val rendelkezik. Jelenleg a FreeBSD fő ága számára a QorIQ és LS1046A, GPIO, QorIQ LS10xx AHCI, VF610 I2C, Epson RX-8803 RTC, QorIQ LS10xx SDHCI illesztőprogramok előkészítése zajlik.
    • A 2.1.1 verzióra frissült az ena illesztőprogram, amely támogatja a második generációs ENAv2 (Elastic Network Adapter) hálózati adaptereket, amelyeket az Elastic Compute Cloud (EC2) infrastruktúrájában használnak az EC2 csomópontok közötti kapcsolatok megszervezésére akár 25 Gb/s sebességgel. Az ENA 2.2.0-ra való frissítés előkészítése folyamatban van.
    • Folyamatosan javítják a FreeBSD portot a powerpc64 platformhoz. Főként a minőségi működés biztosítására összpontosítanak az IBM POWER8 és POWER9 processzorokkal rendelkező rendszereken. Az elmúlt időszakban a FreeBSD-CURRENT átállt az LLVM/Clang 10.0 fordítóra és az lld linkerre a GCC helyett. A powerpc64 rendszereknél alapértelmezés szerint az ELFv2 ABI van aktiválva, míg az ELFv1 ABI támogatása megszűnik. A FreeBSD-STABLE-ban még mindig a gcc 4.2.1 marad. Megoldották a virtio, aacraid és ixl illesztőprogramokkal kapcsolatos problémákat. A powerpc64 rendszereken lehetővé vált a QEMU indítása Huge Pages támogatás nélkül.
    • Folytatódik a RISC-V architektúra támogatásának megvalósítása. A FreeBSD már sikeresen betöltődik a SiFive Hifive Unleashed táblán, melyhez illesztőprogramok készültek
      UART, SPI és PRCI, támogatja az OpenSBI firmware-t és az SBI 0.2-t. Az időszak alatt a GCC-ről a clang és lld-re való migrációra összpontosítottak.
  • Alkalmazások és port rendszer
    • A FreeBSD port collection has surpassed the milestone of 39,000 ports, with the number of open PRs slightly exceeding 2,400, of which 640 PRs are still unresolved. During the reporting period, 8,146 changes were made by 173 developers. Four new contributors (Loïc Bartoletti, Mikael Urankar, Kyle Evans, Lorenzo Salvadore) have received committer privileges. The USES=qca flag has been added, and the USES=zope flag has been removed due to incompatibility with Python 3. Work is underway to remove Python 2.7 from the ports tree—all ports dependent on Python 2 must be ported to Python 3 or will be eliminated. The pkg package manager has been updated to version 1.13.2.
    • Updated components of the graphics stack and ports related to xorg.
      The X.org server has been updated to version 1.20.8 (previously supplied with branch 1.18), enabling FreeBSD to default to using the udev/evdev backend for input device handling. The Mesa package has been defaulted to use the DRI3 extension instead of DRI2. Efforts are being made to keep the graphics drivers, input device stack, and drm-kmod components current (the port that provides support for the DRM modules amdgpu, i915, and radeon, utilizing the linuxkpi framework for compatibility with the Linux kernel's Direct Rendering Manager).
    • The KDE Plasma desktop, KDE Frameworks, KDE Applications, and Qt have been kept up to date and upgraded to the latest releases. A new application kstars (star atlas) has been added to the ports.
    • Work has been performed to eliminate regressions in the xfwm4 window manager that arose after updating Xfce to version 4.14 (for example, artifacts appeared when decorating windows).
    • The Wine port has been updated to Wine 5.0 (previously offered as 4.0.3).
    • Starting from version 1.14, the Go language compiler has added official support for the ARM64 architecture for FreeBSD 12.0.
    • OpenSSH in the base system has been updated to version 7.9p1.
    • The sysctlmibinfo2 library has been implemented and made available in ports (devel/libsysctlmibinfo2), providing an API for accessing the sysctl MIB and translating sysctl names into object identifiers (OID).
    • A distribution update has been formulated. NomadBSD 1.3.1, amely a FreeBSD átdolgozott verziója, amelyet hordozható asztali környezetként USB meghajtóról való bootoláshoz terveztek. A grafikus környezet az Openbox-ra épül. Az eszközök csatlakoztatásához az DSBMD használatos (támogatja a CD9660, FAT, HFS+, NTFS, Ext2/3/4 csatolást), a vezeték nélküli hálózat beállításához pedig a wifimgr, a hangerő kezelésére pedig a DSBMixer.
    • Megkezdődött működés on writing complete documentation for the jail environment manager. pot. Preparing for the release of pot 0.11.0, which will include tools for managing the network stack.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster