Sisseehitatud testimissüsteemi (BIT) eelised
Ülevaade
Sisseehitatud testimise (BIT) süsteem on terviklik, modulaarne ja laiendatav testimisraamistik, mis on loodud Linuxi-põhistele manussüsteemidele. See pakub pluginapõhise arhitektuuri kaudu automatiseeritud riist- ja tarkvaradiagnostikat, tagades süsteemi töökindluse, terviklikkuse ja töövalmiduse.
Peamised eelised
🛡️ Täiustatud süsteemi töökindlus
- Ennetav rikete tuvastamine enne , kui need mõjutavad tegevust
- Kriitiliste süsteemiressursside pidev jälgimine
- Varajase hoiatuse süsteem riistvara võimaliku halvenemise kohta
⚡ Vähendatud seisakuaeg
- Automatiseeritud diagnostika kõrvaldab käsitsi testimise kulud
- Ajastatud testide käivitamine toimub taustal
- Kohene rikketeade võimaldab kiiret reageerimist
📊 Põhjalik kindlustuskaitse
- Riistvara valideerimine (PCI, USB, GPIO, jadaport, CAN, Ethernet)
- Süsteemiressursside jälgimine (protsessor, mälu, ketas)
- Andmetee kontrollimine (TCP, CAN-siin, jadapordid)
🔌 Plug-and-Play arhitektuur
- Dünaamiline plugin laadib käitusajal
- Konfiguratsioonipõhised testiparameetrid
- Uute testide lisamiseks pole vaja põhisüsteemi muuta
📋 Süsteemi integratsioon
- Töötab natiivse Linuxi teenusena
- Automaatne käivitamine alglaadimisel
- Standardne teenusehaldus (
systemctl start/stop/status)
Testitüübid ja ulatus
BIT-süsteem rakendab kolme peamist testikategooriat, mis on kooskõlas tööstusharu standardsete sisseehitatud testimismeetoditega:
Sisselülitusbitt (PBIT)
Süsteemi käivitamisel üks kord teostatud testid, et kontrollida riistvara terviklikkust enne tavapärase töö alustamist.
Pidev bitt (CBIT)
Testid, mis töötavad perioodiliselt tavapärase töö ajal, et tuvastada käitusaja vigu ja ressursside ammendumist.
Tehase bitt (FBIT)
Tootmise ja hoolduse ajal kasutatakse kõigi süsteemiliideste valideerimiseks põhjalikke riistvarateste.
Testi kokkuvõtte tabel
Sisselülitus-BIT (PBIT) testid
| Testi nimi | Kirjeldus | Sagedus |
|---|---|---|
pbit_bsp_version | Kontrollib, kas BSP versioon vastab oodatavale konfiguratsioonile | Käivitamisel |
pbit_can | Kontrollib CAN-siini liidese saadavust | Käivitamisel |
pbit_checksum | Kontrollib failide kontrollsummasid terviklikkuse osas | Käivitamisel |
pbit_cpu_cores | Kinnitab eeldatavat protsessori tuumade arvu | Käivitamisel |
pbit_cpu_usage | Kontrollib, kas esialgne protsessori kasutus on piirides | Käivitamisel |
pbit_disk_health | Kinnitab ketta SMART-seisundit | Käivitamisel |
pbit_disk_usage | Kontrollib kettaruumi saadavust käivitamisel | Käivitamisel |
pbit_dmesg_check | Skannib dmesg-i kriitiliste vigade suhtes | Käivitamisel |
pbit_ethernet | Kontrollib Etherneti liidese saadavust | Käivitamisel |
pbit_file_checksum | Kontrollib kriitiliste süsteemifailide terviklikkust | Käivitamisel |
pbit_firewall_configuration | Kontrollib, kas tulemüürireeglid on õigesti konfigureeritud | Käivitamisel |
pbit_gpio | Kontrollib GPIO pinide saadavust ja olekut | Käivitamisel |
pbit_gpu_loading | Kontrollib GPU draiverit ja esialgset laadimist | Käivitamisel |
pbit_memory_usage | Kontrollib käivitamisel saadaolevat mälu | Käivitamisel |
pbit_pci_whitelist | Valideerib PCI-seadmeid kinnitatud valge nimekirja alusel | Käivitamisel |
pbit_permissions_verification | Kinnitab faili/kataloogi õigusi | Käivitamisel |
pbit_power_test | Kontrollib toiteallika olekut ja pingeid | Käivitamisel |
pbit_selinux_apparmor_status | Turvamooduli oleku valideerimine | Käivitamisel |
pbit_serial_ports | Kontrollib jadapordi saadavust | Käivitamisel |
pbit_ssh_configuration | SSH turvakonfiguratsiooni valideerimine | Käivitamisel |
pbit_syslog_analysis | Skannib süsteemilogi kriitiliste käivitusvigade suhtes | Käivitamisel |
pbit_temperature | Kontrollib esialgseid termilisi näitu | Käivitamisel |
pbit_usb_whitelist | Kontrollib USB-seadmeid kinnitatud valge nimekirja alusel | Käivitamisel |
Pidevad BIT (CBIT) testid
| Testi nimi | Kirjeldus | Sagedus |
|---|---|---|
cbit_bsp_version | Jälgib BSP versiooni järjepidevust | Konfigureeritav |
cbit_can | Jälgib CAN-siini tervist ja vealoendureid | Konfigureeritav |
cbit_checksum | Perioodiline failide terviklikkuse kontrollimine | Konfigureeritav |
cbit_cpu_cores | Jälgib protsessori tuumade saadavust | Konfigureeritav |
cbit_cpu_usage | Jälgib protsessori kasutamist jooksva akna jooksul | Iga 1 sekundi järel |
cbit_disk_health | Jälgib ketta SMART-atribuute | Konfigureeritav |
cbit_disk_usage | Jälgib ketta kasutamist läviväärtuste suhtes | Iga 30 sekundi järel |
cbit_dmesg | Jälgib kerneli sõnumipuhvrit | Konfigureeritav |
cbit_dmesg_check | Pidev dmesg veatuvastus | Konfigureeritav |
cbit_ethernet | Jälgib Etherneti lingi olekut ja vigu | Konfigureeritav |
cbit_ethernet_status | Jälgib Etherneti ühenduse olekut | Konfigureeritav |
cbit_firewall_configuration | Jälgib tulemüüri reeglite terviklikkust | Konfigureeritav |
cbit_gpio | Jälgib GPIO oleku muutusi | Konfigureeritav |
cbit_gpu_loading | Jälgib GPU kasutamist | Konfigureeritav |
cbit_memory_usage | Jälgib mälu tarbimise mustreid | Konfigureeritav |
cbit_pci_whitelist | Jälgib PCI-seadme muudatusi | Konfigureeritav |
cbit_permissions | Jälgib failiõiguste muudatusi | Konfigureeritav |
cbit_permissions_verification | Pidev lubade valideerimine | Konfigureeritav |
cbit_power_consumption | Jälgib energiatarvet ja efektiivsust | Konfigureeritav |
cbit_selinux_apparmor_status | Jälgib turvamooduli olekut | Konfigureeritav |
cbit_serial_ports | Jälgib jadapordi saadavust | Konfigureeritav |
cbit_ssh_configuration | Jälgib SSH konfiguratsiooni muudatusi | Konfigureeritav |
cbit_syslog_analysis | Pidev süsteemilogi vigade jälgimine | Konfigureeritav |
cbit_temperature | Jälgib termilisi näite ja trende | Konfigureeritav |
cbit_usb_whitelist | Jälgib USB-seadme muudatusi | Konfigureeritav |
Tehase bititestid (FBIT)
| Testi nimi | Kirjeldus | Sagedus |
|---|---|---|
fbit_can_data | Testib CAN-siini saatmis-/vastuvõtufunktsiooni | Konfigureeritav |
fbit_gpio_data | Valideerib GPIO sisend-/väljundfunktsionaalsust | Konfigureeritav |
fbit_pci | PCI-seadmete loendamine ja kontrollimine | Konfigureeritav |
fbit_serial_data | Valideerib jadapordi loopback-sidet | Konfigureeritav |
fbit_ssd | SSD lugemis-/kirjutamisvõime valideerimine | Konfigureeritav |
fbit_system_data | Süsteemiteabe kogumine | Konfigureeritav |
fbit_tcp_data | Testib Etherneti andmeteid iPerfi abil | Konfigureeritav |
fbit_usb | USB-seadme lugemise/kirjutamise kontrollimine | Konfigureeritav |
fbit_video | Videoväljundi kontrollimine | Konfigureeritav |
Kokku: 57 sisseehitatud testi, mis hõlmavad riistvara valideerimist, süsteemi jälgimist ja turvalisuse kontrollimist.
Pluginate arhitektuur
BIT-süsteem on üles ehitatud võimsale pluginate arhitektuurile , mis võimaldab sujuvat laiendatavust ilma põhisüsteemi koodi muutmata.
Kuidas see toimib
BIT-süsteem kasutab sõnumivahetustarkvarana Zenoh'i , mis võimaldab reaalajas testitulemuste levitamist jälgimisklientidele ja sujuvat integratsiooni GVA (üldise sõidukiarhitektuuri) süsteemidega protokollide sillamise kaudu.
Sõnumivoo arhitektuur
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
Detailne sõnumijada
Protokollisilla üksikasjad
| Komponent | Protokoll sisse | Protokoll välja | Eesmärk |
|---|---|---|---|
| BIT-haldur | Sisemine | Zenoh | Avaldab testi tulemused |
| BIT GUI | Zenoh | — | Kuvab reaalajas tulemusi |
| BIT CLI | Zenoh | — | Käsurea jälgimine |
| BIT-värav | Zenoh | DDS (koguväärtuslik lisandväärtus) | Sillad sõidukisüsteemidesse |
| GVA HUMS | DDS | — | Tervise ja kasutuse jälgimine |
Plugina funktsioonid
| Funktsioon | Kirjeldus |
|---|---|
| Dünaamiline laadimine | Pluginad laaditakse käitusajal jagatud teekidena ( .so ). |
| Tunnustepõhine liides | Kõigi pluginate ühtsed TestRun ja TestDetails omadused |
| Konfiguratsioonifailid | TOML-põhine konfiguratsioon testi kohta ( /etc/bit/*.toml ) |
| Versioonide jälgimine | Iga plugin annab teada versiooni ja ehituse ajatempli |
| Tagasihelistuste logimine | Ühtne logimise infrastruktuur kõigis testides |
| Jooksuloendurid | Läbimise/läbikukkumise statistika automaatne jälgimine |
Uue plugina loomine
Kohandatud BIT-plugina loomine on lihtne:
- Rakenda
TestRuntunnus:
impl TestRun for MyCustomTest {
fn run(&mut self) {
// Your test logic here
self.base_test.status = TestStatus::Success;
}
}- Ekspordi plugina liides:
#[no_mangle]
pub extern "C" fn create_test() -> Box {
Box::new(MyCustomTest::new())
} - Loo konfiguratsioonifail (valikuline):
[my_custom_test]
frequency = 60
enabled = true
threshold = 90- Jagatud teegi loomine ja juurutamine kausta
/usr/local/lib/bit_manager/
Rooste keele turvaelemendid
BIT-süsteem on rakendatud Rustis , pakkudes enneolematuid ohutusgarantiisid, mis on kriitilise tähtsusega manussüsteemidele ja ohutuskriitilistele süsteemidele.
Mälu turvalisus
| Funktsioon | Kasu |
|---|---|
| Null-viiteid pole | Option tüübid takistavad null-pointeri tagasiviitamist |
| Puhvri ületäitumist ei toimu | Piiride kontrollimine kõigil massiivi/vektori juurdepääsudel |
| Pärast kasutamist tasuta | Omandisüsteem garanteerib mälu kehtivuse |
| Andmevõistlusi pole | Samaaegse juurdepääsu vigade ennetamine kompileerimise ajal |
Miks valida Rust BITi jaoks?
🔒 Kompileerimisaegne ohutus
Rust püüab kompileerimise ajal kinni terveid vigade kategooriaid, mis võivad C/C++-s põhjustada käitusaja tõrkeid:
- Mälu lekked
- Puhvri ületäitumine
- Võistlustingimused
- Null-pointeri viited
⚡ Nullkuluga abstraktsioonid
Kõrgetasemelised turvafunktsioonid kompileeruvad tõhusaks masinkoodiks ilma käitusaja lisakuludeta , võrdsustades C/C++ jõudlust.
🔧 Kartmatu samaaegsus
Omandimudel võimaldab turvalist mitmelõimelist testide käivitamist ilma andmevõistlusteta:
// Thread-safe shared state with Arc>
let shared_state = Arc::new(Mutex::new(TestState::new())); 📦 Kaasaegne sõltuvuste haldus
- Kaubapaketi haldur tagab reprodutseeritavate konstruktsioonide
- Automatiseeritud sõltuvuste lahendamine
- Sisseehitatud testimisraamistik
🛡️ Tüübikindel konfiguratsioon
Konfiguratsiooni parsimine kasutab Rusti tüübisüsteemi vigade varajaseks avastamiseks:
let threshold: f32 = config.get("threshold")?; // Type-checked at compile timeOhutusstatistika
| Mõõdik | Rooste vs C/C++ |
|---|---|
| Mälu turvavead | Kompileerimise ajal elimineeritud |
| CVE haavatavusklassid ennetatud | ~70% levinud haavatavustest |
| Käitusaja null-pointer jookseb kokku | Võimatu |
| Lõimede ohutuse rikkumised | Kompileerimise ajal tabatud |
Integratsioon ja juurutamine
Süsteemitud teenus
# Enable automatic startup
sudo systemctl enable bit_manager
# Start the service
sudo systemctl start bit_manager
# Check status
sudo systemctl status bit_managerDebiani paketi paigaldamine
cargo deb -p bit_manager
sudo dpkg -i target/debian/bit_manager_*.debKonfiguratsiooniteed
| Tee | Eesmärk |
|---|---|
/etc/bit/ | Testi konfiguratsioonifailid (TOML) |
/usr/local/lib/bit_manager/ | Pluginate jagatud teegid |
/var/log/bit_manager/ | Logifailid |
Kontroll ja seire
Utiliit bit_inspect pakub laaditud testide kohta üksikasjalikku teavet:
# List all available tests
bit_inspect
# Get detailed information about a specific test
bit_inspect cbit_disk_usageNäidisväljund:
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) Kokkuvõte
BIT-süsteem pakub:
✅ Põhjalik riist- ja tarkvara diagnostika
✅ Laiendatav pluginate arhitektuur kohandatud testide jaoks
✅ Mälukindel implementatsioon Rustis
✅ Tööstusstandardi PBIT/CBIT/FBIT metoodika
✅ Natiivne Linuxi/systemd integratsioon
✅ Konfiguratsioonipõhised testiparameetrid
✅ Reaalajas jälgimine ja logimine