बिल्ट-इन टेस्ट (बीआईटी) सिस्टम के लाभ

अवलोकन

बिल्ट-इन टेस्ट (BIT) सिस्टम, लिनक्स-आधारित एम्बेडेड सिस्टमों के लिए डिज़ाइन किया गया एक व्यापक, मॉड्यूलर और विस्तार योग्य परीक्षण ढांचा है। यह प्लगइन-आधारित आर्किटेक्चर के माध्यम से स्वचालित हार्डवेयर और सॉफ्टवेयर निदान प्रदान करता है, जिससे सिस्टम की विश्वसनीयता, अखंडता और परिचालन तत्परता सुनिश्चित होती है।


मुख्य लाभ

🛡️ बेहतर सिस्टम विश्वसनीयता

  • विफलताओं के संचालन को प्रभावित करने से पहले ही सक्रिय रूप से दोषों का पता लगाना।
  • महत्वपूर्ण सिस्टम संसाधनों की निरंतर निगरानी
  • हार्डवेयर में संभावित खराबी के लिए प्रारंभिक चेतावनी प्रणाली

⚡ डाउनटाइम में कमी

  • स्वचालित निदान से मैन्युअल परीक्षण का अतिरिक्त खर्च समाप्त हो जाता है।
  • निर्धारित परीक्षण निष्पादन पृष्ठभूमि में चलता है।
  • तत्काल खराबी की सूचना मिलने से त्वरित प्रतिक्रिया संभव हो पाती है।

📊 व्यापक कवरेज

  • हार्डवेयर सत्यापन (पीसीआई, यूएसबी, जीपीआईओ, सीरियल, सीएएन, ईथरनेट)
  • सिस्टम संसाधन निगरानी (सीपीयू, मेमोरी, डिस्क)
  • डेटा पथ सत्यापन (TCP, CAN बस, सीरियल पोर्ट)

🔌 प्लग-एंड-प्ले आर्किटेक्चर

  • रनटाइम पर डायनामिक प्लगइन लोडिंग
  • विन्यास-आधारित परीक्षण पैरामीटर
  • नए परीक्षण जोड़ने के लिए कोर सिस्टम में किसी संशोधन की आवश्यकता नहीं है।

📋 सिस्टमडी एकीकरण

  • यह एक नेटिव लिनक्स सेवा के रूप में चलता है।
  • बूट होने पर स्वचालित स्टार्टअप
  • मानक सेवा प्रबंधन ( systemctl start/stop/status )

परीक्षण के प्रकार और कवरेज

बीआईटी प्रणाली उद्योग-मानक बिल्ट-इन टेस्ट पद्धतियों के अनुरूप तीन प्राथमिक परीक्षण श्रेणियों को लागू करती है:

पावर-ऑन बिट (पीबीआईटी)

सामान्य परिचालन शुरू होने से पहले हार्डवेयर की अखंडता को सत्यापित करने के लिए सिस्टम स्टार्टअप पर एक बार परीक्षण किए जाते हैं।

निरंतर बीआईटी (सीबीआईटी)

सामान्य परिचालन के दौरान समय-समय पर चलाए जाने वाले परीक्षण, जिनका उद्देश्य रनटाइम त्रुटियों और संसाधनों की कमी का पता लगाना होता है।

फ़ैक्टरी बिट (FBIT)

विनिर्माण और रखरखाव के दौरान सभी सिस्टम इंटरफेस को मान्य करने के लिए व्यापक हार्डवेयर परीक्षणों का उपयोग किया जाता है।


परीक्षण सारांश तालिका

पावर-ऑन बिट (पीबीआईटी) परीक्षण

परीक्षण का नाम विवरण आवृत्ति
pbit_bsp_version यह सत्यापित करता है कि बीएसपी संस्करण अपेक्षित कॉन्फ़िगरेशन से मेल खाता है। स्टार्टअप के दौरान
pbit_can CAN बस इंटरफ़ेस की उपलब्धता को सत्यापित करता है स्टार्टअप के दौरान
pbit_checksum फ़ाइल की अखंडता के लिए उसके चेकसम की पुष्टि करता है स्टार्टअप के दौरान
pbit_cpu_cores अपेक्षित सीपीयू कोर संख्या को मान्य करता है स्टार्टअप के दौरान
pbit_cpu_usage प्रारंभिक सीपीयू उपयोग सीमा के भीतर है या नहीं, इसकी जाँच करता है। स्टार्टअप के दौरान
pbit_disk_health डिस्क की स्मार्ट स्वास्थ्य स्थिति को सत्यापित करता है स्टार्टअप के दौरान
pbit_disk_usage बूट के समय डिस्क स्पेस की उपलब्धता की जाँच करता है स्टार्टअप के दौरान
pbit_dmesg_check गंभीर त्रुटियों के लिए dmesg की जांच करता है स्टार्टअप के दौरान
pbit_ethernet ईथरनेट इंटरफ़ेस की उपलब्धता को सत्यापित करता है स्टार्टअप के दौरान
pbit_file_checksum महत्वपूर्ण सिस्टम फ़ाइल की अखंडता की पुष्टि करता है स्टार्टअप के दौरान
pbit_firewall_configuration फ़ायरवॉल नियमों के सही कॉन्फ़िगरेशन की पुष्टि करता है स्टार्टअप के दौरान
pbit_gpio जीपीआईओ पिन की उपलब्धता और स्थिति को सत्यापित करता है स्टार्टअप के दौरान
pbit_gpu_loading जीपीयू ड्राइवर और प्रारंभिक लोडिंग की जाँच करता है स्टार्टअप के दौरान
pbit_memory_usage स्टार्टअप के समय उपलब्ध मेमोरी की पुष्टि करता है स्टार्टअप के दौरान
pbit_pci_whitelist अनुमोदित श्वेतसूची के विरुद्ध पीसीआई उपकरणों का सत्यापन करता है स्टार्टअप के दौरान
pbit_permissions_verification फ़ाइल/निर्देशिका की अनुमतियों को मान्य करता है स्टार्टअप के दौरान
pbit_power_test बिजली आपूर्ति की स्थिति और वोल्टेज की जाँच करता है स्टार्टअप के दौरान
pbit_selinux_apparmor_status सुरक्षा मॉड्यूल की स्थिति को सत्यापित करता है स्टार्टअप के दौरान
pbit_serial_ports सीरियल पोर्ट की उपलब्धता को सत्यापित करता है स्टार्टअप के दौरान
pbit_ssh_configuration SSH सुरक्षा कॉन्फ़िगरेशन को मान्य करता है स्टार्टअप के दौरान
pbit_syslog_analysis सिस्टम लॉग में महत्वपूर्ण स्टार्टअप त्रुटियों की जांच करता है स्टार्टअप के दौरान
pbit_temperature प्रारंभिक तापीय रीडिंग की जाँच करता है स्टार्टअप के दौरान
pbit_usb_whitelist अनुमोदित श्वेतसूची के विरुद्ध यूएसबी उपकरणों का सत्यापन करता है स्टार्टअप के दौरान

निरंतर बीआईटी (सीबीआईटी) परीक्षण

परीक्षण का नाम विवरण आवृत्ति
cbit_bsp_version बीएसपी संस्करण की स्थिरता की निगरानी करता है विन्यास
cbit_can CAN बस की स्थिति और त्रुटि काउंटरों की निगरानी करता है। विन्यास
cbit_checksum आवधिक फ़ाइल अखंडता सत्यापन विन्यास
cbit_cpu_cores सीपीयू कोर की उपलब्धता की निगरानी करता है विन्यास
cbit_cpu_usage रोलिंग विंडो अवधि में सीपीयू उपयोग की निगरानी करता है हर 1 सेकंड
cbit_disk_health डिस्क के स्मार्ट एट्रिब्यूट्स की निगरानी करता है विन्यास
cbit_disk_usage निर्धारित सीमा के मुकाबले डिस्क उपयोग की निगरानी करता है हर 30 के दशक में
cbit_dmesg कर्नेल संदेश बफर की निगरानी करता है विन्यास
cbit_dmesg_check निरंतर dmesg त्रुटि पहचान विन्यास
cbit_ethernet यह ईथरनेट लिंक की स्थिति और त्रुटियों की निगरानी करता है। विन्यास
cbit_ethernet_status ईथरनेट कनेक्शन की स्थिति की निगरानी करता है विन्यास
cbit_firewall_configuration फ़ायरवॉल नियमों की अखंडता की निगरानी करता है विन्यास
cbit_gpio GPIO स्थिति में होने वाले परिवर्तनों की निगरानी करता है विन्यास
cbit_gpu_loading जीपीयू के उपयोग की निगरानी करता है विन्यास
cbit_memory_usage मेमोरी खपत के पैटर्न को ट्रैक करता है विन्यास
cbit_pci_whitelist पीसीआई डिवाइस में होने वाले परिवर्तनों की निगरानी करता है विन्यास
cbit_permissions फ़ाइल अनुमति परिवर्तनों की निगरानी करता है विन्यास
cbit_permissions_verification निरंतर अनुमति सत्यापन विन्यास
cbit_power_consumption बिजली की खपत और दक्षता की निगरानी करता है विन्यास
cbit_selinux_apparmor_status सुरक्षा मॉड्यूल की स्थिति की निगरानी करता है विन्यास
cbit_serial_ports सीरियल पोर्ट की उपलब्धता की निगरानी करता है विन्यास
cbit_ssh_configuration SSH कॉन्फ़िगरेशन में होने वाले परिवर्तनों की निगरानी करता है विन्यास
cbit_syslog_analysis निरंतर सिस्टम लॉग त्रुटि निगरानी विन्यास
cbit_temperature यह तापमान संबंधी रीडिंग और रुझानों की निगरानी करता है। विन्यास
cbit_usb_whitelist यूएसबी डिवाइस में होने वाले परिवर्तनों की निगरानी करता है विन्यास

फ़ैक्टरी बिट (FBIT) परीक्षण

परीक्षण का नाम विवरण आवृत्ति
fbit_can_data CAN बस के ट्रांसमिट/रिसीव कार्यक्षमता का परीक्षण करता है विन्यास
fbit_gpio_data जीपीआईओ इनपुट/आउटपुट कार्यक्षमता को मान्य करता है विन्यास
fbit_pci पीसीआई डिवाइस गणना और सत्यापन विन्यास
fbit_serial_data सीरियल पोर्ट लूपबैक संचार को मान्य करता है विन्यास
fbit_ssd एसएसडी रीड/राइट प्रदर्शन सत्यापन विन्यास
fbit_system_data सिस्टम सूचना संग्रह विन्यास
fbit_tcp_data iPerf का उपयोग करके ईथरनेट डेटा पथों का परीक्षण करता है विन्यास
fbit_usb यूएसबी डिवाइस रीड/राइट सत्यापन विन्यास
fbit_video वीडियो आउटपुट सत्यापन विन्यास

कुल मिलाकर: हार्डवेयर सत्यापन, सिस्टम निगरानी और सुरक्षा सत्यापन को कवर करने वाले 57 अंतर्निर्मित परीक्षण


प्लगइन आर्किटेक्चर

बीआईटी सिस्टम एक शक्तिशाली प्लगइन आर्किटेक्चर पर आधारित है जो कोर सिस्टम कोड को संशोधित किए बिना निर्बाध विस्तारशीलता को सक्षम बनाता है।

यह काम किस प्रकार करता है

बीआईटी सिस्टम अपने मैसेजिंग मिडलवेयर के रूप में ज़ेनोह का उपयोग करता है, जो मॉनिटरिंग क्लाइंट्स को वास्तविक समय में परीक्षण परिणाम वितरित करने और प्रोटोकॉल ब्रिजिंग के माध्यम से जीवीए (जेनेरिक व्हीकल आर्किटेक्चर) सिस्टम के साथ सहज एकीकरण को सक्षम बनाता है।

संदेश प्रवाह वास्तुकला

flowchart LR subgraph Server["🖥️ BIT Server"] BM["BIT Manager"] PBIT["PBIT Plugins"] CBIT["CBIT Plugins"] FBIT["FBIT Plugins"] end subgraph Zenoh["🌐 Zenoh Network"] ZS["Zenoh Session"] end subgraph Clients["📱 BIT Clients"] GUI["BIT GUI"] CLI["BIT CLI"] end subgraph Gateway["🔗 BIT Gateway"] ZDG["Zenoh-DDS Bridge"] end subgraph GVA["🎖️ GVA Domain (DDS)"] HUMS["Health & Usage
Monitoring Service"] end PBIT -->|TestResult| BM CBIT -->|TestResult| BM FBIT -->|TestResult| BM BM -->|"Zenoh Publish
bit/{hostname}/PBIT"| ZS BM -->|"Zenoh Publish
bit/{hostname}/CBIT"| ZS BM -->|"Zenoh Publish
bit/{hostname}/FBIT"| ZS ZS -->|"Subscribe
bit/+/+"| GUI ZS -->|"Subscribe
bit/+/+"| CLI ZS -->|"Subscribe
bit/+/+"| ZDG ZDG -->|"DDS Publish
GVA::HealthStatus"| HUMS

विस्तृत संदेश अनुक्रम

sequenceDiagram participant Plugin as Test Plugin participant BM as BIT Manager participant Zenoh as Zenoh Router participant GUI as BIT GUI participant Gateway as BIT Gateway participant HUMS as GVA HUMS (DDS) Note over Plugin,HUMS: Test Execution & Result Distribution Plugin->>BM: Execute Test BM->>BM: Encode BuiltInTestResult (Protobuf) BM->>Zenoh: Publish to bit/{hostname}/CBIT par Parallel Distribution Zenoh-->>GUI: Forward Result GUI->>GUI: Display in Dashboard and Zenoh-->>Gateway: Forward Result Gateway->>Gateway: Zenoh → DDS Transform Gateway->>HUMS: Publish GVA::HealthStatus HUMS->>HUMS: Update Vehicle Health Record end Note over GUI,HUMS: Real-time monitoring on both systems

प्रोटोकॉल ब्रिज विवरण

अवयव प्रोटोकॉल में प्रोटोकॉल आउट उद्देश्य
बीआईटी प्रबंधक आंतरिक ज़ेनोह परीक्षण परिणामों को प्रकाशित करता है
बिट जीयूआई ज़ेनोह वास्तविक समय के परिणाम प्रदर्शित करता है
बिट सीएलआई ज़ेनोह कमांड-लाइन निगरानी
बिट गेटवे ज़ेनोह डीडीएस (जीवीए) वाहन प्रणालियों के लिए पुल
जीवीए एचयूएमएस डीडीएस स्वास्थ्य एवं उपयोग निगरानी

प्लगइन की विशेषताएं

विशेषता विवरण
गतिशील लोडिंग प्लगइन्स रनटाइम पर साझा लाइब्रेरी ( .so ) के रूप में लोड होते हैं।
विशेषता-आधारित इंटरफ़ेस सभी प्लगइन्स के लिए सुसंगत TestRun और TestDetails विशेषताएँ
कॉन्फ़िगरेशन फ़ाइलें प्रत्येक परीक्षण के लिए TOML-आधारित कॉन्फ़िगरेशन ( /etc/bit/*.toml )
संस्करण ट्रैकिंग प्रत्येक प्लगइन संस्करण और निर्माण समय-सीमा की जानकारी देता है।
लॉगिंग कॉलबैक सभी परीक्षणों में एकीकृत लॉगिंग अवसंरचना
रन काउंटर उत्तीर्ण/अनुत्तीर्ण आंकड़ों की स्वचालित ट्रैकिंग

एक नया प्लगइन बनाना

कस्टम BIT प्लगइन बनाना सीधा-सादा है:

  1. TestRun ट्रेट को लागू करें:
 impl TestRun for MyCustomTest {
    fn run(&mut self) {
        // Your test logic here
        self.base_test.status = TestStatus::Success;
    }
}
  1. प्लगइन इंटरफ़ेस निर्यात करें:
 #[no_mangle]
pub extern "C" fn create_test() -> Box {
    Box::new(MyCustomTest::new())
}
  1. एक कॉन्फ़िगरेशन फ़ाइल बनाएँ (वैकल्पिक):
 [my_custom_test]
frequency = 60
enabled = true
threshold = 90
  1. साझा लाइब्रेरी को /usr/local/lib/bit_manager/ में बिल्ड और डिप्लॉय करें।

रस्ट भाषा सुरक्षा विशेषताएं

बीआईटी सिस्टम को रस्ट में कार्यान्वित किया गया है, जो एम्बेडेड और सुरक्षा-महत्वपूर्ण प्रणालियों के लिए महत्वपूर्ण अद्वितीय सुरक्षा गारंटी प्रदान करता है।

मेमोरी सुरक्षा

विशेषता फ़ायदा
कोई नल पॉइंटर नहीं Option टाइप नल पॉइंटर डीरेफरेंस को रोकते हैं
कोई बफर ओवरफ्लो नहीं सभी ऐरे/वेक्टर एक्सेस पर बाउंड्स चेकिंग
निःशुल्क उपयोग के बाद कोई उपयोग की शर्त नहीं स्वामित्व प्रणाली स्मृति की वैधता की गारंटी देती है
कोई डेटा रेस नहीं कंपाइल-टाइम पर समवर्ती एक्सेस बग्स की रोकथाम

BIT के लिए Rust ही क्यों?

🔒 संकलन-समय सुरक्षा

रस्ट कंपाइल टाइम पर ही बग की उन पूरी श्रेणियों को पकड़ लेता है जो C/C++ में रनटाइम विफलताओं का कारण बन सकती हैं:

  • स्म्रति से रिसाव
  • बफर ओवरफ्लो
  • दौड़ की स्थिति
  • नल पॉइंटर डीरेफरेंस

⚡ शून्य लागत अमूर्तता

उच्च स्तरीय सुरक्षा सुविधाएँ बिना किसी रनटाइम ओवरहेड के कुशल मशीन कोड में संकलित होती हैं, जो C/C++ के प्रदर्शन के बराबर है।

🔧 निडर समवर्तीता

स्वामित्व मॉडल डेटा रेस के बिना सुरक्षित मल्टी-थ्रेडेड परीक्षण निष्पादन को सक्षम बनाता है:

 // Thread-safe shared state with Arc>
let shared_state = Arc::new(Mutex::new(TestState::new()));

📦 आधुनिक निर्भरता प्रबंधन

  • कार्गो पैकेज मैनेजर पुनरुत्पादनीय बिल्ड सुनिश्चित करता है।
  • स्वचालित निर्भरता समाधान
  • अंतर्निर्मित परीक्षण ढांचा

🛡️ टाइप-सेफ कॉन्फ़िगरेशन

कॉन्फ़िगरेशन पार्सिंग, त्रुटियों को शीघ्र पकड़ने के लिए रस्ट की टाइप प्रणाली का लाभ उठाती है:

 let threshold: f32 = config.get("threshold")?;  // Type-checked at compile time

सुरक्षा सांख्यिकी

मीट्रिक रस्ट बनाम सी/सी++
मेमोरी सुरक्षा बग संकलन समय पर समाप्त
CVE भेद्यता वर्गों को रोका गया सामान्य कमजोरियों में से लगभग 70%
रनटाइम नल पॉइंटर क्रैश असंभव
थ्रेड सुरक्षा उल्लंघन संकलन समय पर पकड़ा गया

एकीकरण और परिनियोजन

सिस्टमडी सेवा

 # Enable automatic startup
sudo systemctl enable bit_manager

# Start the service
sudo systemctl start bit_manager

# Check status
sudo systemctl status bit_manager

डेबियन पैकेज इंस्टॉलेशन

 cargo deb -p bit_manager
sudo dpkg -i target/debian/bit_manager_*.deb

कॉन्फ़िगरेशन पथ

पथ उद्देश्य
/etc/bit/ परीक्षण कॉन्फ़िगरेशन फ़ाइलें (TOML)
/usr/local/lib/bit_manager/ प्लगइन साझा पुस्तकालय
/var/log/bit_manager/ फाइल्स लॉग करें # लॉग फाइलें

निरीक्षण और निगरानी

bit_inspect यूटिलिटी लोड किए गए टेस्ट के बारे में विस्तृत जानकारी प्रदान करती है:

 # List all available tests
bit_inspect

# Get detailed information about a specific test
bit_inspect cbit_disk_usage

उदाहरण आउटपुट:

 Details:
  Long-Name              Disk utilization test
  Author                 Ross Newman 
  Description            Check the disk is not nearing full
  Status                 NotRun

Plugin Details:
  Plugin Name            cbit_disk_usage
  Version                1.0.0
  Date Built             2025-03-09 01:42:11
  Run Frequency          Periodic(30s)

सारांश

बीआईटी प्रणाली निम्नलिखित प्रदान करती है:

व्यापक हार्डवेयर और सॉफ्टवेयर निदान
कस्टम परीक्षणों के लिए विस्तार योग्य प्लगइन आर्किटेक्चर
रस्ट में मेमोरी-सुरक्षित कार्यान्वयन
उद्योग-मानक पीबीआईटी/सीबीआईटी/एफबीआईटी पद्धति
नेटिव लिनक्स/सिस्टमडी एकीकरण
कॉन्फ़िगरेशन-आधारित परीक्षण पैरामीटर
रीयल-टाइम मॉनिटरिंग और लॉगिंग