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

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

Detailne sõnumijada

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

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:

  1. Rakenda TestRun tunnus:
 impl TestRun for MyCustomTest {
    fn run(&mut self) {
        // Your test logic here
        self.base_test.status = TestStatus::Success;
    }
}
  1. Ekspordi plugina liides:
 #[no_mangle]
pub extern "C" fn create_test() -> Box {
    Box::new(MyCustomTest::new())
}
  1. Loo konfiguratsioonifail (valikuline):
 [my_custom_test]
frequency = 60
enabled = true
threshold = 90
  1. 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 time

Ohutusstatistika

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_manager

Debiani paketi paigaldamine

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

Konfiguratsiooniteed

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_usage

Nä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