FreeBSD 2019. Çeyrek XNUMX İlerleme Raporu

yayınlanan FreeBSD projesinin Nisan'dan Haziran 2019'a kadar geliştirilmesine ilişkin rapor. Değişiklikler arasında şunları not edebiliriz:

  • Genel ve sistemik sorunlar
    • Çekirdek ekip, kaynak kodunu merkezi Subversion kaynak kontrol sisteminden merkezi olmayan Git sistemine taşıma olasılığını araştırmak için bir çalışma grubu kurmaya karar verdi.
    • Sistemi kullanarak FreeBSD çekirdeğinin bulanık testini gerçekleştirdik syzkaller ve tespit edilen bir takım hatalar düzeltildi. 32 bit çekirdeğe sahip sistemlerde 64 bit ortamla uyumluluk açısından kitaplıkların bulanıklaştırma testi için bir katman eklendi. Syzkaller'i bhyve tabanlı sanal makinelerde çalıştırma yeteneği uygulandı. Bir sonraki aşamada, sistem çağrısı testinin kapsamının genişletilmesi, çekirdeği kontrol etmek için LLVM sanitizer kullanılması, fuzzing testi sırasındaki çökmeler sırasında çekirdek dökümlerini kaydetmek için netdump kullanılması vb. planlanmaktadır.
    • Zlib uygulamasının çekirdek düzeyinde güncellenmesine yönelik çalışmalar başladı. Zlib koduna çekirdek erişimi için contrib/zlib dizini sys/contrib/zlib olarak yeniden adlandırıldı ve crc.h başlık dosyası da zlib/crc.h ile çakışmayı önlemek için yeniden adlandırıldı. Zlib ve inflate'e bağlı olan eski kod temizlendi. Daha sonra, sıkıştırma kullanan işlevlerin yeni sürümüne kademeli olarak geçiş için çekirdeği eski ve yeni zlib ile aynı anda oluşturma yeteneğinin sağlanması planlanıyor;
    • Linux ortamı emülasyon altyapısı (Linuxulator) güncellendi. Strace yardımcı programı gibi Linux hata ayıklama araçlarına yönelik artan destek. Henüz Linux'a özgü bazı bayrak ve yapıların kodunu çözemeyen standart truss ve ktrace yardımcı programları yerine Linux çalıştırılabilir dosyalarını izlemek için kullanılabilecek bağlantı noktalarına linux-c7-strace paketi eklendi. Ayrıca, Linux Test Projesi yürütülebilir dosyalarını içeren linux-ltp paketi eklenmiş ve glibc'nin yeni sürümleriyle bağlantılı yürütülebilir dosyalar ile uyumluluk sorunları çözülmüştür;
    • Pmap mekanizmasındaki gecikmeli geçersiz kılma işlemlerinin uygulanması, kilitler olmadan çalışan bir kuyruk işleme algoritmasının kullanımına aktarılmıştır; bu, çok sayıda paralel eşlemeyi kaldırma işlemi gerçekleştirilirken ölçeklenebilirlik sorunlarının çözülmesini mümkün kılmıştır;
    • execve() ailesinin sistem çağrılarının yürütülmesi sırasında vnode'u engelleme mekanizması değiştirildi; bu, aynı dosya için execve() eşzamanlı olarak yürütüldüğünde (örneğin, paralelleştirme ile montaj işlemleri gerçekleştirilirken) daha yüksek verimlilik elde edilmesini mümkün kıldı. derleyicinin başlatılması);
  • güvenlik
    • Bhyve hipervizörü, konuk ortamlarının bir ana bilgisayardan diğerine Canlı geçişi ve konuk sistemini dondurmanıza, durumu bir dosyaya kaydetmenize ve ardından yürütmeye devam etmenize olanak tanıyan Kaydet/Geri Yükle işlevine yönelik desteği geliştirmeye devam ediyor.
    • Libvdsk kütüphanesinin kullanılmasıyla bhyve, QCOW2 formatındaki disk görüntüleri için destek ekledi. Çalışmak için kurulum gerekli
      özel olarak değiştirilmiş libvdsk'e dayalı dosya işlem işleyicilerini kullanacak şekilde dönüştürülmüş bhyve sürümü. Raporlama döneminde libvdsk ayrıca yeni formatlara yönelik desteğin entegrasyonunu basitleştirmek, okuma ve yazma performansını iyileştirmek ve Yazma Üzerine Kopyalama desteği eklemek için çalışmalar gerçekleştirdi. Geriye kalan görevlerden libvdsk'in bhyve'nin ana yapısına entegrasyonu not edilmiştir;

    • Limanlara trafik bilgisi toplama sistemi eklendi
      Maltrail, kötü amaçlı ağ istekleri için tuzaklar oluşturmanıza (kara listelerdeki IP'ler ve etki alanları kontrol edilir) ve tespit edilen etkinlikle ilgili bilgileri daha sonra saldırı girişimlerinin engellenmesi veya analizi için merkezi bir sunucuya göndermenize olanak tanır;

    • Saldırıları tespit etmek, logları analiz etmek ve dosya bütünlüğünü izlemek için portlara platformlar eklendi Wazuh (Entegrasyon desteğine sahip Ossec çatalı) ELK-yığın);
  • Ağ alt sistemi
    • Ena sürücüsü, EC2 düğümleri arasındaki iletişimi 2 Gb/s'ye varan hızlarda düzenlemek için Elastic Compute Cloud (EC2) altyapısında kullanılan ikinci nesil ENAv25 (Elastik Ağ Adaptörü) ağ bağdaştırıcılarını destekleyecek şekilde güncellendi. Ena sürücüsüne NETMAP desteği eklendi.
    • FreeBSD HEAD, CAM çerçevesini temel alan ve cihazları SDIO (Güvenli Dijital I/O) arayüzüyle bağlamanıza olanak tanıyan yeni bir MMC/SD yığınını benimser. Örneğin SDIO, Raspberry Pi 3 gibi birçok kart için WiFi ve Bluetooth modüllerinde kullanılır. Yeni yığın aynı zamanda CAM arayüzünün kullanıcı alanındaki uygulamalardan SD komutları göndermek için kullanılmasına olanak tanır ve bu da cihaz oluşturulmasını mümkün kılar Kullanıcı düzeyinde çalışan sürücüler. FullMAC modunda çalışan Broadcom kablosuz yongaları için sürücüler oluşturma çalışmaları başladı (çip tarafında, 802.11 kablosuz yığınının uygulamalarıyla kendi işletim sisteminin bir benzerini çalıştırıyor);
    • FreeBSD için NFSv4.2'nin (RFC-7862) uygulanmasına yönelik çalışmalar devam etmektedir. NFS'nin yeni sürümü, posix_fadvise, posix_fallocate işlevleri, lseek'teki SEEKHOLE/SEEKDATA modları ve bir dosyanın bazı bölümlerinin sunucuya yerel olarak kopyalanması işlemi (istemciye aktarım olmadan) için destek ekler.

      FreeBSD şu anda LayoutError, IOAdvise, Allocate ve Copy işlemleri için temel destek sağlamaktadır. Geriye kalan tek şey lseek(SEEKHOLE/SEEKDATA) işlevini NFS ile kullanmak için gereken Arama işlemini uygulamaktır. FreeBSD 4.2 için NFSv13 desteği planlanmaktadır;

  • Depolama ve dosya sistemleri
    • Kullanıcı alanındaki dosya sistemleri uygulamalarının oluşturulmasına olanak tanıyan FUSE (USErspace'teki Dosya Sistemi) alt sistemi için sürücüyü yeniden işleme projesi tamamlanmak üzeredir. Orijinal olarak sağlanan sürücü güncel değil ve birçok hata içeriyor. Sürücü modernizasyon projesinin bir parçası olarak, FUSE 7.23 protokolü desteği uygulandı (daha önce 7.8 yıl önce yayınlanan 11 sürümü destekleniyordu), çekirdek tarafındaki erişim haklarını kontrol etmek için kod eklendi ("-o default_permissions"), VOP_MKNOD, VOP_BMAP ve VOP_ADVLOCK eklendi, FUSE işlemlerini kesme yeteneği, sigortalardaki isimsiz kanallar ve unix soketleri için destek eklendi, /dev/fuse için kqueue kullanma yeteneği, "mount -u" aracılığıyla montaj parametrelerinin güncellenmesine izin verildi, destek eklendi NFS aracılığıyla sigortaların dışa aktarımı için RLIMIT_FSIZE muhasebesi uygulandı, FOPEN_KEEP_CACHE işaretleri ve FUSE_ASYNC_READ eklendi, önemli performans optimizasyonları yapıldı ve önbellekleme organizasyonu iyileştirildi;
    • Takas çağrı cihazı koduna BIO_DELETE işlemi desteği eklendi; bu, SSD sürücülerinden blokları çıkarırken hizmet ömrünü uzatmak için TRIM komutunu kullanmanıza olanak tanır.
  • Donanım desteği
    • Yönlendiricilerde, ağ geçitlerinde ve ağ depolamada kullanılması amaçlanan ARMv64 Cortex-A5871 işlemcili ARM8 SoC Broadcom BCM57X desteğinin uygulanmasına yönelik çalışmalar devam ediyor. Raporlama döneminde, dahili ve harici iProc PCIe veri yolları desteği iyileştirildi, BNXT Ethernet desteği eklendi ve IPsec'i hızlandırmak için yerleşik kripto motorunun kullanılmasına yönelik çalışmalar devam ediyor. Kodun HEAD şubesine entegrasyonu yılın ikinci yarısında bekleniyor;
    • Entegre ağ paket işleme hızlandırma motoru, 64 Gb Ethernet, PCIe 1046, SATA 8 ve USB 72 ile ARMv10 Cortex-A3.0 işlemciyi temel alan 3.0 bit SoC NXP LS3.0A desteğine yönelik çalışmalar başladı. Temel platform (çok kullanıcılı SMP) ve SATA 3.0 desteği halihazırda uygulanmıştır. USB 3.0, SD/MMC ve I2C desteği geliştirme aşamasındadır. Planlar Ethernet, GPIO ve QSPI desteğini içerir. 4 yılının 2019. çeyreğinde çalışmaların tamamlanması ve HEAD şubesine dahil edilmesi bekleniyor.
    • Mellanox ConnectX-5 [Lx], ConnectX-5 [Ex] ve ConnectX-4 [Dx] Ethernet ve InfiniBand adaptörleri için mlx5en ve mlx6ib sürücüleri güncellendi. PCIe Gen 6 veriyolunda 200 Gb/s'ye varan aktarım hızına olanak tanıyan Mellanox Soket Doğrudan (ConnectX-3.0) adaptörleri için destek eklendi. Çok çekirdekli BlueField yongaları için RShim sürücüsü desteği eklendi. Mellanox adaptörlerine yönelik bir dizi tanılama yardımcı programını içeren mstflint paketi bağlantı noktalarına eklendi;
  • Uygulamalar ve port sistemi
    • Grafik yığını bileşenleri güncellendi. drm.ko (Doğrudan İşleme Yöneticisi) sürücüsü Linux 5.0 çekirdeğinden taşınmıştır. Bu sürücü deneysel olarak değerlendirilmiştir ve bağlantı noktaları ağacına graphs/drm-devel-kmod olarak eklenmiştir. Sürücü, Linux çekirdeği DRM API'si ile uyumlu olacak şekilde güncellenmiş Linux KPI çerçevesini kullandığından, çalıştırmak için FreeBSD CURRENT gereklidir. VirtualBox sanal GPU'sunun vboxvideo.ko drm sürücüsü de Linux'tan taşınmıştır. Mesa paketi 18.3.2 sürümüne güncellendi ve devel/llvm80 yerine devel/llvm60 bağlantı noktasından LLVM kullanacak şekilde değiştirildi.
    • FreeBSD bağlantı noktaları ağacı 37000 bağlantı noktasını aştı, kapatılmayan PR sayısı 2146'da kaldı. Raporlama döneminde 7837 geliştiriciden 172 değişiklik yapıldı. Üç yeni katılımcı taahhüt hakkı aldı. Bağlantı noktalarındaki önemli sürüm güncellemeleri arasında şunlar yer almaktadır: MySQL 5.7, Python 3.6, Ruby 2.5, Samba 4.8, Julia 1.0, Firefox 68.0, Chromium 75.0.3770.100. Tüm Go bağlantı noktaları "USES=go" bayrağını kullanacak şekilde dönüştürüldü. Haskell kodu için kullanılan Cabal paket yöneticisine "USES=cabal" bayrağı eklendi. Sıkı yığın koruma modu etkinleştirildi. Python'un varsayılan sürümü 3.6 yerine 2.7'dır.
    • Yardımcı program sürümü hazırlandı nsysctl 1.0kullanan /sbin/sysctl'ye bir analog sunar libxo çıktı almak ve genişletilmiş seçenekler sunmak için. Nsysctl, sysctl değerlerinin durumunu görsel olarak izlemek ve nesnelere ilişkin bilgileri yapılandırılmış bir biçimde sunmak için kullanılabilir. XML, JSON ve HTML formatlarında çıktı almak mümkündür;

Kaynak: opennet.ru

Yorum ekle