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
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
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ű:
- Implementálja a
TestRuntulajdonságot:
impl TestRun for MyCustomTest {
fn run(&mut self) {
// Your test logic here
self.base_test.status = TestStatus::Success;
}
}- Exportálja a bővítmény felületét:
#[no_mangle]
pub extern "C" fn create_test() -> Box {
Box::new(MyCustomTest::new())
} - Konfigurációs fájl létrehozása (opcionális):
[my_custom_test]
frequency = 60
enabled = true
threshold = 90- 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 timeBiztonsá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_managerDebian csomag telepítése
cargo deb -p bit_manager
sudo dpkg -i target/debian/bit_manager_*.debKonfigurá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_usagePé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