Phiên bản thứ tám của các bản vá lỗi hỗ trợ trình điều khiển Rust trên Linux sẽ ra mắt

Miguel Ojeda, tác giả của dự án Rust-for-Linux phát hành bản phát hành thứ tám phát triển các bản vá lỗi nhân Linux có hỗ trợ ngôn ngữ Rust để các nhà phát triển nhân Linux xem xét.

Đây được xếp hạng là bản phát hành thứ chín của các bản vá (có tính đến phiên bản được phát hành đầu tiên không có số phiên bản). Hỗ trợ gỉ được coi là thử nghiệm, nhưng nó đã được đưa vào nhánh linux-next, tuyên bố tích hợp trong bản phát hành mùa thu 5.20 / 6.0 và đủ nâng cao để bắt đầu làm việc với việc tạo các lớp trừu tượng trên đầu hệ thống con hạt nhân, cũng như viết bộ đ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), là người sáng lập dự án Let's Encrypt và thúc đẩy HTTPS và sự phát triển của các công nghệ để tăng cường bảo mật Internet.

Các thay đổi được đề xuất làm cho nó có thể sử dụng Rust làm ngôn ngữ thứ hai để phát triển trình điều khiển và mô-đun hạt 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 phải các vấn đề như truy cập vùng bộ nhớ sau khi giải phóng nó, con trỏ null dereference 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ã.

Có gì mới trong bản phát hành thứ tám này?

Trong đề xuất mới được phát hành này, có đề cập rằng biến thể thư viện cấp phát, điều này đã loại bỏ khả năng tạo ra trạng thái "hoảng sợ" về các lỗi, đã cập nhật lên phiên bản Rust 1.62. So với phiên bản trước, bộ công cụ Rust đã hỗ trợ ổn định cho chức năng const_fn_trait_bound được sử dụng trong các bản vá lỗi hạt nhân.

bên cạnh đó mã liên kết được tách thành một nhóm hộp "liên kết" riêng biệt, giúp dễ dàng xây dựng lại nếu chỉ thay đổi gói hạt nhân chính.

Các triển khai macro "concat_ident!", Được viết lại dưới dạng macro thủ tục, không bị ràng buộc với chức năng concat_ident và cho phép sử dụng các tham chiếu biến cục bộ.

Ngoài ra, nó được đề cập rằng vĩ mô "static_assert!" đã được viết lại để cho phép "core :: khẳng định! ()" được sử dụng trong bất kỳ ngữ cảnh nào thay vì hằng số, trong khi macro "construct_error!" đã được điều chỉnh để hoạt động khi đặt chế độ "RUST_BUILD_ASSERT_ {WARN, ALLOW}" cho các mô-đun.

mô-đun fs đã được thêm vào cung cấp các liên kết để làm việc với các hệ thống tệp. Một ví dụ về hệ thống tệp đơn giản được viết bằng Rust được đề xuất, cũng như mô-đun hàng đợi công việc được thêm vào để hoạt động với hàng đợi hệ thống.

Những thay đổi khác nổi bật so với đề xuất mới này:

  • Đã thêm tệp cấu hình riêng "kernel / configs / gỉ.config".
  • Các tệp "* .i" được xử lý trong các thay thế macro đã được đổi tên thành "* .rsi".
  • Đã xóa hỗ trợ xây dựng các thành phần Rust với các mức tối ưu hóa khác với mức được sử dụng cho mã C.
  • Sự phát triển của mô-đun kasync tiếp tục với việc triển khai các phương pháp lập trình không đồng bộ (async).
  • Đã thêm một ví dụ về máy chủ TCP cấp nhân được viết bằng Rust và thêm khả năng xử lý ngắt trong Rust.
  • Đã thêm macro thủ tục để làm việc với bảng con trỏ hàm dễ dàng hơn, chẳng hạn như cấu trúc file_operations.
  • Đã thêm triển khai danh sách được liên kết hai chiều "secure_list :: List".
  • Đã thêm hỗ trợ ban đầu cho RCU và loại Bảo vệ để kiểm tra xem khóa đọc có bị ràng buộc với luồng hiện tại hay không.
  • Đã thêm chức năng Task :: spawn () để tự động sinh sản và bắt đầu các luồng nhân.
  • Phương thức Task :: wake_up () cũng đã được thêm vào.
  • Đã thêm một mô-đun trì hoãn

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 đâ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.