KernelScript 0.1, eBPF odaklı Linux çekirdek geliştirme için yeni bir açık kaynak programlama dilinin ilk halka açık sürümü olarak kullanıma sunuldu. Apache 2.0 lisansı altında yayınlanan bu dil, geliştiricilere tür güvenli bir alan adına özgü dil (DSL) sunuyor.
KernelScript, eBPF, kullanıcı alanı ve çekirdek alanı geliştirmeyi tek bir kod tabanında birleştiren bir dil olarak tanımlanıyor. Geleneksel yöntemlerde eBPF programlarını C ile manuel olarak yazmak, kullanıcı alanı yükleyicileri ve çekirdek modülleri oluşturmak gerekirken, KernelScript tek bir kaynak dosyadan gerekli C kodunu, kullanıcı alanı programlarını, Makefile'ları ve çekirdek modül entegrasyonunu otomatik olarak üretiyor.
Bu dil, Linux çekirdeğinde küçük ve doğrulanmış programların çekirdek bağlamında çalışmasını sağlayan eBPF teknolojisi ile çalışan geliştiricileri hedefliyor. eBPF, ağ iletişimi, izleme, gözlemlenebilirlik, güvenlik ve performans analizi gibi alanlarda yaygın olarak kullanılsa da, geliştirme süreci doğrulayıcı kısıtlamaları, BPF yardımcıları, haritalar ve libbpf tabanlı kullanıcı alanı koordinasyonu gibi derin bilgi gerektiriyor.
KernelScript, eBPF iş akışlarına uygun üst düzey bir sözdizimi ile bu karmaşıklığı azaltıyor. Dil, XDP (paket işleme), TC (trafik kontrolü), çekirdek fonksiyon izleme için problar ve performans sayaçları için perf event programları gibi önemli eBPF program türlerini destekliyor. Ayrıca hash haritaları, CPU başına diziler, LRU haritaları ve sabitlenmiş haritalar gibi eBPF haritaları için dil seviyesinde değişkenler sunarak, eBPF programları ve kullanıcı alanı kodunun manuel libbpf kodlaması olmadan durum paylaşmasını sağlıyor.
KernelScript, otomatik tail call orkestrasyonu, şeffaf dynptr yönetimi, program yaşam döngüsü kontrolleri, struct_ops desteği ve yerleşik kfunc entegrasyonu gibi gelişmiş eBPF özelliklerini de içeriyor. Ancak bu sürümün deneysel olduğunu belirtmek önemli. Depo, KernelScript'i beta yazılım olarak işaretliyor ve sözdizimi, API'ler ile özelliklerin geriye dönük uyumluluk olmadan değişebileceği uyarısında bulunuyor. Şu an için geliştiriciler, üretim ortamında kullanımı önermiyor.