Aya, Rust'ta eBPF kontrolörleri oluşturan ilk kütüphane

Linus torvalds ve birçok geliştirici Çekirdek ve farklı dağıtımlar Rust'ı beğendiklerini ifade ettiler ve hatta birden fazla durumda, sürücülerin bu programlama dilinde Linux Çekirdeğinde uygulanması konusu sunuldu.

Ve bu konuda, çeşitli çalışmalar zaten yayınlandı, bunlardan zaten burada blogda bahsetmiştik ve örneğin şunları söyleyebiliriz, Deney exitoso Rust'ta yeniden yazılmış alternatif yardımcı program kümesinden, coreutils (Bu, sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln ve ls gibi yardımcı programları içerir).

Bunu göz önünde bulundurarak Linus Torvalds, bu girişim lehinde görüşünü tam olarak vermemiş ve olumsuz noktaları dile getirmiştir (detaylara bakabilirsiniz Aşağıdaki linkte.)

Linus'tan gelen sert eleştirilere rağmen, işler uygulama hakkında Çekirdekteki Pas ilerlemeyi bırakmadı ve son zamanlarda Aya kütüphanesinin ilk versiyonu sunulduBu, özel bir JIT sanal makinesinde Linux çekirdeği içinde çalışan Rust'ta eBPF sürücüleri oluşturmanıza olanak tanır.

Diğer EBPF geliştirme araçlarından farklı olarak, Aya, libbpf ve BCC derleyicisini kullanmazAncak Rust ile yazılmış kendi uygulamasını sunar çekirdek sistem çağrılarına doğrudan erişmek için libc çekmece paketini kullanır. Aya'yı oluşturmak, C dili araçlarını veya çekirdek başlıklarını gerektirmez.

Kim için eBPF'den habersizler, bunun bir bayt kodu yorumlayıcısı olduğunu bilmelidirler. ağ işlemleri işleyicileri oluşturmanıza, sistem çalışmasını izlemenize, sistem çağrılarını engellemenize, erişimi kontrol etmenize, olayları zamanlama ile işlemenize, işlemlerin sıklığını ve zamanını hesaplamanıza ve kprobes / uprobes / tracepoints kullanarak izlemenize olanak tanıyan Linux çekirdeğinde yerleşiktir.

JIT derlemesi sayesinde, bayt kodu anında makine talimatlarına çevrilir ve yerel kodun performansıyla çalışır. XDP, DMA paket arabelleğine doğrudan erişimle BPF programlarını ağ sürücüsü düzeyinde çalıştırmak için bir araç sağlar ve yüksek ağ yükü koşulları için yüksek performanslı sürücüler oluşturmanıza olanak tanır.

Aya Hakkında

Bahsedilen temel özelliklerden Aya'dan bunu bulabiliriz BTF desteği var (BPF türü biçimi), geçerli çekirdek tarafından sağlanan türleri kontrol etmek ve karşılaştırmak için BPF sözde kodunda tür bilgisi sağlar. BTF kullanmak, Linux çekirdeğinin farklı sürümleriyle yeniden derlemek zorunda kalmadan kullanılabilen evrensel eBPF sürücüleri oluşturmayı mümkün kılar.

yanı sıra bpf-bpf çağrıları için destek, global değişkenler ve başlatıcılaraya'yı yürütme süresi olarak kullanan geleneksel programlara benzer şekilde eBPF için programlar tasarlamaya izin veren, eBPF'deki çalışmayı dikkate alarak işlevleri iptal eden .

Öte yandan, sahip olduğu dahili çekirdek türleri için destek, normal diziler, karma haritalar, yığınlar, kuyruklar, yığın izleri ve soketler ve performans takibi için yapılar dahil.

tambien çeşitli eBTF programları oluşturma yeteneğine sahiptir, filtreleme ve trafik yönetimi programları, grup ve çeşitli soket sürücüleri, XDP programları ve ayrıca bloke olmayan tokyo modunda ve async-std'de asenkron istek işleme için platform desteği dahil.
Çekirdek derlemesine veya çekirdek başlıklarına bağlı kalmadan hızlı derleme.

Bundan bahsetmek önemlidir API henüz stabilize edilmediğinden proje hala deneysel olarak kabul ediliyor ve gelişmeye devam ediyor. Ayrıca, tasarlanan işlevlerin tümü henüz uygulanmadı.

Geliştiriciler yıl sonuna kadar Aya'nın işlevselliğini libbpf ile aynı seviyeye getirmeyi umuyorlar. ve Ocak 2022'de ilk kararlı sürümü oluşturur. Ayrıca, Linux çekirdeği için Rust kodu yazmak için gereken Aya parçalarının, eBPF programlarını yüklemek, eklemek ve bunlarla etkileşim kurmak için kullanılan kullanıcı alanı bileşenleriyle birleştirilmesi planlanmaktadır.

Nihayet daha fazlasını bilmekle ilgileniyorsanız bu konuda yapabilirsin detayları aşağıdaki linkten kontrol edin.


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: AB Internet Networks 2008 SL
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.