Phiên bản thứ tư của các bản vá lỗi hỗ trợ trình điều khiển Rust trên Linux đã được xuất bản

Miguel Ojeda, tác giả của dự án Rust-for-Linux, Teme gần đây đã tiết lộ đề xuất thứ tư cho thành phần trình điều khiển thiết bị Rust để các nhà phát triển nhân Linux xem xét.

Hỗ trợ gỉ được coi là thử nghiệm, nhưng nó đã được đồng ý đưa vào nhánh linux-next và đã đủ trưởng thành để bắt đầu làm việc trên các lớp trừu tượng trên đầu các hệ thống con nhân hạt nhân, cũng như viết trình điều khiển và mô-đun. Sự phát triển được tài trợ bởi Google và ISRG (Nhóm Nghiên cứu Bảo mật Internet), vốn là người sáng lập dự án Let's Encrypt và thúc đẩy HTTPS cũng như sự phát triển của các công nghệ để tăng cường bảo mật Internet.

Đối với những người vẫn chưa biết về những thay đổi được đề xuất, họ nên biết rằng họ có thể thực hiện việc sử dụng Rust làm ngôn ngữ thứ hai để phát triển bộ điều khiển và mô-đun của nhân. Hỗ trợ Rust được trình bày dưới dạng một tùy chọn không được bật theo mặc định và không dẫn đến việc Rust được đưa vào trong số các phụ thuộc xây dựng bắt buộc cho hạt nhân.

Sử dụng Rust để phát triển trình điều khiển sẽ cho phép bạn tạo trình điều khiển tốt hơn và an toàn hơn với nỗ lực tối thiểu, mà không gặp các vấn đề như truy cập vùng bộ nhớ sau khi giải phóng nó, tham chiếu đến con trỏ rỗ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 tính năng bảo vệ chống tràn số nguyên, yêu cầu các biến đượ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.

Những thay đổi trong phần thứ tư là gì?

Trong phiên bản mới này của các bản vá lỗi được trình bày, có đề cập rằng các nhận xét được đưa ra trong quá trình thảo luận về phiên bản thứ nhất, thứ hai và thứ ba của các bản vá lỗi tiếp tục bị loại bỏ.

Chúng tôi sẽ tiếp tục cập nhật cho đến khi chúng tôi không phụ thuộc vào bất kỳ tính năng không ổn định nào;
tại thời điểm đó, chúng tôi có thể muốn bắt đầu khai báo một phiên bản Rust tối thiểu
được hỗ trợ, như được thực hiện, chẳng hạn như GCC và Clang.

Tương tự, chúng tôi cũng đã chuyển sang phiên bản năm 2021 của ngôn ngữ Rust.

Đối với những thay đổi khác được thực hiện trong phiên bản mới này, thông báo đề cập đến những điều sau:

  • Đã chuyển sang sử dụng Rust 1.58.0 ổn định làm trình biên dịch tham chiếu.
  • Các thay đổi cần thiết cho dự án, chưa có trong bộ công cụ Rust chính, bao gồm cờ "-Zsymbol-mangling-version = v0" (dự kiến ​​trong Rust 1.59.0) và chế độ "could_uninit_extra" (dự kiến ​​trong Rust 1.60.0) .
  • Tự động kiểm tra tính khả dụng của các công cụ Rust và tính phù hợp của chúng đã được thêm vào, và khả năng kiểm tra hỗ trợ Rust trên hệ thống cũng được mở rộng.
  • Các phần trừu tượng mới được đề xuất để có thể truy cập các bảng định danh thiết bị ("IdArray" và "IdTable") từ mã Rust.
  • Đã thêm các lớp để gọi các chức năng liên quan đến bộ đếm thời gian (khung đồng hồ).
  • Bộ điều khiển nền tảng hiện được xác định thông qua triển khai đặc điểm.
  • Một macro mới đã được thêm vào để đơn giản hóa việc đăng ký trình điều khiển nền tảng và một mẫu trình điều khiển chung mới đã được đề xuất.
  • Đã thêm macro mới cho cấu trúc "dev_ *".
  • Đã thêm phương thức mới "{read, write} * _ relax" cho loại IoMem .
  • Đã xóa thuộc tính FileOpener để đơn giản hóa các thao tác với tệp.
  • Đã thêm tham số "ThisModule" vào số lượng đối số được truyền trong quá trình đăng ký bộ điều khiển.
  • Một mẫu điển hình để tạo mô-đun hạt nhân trong ngôn ngữ Rust được đề xuất.

Cuối cùng các bạn quan tâm có thể biết thêm về phiên bản mới này có thể tham khảo chi tiết Trong liên kết sau đây.


Để 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: AB Internet Networks 2008 SL
  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.