Western Digital hiện đang làm việc trên trình điều khiển NVMe được viết bằng Rust

RustLinux

Việc tích hợp Rust vào Linux đã được cộng đồng và các nhà phát triển chấp nhận ở mức độ cao

Trong hội nghị “Hệ thống ống nước Linux 2022” điều đó đang diễn ra trong những ngày này, một kỹ sư Western Digital thuyết trình về sự phát triển của bộ điều khiển thử nghiệm cho SSD NVM-Express (NVMe) viết bằng Rust và chạy ở cấp nhân Linux.

Mặc dù dự án vẫn đang trong giai đoạn phát triển ban đầu, các thử nghiệm được thực hiện cho thấy hiệu suất của trình điều khiển Rust NVMe tương ứng với trình điều khiển NVMe được viết bằng C trong nhân.

Tôi là Matthew Wilcox, tôi là một trong những tác giả của thông số kỹ thuật NVMe, tôi là người đã đề xuất tôi tạo một trình điều khiển NVMe để chứng minh giá trị của Rust. Nó đã thành công ngoài mong đợi nhất của tôi. 

Về báo cáo được trình bày trình điều khiển NVMe C hiện tại được cho là hoàn toàn thỏa mãn cho các nhà phát triển, nhưng hệ thống con NVMe là một nền tảng tốt để khám phá tính khả thi của việc phát triển trình điều khiển trong Rust, vì nó khá đơn giản, được sử dụng rộng rãi, có yêu cầu hiệu suất cao, có triển khai tham chiếu đã được chứng minh để so sánh và hỗ trợ nhiều giao diện khác nhau (nhà phát triển, pci, dma, blk-mq, gendisk, sysfs).

Người ta quan sát thấy rằng trình điều khiển Rust PCI NVMe đã cung cấp chức năng cần thiết cho hoạt động, nhưng nó vẫn chưa sẵn sàng để sử dụng rộng rãi, vì nó yêu cầu các cải tiến riêng biệt.

Các kế hoạch cho tương lai bao gồm loại bỏ các khối không an toàn hiện có, hỗ trợ gỡ bỏ thiết bị và tải xuống trình điều khiển, hỗ trợ giao diện sysfs, triển khai khởi tạo lười biếng, tạo bộ điều khiển cho blk-mq và thử nghiệm với mô hình lập trình không đồng bộ cho queue_rq.

Hơn nữa, chúng ta có thể chỉ ra các thí nghiệm được thực hiện bởi NCC Group để phát triển bộ điều khiển bằng ngôn ngữ Rust cho hạt nhân FreeBSD. Ví dụ: một bộ điều khiển tiếng vọng đơn giản trả về dữ liệu được ghi vào / dev / gỉmodule. Trong giai đoạn thử nghiệm tiếp theo, NCC Group đang xem xét làm lại các thành phần chính cốt lõi trong Rust để cải thiện tính bảo mật của các hoạt động mạng và tệp.

Điều đó nói rằng, mặc dù nó đã được chứng minh rằng có thể tạo các mô-đun đơn giản trong Rust, việc tích hợp Rust vào hạt nhân FreeBSD chặt chẽ hơn sẽ yêu cầu thêm công việc.

Ví dụ, anh ấy đề cập đến sự cần thiết phải tạo một tập hợp các lớp trừu tượng trên các hệ thống con và cấu trúc hạt nhân, tương tự như các plugin được chuẩn bị bởi dự án Rust dành cho Linux. Trong tương lai, chúng tôi có kế hoạch thực hiện các thử nghiệm tương tự với lõi Illumos và làm nổi bật các phần trừu tượng phổ biến trong Rust có thể được sử dụng trong các trình điều khiển do Rust viết cho Linux, BSD và Illumos.

Theo Microsoft và Google, khoảng 70% lỗ hổng trong các sản phẩm phần mềm của họ là do quản lý bộ nhớ không an toàn.

Sử dụng ngôn ngữ Rust được cho là để giảm nguy cơ có lỗ hổng bảo mật gây ra bởi việc xử lý bộ nhớ không an toàn và sẽ loại bỏ sự xuất hiện của các lỗi như truy cập một vùng bộ nhớ sau khi nó đã được giải phóng và tràn bộ đệm.

An toàn bộ nhớ được cung cấp trong Rust tại thời điểm biên dịch bằng cách kiểm tra các tham chiếu, theo dõi quyền sở hữu đối tượng và thời gian tồn tại của đối tượng (phạm vi), cũng như bằng cách đánh giá tính đúng đắn của quyền truy cập bộ nhớ trong quá trình thực thi mã.

Rust cũng cung cấp bảo vệ chống tràn số nguyên, yêu cầu các biến phải được khởi tạo trước khi sử dụng, xử lý tốt hơn các lỗi trong thư viện chuẩn, thực thi khái niệm về biến và tham chiếu bất biến theo mặc định, đồng thời cung cấp tính năng nhập tĩnh mạnh mẽ để giảm thiểu lỗi logic.

Điều đáng nói là có thể công việc trong tương lai sẽ song hành với công việc mà Miguel Ojeda đã trình bày trên các trình điều khiển "Rust for Linux" của mình, vốn đã được trình bày dưới dạng một loạt các bản vá.

Cuối cùng nếu bạn muốn biết thêm về nó, bạn có thể kiểm tra các chi tiết trong liên kết sau.


Hãy là người đầu tiên nhận xét

Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.