Dahili Test (BIT) Sisteminin Faydaları

Genel Bakış

Dahili Test (BIT) sistemi, Linux tabanlı gömülü sistemler için tasarlanmış kapsamlı, modüler ve genişletilebilir bir test çerçevesidir. Eklenti tabanlı bir mimari aracılığıyla otomatik donanım ve yazılım teşhisi sağlayarak sistem güvenilirliğini, bütünlüğünü ve operasyonel hazırlığını güvence altına alır.


Başlıca Faydalar

🛡️ Geliştirilmiş Sistem Güvenilirliği

  • Arızaların operasyonları etkilemeden önce proaktif arıza tespiti
  • Kritik sistem kaynaklarının sürekli izlenmesi
  • Potansiyel donanım arızasına karşı erken uyarı sistemi

⚡ Arıza Süresinde Azalma

  • Otomatik teşhis, manuel testlerin getirdiği ek maliyeti ortadan kaldırır.
  • Planlanmış test yürütme işlemleri arka planda çalışır.
  • Anında arıza bildirimi, hızlı müdahale imkanı sağlar.

📊 Kapsamlı Kapsam

  • Donanım doğrulama (PCI, USB, GPIO, Seri, CAN, Ethernet)
  • Sistem kaynak izleme (CPU, Bellek, Disk)
  • Veri yolu doğrulaması (TCP, CAN veri yolu, Seri portlar)

🔌 Tak ve Çalıştır Mimarisi

  • Çalışma zamanında dinamik eklenti yükleme
  • Yapılandırma odaklı test parametreleri
  • Yeni testler eklemek için temel sistemde herhangi bir değişiklik yapılması gerekmez.

📋 Systemd Entegrasyonu

  • Yerel bir Linux hizmeti olarak çalışır.
  • önyüklemede otomatik başlatma
  • Standart servis yönetimi ( systemctl start/stop/status )

Test Türleri ve Kapsamı

BIT sistemi, sektör standardı Dahili Test metodolojileriyle uyumlu üç temel test kategorisini uygulamaktadır:

Güç Açma Biti (PBIT)

Sistemin normal çalışması başlamadan önce donanım bütünlüğünü doğrulamak için sistem başlatıldığında bir kez testler yürütülür.

Sürekli Bit (CBIT)

Çalışma sırasında periyodik olarak çalıştırılan ve çalışma hatalarını ve kaynak tükenmesini tespit eden testler.

Fabrika BIT (FBIT)

Üretim ve bakım sırasında tüm sistem arayüzlerini doğrulamak için kapsamlı donanım testleri kullanılır.


Test Özeti Tablosu

Güç Açma Bit (PBIT) Testleri

Test Adı Tanım Sıklık
pbit_bsp_version BSP sürümünün beklenen yapılandırmayla eşleştiğini doğrular. Bir kez başlangıç aşamasında
pbit_can CAN veri yolu arayüzünün kullanılabilirliğini doğrular. Bir kez başlangıç aşamasında
pbit_checksum Dosyaların bütünlüğünü doğrulamak için dosya sağlama toplamlarını kontrol eder. Bir kez başlangıç aşamasında
pbit_cpu_cores Beklenen CPU çekirdek sayısını doğrular. Bir kez başlangıç aşamasında
pbit_cpu_usage İlk CPU kullanımının sınırlar dahilinde olup olmadığını kontrol eder. Bir kez başlangıç aşamasında
pbit_disk_health Diskin SMART sağlık durumunu doğrular. Bir kez başlangıç aşamasında
pbit_disk_usage Önyükleme sırasında disk alanı kullanılabilirliğini kontrol eder. Bir kez başlangıç aşamasında
pbit_dmesg_check dmesg çıktısını kritik hatalar açısından tarar. Bir kez başlangıç aşamasında
pbit_ethernet Ethernet arayüzünün kullanılabilirliğini doğrular. Bir kez başlangıç aşamasında
pbit_file_checksum Kritik sistem dosyalarının bütünlüğünü doğrular. Bir kez başlangıç aşamasında
pbit_firewall_configuration Güvenlik duvarı kurallarının doğru yapılandırıldığını doğrular. Bir kez başlangıç aşamasında
pbit_gpio GPIO pinlerinin kullanılabilirliğini ve durumunu doğrular. Bir kez başlangıç aşamasında
pbit_gpu_loading GPU sürücüsünü ve ilk yüklemeyi kontrol eder. Bir kez başlangıç aşamasında
pbit_memory_usage Başlangıçta kullanılabilir belleği doğrular. Bir kez başlangıç aşamasında
pbit_pci_whitelist PCI cihazlarını onaylanmış beyaz listeye göre doğrular. Bir kez başlangıç aşamasında
pbit_permissions_verification Dosya/klasör izinlerini doğrular. Bir kez başlangıç aşamasında
pbit_power_test Güç kaynağının durumunu ve voltajlarını kontrol eder. Bir kez başlangıç aşamasında
pbit_selinux_apparmor_status Güvenlik modülü durumunu doğrular. Bir kez başlangıç aşamasında
pbit_serial_ports Seri portun kullanılabilirliğini doğrular. Bir kez başlangıç aşamasında
pbit_ssh_configuration SSH güvenlik yapılandırmasını doğrular. Bir kez başlangıç aşamasında
pbit_syslog_analysis Sistem günlüklerini kritik başlatma hataları açısından tarar. Bir kez başlangıç aşamasında
pbit_temperature İlk termal ölçümleri kontrol eder. Bir kez başlangıç aşamasında
pbit_usb_whitelist USB cihazlarını onaylanmış beyaz listeye göre doğrular. Bir kez başlangıç aşamasında

Sürekli BIT (CBIT) Testleri

Test Adı Tanım Sıklık
cbit_bsp_version BSP sürüm tutarlılığını izler. Yapılandırılabilir
cbit_can CAN veri yolu sağlığını ve hata sayaçlarını izler. Yapılandırılabilir
cbit_checksum Periyodik dosya bütünlüğü doğrulaması Yapılandırılabilir
cbit_cpu_cores CPU çekirdeği kullanılabilirliğini izler. Yapılandırılabilir
cbit_cpu_usage Kaydırılan pencere üzerinden CPU kullanımını izler. Her 1 saniyede bir
cbit_disk_health Disk SMART özelliklerini izler. Yapılandırılabilir
cbit_disk_usage Disk kullanımını eşik değerlere göre izler. Her 30 saniyede bir
cbit_dmesg Çekirdek mesaj arabelleğini izler. Yapılandırılabilir
cbit_dmesg_check Sürekli dmesg hata tespiti Yapılandırılabilir
cbit_ethernet Ethernet bağlantı durumunu ve hatalarını izler. Yapılandırılabilir
cbit_ethernet_status Ethernet bağlantı durumunu izler. Yapılandırılabilir
cbit_firewall_configuration Güvenlik duvarı kurallarının bütünlüğünü izler. Yapılandırılabilir
cbit_gpio GPIO durum değişikliklerini izler. Yapılandırılabilir
cbit_gpu_loading GPU kullanımını izler. Yapılandırılabilir
cbit_memory_usage Bellek tüketim modellerini izler. Yapılandırılabilir
cbit_pci_whitelist PCI aygıt değişikliklerini izler. Yapılandırılabilir
cbit_permissions Dosya izinlerindeki değişiklikleri izler. Yapılandırılabilir
cbit_permissions_verification Sürekli izin doğrulama Yapılandırılabilir
cbit_power_consumption Güç tüketimini ve verimliliği izler. Yapılandırılabilir
cbit_selinux_apparmor_status Güvenlik modülü durumunu izler. Yapılandırılabilir
cbit_serial_ports Seri port kullanılabilirliğini izler. Yapılandırılabilir
cbit_ssh_configuration SSH yapılandırma değişikliklerini izler. Yapılandırılabilir
cbit_syslog_analysis Sürekli syslog hata izleme Yapılandırılabilir
cbit_temperature Termal değerleri ve eğilimleri izler. Yapılandırılabilir
cbit_usb_whitelist USB aygıt değişikliklerini izler. Yapılandırılabilir

Fabrika Bit (FBIT) Testleri

Test Adı Tanım Sıklık
fbit_can_data CAN veri yolu iletim/alıma işlevselliğini test eder. Yapılandırılabilir
fbit_gpio_data GPIO giriş/çıkış işlevselliğini doğrular. Yapılandırılabilir
fbit_pci PCI aygıt numaralandırma ve doğrulama Yapılandırılabilir
fbit_serial_data Seri port geri döngü iletişimini doğrular. Yapılandırılabilir
fbit_ssd SSD okuma/yazma performansı doğrulaması Yapılandırılabilir
fbit_system_data Sistem bilgisi toplama Yapılandırılabilir
fbit_tcp_data iPerf kullanarak Ethernet veri yollarını test eder. Yapılandırılabilir
fbit_usb USB aygıtı okuma/yazma doğrulaması Yapılandırılabilir
fbit_video Video çıkışı doğrulaması Yapılandırılabilir

Toplam: Donanım doğrulama, sistem izleme ve güvenlik doğrulamasını kapsayan 57 adet dahili test .


Eklenti Mimarisi

BIT sistemi, temel sistem kodunu değiştirmeden sorunsuz genişletilebilirlik sağlayan güçlü bir eklenti mimarisi üzerine kurulmuştur.

Nasıl Çalışır

BIT sistemi, Zenoh'u mesajlaşma ara yazılımı olarak kullanır; bu sayede test sonuçlarının izleme istemcilerine gerçek zamanlı olarak dağıtılması ve protokol köprüleme yoluyla GVA (Genel Araç Mimarisi) sistemleriyle sorunsuz entegrasyon sağlanır.

Mesaj Akışı Mimarisi

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

Ayrıntılı Mesaj Dizisi

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

Protokol Köprüsü Ayrıntıları

Bileşen Protokolde Protokol Çıkışı Amaç
BIT Yöneticisi Dahili Zenoh Test sonuçlarını yayınlar.
BIT GUI Zenoh Gerçek zamanlı sonuçları gösterir.
BIT CLI Zenoh Komut satırı izleme
BIT Ağ Geçidi Zenoh DDS (GVA) Araç sistemlerine köprüler
GVA HUMS DDS Sağlık ve Kullanım İzleme

Eklenti Özellikleri

Özellik Tanım
Dinamik Yükleme Eklentiler, çalışma zamanında paylaşımlı kütüphaneler ( .so ) olarak yüklenir.
Özellik Tabanlı Arayüz Tüm eklentiler için tutarlı TestRun ve TestDetails özellikleri.
Yapılandırma Dosyaları Her test için TOML tabanlı yapılandırma ( /etc/bit/*.toml )
Sürüm Takibi Her eklenti sürüm ve derleme zaman damgasını bildirir.
Geri Çağrıların Kaydedilmesi Tüm testlerde birleşik günlük kaydı altyapısı
Koşu Sayaçları Geçme/kalma istatistiklerinin otomatik takibi

Yeni Bir Eklenti Oluşturma

Özel bir BIT eklentisi oluşturmak oldukça kolaydır:

  1. TestRun özelliğini uygulayın:
 impl TestRun for MyCustomTest {
    fn run(&mut self) {
        // Your test logic here
        self.base_test.status = TestStatus::Success;
    }
}
  1. Eklenti arayüzünü dışa aktarın:
 #[no_mangle]
pub extern "C" fn create_test() -> Box {
    Box::new(MyCustomTest::new())
}
  1. Yapılandırma dosyası oluşturun (isteğe bağlı):
 [my_custom_test]
frequency = 60
enabled = true
threshold = 90
  1. Paylaşımlı kütüphaneyi /usr/local/lib/bit_manager/ dizinine derleyin ve dağıtın .

Rust Dil Güvenlik Özellikleri

BIT sistemi Rust dilinde geliştirilmiştir ve gömülü sistemler ile güvenlik açısından kritik sistemler için benzersiz güvenlik garantileri sunmaktadır.

Bellek Güvenliği

Özellik Fayda
Boş İşaretçiler Yok Option Türler, boş işaretçi referanssızlaştırmasını engeller.
Tampon Taşması Yok Tüm dizi/vektör erişimlerinde sınır kontrolü.
Kullanım Sonrası Ücretsiz Sahiplik sistemi, hafızanın geçerliliğini garanti eder.
Veri Yarışları Yok Eş zamanlı erişim hatalarının derleme zamanında önlenmesi

BIT için Rust neden?

🔒 Derleme Süresi Güvenliği

Rust, C/C++'da çalışma zamanı hatalarına neden olacak birçok hata kategorisini derleme zamanında yakalar:

  • Bellek sızıntıları
  • Tampon taşmaları
  • Yarış koşulları
  • Boş işaretçi referanssızlaştırmaları

⚡ Sıfır Maliyetli Soyutlamalar

Üst düzey güvenlik özellikleri , çalışma zamanı ek yükü olmadan verimli makine koduna derlenir ve C/C++ performansıyla eşleşir.

🔧 Korkusuz Eşzamanlılık

Sahiplik modeli, veri yarışları olmadan güvenli çoklu iş parçacıklı test yürütülmesini sağlar:

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

📦 Modern Bağımlılık Yönetimi

  • Cargo paket yöneticisi, tekrarlanabilir derlemeler sağlar.
  • Otomatik bağımlılık çözümü
  • Dahili test çerçevesi

🛡️ Tür Güvenli Yapılandırma

Yapılandırma ayrıştırma işlemi, hataları erken aşamada yakalamak için Rust'ın tip sisteminden yararlanır:

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

Güvenlik İstatistikleri

Metrik Rust ile C/C++ karşılaştırması
Bellek güvenliği hataları Derleme sırasında elendi
CVE güvenlik açığı sınıfları engellendi ~%70 oranında yaygın güvenlik açıkları
Çalışma zamanı boş işaretçi hatası İmkansız
İplik güvenliği ihlalleri Derleme sırasında yakalandı

Entegrasyon ve Dağıtım

Systemd Hizmeti

 # Enable automatic startup
sudo systemctl enable bit_manager

# Start the service
sudo systemctl start bit_manager

# Check status
sudo systemctl status bit_manager

Debian Paket Kurulumu

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

Yapılandırma Yolları

Yol Amaç
/etc/bit/ Test yapılandırma dosyaları (TOML)
/usr/local/lib/bit_manager/ Eklenti paylaşımlı kütüphaneleri
/var/log/bit_manager/ Günlük dosyaları

Denetim ve İzleme

bit_inspect yardımcı programı, yüklenen testler hakkında ayrıntılı bilgi sağlar:

 # List all available tests
bit_inspect

# Get detailed information about a specific test
bit_inspect cbit_disk_usage

Örnek Çıktı:

 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)

Özet

BIT sistemi şunları sunar:

Kapsamlı donanım ve yazılım teşhisi
Özel testler için genişletilebilir eklenti mimarisi
Rust dilinde bellek açısından güvenli uygulama
Endüstri standardı PBIT/CBIT/FBIT metodolojisi
Yerel Linux/systemd entegrasyonu
Yapılandırma odaklı test parametreleri
Gerçek zamanlı izleme ve kayıt tutma