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

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

Detalizēta ziņojumu secība

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

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:

  1. Ieviesiet TestRun īpašību:
 impl TestRun for MyCustomTest {
    fn run(&mut self) {
        // Your test logic here
        self.base_test.status = TestStatus::Success;
    }
}
  1. Eksportēt spraudņa saskarni:
 #[no_mangle]
pub extern "C" fn create_test() -> Box {
    Box::new(MyCustomTest::new())
}
  1. Izveidojiet konfigurācijas failu (pēc izvēles):
 [my_custom_test]
frequency = 60
enabled = true
threshold = 90
  1. 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 time

Drošī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_manager

Debian pakotnes instalēšana

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

Konfigurā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_usage

Izvades 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