7

मुझे एआरएम आधारित बोर्डों के लिए लिनक्स डिवाइस ड्राइवर्स के लिए एक स्थिर विश्लेषण उपकरण की आवश्यकता है। मैं कुछ उपकरणों पर विचार कर रहा हूँ नीचे वर्णित के रूप में:लिनक्स कर्नेल मॉड्यूल और डिवाइस ड्राइवरों के लिए स्टेटिक विश्लेषण उपकरण

  1. Sparse एक कंप्यूटर सॉफ्टवेयर उपकरण, लिनक्स पर पहले से ही उपलब्ध, लिनक्स कर्नेल में संभव कोडिंग दोष लगाने के लिए बनाया गया है।
  2. लोड करने योग्य कर्नेल मॉड्यूल की गुणवत्ता में सुधार करने के उद्देश्य से Linux Verification Center की दो सक्रिय परियोजनाएं हैं।

    • Linux Driver Verification (एलडीवी) - लिनक्स डिवाइस ड्राइवरों के स्थिर स्रोत कोड सत्यापन के लिए एक व्यापक टूलसेट।
    • KEDR Framework - गतिशील विश्लेषण और कर्नेल मॉड्यूल के सत्यापन के लिए एक विस्तारणीय ढांचा।
    • एक और चल रही परियोजना Linux File System Verification है जिसका लक्ष्य लिनक्स फ़ाइल सिस्टम कार्यान्वयन के सत्यापन के लिए एक समर्पित टूलसेट विकसित करना है।
  3. -Werror, -Wextra और -WallGCC पर सक्षम करें, और Valgrind साथ चलाते हैं।

पिछली बार मैंने स्पैस के साथ खेला था, मैंने आउटपुट को भ्रमित करने के लिए पाया और आउटपुट की व्याख्या करने के लिए एक अच्छा दस्तावेज नहीं मिला। क्या किसी के पास स्पैस टूल पर अच्छा दस्तावेज है? मेरे लिनक्स ड्राइवर सत्यापन के लिए मैं अन्य नि: शुल्क स्थिर विश्लेषण उपकरण क्या उपयोग कर सकता हूं? मैं LINT उपकरण के बारे में जानता हूं लेकिन इसका लाइसेंस प्राप्त है।

+0

स्प्लिंट आज़माएं। ये मुफ्त है। एक और सुझाव -Wall और -Wextra के साथ संकलन करना होगा। – Kenneth

+0

स्प्लिंट सामान्य सी कोड के लिए है। मुझे एक उपकरण चाहिए जो लिनक्स कर्नेल कोड की जांच कर सके। एक आम उदाहरण एक ऐसे फ़ंक्शन का उपयोग कर रहा है जो स्पिनलॉक्स और इसी तरह की सुरक्षा वाले महत्वपूर्ण वर्गों में, परमाणु संदर्भ में, यानी, अंतःस्थापित संदर्भ में, (या, आमतौर पर, रीशेड्यूलिंग का कारण बन सकता है) सो सकता है। –

+1

ऐसा लगता है कि आप यहां कई अलग-अलग अवधारणाओं को मिश्रित कर रहे हैं। लिनक्स कर्नेल सी में लिखा गया है, इसलिए स्प्लिंट एक मान्य _static_ विश्लेषण उपकरण है। – Kenneth

उत्तर

4

Smatch कर्नेल पर उपयोग किए जाने वाले सी के लिए एक स्थिर विश्लेषण उपकरण है। इसके परिणामस्वरूप सैकड़ों पैच हैं। काफी कुछ सुरक्षा संबंधित हैं या स्थिर कर्नेल के लिए पर्याप्त महत्वपूर्ण थे।

+2

एक और स्थिर विश्लेषण उपकरण है, [Coccinelle] (http://coccinelle.lip6.fr/) कि कर्नेल में कीड़े खोजने के लिए इस्तेमाल किया गया था। यह भी देखें http://lwn.net/Articles/412750/। यद्यपि इसे खुद कोशिश नहीं की है। – Eugene

3

यदि आप अपने नियम लिखना चाहते हैं, तो कोकिनेल शायद उचित है। यदि आप दूसरों द्वारा लिखे गए नियमों का उपयोग करना चाहते हैं तो आप कर्नेल में एकीकृत विभिन्न टूल का उपयोग कर सकते हैं। अनुभाग 4.2 देखें: दस्तावेज़ीकरण/विकास प्रक्रिया/कोड के कोड जांच उपकरण 4. कुछ सुझावों के लिए कोडिंग।

संबंधित मुद्दे