FreeBSD 2019-cu ilin II rübü Tərəqqi Hesabatı

nəşr edilmişdir 2019-cu ilin aprel ayından iyun ayına qədər FreeBSD layihəsinin inkişafı haqqında hesabat. Dəyişikliklər arasında qeyd edə bilərik:

  • Ümumi və sistemli məsələlər
    • Core komandası mənbə kodunu mərkəzləşdirilmiş Subversion mənbə idarəetmə sistemindən mərkəzləşdirilməmiş Git sisteminə köçürmək imkanlarını araşdırmaq üçün işçi qrupu yaratmağa qərar verdi.
    • Sistemdən istifadə edərək FreeBSD nüvəsinin qeyri-səlis sınağı aparıldı syzkaller və müəyyən edilmiş bir sıra səhvlər düzəldildi. 32-bit nüvəsi olan sistemlərdə 64-bit mühitlə uyğunluq üçün kitabxanaların qeyri-səlis testi üçün təbəqə əlavə edildi. Bhyve-əsaslı virtual maşınlarda syzkaller işlətmək imkanı tətbiq edilmişdir. Növbəti mərhələdə sistem çağırış testinin əhatə dairəsinin genişləndirilməsi, ləpəni yoxlamaq üçün LLVM sanitizerindən istifadə, fuzzing testi zamanı qəzalar zamanı nüvə zibillərini saxlamaq üçün netdump-dan istifadə edilməsi və s.
    • Zlib tətbiqinin nüvə səviyyəsində yenilənməsi üzrə işlərə başlanılıb. Zlib koduna nüvəyə giriş üçün contrib/zlib kataloqunun adı sys/contrib/zlib olaraq dəyişdirildi və crc.h başlıq faylının adı da zlib/crc.h ilə ziddiyyətdən qaçmaq üçün dəyişdirildi. Zlib-dən asılı olan köhnə kod təmizləndi və şişirildi. Sonra, sıxılmadan istifadə edən funksiyaların yeni versiyasına tədricən ötürülməsi üçün köhnə və yeni zlib ilə eyni vaxtda nüvə qurmaq imkanı təmin etmək planlaşdırılır;
    • Linux mühitinin emulyasiya infrastrukturu (Linuxulator) yeniləndi. Strace yardım proqramı kimi Linux sazlama alətləri üçün artan dəstək. Limanlara linux-c7-strace paketi əlavə edildi, hansı ki, bəzi Linux-a xas bayraqları və strukturları hələ deşifrə edə bilməyən standart truss və ktrace utilitləri əvəzinə Linux icra olunan fayllarını izləmək üçün istifadə edilə bilər. Bundan əlavə, Linux Test Layihəsi icra sənədləri ilə linux-ltp paketi əlavə edildi və glibc-in yeni versiyaları ilə əlaqəli icra olunanlarla uyğunluq problemləri həll edildi;
    • pmap mexanizmində gecikmiş etibarsızlaşdırma əməliyyatlarının həyata keçirilməsi kilidsiz işləyən növbə emal alqoritminin istifadəsinə keçirildi ki, bu da çoxlu sayda paralel xəritədən çıxarma əməliyyatlarını yerinə yetirərkən miqyaslılıq problemlərini həll etməyə imkan verdi;
    • execve() ailəsinin sistem çağırışlarının icrası zamanı vnode-un bloklanması mexanizmi dəyişdirildi ki, bu da eyni fayl üçün execve() funksiyasını eyni vaxtda yerinə yetirərkən (məsələn, paralelləşdirmə ilə montaj əməliyyatlarını yerinə yetirərkən) yüksək effektivliyə nail olmağa imkan verdi. kompilyatorun işə salınması);
  • təhlükəsizlik
    • bhyve hipervizoru qonaq mühitlərinin bir hostdan digərinə Canlı miqrasiyasına dəstəyi və qonaq sistemini dondurmağa, vəziyyəti fayla saxlamağa və sonra icranı davam etdirməyə imkan verən Saxla/Bərpa funksiyasını təkmilləşdirməyə davam edir.
    • Libvdsk kitabxanasından istifadə edərək, bhyve QCOW2 formatında disk şəkillərinə dəstək əlavə etdi. İşləmək üçün quraşdırma tələb olunur
      xüsusi olaraq dəyişdirilmişdir libvdsk əsasında fayl əməliyyat idarəçilərindən istifadə etmək üçün çevrilmiş bhyve versiyası. Hesabat dövründə libvdsk həmçinin yeni formatlar üçün dəstəyin inteqrasiyasını sadələşdirmək, oxumaq və yazma performansını artırmaq, Copy-On-Write dəstəyini əlavə etmək üçün işlər həyata keçirib. Qalan vəzifələrdən libvdsk-in bhyve-nin əsas strukturuna inteqrasiyası qeyd olunur;

    • Limanlara trafik məlumatlarının toplanması sistemi əlavə edilib
      Maltrail, zərərli şəbəkə sorğuları üçün tələlər yaratmağa imkan verir (qara siyahılardakı IP-lər və domenlər yoxlanılır) və aşkar edilmiş fəaliyyət haqqında məlumatı sonradan bloklamaq və ya hücum cəhdlərinin təhlili üçün mərkəzləşdirilmiş serverə göndərmək;

    • Hücumları aşkar etmək, qeydləri təhlil etmək və fayl bütövlüyünü izləmək üçün platformalar əlavə edilmişdir. Wazuh (inteqrasiya dəstəyi ilə Ossec fork ELK-Stack);
  • Şəbəkə alt sistemi
    • ena sürücüsü EC2 qovşaqları arasında 2 Gb/s-ə qədər sürətlə əlaqəni təşkil etmək üçün Elastic Compute Cloud (EC2) infrastrukturunda istifadə olunan ikinci nəsil ENAv25 (Elastic Network Adapter) şəbəkə adapterlərini dəstəkləmək üçün yenilənib. NETMAP dəstəyi ena sürücüsünə əlavə edildi.
    • FreeBSD HEAD CAM çərçivəsinə əsaslanan və cihazları SDIO (Secure Digital I/O) interfeysi ilə birləşdirməyə imkan verən yeni MMC/SD yığınını qəbul edir. Məsələn, SDIO, Raspberry Pi 3 kimi bir çox lövhələr üçün WiFi və Bluetooth modullarında istifadə olunur. Yeni yığın həmçinin CAM interfeysindən istifadəçi məkanındakı proqramlardan SD əmrləri göndərmək üçün istifadə etməyə imkan verir ki, bu da cihaz yaratmağa imkan verir. istifadəçi səviyyəsində işləyən sürücülər. FullMAC rejimində işləyən Broadcom simsiz çipləri üçün drayverlərin yaradılması üzrə işlərə başlanılmışdır (çip tərəfində o, 802.11 simsiz yığınının tətbiqləri ilə öz əməliyyat sisteminin bənzərini işləyir);
    • FreeBSD üçün NFSv4.2 (RFC-7862) tətbiqi üzərində iş aparılır. NFS-in yeni versiyası posix_fadvise, posix_fallocate funksiyaları, lseek-də SEEKHOLE/SEEKDATA rejimləri və serverdə fayl hissələrinin lokal surətinin çıxarılması əməliyyatı (müştəriyə ötürülmədən) üçün dəstək əlavə edir.

      FreeBSD hazırda LayoutError, IOAdvise, Allocate və Copy əməliyyatları üçün əsas dəstəyi təmin edir. Yalnız NFS ilə lseek(SEEKHOLE/SEEKDATA) istifadə etmək üçün tələb olunan Seek əməliyyatını həyata keçirmək qalır. NFSv4.2 dəstəyi FreeBSD 13 üçün planlaşdırılır;

  • Saxlama və fayl sistemləri
    • İstifadəçi məkanında fayl sistemlərinin tətbiqlərini yaratmağa imkan verən FUSE (USERspace-də fayl sistemi) alt sistemi üçün drayverin yenidən işlənməsi layihəsi başa çatmaq üzrədir. Əvvəlcə təchiz edilmiş sürücü köhnəlmişdir və bir çox səhvləri ehtiva edir. Sürücünün modernləşdirilməsi layihəsinin bir hissəsi olaraq FUSE 7.23 protokoluna dəstək həyata keçirildi (əvvəllər 7.8 il əvvəl buraxılmış 11 versiyası dəstəklənirdi), nüvə tərəfində giriş hüquqlarını yoxlamaq üçün kod əlavə edildi (“-o default_permissions”), zənglər VOP_MKNOD, VOP_BMAP və VOP_ADVLOCK əlavə edildi, FUSE əməliyyatlarını dayandırmaq imkanı, adsız borular və qoruyucularda unix yuvaları üçün əlavə dəstək, /dev/fuse üçün kqueue istifadə etmək imkanı, "mount -u" vasitəsilə montaj parametrlərini yeniləməyə icazə verildi, əlavə dəstək NFS vasitəsilə qoruyucuların ixracı üçün RLIMIT_FSIZE uçotu həyata keçirilmiş, əlavə edilmiş FOPEN_KEEP_CACHE bayraqları və FUSE_ASYNC_READ, əhəmiyyətli performans optimallaşdırmaları edilmiş və keşləmə təşkili təkmilləşdirilmişdir;
    • BIO_DELETE əməliyyatı üçün dəstək dəyişdirmə peycer koduna əlavə edildi, bu, SSD disklərindən blokları çıxararkən onların xidmət müddətini artırmaq üçün TRIM əmrindən istifadə etməyə imkan verir.
  • Aparat dəstəyi
    • Routerlərdə, şlüzlərdə və şəbəkə yaddaşında istifadəyə yönəlmiş ARMv64 Cortex-A5871 prosessorları ilə ARM8 SoC Broadcom BCM57X dəstəyinin həyata keçirilməsi üzrə işlər davam edir. Hesabat dövründə daxili və xarici iProc PCIe avtobuslarına dəstək təkmilləşdirilib, BNXT Ethernet dəstəyi əlavə edilib və IPsec-i sürətləndirmək üçün quraşdırılmış kriptomotordan istifadə etmək üçün işlər aparılır. Kodun HEAD filialına inteqrasiyası ilin ikinci yarısında gözlənilir;
    • ARMv64 Cortex-A1046 prosessoruna əsaslanan 8 bitlik SoC NXP LS72A-nın inteqrasiya olunmuş şəbəkə paketi emal sürətləndirici mühərriki, 10 Gb Ethernet, PCIe 3.0, SATA 3.0 və USB 3.0 ilə dəstəklənməsi üzrə işlərə başlanılıb. Baza platforması (çox istifadəçi SMP) və SATA 3.0 üçün dəstək artıq həyata keçirilib. USB 3.0, SD/MMC və I2C üçün dəstək inkişaf mərhələsindədir. Planlara Ethernet, GPIO və QSPI dəstəyi daxildir. 4-cu ilin 2019-cü rübündə işlərin başa çatdırılması və HEAD filialına daxil edilməsi gözlənilir.
    • Mellanox ConnectX-5 [Lx], ConnectX-5 [Ex] və ConnectX-4 [Dx] Ethernet və InfiniBand adapterləri üçün yenilənmiş mlx5en və mlx6ib sürücüləri. PCIe Gen 6 avtobusunda 200 Gb/s-ə qədər ötürmə qabiliyyətinə imkan verən Mellanox Socket Direct (ConnectX-3.0) adapterləri üçün əlavə dəstək. Çox nüvəli BlueField çipləri üçün RShim sürücüsü üçün dəstək əlavə edildi. Mellanox adapterləri üçün diaqnostik yardım proqramları dəsti ilə mstflint paketi portlara əlavə edilmişdir;
  • Proqramlar və port sistemi
    • Qrafik yığın komponentləri yeniləndi. drm.ko (Direct Rendering Manager) sürücüsü Linux 5.0 nüvəsindən köçürülüb. Bu sürücü eksperimental sayılır və portlar ağacına qrafik/drm-devel-kmod kimi əlavə edilib. Sürücü Linux nüvəsi DRM API ilə uyğun olmaq üçün yenilənmiş Linux KPI çərçivəsini istifadə etdiyi üçün FreeBSD CURRENT-in işləməsi tələb olunur. VirtualBox virtual GPU üçün vboxvideo.ko drm sürücüsü də Linux-dan köçürülüb. Mesa paketi 18.3.2-ni buraxmaq üçün yeniləndi və devel/llvm80 əvəzinə devel/llvm60 portundan LLVM istifadə etməyə keçdi.
    • FreeBSD portları ağacı 37000 2146 portu ötüb, bağlanmamış PR-lərin sayı 7837-da qalır. Hesabat dövründə 172 tərtibatçıdan 5.7 dəyişiklik edilib. Üç yeni iştirakçı committer hüquqları aldı. Portlardakı əhəmiyyətli versiya yeniləmələri arasında: MySQL 3.6, Python 2.5, Ruby 4.8, Samba 1.0, Julia 68.0, Firefox 75.0.3770.100, Chromium 3.6. Bütün Go portları "USES=go" bayrağından istifadə etmək üçün çevrilmişdir. Haskell kodu üçün istifadə edilən Cabal paket menecerinə "USES=cabal" bayrağı əlavə edildi. Ciddi yığın mühafizəsi rejimi aktivləşdirilib. Standart Python versiyası 2.7 əvəzinə XNUMX-dır.
    • Kommunal buraxılış hazırlanıb nsysctl 1.0, istifadə edən /sbin/sysctl analoqunu təklif edir libxo çıxış və genişləndirilmiş seçim dəstini təmin etmək üçün. Nsysctl, sysctl dəyərlərinin vəziyyətini vizual olaraq izləmək və obyektlər haqqında məlumatı strukturlaşdırılmış formada təqdim etmək üçün istifadə edilə bilər. XML, JSON və HTML formatlarında çıxış mümkündür;

Mənbə: opennet.ru

Добавить комментарий