Microsoft tiếp tục tăng cường sử dụng Rust trong Windows, an toàn bộ nhớ, tương thích C/C++ là lợi thế cốt lõi

VNZ-NEWS
Kể từ năm 2023, Microsoft đã từng bước tăng cường việc áp dụng ngôn ngữ Rust vào hệ điều hành Windows.


Hiện tại, Windows kernel đã có thể khởi động với sự tham gia của mã viết bằng Rust. Không chỉ dừng lại ở đó, Microsoft còn đang thúc đẩy việc chuyển dịch phát triển driver sang Rust để tận dụng ưu thế an toàn bộ nhớ.

Dự án windows-drivers-rs và công cụ cargo-wdk

Tháng 7/2025, nhóm Surface của Microsoft đã công bố tiến độ quan trọng với dự án mã nguồn mở windows-drivers-rs, nhằm cung cấp nền tảng hỗ trợ phát triển driver bằng Rust.

Trong bản cập nhật mới, Microsoft giới thiệu thêm cargo-wdk crate – một phần mở rộng của Cargo cho phép:
• Tự động sinh ra project driver mẫu với liên kết, quy trình build và dependencies được cấu hình sẵn.
• Tích hợp công cụ WDK (Windows Driver Kit) như InfVerif, mang lại trải nghiệm tương tự như khi xây dựng driver bằng C trong Visual Studio.

Ưu thế của Rust so với C/C++

Rust có ưu điểm an toàn bộ nhớ, giúp giảm thiểu đáng kể các lỗ hổng liên quan đến quản lý bộ nhớ – vốn là nguyên nhân chính của nhiều lỗ hổng bảo mật trong Windows.
Bên cạnh đó, Rust duy trì khả năng tương tác tốt với C/C++, nhờ đó giảm bớt rào cản khi các nhà phát triển chuyển đổi hoặc viết lại mã driver.

Lộ trình của Microsoft
• Mục tiêu dài hạn: mang đến cho Rust developers trong Cargo một bộ công cụ build và thiết lập tương tự Visual Studio.
• Mục tiêu trung hạn:
• Tự động cài đặt WDK,
• Hỗ trợ NT_TARGET_VERSION,
• Tích hợp đầy đủ cho nền tảng ARM64.

Hiện tại, windows-drivers-rs đã có thể hỗ trợ một số loại driver, tuy nhiên vẫn cần dùng khá nhiều mã unsafe.

Hướng tới hệ sinh thái driver an toàn hơn

Đội ngũ Windows Driver Framework (WDF) đang hợp tác với các chuyên gia Rust để xây dựng các lớp trừu tượng an toàn cho cả driver chế độ kernel (KMD) và user mode (UMD). Mục tiêu là đảm bảo quá trình chuyển đổi từ user mode (quyền hạn thấp) sang kernel mode (quyền hạn cao) diễn ra an toàn.

Ngoài ra, các nhóm khác của Microsoft cũng đang phát triển struct an toàn và API cho cả kernel lẫn driver của bên thứ ba; một phần trong số này đã được phát hành cùng Windows kernel.

Microsoft cũng cam kết sẽ sớm công bố bộ best practices mới cho phát triển driver bằng Rust, bao gồm việc ứng dụng CodeQL để phân tích tĩnh. Trước đó, vào tháng 7, Microsoft đã cập nhật hướng dẫn phân tích tĩnh cho driver bên thứ ba trên Windows 11 25H2.