Lợi ích của hệ thống kiểm tra tích hợp (BIT)
Tổng quan
Hệ thống Kiểm thử Tích hợp (BIT) là một khung kiểm thử toàn diện, mô-đun và có khả năng mở rộng, được thiết kế cho các hệ thống nhúng dựa trên Linux. Nó cung cấp khả năng chẩn đoán phần cứng và phần mềm tự động thông qua kiến trúc dựa trên plugin, đảm bảo độ tin cậy, tính toàn vẹn và khả năng sẵn sàng hoạt động của hệ thống.
Lợi ích chính
🛡️ Tăng cường độ tin cậy của hệ thống
- Phát hiện lỗi chủ động trước khi sự cố ảnh hưởng đến hoạt động.
- Giám sát liên tục các nguồn lực hệ thống quan trọng.
- Hệ thống cảnh báo sớm về khả năng hư hỏng phần cứng.
⚡ Giảm thiểu thời gian ngừng hoạt động
- Chẩn đoán tự động giúp loại bỏ chi phí kiểm tra thủ công.
- Quá trình thực thi kiểm thử theo lịch trình chạy ngầm.
- Thông báo lỗi tức thì cho phép phản hồi nhanh chóng.
📊 Phạm vi phủ sóng toàn diện
- Kiểm tra phần cứng (PCI, USB, GPIO, Serial, CAN, Ethernet)
- Giám sát tài nguyên hệ thống (CPU, Bộ nhớ, Ổ đĩa)
- Xác minh đường dẫn dữ liệu (TCP, bus CAN, cổng nối tiếp)
🔌 Kiến trúc cắm và chạy
- Tải plugin động trong thời gian chạy
- Các tham số kiểm thử dựa trên cấu hình
- Không cần sửa đổi hệ thống cốt lõi để thêm các bài kiểm tra mới.
📋 Tích hợp Systemd
- Chạy như một dịch vụ Linux gốc
- Tự động khởi động khi bật máy.
- Quản lý dịch vụ tiêu chuẩn (
systemctl start/stop/status)
Các loại kiểm thử và phạm vi kiểm thử
Hệ thống BIT triển khai ba loại kiểm thử chính phù hợp với các phương pháp Kiểm thử Tích hợp (Built-In Test) tiêu chuẩn ngành:
BIT khi khởi động (PBIT)
Các bài kiểm tra được thực hiện một lần khi hệ thống khởi động để xác minh tính toàn vẹn của phần cứng trước khi các hoạt động bình thường bắt đầu.
Giao dịch liên tục (CBIT)
Các bài kiểm tra được chạy định kỳ trong quá trình hoạt động bình thường để phát hiện lỗi trong quá trình vận hành và tình trạng cạn kiệt tài nguyên.
Mã số thuế nhà máy (FBIT)
Các bài kiểm tra phần cứng toàn diện được sử dụng trong quá trình sản xuất và bảo trì để xác thực tất cả các giao diện hệ thống.
Bảng tóm tắt kết quả kiểm tra
Kiểm tra BIT khi khởi động (PBIT)
| Tên bài kiểm tra | Sự miêu tả | Tính thường xuyên |
|---|---|---|
pbit_bsp_version | Xác thực phiên bản BSP khớp với cấu hình dự kiến. | Khi bắt đầu khởi động |
pbit_can | Kiểm tra tính khả dụng của giao diện bus CAN. | Khi bắt đầu khởi động |
pbit_checksum | Kiểm tra tính toàn vẹn của mã kiểm tra tệp | Khi bắt đầu khởi động |
pbit_cpu_cores | Xác thực số lượng lõi CPU dự kiến | Khi bắt đầu khởi động |
pbit_cpu_usage | Kiểm tra xem mức sử dụng CPU ban đầu có nằm trong giới hạn cho phép hay không. | Khi bắt đầu khởi động |
pbit_disk_health | Kiểm tra trạng thái sức khỏe SMART của ổ đĩa. | Khi bắt đầu khởi động |
pbit_disk_usage | Kiểm tra dung lượng ổ đĩa khả dụng khi khởi động. | Khi bắt đầu khởi động |
pbit_dmesg_check | Quét dmesg để tìm các lỗi nghiêm trọng | Khi bắt đầu khởi động |
pbit_ethernet | Kiểm tra tính khả dụng của giao diện Ethernet | Khi bắt đầu khởi động |
pbit_file_checksum | Xác minh tính toàn vẹn của các tập tin hệ thống quan trọng | Khi bắt đầu khởi động |
pbit_firewall_configuration | Kiểm tra xem các quy tắc tường lửa đã được cấu hình chính xác chưa. | Khi bắt đầu khởi động |
pbit_gpio | Kiểm tra trạng thái và khả năng hoạt động của chân GPIO. | Khi bắt đầu khởi động |
pbit_gpu_loading | Kiểm tra trình điều khiển GPU và quá trình tải ban đầu. | Khi bắt đầu khởi động |
pbit_memory_usage | Kiểm tra dung lượng bộ nhớ khả dụng khi khởi động | Khi bắt đầu khởi động |
pbit_pci_whitelist | Kiểm tra tính hợp lệ của các thiết bị PCI so với danh sách trắng đã được phê duyệt. | Khi bắt đầu khởi động |
pbit_permissions_verification | Xác thực quyền truy cập tệp/thư mục | Khi bắt đầu khởi động |
pbit_power_test | Kiểm tra trạng thái nguồn điện và điện áp. | Khi bắt đầu khởi động |
pbit_selinux_apparmor_status | Xác thực trạng thái của mô-đun bảo mật | Khi bắt đầu khởi động |
pbit_serial_ports | Kiểm tra tính khả dụng của cổng nối tiếp | Khi bắt đầu khởi động |
pbit_ssh_configuration | Xác thực cấu hình bảo mật SSH | Khi bắt đầu khởi động |
pbit_syslog_analysis | Quét nhật ký hệ thống (syslog) để tìm các lỗi khởi động nghiêm trọng. | Khi bắt đầu khởi động |
pbit_temperature | Kiểm tra các chỉ số nhiệt ban đầu. | Khi bắt đầu khởi động |
pbit_usb_whitelist | Kiểm tra tính hợp lệ của các thiết bị USB so với danh sách trắng đã được phê duyệt. | Khi bắt đầu khởi động |
Kiểm thử BIT liên tục (CBIT)
| Tên bài kiểm tra | Sự miêu tả | Tính thường xuyên |
|---|---|---|
cbit_bsp_version | Giám sát tính nhất quán phiên bản BSP | Có thể cấu hình |
cbit_can | Bộ giám sát trạng thái hoạt động và bộ đếm lỗi của bus CAN | Có thể cấu hình |
cbit_checksum | Kiểm tra tính toàn vẹn tệp định kỳ | Có thể cấu hình |
cbit_cpu_cores | Giám sát tình trạng khả dụng của lõi CPU | Có thể cấu hình |
cbit_cpu_usage | Theo dõi mức độ sử dụng CPU trong khoảng thời gian trượt. | Mỗi người 1 |
cbit_disk_health | Giám sát các thuộc tính SMART của ổ đĩa. | Có thể cấu hình |
cbit_disk_usage | Theo dõi mức sử dụng ổ đĩa so với các ngưỡng quy định. | Cứ mỗi 30 phút |
cbit_dmesg | Bộ đệm thông báo giám sát nhân hệ điều hành | Có thể cấu hình |
cbit_dmesg_check | Phát hiện lỗi dmesg liên tục | Có thể cấu hình |
cbit_ethernet | Giám sát trạng thái và lỗi của liên kết Ethernet. | Có thể cấu hình |
cbit_ethernet_status | Giám sát trạng thái kết nối Ethernet | Có thể cấu hình |
cbit_firewall_configuration | Giám sát tính toàn vẹn của quy tắc tường lửa | Có thể cấu hình |
cbit_gpio | Theo dõi sự thay đổi trạng thái GPIO. | Có thể cấu hình |
cbit_gpu_loading | Giám sát mức sử dụng GPU | Có thể cấu hình |
cbit_memory_usage | Theo dõi các mô hình tiêu thụ bộ nhớ. | Có thể cấu hình |
cbit_pci_whitelist | Giám sát các thay đổi thiết bị PCI | Có thể cấu hình |
cbit_permissions | Giám sát các thay đổi về quyền truy cập tệp | Có thể cấu hình |
cbit_permissions_verification | Xác thực quyền liên tục | Có thể cấu hình |
cbit_power_consumption | Giám sát mức tiêu thụ điện năng và hiệu suất. | Có thể cấu hình |
cbit_selinux_apparmor_status | Giám sát trạng thái mô-đun bảo mật | Có thể cấu hình |
cbit_serial_ports | Giám sát tình trạng cổng nối tiếp | Có thể cấu hình |
cbit_ssh_configuration | Giám sát các thay đổi cấu hình SSH | Có thể cấu hình |
cbit_syslog_analysis | Giám sát lỗi syslog liên tục | Có thể cấu hình |
cbit_temperature | Theo dõi các chỉ số nhiệt độ và xu hướng. | Có thể cấu hình |
cbit_usb_whitelist | Màn hình hiển thị các thay đổi của thiết bị USB | Có thể cấu hình |
Kiểm tra BIT tại nhà máy (FBIT)
| Tên bài kiểm tra | Sự miêu tả | Tính thường xuyên |
|---|---|---|
fbit_can_data | Kiểm tra chức năng truyền/nhận dữ liệu của bus CAN. | Có thể cấu hình |
fbit_gpio_data | Kiểm tra chức năng đầu vào/đầu ra GPIO. | Có thể cấu hình |
fbit_pci | Liệt kê và xác minh thiết bị PCI | Có thể cấu hình |
fbit_serial_data | Xác thực giao tiếp vòng lặp cổng nối tiếp | Có thể cấu hình |
fbit_ssd | Xác thực hiệu năng đọc/ghi SSD | Có thể cấu hình |
fbit_system_data | Thu thập thông tin hệ thống | Có thể cấu hình |
fbit_tcp_data | Kiểm tra đường dẫn dữ liệu Ethernet bằng iPerf | Có thể cấu hình |
fbit_usb | Xác minh đọc/ghi thiết bị USB | Có thể cấu hình |
fbit_video | Xác minh đầu ra video | Có thể cấu hình |
Tổng cộng: 57 bài kiểm tra tích hợp bao gồm xác thực phần cứng, giám sát hệ thống và kiểm chứng bảo mật.
Kiến trúc Plugin
Hệ thống BIT được xây dựng trên kiến trúc plugin mạnh mẽ , cho phép mở rộng liền mạch mà không cần sửa đổi mã hệ thống cốt lõi.
Cách thức hoạt động
Hệ thống BIT sử dụng Zenoh làm phần mềm trung gian nhắn tin, cho phép phân phối kết quả kiểm tra theo thời gian thực đến các máy khách giám sát và tích hợp liền mạch với các hệ thống GVA (Kiến trúc xe chung) thông qua cầu nối giao thức.
Kiến trúc luồng thông báo
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
Trình tự tin nhắn chi tiết
Chi tiết cầu nối giao thức
| Thành phần | Giao thức trong | Giao thức đã kết thúc | Mục đích |
|---|---|---|---|
| Quản lý BIT | Nội bộ | Zenoh | Công bố kết quả thử nghiệm |
| Giao diện người dùng đồ họa (GUI) | Zenoh | — | Hiển thị kết quả theo thời gian thực |
| BIT CLI | Zenoh | — | Giám sát dòng lệnh |
| Cổng BIT | Zenoh | DDS (GVA) | Cầu nối đến hệ thống xe cộ |
| GVA HUMS | DDS | — | Giám sát sức khỏe và mức sử dụng |
Tính năng của Plugin
| Tính năng | Sự miêu tả |
|---|---|
| Tải động | Các plugin được tải dưới dạng thư viện chia sẻ ( .so ) trong quá trình chạy. |
| Giao diện dựa trên đặc điểm | Tính nhất quán về thuộc tính TestRun và TestDetails cho tất cả các plugin. |
| Tệp cấu hình | Cấu hình dựa trên TOML cho mỗi bài kiểm tra ( /etc/bit/*.toml ) |
| Theo dõi phiên bản | Mỗi plugin đều báo cáo phiên bản và dấu thời gian xây dựng. |
| Ghi nhật ký các lệnh gọi lại | Hệ thống ghi nhật ký thống nhất trên tất cả các bài kiểm tra. |
| Bộ đếm lượt chạy | Tự động theo dõi thống kê đạt/không đạt. |
Tạo một plugin mới
Việc tạo một plugin BIT tùy chỉnh rất đơn giản:
- Triển khai trait
TestRun:
impl TestRun for MyCustomTest {
fn run(&mut self) {
// Your test logic here
self.base_test.status = TestStatus::Success;
}
}- Xuất giao diện plugin:
#[no_mangle]
pub extern "C" fn create_test() -> Box {
Box::new(MyCustomTest::new())
} - Tạo tệp cấu hình (tùy chọn):
[my_custom_test]
frequency = 60
enabled = true
threshold = 90- Xây dựng và triển khai thư viện dùng chung vào
/usr/local/lib/bit_manager/
Các tính năng an toàn của ngôn ngữ Rust
Hệ thống BIT được triển khai bằng ngôn ngữ Rust , cung cấp các đảm bảo an toàn vượt trội, vô cùng quan trọng đối với các hệ thống nhúng và hệ thống an ninh trọng yếu.
An toàn bộ nhớ
| Tính năng | Lợi ích |
|---|---|
| Không có con trỏ null | Option các kiểu dữ liệu ngăn chặn việc truy cập con trỏ null |
| Không xảy ra lỗi tràn bộ đệm. | Kiểm tra giới hạn khi truy cập mảng/vector. |
| Không sử dụng sau khi hết hạn miễn phí | Hệ thống sở hữu đảm bảo tính hợp lệ của bộ nhớ. |
| Không xảy ra xung đột dữ liệu | Ngăn ngừa lỗi truy cập đồng thời ngay trong quá trình biên dịch |
Tại sao nên chọn Rust cho BIT?
🔒 An toàn khi biên dịch
Rust phát hiện toàn bộ các loại lỗi ngay trong quá trình biên dịch, những lỗi mà nếu sử dụng C/C++ sẽ gây ra lỗi khi chạy chương trình:
- rò rỉ bộ nhớ
- Lỗi tràn bộ đệm
- Điều kiện cuộc đua
- Giải tham chiếu con trỏ null
⚡ Trừu tượng hóa không tốn chi phí
Các tính năng an toàn cấp cao được biên dịch thành mã máy hiệu quả mà không gây ra chi phí vận hành bổ sung , đạt hiệu năng tương đương với C/C++.
🔧 Đồng thời không sợ hãi
Mô hình sở hữu cho phép thực thi kiểm thử đa luồng an toàn mà không xảy ra xung đột dữ liệu:
// Thread-safe shared state with Arc>
let shared_state = Arc::new(Mutex::new(TestState::new())); 📦 Quản lý phụ thuộc hiện đại
- Trình quản lý gói Cargo đảm bảo các bản dựng có thể tái tạo.
- Giải quyết phụ thuộc tự động
- Khung kiểm thử tích hợp sẵn
🛡️ Cấu hình an toàn kiểu dữ liệu
Việc phân tích cấu hình tận dụng hệ thống kiểu dữ liệu của Rust để phát hiện lỗi sớm:
let threshold: f32 = config.get("threshold")?; // Type-checked at compile timeThống kê an toàn
| Số liệu | Rust so với C/C++ |
|---|---|
| Lỗi an toàn bộ nhớ | Đã bị loại bỏ tại thời điểm biên dịch |
| Các lớp lỗ hổng CVE bị ngăn chặn | ~70% các lỗ hổng bảo mật phổ biến |
| Lỗi con trỏ null khi chạy | Không thể nào |
| Vi phạm an toàn luồng | Lỗi xảy ra trong quá trình biên dịch. |
Tích hợp & Triển khai
Dịch vụ Systemd
# Enable automatic startup
sudo systemctl enable bit_manager
# Start the service
sudo systemctl start bit_manager
# Check status
sudo systemctl status bit_managerCài đặt gói Debian
cargo deb -p bit_manager
sudo dpkg -i target/debian/bit_manager_*.debĐường dẫn cấu hình
| Con đường | Mục đích |
|---|---|
/etc/bit/ | Tệp cấu hình kiểm thử (TOML) |
/usr/local/lib/bit_manager/ | Thư viện dùng chung plugin |
/var/log/bit_manager/ | Tệp nhật ký |
Kiểm tra và giám sát
Tiện ích bit_inspect cung cấp thông tin chi tiết về các bài kiểm tra đã được tải:
# List all available tests
bit_inspect
# Get detailed information about a specific test
bit_inspect cbit_disk_usageVí dụ về kết quả đầu ra:
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) Bản tóm tắt
Hệ thống BIT cung cấp:
✅ Chẩn đoán toàn diện phần cứng và phần mềm
✅ Kiến trúc plugin mở rộng cho các bài kiểm tra tùy chỉnh
✅ Triển khai an toàn bộ nhớ trong Rust
✅ Phương pháp PBIT/CBIT/FBIT tiêu chuẩn ngành
✅ Tích hợp Linux/systemd gốc
✅ Tham số kiểm thử dựa trên cấu hình
✅ Giám sát và ghi nhật ký theo thời gian thực