jelentés a FreeBSD projekt fejlesztéséről 2020 januárja és márciusa között. A változások közül kiemelhetjük:
- Általános és rendszerszintű kérdések
- Eltávolította a GCC fordítókészletet a FreeBSD-CURRENT forrásfából, valamint a nem használt gperf, gcov és gtc (devicetree fordító) segédprogramokat. Minden olyan platformon, amely nem támogatja a Clang-ot, a portokról telepített külső összeállítási eszközökre váltottak. Az alaprendszer a GCC 4.2.1 elavult kiadását szállította, és az újabb verziók integrációja nem volt lehetséges a 4.2.2-nek a GPLv3 licencre való átállása miatt, amelyet a FreeBSD alapkomponensei számára nem tartottak megfelelőnek. A GCC jelenlegi kiadásai, beleértve a GCC 9-et is, továbbra is telepíthetők csomagokból és portokról.
- A környezet emulációs infrastruktúrájában Linux (Linuxulator) támogatást adott a sendfile rendszerhíváshoz, a TCP_CORK módhoz (szükséges az nginx-hez) és a MAP_32BIT jelzőhöz (megoldja a csomagok Mono-val történő futtatásának problémáját a következőből: Ubuntu Bionic). A DNS megoldja a problémákat, ha a glibc 2.30-nál újabb verzióját használja (például innen: CentOS 8).
A folyamatos integrációs infrastruktúra lehetővé teszi az LTP futtatásához szükséges feladatok futtatását (Linux Tesztelési projekt) által kezelve Linuxszimulátor a kódon végrehajtott fejlesztések tesztelésére a támogatás érdekében LinuxKörülbelül 400 teszt hibázik és javításra szorul (egyes hibákat téves riasztások okoznak, mások triviális javításokat igényelnek, míg mások új rendszerhívások támogatását igénylik). A kódtisztítás befejeződött. Linuxaz invertert és egyszerűsíti a hibakeresést. A kiterjesztett attribútumokat és az fexecve rendszerhívást támogató javítások elkészültek, de még nem kerültek felülvizsgálatra. - Folytatódnak a forráskódok központi forrásvezérlő rendszerből a Subversionból a Git decentralizált rendszerbe történő áttelepítésével foglalkozó munkacsoport ülései. A migrációra vonatkozó javaslatokat tartalmazó jelentés készül.
- В (futásidejű linker) továbbfejlesztett közvetlen végrehajtási mód (“/libexec/ld-elf.so.1 {elérési út} {argumentumok}”).
- A syzkaller rendszert használó FreeBSD kernel fuzzing projekt folyamatosan fejlődik. A jelentési időszakban a syzkaller segítségével azonosított hálózati veremben és a fájlleíró táblákkal dolgozó kódban felmerült problémákat kijavították. A hibakeresést követően változtatásokat végeztek az SCTP veremben a hibakeresés egyszerűsítése érdekében. A stress2 készlethez szabályokat adtak hozzá a potenciális regressziók azonosítására. Hozzáadták az új rendszerhívások fuzzing tesztelésének támogatását, beleértve a copy_file_range(), __realpathat() és Capsicum alrendszerhívásokat. Továbbra is folyik a munka az emulációs réteg fuzzing teszteléssel történő lefedésére. LinuxA legutóbbi Coverity Scan jelentésekben azonosított hibákat elemezték és kijavították.
- A folyamatos integrációs rendszer átállt arra, hogy az összes fejági tesztet csak a clang/lld használatával hajtsa végre. A RISC-V tesztelésekor a teljes lemezkép kialakítása biztosított a QEMU OpenSBI használatával végzett tesztek futtatásához. Új feladatok hozzáadva a képek és a powerpc64 virtuális gépek teszteléséhez (FreeBSD-head-powerpc64-images, FreeBSD-head-powerpc64-testvm).
- Folyamatban van a Kyua tesztcsomag átvitele a portokról (devel/kyua) az alaprendszerre, hogy megoldja azokat a problémákat (a csomagok nagyon lassan telepítődnek), amelyek a Kyua új architektúrákon történő használatakor merülnek fel, amelyek fejlesztése emulátor vagy emulátor segítségével történik. FPGA. Az alaprendszerbe történő integráció jelentősen leegyszerűsíti a beágyazott platformok tesztelését és a folyamatos integrációs rendszerekkel való interfészeket.
- Elindult egy projekt a hálózati híd-illesztőprogram teljesítményének optimalizálására , amely egyetlen mutexet használ a belső adatok zárolására, ami nem teszi lehetővé a kívánt teljesítmény elérését nagyszámú börtönkörnyezetet vagy virtuális gépet egy hálózatban egyesített rendszereken. Ebben a szakaszban teszteket adtunk a kódhoz, hogy megakadályozzák a regressziókat a zárakkal végzett munka korszerűsítése során. A ConcurrencyKit használatának lehetőségét az adatátviteli kezelők (bridge_input(), bridge_output(), bridge_forward(), ...) párhuzamosítására fontolgatják.
- Új sigfastblock rendszerhívás került hozzáadásra, amely lehetővé teszi egy szál számára, hogy megadjon egy memóriablokkot egy gyors jelkezelő számára a kivételkezelők teljesítményének javítása érdekében.
- A kernel támogatja az ARMv8.1 rendszerek által támogatott LSE (Large System Extension) atomi utasításokat. Ezek az utasítások a teljesítmény javításához szükségesek, ha Cavium ThunderX2 és AWS Graviton 2 kártyákon fut. A hozzáadott változtatások észlelik az LSE támogatást, és dinamikusan teszik lehetővé az atomi implementációt ezek alapján. A tesztelés során az LSE használata lehetővé tette a kernel összeszereléséhez szükséges processzoridő 15%-os csökkentését.
- Teljesítményoptimalizálásra került sor, és az eszköztár funkcionalitását kibővítettük az ELF formátumú futtatható fájlok számára.
Támogatás hozzáadva a DWARF hibakeresési információk gyorsítótárazásához, megoldódott az elfcopy/objcopy segédprogramok problémái, hozzáadva a DW_AT_ranges feldolgozást,
A readelf megvalósítja a PROTMAX_DISABLE, STKGAP_DISABLE és WXNEEDED jelzők, valamint a Xen és GNU Build-ID dekódolását.
- biztonság
- A FreeBSD teljesítményének javítása érdekében az Azure felhőkörnyezetekben folyamatban van a HyperV Socket mechanizmus támogatásának biztosítása, amely lehetővé teszi a socket interfész használatát a vendégrendszer és a gazdagép környezet közötti interakcióhoz hálózat beállítása nélkül.
- Folyamatban van a munka a FreeBSD megismételhető buildjein, amelyek lehetővé teszik, hogy a rendszerkomponensek végrehajtható fájljai pontosan a deklarált forráskódokból álljanak össze, és ne tartalmazzanak felesleges változtatásokat.
- Az elfctl segédprogramba bekerült a további védelmi mechanizmusok (ASLR, PROT_MAX, stack gap, W+X leképezés) vezérlésének képessége az egyes folyamatok szintjén.
- Tároló- és fájlrendszerek
- Dolgoznak azon, hogy az NFS TLS 1.3-on alapuló titkosított kommunikációs csatornán működjön a Kerberos (sec=krb5p mód) helyett, amely csak az RPC-üzenetek titkosítására korlátozódik, és csak szoftverben valósul meg. Az új megvalósítás a kernel által biztosított TLS verem segítségével teszi lehetővé a hardveres gyorsítást. Az NFS over TLS kód már majdnem készen áll a tesztelésre, de még munkára van szükség az aláírt ügyféltanúsítványok támogatásához és a kernel TLS-verme NFS-adatok küldésére való adaptálásához (a fogadáshoz szükséges javítások már készen állnak).
- Hardver támogatás
- Folyamatban van az AMD technológián alapuló kínai x86 CPU Hygon támogatásának bővítése;
- A CheriBSD részeként, a FreeBSD egyik ága a kutatási processzorarchitektúrához (Capability Hardware Enhanced RISC Instructions), továbbra is megvalósul az ARM Morello processzor támogatása, amely a Capsicum projekt biztonsági modelljén alapuló CHERI memória hozzáférés-vezérlő rendszert fogja támogatni. Morello chip megjelenés 2021-ben. A munka jelenleg a Morellót hajtó Arm Neoverse N1 platform támogatására összpontosít. Bemutatták a CheriBSD kezdeti portját a RISC-V architektúrához. A CheriBSD fejlesztése folytatódik a MIPS64 architektúrán alapuló CHERI referencia prototípushoz.
- A FreeBSD portolás folytatódik a 64 bites SoC NXP LS1046A esetében, amely az ARMv8 Cortex-A72 processzoron alapul, integrált hálózati csomagfeldolgozási gyorsítómotorral, 10 Gb Ethernettel, PCIe 3.0-val, SATA 3.0-val és USB 3.0-val. Jelenleg 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 FreeBSD fő összetételére való átvitelre.
- Az ena illesztőprogramot a 2.1.1-es verzióra frissítették az ENAv2 (Elastic Network Adapter) hálózati adapterek második generációjának támogatásával, amelyeket az Elastic Compute Cloud (EC2) infrastruktúrában használnak az EC2 csomópontok közötti kommunikáció megszervezésére akár 25 Gb/sebességgel. s. Az ENA 2.2.0 frissítése készül.
- Folytatódik a Powerpc64 platform FreeBSD portjának fejlesztése. A hangsúly az IBM POWER8 és POWER9 processzorokkal rendelkező rendszerek minőségi teljesítményén van. A jelentési időszakban a FreeBSD-CURRENT átkerült az LLVM/Clang 10.0 fordító és lld linker használatára a GCC helyett. Alapértelmezés szerint a powerpc64 rendszerek az ELFv2 ABI-t használják, és az ELFv1 ABI támogatása megszűnt. A FreeBSD-STABLE-ben még mindig megtalálható a gcc 4.2.1. A virtio, aacraid és ixl illesztőprogramokkal kapcsolatos problémák megoldódtak. Powerpc64 rendszereken lehetőség van a QEMU futtatására Huge Pages támogatás nélkül.
- Folytatódik a munka a RISC-V architektúra támogatásának megvalósításán. Jelenlegi formájában a FreeBSD már sikeresen elindul a SiFive Hifive Unleashed táblán, amelyhez a meghajtókat előkészítették
Az UART, SPI és PRCI támogatja az OpenSBI és SBI 0.2 firmware-t. A jelentéstételi időszakban a munka a GCC-ről a clang and lld-re való migrációra összpontosult.
- Alkalmazások és portrendszer
- A FreeBSD portgyűjteménye átlépte a 39 ezres portos küszöböt, a le nem zárt PR-ok száma valamivel meghaladja a 2400-at, ebből 640 PR-t még nem rendeztek. A beszámolási időszakban 8146 változtatás történt 173 fejlesztőtől. Négy új résztvevő kapott kötelezettségvállalási jogot (Loïc Bartoletti, Mikael Urankar, Kyle Evans, Lorenzo Salvadore). A USES=qca jelző hozzáadva és a USES=zope jelző eltávolítva (a Python 3-mal való összeférhetetlenség miatt). A Python 2.7 portfából való eltávolítása folyamatban van – minden Python 2-alapú portot át kell vinni a Python 3-ra, különben eltávolítják. A pkg csomagkezelő az 1.13.2-es kiadásra frissült.
- Frissített grafikus verem-összetevők és xorg-hoz kapcsolódó portok.
Az X.org szerver frissült az 1.20.8-as verzióra (korábban az 1.18-as ág volt elérhető), ami lehetővé tette a FreeBSD számára, hogy alapértelmezés szerint az udev/evdev backendet használja a bemeneti eszközök kezeléséhez. A Mesa csomag alapértelmezés szerint a DRI3 kiterjesztést használja a DRI2 helyett. Folyamatban van a grafikus illesztőprogramok, a bemeneti eszközverem és a drm-kmod komponensek naprakészen tartása (egy port, amely lehetővé teszi a DRM modulok használatát amdgpu, i915 és radeon rendszerekhez, a linuxkpi keretrendszert használva a kernel Direct Rendering Managerével való kompatibilitás érdekében). Linux). - A KDE Plasma desktop, a KDE-keretrendszerek, a KDE-alkalmazások és a Qt naprakészen és a legfrissebb verziókra frissítve vannak. A portokhoz egy új kstars (csillag atlasz) alkalmazás került.
- Dolgoztak az xfwm4 ablakkezelőben az Xfce 4.14-es verzióra történő frissítése után megjelenő regresszív változások kiküszöbölésén (például az ablakok díszítésekor jelentek meg műtermékek).
- A Wine port frissítésre került a Wine 5.0 kiadásra (korábban a 4.0.3-at kínálták).
- Az 1.14-es verziótól kezdődően a Go nyelvi fordító hivatalos támogatást adott az ARM64 architektúrához a FreeBSD 12.0-hoz.
- Az alaprendszer OpenSSH-ját a 7.9p1 kiadásra frissítették.
- A sysctlmibinfo2 könyvtárat implementálták és portokban helyezték el (devel/libsysctlmibinfo2), amely API-t biztosít a sysctl MIB eléréséhez és a sysctl nevek objektumazonosítókká (OID-k) való lefordításához.
- A terjesztési frissítés létrejött , amely a FreeBSD egy USB-meghajtóról indítható, hordozható asztali számítógépként való használatra adaptált kiadása. A grafikus környezet ablakkezelőn alapul . Meghajtók felszerelésére szolgál (a CD9660, FAT, HFS+, NTFS, Ext2/3/4 csatlakoztatása támogatott), vezeték nélküli hálózat konfigurálásához - és a hangerő szabályozásához - .
- Lépések teljes dokumentáció megírásáról a börtönkörnyezet-kezelő számára . A Pot 0.11.0 kiadásra készül, amely tartalmazni fogja a hálózati verem kezeléséhez szükséges eszközöket.
Forrás: opennet.ru
