Beépített teszt (BIT) rendszer előnyei

Áttekintés

A Built-In Test (BIT) rendszer egy átfogó, moduláris és bővíthető tesztelési keretrendszer, amelyet Linux alapú beágyazott rendszerekhez terveztek. Automatizált hardver- és szoftverdiagnosztikát biztosít egy beépülő modulokon alapuló architektúrán keresztül, biztosítva a rendszer megbízhatóságát, integritását és működőképességét.


Főbb előnyök

🛡️ Fokozott rendszermegbízhatóság

  • Proaktív hibaészlelés, mielőtt a hibák hatással lennének a működésre
  • A kritikus rendszererőforrások folyamatos monitorozása
  • Korai figyelmeztető rendszer a hardver esetleges meghibásodására

⚡ Csökkentett állásidő

  • Az automatizált diagnosztika kiküszöböli a manuális teszteléssel járó terheket
  • Az ütemezett tesztek végrehajtása a háttérben fut
  • Azonnali hibajelzés lehetővé teszi a gyors reagálást

📊 Átfogó lefedettség

  • Hardverellenőrzés (PCI, USB, GPIO, soros, CAN, Ethernet)
  • Rendszererőforrás-monitorozás (CPU, memória, lemez)
  • Adatútvonal-ellenőrzés (TCP, CAN busz, soros portok)

🔌 Plug-and-Play architektúra

  • Dinamikus bővítmény betöltés futásidőben
  • Konfigurációvezérelt tesztparaméterek
  • Új tesztek hozzáadásához nincs szükség alapvető rendszermódosításokra

📋 Systemd integráció

  • Natív Linux szolgáltatásként fut
  • Automatikus indítás rendszerindításkor
  • Standard szolgáltatáskezelés ( systemctl start/stop/status )

Teszttípusok és lefedettség

A BIT rendszer három fő tesztkategóriát valósít meg, amelyek összhangban vannak az iparági szabványoknak megfelelő beépített tesztmódszertanokkal:

Bekapcsolási bit (PBIT)

A rendszerindításkor egyszer végrehajtott tesztek a hardver integritásának ellenőrzésére a normál működés megkezdése előtt.

Folyamatos BIT (CBIT)

Normál működés közben rendszeresen lefutó tesztek, amelyek futásidejű hibákat és erőforrás-kimerülést észlelnek.

Gyári bit (FBIT)

Átfogó hardverteszteket alkalmazunk a gyártás és karbantartás során az összes rendszerinterfész validálására.


Tesztösszefoglaló táblázat

Bekapcsolási BIT (PBIT) tesztek

Teszt neve Leírás Frekvencia
pbit_bsp_version Ellenőrzi, hogy a BSP verziója megfelel-e a várt konfigurációnak. Indításkor
pbit_can CAN busz interfész elérhetőségének ellenőrzése Indításkor
pbit_checksum Ellenőrzi a fájlok ellenőrzőösszegeit az integritás szempontjából Indításkor
pbit_cpu_cores Érvényesíti a várható CPU-magok számát Indításkor
pbit_cpu_usage Ellenőrzi, hogy a kezdeti CPU-kihasználtság a korlátokon belül van-e Indításkor
pbit_disk_health Ellenőrzi a lemez SMART állapotát Indításkor
pbit_disk_usage Ellenőrzi a lemezterület elérhetőségét rendszerindításkor Indításkor
pbit_dmesg_check Kritikus hibákat keres a dmesg fájlban Indításkor
pbit_ethernet Ethernet interfész elérhetőségének ellenőrzése Indításkor
pbit_file_checksum Ellenőrzi a kritikus rendszerfájlok integritását Indításkor
pbit_firewall_configuration Ellenőrzi a tűzfalszabályok helyes konfigurálását Indításkor
pbit_gpio GPIO csatlakozók elérhetőségének és állapotának ellenőrzése Indításkor
pbit_gpu_loading Ellenőrzi a GPU illesztőprogramját és a kezdeti betöltést Indításkor
pbit_memory_usage Indításkor ellenőrzi a rendelkezésre álló memóriát Indításkor
pbit_pci_whitelist PCI eszközöket ellenőriz a jóváhagyott fehérlistával szemben Indításkor
pbit_permissions_verification Fájl/könyvtár jogosultságok érvényesítése Indításkor
pbit_power_test Ellenőrzi a tápegység állapotát és feszültségét Indításkor
pbit_selinux_apparmor_status Biztonsági modul állapotának ellenőrzése Indításkor
pbit_serial_ports Soros port elérhetőségének ellenőrzése Indításkor
pbit_ssh_configuration SSH biztonsági konfiguráció érvényesítése Indításkor
pbit_syslog_analysis Kritikus indítási hibákat keres a rendszernaplóban Indításkor
pbit_temperature Ellenőrzi a kezdeti hőmérsékleti értékeket Indításkor
pbit_usb_whitelist USB-eszközöket ellenőriz a jóváhagyott fehérlistán Indításkor

Folyamatos BIT (CBIT) tesztek

Teszt neve Leírás Frekvencia
cbit_bsp_version Figyelemmel kíséri a BSP verziókonzisztenciáját Konfigurálható
cbit_can Figyelemmel kíséri a CAN busz állapotát és a hibaszámlálókat Konfigurálható
cbit_checksum Időszakos fájlintegritás-ellenőrzés Konfigurálható
cbit_cpu_cores Figyelemmel kíséri a CPU-magok elérhetőségét Konfigurálható
cbit_cpu_usage Figyelemmel kíséri a CPU-kihasználtságot a gördülő ablakon keresztül Másodpercenként
cbit_disk_health Figyelemmel kíséri a lemez SMART attribútumait Konfigurálható
cbit_disk_usage Figyelemmel kíséri a lemezhasználatot a küszöbértékekhez képest 30 másodpercenként
cbit_dmesg Figyeli a kernel üzenetpufferét Konfigurálható
cbit_dmesg_check Folyamatos dmesg hibaészlelés Konfigurálható
cbit_ethernet Figyelemmel kíséri az Ethernet-kapcsolat állapotát és hibáit Konfigurálható
cbit_ethernet_status Figyelemmel kíséri az Ethernet-kapcsolat állapotát Konfigurálható
cbit_firewall_configuration Figyelemmel kíséri a tűzfalszabályok integritását Konfigurálható
cbit_gpio Figyelemmel kíséri a GPIO állapotváltozásait Konfigurálható
cbit_gpu_loading GPU-kihasználtság figyelése Konfigurálható
cbit_memory_usage Nyomon követi a memória-fogyasztási mintákat Konfigurálható
cbit_pci_whitelist Figyelemmel kíséri a PCI eszköz változásait Konfigurálható
cbit_permissions Figyelemmel kíséri a fájlengedélyek változásait Konfigurálható
cbit_permissions_verification Folyamatos jogosultságellenőrzés Konfigurálható
cbit_power_consumption Figyelemmel kíséri az energiafogyasztást és a hatékonyságot Konfigurálható
cbit_selinux_apparmor_status Figyelemmel kíséri a biztonsági modul állapotát Konfigurálható
cbit_serial_ports Figyelemmel kíséri a soros port elérhetőségét Konfigurálható
cbit_ssh_configuration SSH konfigurációs változások figyelése Konfigurálható
cbit_syslog_analysis Folyamatos rendszernapló-hibafigyelés Konfigurálható
cbit_temperature Figyelemmel kíséri a hőmérsékleti értékeket és trendeket Konfigurálható
cbit_usb_whitelist Figyelemmel kíséri az USB-eszközök változásait Konfigurálható

Gyári bit (FBIT) tesztek

Teszt neve Leírás Frekvencia
fbit_can_data CAN busz adási/vételi funkciójának tesztelése Konfigurálható
fbit_gpio_data GPIO bemenet/kimenet funkcionalitásának ellenőrzése Konfigurálható
fbit_pci PCI eszközök felsorolása és ellenőrzése Konfigurálható
fbit_serial_data Soros porton keresztüli visszacsatolásos kommunikáció validálása Konfigurálható
fbit_ssd SSD olvasási/írási teljesítményének ellenőrzése Konfigurálható
fbit_system_data Rendszerinformációk gyűjtése Konfigurálható
fbit_tcp_data Ethernet adatútvonalak tesztelése iPerf használatával Konfigurálható
fbit_usb USB-eszköz olvasási/írási ellenőrzése Konfigurálható
fbit_video Videokimenet ellenőrzése Konfigurálható

Összesen: 57 beépített teszt, amelyek hardverellenőrzést, rendszerfelügyeletet és biztonsági ellenőrzést tartalmaznak.


Bővítményarchitektúra

A BIT rendszer egy hatékony bővítményarchitektúrára épül, amely zökkenőmentes bővíthetőséget tesz lehetővé az alapvető rendszerkód módosítása nélkül.

Hogyan működik

A BIT rendszer a Zenoh üzenetküldő köztes szoftvert használja, amely lehetővé teszi a valós idejű teszteredmények eljuttatását a monitorozó kliensekhez, valamint a GVA (Generic Vehicle Architecture) rendszerekkel való zökkenőmentes integrációt protokoll-áthidaláson keresztül.

Üzenetfolyam-architektú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

Részletes üzenetsorozat

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

Protokollhíd részletei

Összetevő Protokoll bemenet Protokoll kimenet Cél
BIT-kezelő Belső Zenoh Közzéteszi a teszteredményeket
BIT grafikus felhasználói felület Zenoh Valós idejű eredményeket jelenít meg
BIT CLI Zenoh Parancssori monitorozás
BIT átjáró Zenoh DDS (BVT) Hidak a járműrendszerekhez
GVA HUMS DDS Egészség- és használatfigyelés

Bővítmény funkciói

Jellemző Leírás
Dinamikus betöltés A bővítmények futásidőben megosztott könyvtárként ( .so ) töltődnek be.
Jellemzőalapú interfész Konzisztens TestRun és TestDetails tulajdonságok minden bővítményhez
Konfigurációs fájlok TOML-alapú konfiguráció tesztenként ( /etc/bit/*.toml )
Verziókövetés Minden bővítmény jelenti a verziót és a build időbélyegét
Visszahívások naplózása Egységes naplózási infrastruktúra minden tesztben
Futásszámlálók Sikeres/sikertelen statisztikák automatikus követése

Új bővítmény létrehozása

Egyéni BIT bővítmény létrehozása egyszerű:

  1. Implementálja a TestRun tulajdonságot:
 impl TestRun for MyCustomTest {
    fn run(&mut self) {
        // Your test logic here
        self.base_test.status = TestStatus::Success;
    }
}
  1. Exportálja a bővítmény felületét:
 #[no_mangle]
pub extern "C" fn create_test() -> Box {
    Box::new(MyCustomTest::new())
}
  1. Konfigurációs fájl létrehozása (opcionális):
 [my_custom_test]
frequency = 60
enabled = true
threshold = 90
  1. Megosztott függvénykönyvtár létrehozása és telepítése a /usr/local/lib/bit_manager/ könyvtárba

Rozsda nyelvi biztonsági funkciók

A BIT rendszer Rust nyelven valósult meg, és páratlan biztonsági garanciákat nyújt, amelyek kritikus fontosságúak a beágyazott és biztonságkritikus rendszerek számára.

Memóriabiztonság

Jellemző Haszon
Nincsenek null mutatók Option A típusok megakadályozzák a null pointer dereferenciákat
Nincs puffer túlcsordulás Határok ellenőrzése minden tömb/vektor hozzáférésnél
Nincs használat utáni ingyenes A tulajdonjog-rendszer garantálja a memória érvényességét
Nincsenek adatversenyek Egyidejű hozzáférési hibák fordítási idejű megelőzése

Miért a Rust a BIT-hez?

🔒 Fordítási idejű biztonság

A Rust fordítási időben számos hibát észlel, amelyek futásidejű hibákat okozhatnak C/C++-ban:

  • Memóriaszivárgások
  • Puffer túlcsordulások
  • Versenyfeltételek
  • Null mutató dereferenciák

⚡ Nulla költségű absztrakciók

A magas szintű biztonsági funkciók hatékony gépi kóddá fordulnak futásidejű többletterhelés nélkül , a C/C++ teljesítményével megegyezően.

🔧 Félelem nélküli párhuzamosság

A tulajdonlási modell lehetővé teszi a biztonságos, többszálú tesztfuttatást adatversenyek nélkül:

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

📦 Modern függőségkezelés

  • A rakománycsomag -kezelő biztosítja a reprodukálható összeállításokat
  • Automatizált függőségek feloldása
  • Beépített tesztelési keretrendszer

🛡️ Típus-biztonságos konfiguráció

A konfigurációelemzés a Rust típusrendszerét használja ki a hibák korai észlelésére:

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

Biztonsági statisztikák

Metrika Rozsda vs. C/C++
Memóriabiztonsági hibák Fordítási időben kiküszöbölve
Megelőzött CVE sebezhetőségi osztályok A gyakori sebezhetőségek ~70%-a
Futásidejű null mutató összeomlik Lehetetlen
Szálbiztonsági szabálysértések Fordítási időben elkapva

Integráció és telepítés

Systemd szolgáltatás

 # Enable automatic startup
sudo systemctl enable bit_manager

# Start the service
sudo systemctl start bit_manager

# Check status
sudo systemctl status bit_manager

Debian csomag telepítése

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

Konfigurációs útvonalak

Útvonal Cél
/etc/bit/ Tesztkonfigurációs fájlok (TOML)
/usr/local/lib/bit_manager/ Megosztott bővítménykönyvtárak
/var/log/bit_manager/ Naplófájlok

Ellenőrzés és felügyelet

A bit_inspect segédprogram részletes információkat nyújt a betöltött tesztekről:

 # List all available tests
bit_inspect

# Get detailed information about a specific test
bit_inspect cbit_disk_usage

Példa kimenet:

 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)

Összefoglalás

A BIT rendszer a következőket kínálja:

Átfogó hardver- és szoftverdiagnosztika
Bővíthető bővítményarchitektúra egyedi tesztekhez
Memóriabiztos megvalósítás Rustban
Ipari szabvány PBIT/CBIT/FBIT módszertan
Natív Linux/systemd integráció
Konfigurációvezérelt tesztparaméterek
Valós idejű monitorozás és naplózás