7

ARM tabanlı kartlar için yazdığım Linux Aygıt Sürücüleri için statik bir analiz aracına ihtiyacım var.Linux çekirdek modülleri ve aygıt sürücüleri için Statik Analiz aracı

  1. Sparse Linux çekirdeği mümkün kodlama hataları bulmak için tasarlanmış Linux üzerinde zaten mevcut bir bilgisayar yazılım aracı, geçerli: aşağıda belirtildiği gibi ben kaç aracın düşünüyorum.
  2. Yüklenebilir çekirdek modüllerinin kalitesini iyileştirmeyi amaçlayan iki etkin proje var: Linux Verification Center.

    • Linux Driver Verification (LDV) - Linux aygıt sürücüleri statik kaynak kod doğrulama için kapsamlı bir araç seti. Çekirdek modüllerinin dinamik analizi ve doğrulanması için genişletilebilir bir çerçeve.
    • Devam eden bir başka proje de, Linux dosya sistemi uygulamalarının doğrulanması için özel bir araç seti geliştirmeyi amaçlayan Linux File System Verification.
  3. GCC üzerine -Werror, -Wextra ve -Wall etkinleştirin ve Valgrind ile çalıştırın.

Son kez Sparse ile oynadım Çıktıların kafa karıştırıcı olduğunu buldum ve çıktıyı yorumlamak için iyi bir belge bulamadım. Sparse aracı üzerinde iyi bir dokümantasyon var mı? Linux sürücü doğrulama için kullanabileceğim diğer Free statik analiz araçları nelerdir? LINT aracını biliyorum ama lisanslı.

+0

Ateli deneyin. Ücretsiz. Başka bir öneri -Wall ve -Wextra ile derlemek olurdu. – Kenneth

+0

atel normal C kodu içindir. Linux çekirdek kodunu kontrol edebilecek bir araca ihtiyacım var. Yaygın bir örnek, atomik bağlamda, yani kesinti işleyicilerinde, spin kilitleri ve benzerleri tarafından korunan kritik bölümlerde uyuyabilen (veya genel olarak yeniden programlamaya neden olabilecek) bir işlev kullanmaktır. –

+1

Çok farklı kavramları burada karıştırıyor gibi geliyor. Linux çekirdeği C ile yazılmıştır, bu nedenle splint geçerli bir _static_ analiz aracıdır. – Kenneth

cevap

4

Smatch, Çekirdek üzerinde kullanılan C için statik bir analiz aracıdır. Yüzlerce yamalı sonuçlandı. Oldukça az bir kısmı güvenlikle ilgili ya da istikrarlı çekirdek için yeterince önemliydi.

+2

Başka bir statik analiz aracı, [Coccinelle] (http://coccinelle.lip6.fr/), çekirdeğin hatalarını bulmak için kullanıldı. Ayrıca bkz. Http://lwn.net/Articles/412750/. Yine de denemedim. – Eugene

3

Kendi kurallarınızı yazmak isterseniz, Coccinelle muhtemelen uygundur. Başkaları tarafından yazılan kuralları kullanmak istiyorsanız, çekirdeğe entegre edilmiş çeşitli araçları kullanabilirsiniz. Bölüm 4.2: Belgelerin/geliştirme sürecinin KOD KONTROL ALETLERİ/4. Bazı öneriler için 4.Coding.

İlgili konular