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
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
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:
-
TestRunözelliğini uygulayın:
impl TestRun for MyCustomTest {
fn run(&mut self) {
// Your test logic here
self.base_test.status = TestStatus::Success;
}
}- Eklenti arayüzünü dışa aktarın:
#[no_mangle]
pub extern "C" fn create_test() -> Box {
Box::new(MyCustomTest::new())
} - Yapılandırma dosyası oluşturun (isteğe bağlı):
[my_custom_test]
frequency = 60
enabled = true
threshold = 90- 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 timeGü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_managerDebian Paket Kurulumu
cargo deb -p bit_manager
sudo dpkg -i target/debian/bit_manager_*.debYapı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