बिल्ट-इन टेस्ट (बीआईटी) सिस्टम के लाभ
अवलोकन
बिल्ट-इन टेस्ट (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 अंतर्निर्मित परीक्षण ।
प्लगइन आर्किटेक्चर
बीआईटी सिस्टम एक शक्तिशाली प्लगइन आर्किटेक्चर पर आधारित है जो कोर सिस्टम कोड को संशोधित किए बिना निर्बाध विस्तारशीलता को सक्षम बनाता है।
यह काम किस प्रकार करता है
बीआईटी सिस्टम अपने मैसेजिंग मिडलवेयर के रूप में ज़ेनोह का उपयोग करता है, जो मॉनिटरिंग क्लाइंट्स को वास्तविक समय में परीक्षण परिणाम वितरित करने और प्रोटोकॉल ब्रिजिंग के माध्यम से जीवीए (जेनेरिक व्हीकल आर्किटेक्चर) सिस्टम के साथ सहज एकीकरण को सक्षम बनाता है।
संदेश प्रवाह वास्तुकला
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
विस्तृत संदेश अनुक्रम
प्रोटोकॉल ब्रिज विवरण
| अवयव | प्रोटोकॉल में | प्रोटोकॉल आउट | उद्देश्य |
|---|---|---|---|
| बीआईटी प्रबंधक | आंतरिक | ज़ेनोह | परीक्षण परिणामों को प्रकाशित करता है |
| बिट जीयूआई | ज़ेनोह | — | वास्तविक समय के परिणाम प्रदर्शित करता है |
| बिट सीएलआई | ज़ेनोह | — | कमांड-लाइन निगरानी |
| बिट गेटवे | ज़ेनोह | डीडीएस (जीवीए) | वाहन प्रणालियों के लिए पुल |
| जीवीए एचयूएमएस | डीडीएस | — | स्वास्थ्य एवं उपयोग निगरानी |
प्लगइन की विशेषताएं
| विशेषता | विवरण |
|---|---|
| गतिशील लोडिंग | प्लगइन्स रनटाइम पर साझा लाइब्रेरी ( .so ) के रूप में लोड होते हैं। |
| विशेषता-आधारित इंटरफ़ेस | सभी प्लगइन्स के लिए सुसंगत TestRun और TestDetails विशेषताएँ |
| कॉन्फ़िगरेशन फ़ाइलें | प्रत्येक परीक्षण के लिए TOML-आधारित कॉन्फ़िगरेशन ( /etc/bit/*.toml ) |
| संस्करण ट्रैकिंग | प्रत्येक प्लगइन संस्करण और निर्माण समय-सीमा की जानकारी देता है। |
| लॉगिंग कॉलबैक | सभी परीक्षणों में एकीकृत लॉगिंग अवसंरचना |
| रन काउंटर | उत्तीर्ण/अनुत्तीर्ण आंकड़ों की स्वचालित ट्रैकिंग |
एक नया प्लगइन बनाना
कस्टम BIT प्लगइन बनाना सीधा-सादा है:
-
TestRunट्रेट को लागू करें:
impl TestRun for MyCustomTest {
fn run(&mut self) {
// Your test logic here
self.base_test.status = TestStatus::Success;
}
}- प्लगइन इंटरफ़ेस निर्यात करें:
#[no_mangle]
pub extern "C" fn create_test() -> Box {
Box::new(MyCustomTest::new())
} - एक कॉन्फ़िगरेशन फ़ाइल बनाएँ (वैकल्पिक):
[my_custom_test]
frequency = 60
enabled = true
threshold = 90- साझा लाइब्रेरी को
/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) सारांश
बीआईटी प्रणाली निम्नलिखित प्रदान करती है:
✅ व्यापक हार्डवेयर और सॉफ्टवेयर निदान
✅ कस्टम परीक्षणों के लिए विस्तार योग्य प्लगइन आर्किटेक्चर
✅ रस्ट में मेमोरी-सुरक्षित कार्यान्वयन
✅ उद्योग-मानक पीबीआईटी/सीबीआईटी/एफबीआईटी पद्धति
✅ नेटिव लिनक्स/सिस्टमडी एकीकरण
✅ कॉन्फ़िगरेशन-आधारित परीक्षण पैरामीटर
✅ रीयल-टाइम मॉनिटरिंग और लॉगिंग