Iebūvētās testa (BIT) sistēmas priekšrocības
Pārskats
Iebūvētā testa (BIT) sistēma ir visaptveroša, modulāra un paplašināma testēšanas sistēma, kas paredzēta Linux balstītām iegultajām sistēmām. Tā nodrošina automatizētu aparatūras un programmatūras diagnostiku, izmantojot spraudņu arhitektūru, garantējot sistēmas uzticamību, integritāti un darba gatavību.
Galvenās priekšrocības
🛡️ Uzlabota sistēmas uzticamība
- Proaktīva kļūmju noteikšana, pirms tās ietekmē darbību
- Nepārtraukta kritisko sistēmas resursu uzraudzība
- Agrīnās brīdināšanas sistēma iespējamai aparatūras degradācijai
⚡ Samazināts dīkstāves laiks
- Automatizēta diagnostika novērš manuālas testēšanas izmaksas
- Plānotā testa izpilde darbojas fonā
- Tūlītēja kļūmes paziņošana nodrošina ātru reaģēšanu
📊 Visaptverošs pārklājums
- Aparatūras validācija (PCI, USB, GPIO, seriālais, CAN, Ethernet)
- Sistēmas resursu uzraudzība (CPU, atmiņa, disks)
- Datu ceļa verifikācija (TCP, CAN kopne, seriālie porti)
🔌 Plug-and-Play arhitektūra
- Dinamiska spraudņa ielāde izpildlaikā
- Konfigurācijas vadīti testa parametri
- Nav nepieciešamas pamatsistēmas modifikācijas, lai pievienotu jaunus testus
📋 Sistēmas integrācija
- Darbojas kā vietējais Linux pakalpojums
- Automātiska palaišana sāknēšanas laikā
- Standarta pakalpojumu pārvaldība (
systemctl start/stop/status)
Testu veidi un pārklājums
BIT sistēma ievieš trīs galvenās testēšanas kategorijas, kas ir saskaņotas ar nozares standarta iebūvētajām testēšanas metodoloģijām:
Ieslēgšanas bits (PBIT)
Testi, kas tiek veikti vienu reizi sistēmas startēšanas laikā , lai pārbaudītu aparatūras integritāti pirms normālas darbības sākuma.
Nepārtraukts BIT (CBIT)
Testi, kas periodiski tiek veikti normālas darbības laikā , lai noteiktu izpildlaika kļūmes un resursu izsīkumu.
Rūpnīcas uzgalis (FBIT)
Visaptveroši aparatūras testi, ko izmanto ražošanas un apkopes laikā, lai validētu visas sistēmas saskarnes.
Testa kopsavilkuma tabula
Ieslēgšanas BIT (PBIT) testi
| Testa nosaukums | Apraksts | Biežums |
|---|---|---|
pbit_bsp_version | Pārbauda, vai BSP versija atbilst paredzētajai konfigurācijai | Tiklīdz startēšanas laikā |
pbit_can | Pārbauda CAN kopnes saskarnes pieejamību | Tiklīdz startēšanas laikā |
pbit_checksum | Pārbauda failu kontrolsummas integritātes ziņā | Tiklīdz startēšanas laikā |
pbit_cpu_cores | Validē paredzamo centrālā procesora kodolu skaitu | Tiklīdz startēšanas laikā |
pbit_cpu_usage | Pārbauda, vai sākotnējā centrālā procesora noslodze ir robežās | Tiklīdz startēšanas laikā |
pbit_disk_health | Pārbauda diska SMART veselības stāvokli | Tiklīdz startēšanas laikā |
pbit_disk_usage | Pārbauda diska vietas pieejamību sāknēšanas laikā | Tiklīdz startēšanas laikā |
pbit_dmesg_check | Skenē dmesg, lai atrastu kritiskas kļūdas | Tiklīdz startēšanas laikā |
pbit_ethernet | Pārbauda Ethernet saskarnes pieejamību | Tiklīdz startēšanas laikā |
pbit_file_checksum | Pārbauda kritisko sistēmas failu integritāti | Tiklīdz startēšanas laikā |
pbit_firewall_configuration | Pārbauda, vai ugunsmūra noteikumi ir pareizi konfigurēti | Tiklīdz startēšanas laikā |
pbit_gpio | Pārbauda GPIO pieslēgvietu pieejamību un stāvokli | Tiklīdz startēšanas laikā |
pbit_gpu_loading | Pārbauda GPU draiveri un sākotnējo ielādi | Tiklīdz startēšanas laikā |
pbit_memory_usage | Pārbauda pieejamo atmiņu startēšanas laikā | Tiklīdz startēšanas laikā |
pbit_pci_whitelist | Pārbauda PCI ierīces atbilstoši apstiprinātajam baltajam sarakstam | Tiklīdz startēšanas laikā |
pbit_permissions_verification | Pārbauda failu/direktoriju atļaujas | Tiklīdz startēšanas laikā |
pbit_power_test | Pārbauda barošanas avota stāvokli un spriegumu | Tiklīdz startēšanas laikā |
pbit_selinux_apparmor_status | Pārbauda drošības moduļa statusu | Tiklīdz startēšanas laikā |
pbit_serial_ports | Pārbauda seriālā porta pieejamību | Tiklīdz startēšanas laikā |
pbit_ssh_configuration | Validē SSH drošības konfigurāciju | Tiklīdz startēšanas laikā |
pbit_syslog_analysis | Skenē sistēmas žurnālu, lai atrastu kritiskas startēšanas kļūdas | Tiklīdz startēšanas laikā |
pbit_temperature | Pārbauda sākotnējos termiskos rādījumus | Tiklīdz startēšanas laikā |
pbit_usb_whitelist | Pārbauda USB ierīces atbilstoši apstiprinātajam baltajam sarakstam | Tiklīdz startēšanas laikā |
Nepārtraukti BIT (CBIT) testi
| Testa nosaukums | Apraksts | Biežums |
|---|---|---|
cbit_bsp_version | Uzrauga BSP versiju konsekvenci | Konfigurējams |
cbit_can | Uzrauga CAN kopnes stāvokli un kļūdu skaitītājus | Konfigurējams |
cbit_checksum | Periodiska failu integritātes pārbaude | Konfigurējams |
cbit_cpu_cores | Uzrauga centrālā procesora kodola pieejamību | Konfigurējams |
cbit_cpu_usage | Uzrauga centrālā procesora noslodzi slīdošā logā | Ik pēc 1 s |
cbit_disk_health | Uzrauga diska SMART atribūtus | Konfigurējams |
cbit_disk_usage | Uzrauga diska izmantošanu, salīdzinot ar sliekšņiem | Ik pēc 30 sekundēm |
cbit_dmesg | Uzrauga kodola ziņojumu buferi | Konfigurējams |
cbit_dmesg_check | Nepārtraukta dmesg kļūdu noteikšana | Konfigurējams |
cbit_ethernet | Uzrauga Ethernet savienojuma statusu un kļūdas | Konfigurējams |
cbit_ethernet_status | Uzrauga Ethernet savienojuma stāvokli | Konfigurējams |
cbit_firewall_configuration | Uzrauga ugunsmūra noteikumu integritāti | Konfigurējams |
cbit_gpio | Uzrauga GPIO stāvokļa izmaiņas | Konfigurējams |
cbit_gpu_loading | Uzrauga GPU izmantošanu | Konfigurējams |
cbit_memory_usage | Izseko atmiņas patēriņa modeļus | Konfigurējams |
cbit_pci_whitelist | Uzrauga PCI ierīču izmaiņas | Konfigurējams |
cbit_permissions | Uzrauga failu atļauju izmaiņas | Konfigurējams |
cbit_permissions_verification | Nepārtraukta atļauju validācija | Konfigurējams |
cbit_power_consumption | Uzrauga enerģijas patēriņu un efektivitāti | Konfigurējams |
cbit_selinux_apparmor_status | Uzrauga drošības moduļa stāvokli | Konfigurējams |
cbit_serial_ports | Uzrauga seriālā porta pieejamību | Konfigurējams |
cbit_ssh_configuration | Uzrauga SSH konfigurācijas izmaiņas | Konfigurējams |
cbit_syslog_analysis | Nepārtraukta sistēmas žurnāla kļūdu uzraudzība | Konfigurējams |
cbit_temperature | Uzrauga termiskos rādījumus un tendences | Konfigurējams |
cbit_usb_whitelist | Uzrauga USB ierīču izmaiņas | Konfigurējams |
Rūpnīcas bitu (FBIT) testi
| Testa nosaukums | Apraksts | Biežums |
|---|---|---|
fbit_can_data | Pārbauda CAN kopnes pārraides/uztveršanas funkcionalitāti | Konfigurējams |
fbit_gpio_data | Validē GPIO ieejas/izejas funkcionalitāti | Konfigurējams |
fbit_pci | PCI ierīču uzskaitīšana un verifikācija | Konfigurējams |
fbit_serial_data | Validē seriālā porta cilpas saziņu | Konfigurējams |
fbit_ssd | SSD lasīšanas/rakstīšanas veiktspējas validācija | Konfigurējams |
fbit_system_data | Sistēmas informācijas vākšana | Konfigurējams |
fbit_tcp_data | Testē Ethernet datu ceļus, izmantojot iPerf | Konfigurējams |
fbit_usb | USB ierīces lasīšanas/rakstīšanas pārbaude | Konfigurējams |
fbit_video | Video izejas pārbaude | Konfigurējams |
Kopā: 57 iebūvētie testi, kas aptver aparatūras validāciju, sistēmas uzraudzību un drošības verifikāciju.
Spraudņa arhitektūra
BIT sistēma ir veidota uz jaudīgas spraudņu arhitektūras , kas nodrošina nemanāmu paplašināmību, nemainot pamata sistēmas kodu.
Kā tas darbojas
BIT sistēma kā ziņojumapmaiņas starpprogrammatūru izmanto Zenoh , kas nodrošina testa rezultātu izplatīšanu uzraudzības klientiem reāllaikā un netraucētu integrāciju ar GVA (vispārējās transportlīdzekļu arhitektūras) sistēmām, izmantojot protokolu savienošanu.
Ziņojumu plūsmas arhitektūra
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
Detalizēta ziņojumu secība
Protokola tilta detaļas
| Komponents | Protokols ieejā | Protokola izeja | Mērķis |
|---|---|---|---|
| BIT pārvaldnieks | Iekšējais | Zenohs | Publicē testa rezultātus |
| BIT grafiskā lietotāja saskarne | Zenohs | — | Parāda rezultātus reāllaikā |
| BIT CLI | Zenohs | — | Komandrindas uzraudzība |
| BIT vārteja | Zenohs | DDS (BPV) | Tilti uz transportlīdzekļu sistēmām |
| GVA HUMS | DDS | — | Veselības un lietošanas uzraudzība |
Spraudņa funkcijas
| Funkcija | Apraksts |
|---|---|
| Dinamiskā ielāde | Spraudņi izpildes laikā tiek ielādēti kā koplietotas bibliotēkas ( .so ). |
| Uz īpašībām balstīta saskarne | Konsekventas TestRun un TestDetails īpašības visiem spraudņiem |
| Konfigurācijas faili | Uz TOML balstīta konfigurācija katram testam ( /etc/bit/*.toml ) |
| Versiju izsekošana | Katrs spraudnis ziņo par versiju un būvējuma laika zīmogu |
| Atzvanīšanas reģistrēšana | Vienota reģistrēšanas infrastruktūra visos testos |
| Palaišanas skaitītāji | Automātiska sekmīgas/nesekmīgas statistikas izsekošana |
Jauna spraudņa izveide
Pielāgota BIT spraudņa izveide ir vienkārša:
- Ieviesiet
TestRunīpašību:
impl TestRun for MyCustomTest {
fn run(&mut self) {
// Your test logic here
self.base_test.status = TestStatus::Success;
}
}- Eksportēt spraudņa saskarni:
#[no_mangle]
pub extern "C" fn create_test() -> Box {
Box::new(MyCustomTest::new())
} - Izveidojiet konfigurācijas failu (pēc izvēles):
[my_custom_test]
frequency = 60
enabled = true
threshold = 90- Izveidojiet un izvietojiet koplietoto bibliotēku mapē
/usr/local/lib/bit_manager/
Rūsas valodas drošības funkcijas
BIT sistēma ir ieviesta Rust valodā, nodrošinot nepārspējamas drošības garantijas, kas ir kritiski svarīgas iegultām un drošībai kritiskām sistēmām.
Atmiņas drošība
| Funkcija | Ieguvums |
|---|---|
| Nav nulles rādītāju | Option tipi novērš nulles rādītāja atsauču atcelšanu |
| Nav bufera pārpildes | Robežu pārbaude visiem masīvu/vektoru piekļuves punktiem |
| Bez lietošanas pēc tam bez maksas | Īpašumtiesību sistēma garantē atmiņas derīgumu |
| Nav datu sacensību | Vienlaicīgas piekļuves kļūdu novēršana kompilēšanas laikā |
Kāpēc izvēlēties Rust priekš BIT?
🔒 Drošība kompilēšanas laikā
Rūsa kompilēšanas laikā atrod veselas kļūdu kategorijas, kas C/C++ valodā izraisītu izpildlaika kļūmes:
- Atmiņas noplūdes
- Bufera pārpildes
- Sacensību apstākļi
- Nulles rādītāja atsauces
⚡ Nulles izmaksu abstrakcijas
Augsta līmeņa drošības funkcijas tiek kompilētas efektīvā mašīnkodā bez izpildlaika papildu slodzes , kas atbilst C/C++ veiktspējai.
🔧 Bezbailīga vienlaicība
Īpašumtiesību modelis nodrošina drošu daudzpavedienu testu izpildi bez datu sacensībām:
// Thread-safe shared state with Arc>
let shared_state = Arc::new(Mutex::new(TestState::new())); 📦 Mūsdienīga atkarību pārvaldība
- Kravas pakotņu pārvaldnieks nodrošina atkārtojamu būvējumu
- Automatizēta atkarību risināšana
- Iebūvēts testēšanas ietvars
🛡️ Droša tipa konfigurācija
Konfigurācijas parsēšana izmanto Rust tipu sistēmu, lai laikus pamanītu kļūdas:
let threshold: f32 = config.get("threshold")?; // Type-checked at compile timeDrošības statistika
| Metrika | Rūsa pret C/C++ |
|---|---|
| Atmiņas drošības kļūdas | Likvidēts kompilēšanas laikā |
| Novērstas CVE ievainojamības klases | ~70% no izplatītākajām ievainojamībām |
| Izpildes laika nulles rādītāja avarē | Neiespējami |
| Pavedienu drošības pārkāpumi | Noķerts kompilēšanas laikā |
Integrācija un izvietošana
Sistēmas pakalpojums
# Enable automatic startup
sudo systemctl enable bit_manager
# Start the service
sudo systemctl start bit_manager
# Check status
sudo systemctl status bit_managerDebian pakotnes instalēšana
cargo deb -p bit_manager
sudo dpkg -i target/debian/bit_manager_*.debKonfigurācijas ceļi
| Ceļš | Mērķis |
|---|---|
/etc/bit/ | Testa konfigurācijas faili (TOML) |
/usr/local/lib/bit_manager/ | Spraudņu koplietotās bibliotēkas |
/var/log/bit_manager/ | Žurnālfaili |
Pārbaude un uzraudzība
Utilīta bit_inspect sniedz detalizētu informāciju par ielādētajiem testiem:
# List all available tests
bit_inspect
# Get detailed information about a specific test
bit_inspect cbit_disk_usageIzvades piemērs:
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) Kopsavilkums
BIT sistēma nodrošina:
✅ Visaptveroša aparatūras un programmatūras diagnostika
✅ Paplašināma spraudņu arhitektūra pielāgotiem testiem
✅ Atmiņas ziņā droša ieviešana Rust vidē
✅ Nozares standarta PBIT/CBIT/FBIT metodika
✅ Dzimtā Linux/systemd integrācija
✅ Konfigurācijas vadīti testa parametri
✅ Reāllaika uzraudzība un reģistrēšana