Rust cho Linux bao gồm một số cải tiến để hỗ trợ

Trong những tháng qua Các nhà phát triển Linux đã tranh cãi khả năng cho phép sử dụng ngôn ngữ Rust để viết trình điều khiển thiết bị mới cho hạt nhân.

Năm ngoái, các nhà phát triển nhân Linux họ dường như đã đạt được thỏa thuận về vấn đề này, Những người ủng hộ Rust đã trích dẫn nghiên cứu cho thấy rằng khoảng XNUMX/XNUMX lỗ hổng nhân hạt nhân được gán CVE trong Android và Ubuntu có liên quan đến các vấn đề bảo mật bộ nhớ.

Sau tuyên bố này, Linus Torvalds, kỹ sư phần mềm, người tạo chính và nhà phát triển nhân Linux, cho biết trong một cuộc phỏng vấn rằng các cuộc thảo luận về chủ đề này sẽ quan trọng hơn nhiều so với một bài đăng dài dòng của Google về ngôn ngữ này.

Khi được hỏi về đề xuất sử dụng Rust, anh ấy chỉ ra rằng, "Giải pháp ở đây rất đơn giản: chỉ cần sử dụng C ++ thay vì Rust."

Sau đó vào tháng XNUMX, hỗ trợ đầu tiên đã được đưa rae đã cho phép đặt các trình điều khiển Rust trong cây Linux-Next để kiểm tra thêm trước khi cuối cùng chúng được đưa vào hạt nhân chính.

Ngay sau nó là một "yêu cầu bình luận" được phát hành lại trong danh sách gửi thư của nhân về quan điểm mã Rust cho nhân Linux.

Miguel OjedaNhà phát triển nhân Linux đã bắt đầu đề xuất Yêu cầu Nhận xét (RFC) trên danh sách gửi thư nhân Linux.

Bài đăng trong danh sách gửi thư nêu lên niềm tin của các nhà phát triển liên quan đến việc thêm mã Rust vào hạt nhân, những lợi ích như cải thiện bảo mật bộ nhớ và hơn thế nữa.

“Một số bạn đã nhận thấy trong những tuần và tháng gần đây rằng một số nỗ lực nghiêm túc đang được thực hiện để đưa ngôn ngữ thứ hai vào hạt nhân. Cuối cùng thì chúng tôi cũng ở đó, với một RFC bổ sung hỗ trợ Rust cho nhân Linux, ”Miguel Ojeja nói. Ông nói thêm: “Chúng tôi biết rằng có rất nhiều chi phí và rủi ro liên quan đến việc đưa một ngôn ngữ mới vào hạt nhân.

Nhóm dự án Rust cho Linux đã chuyển từ trình biên dịch Rust beta sang sử dụng các bản phát hành ổn định, di chuyển mỗi khi phiên bản mới được phát hành.

Miguel nói: “Chúng tôi muốn cảm ơn Rust đã làm việc với chúng tôi về các tùy chọn này để hạt nhân có thể sử dụng chúng.

Khi cập nhật trình biên dịch, nhóm đã có thể xóa một số tính năng không ổn định khỏi danh sách: const_fn_transmute, const_panic, const_unreachable_unchecked, core_panic và try_reserve.

Ngoài điều này, nó được nhấn mạnh rằng một số tùy chọn mô-đun hóa đã được thêm vào thêm để cấp phát để vô hiệu hóa một số chức năng không cần thiết: no_rc và no_sync.

Upstream, để kernel use case được hỗ trợ tốt, hay chính xác hơn là "hỗn hợp" các tùy chọn mà kernel cần, lõi Upstream cũng đã thêm no_fp_fmt_parse.

Mặt khác, Rust đã kích hoạt một loạt chẩn đoán bổ sung cho trình biên dịch Rust và Clippy. Một điểm khác biệt so với C là chẩn đoán Rust dễ vô hiệu hóa hơn một chút trong mã, điều này nghiêm ngặt hơn trong trường hợp chung.

cũng trừu tượng hóa và cập nhật trình điều khiển đã được triển khai. Nhóm nghiên cứu đã bổ sung các phần tóm tắt cho khóa luồng, lệnh gọi lại quản lý năng lượng, bộ nhớ io (readX / writeX), chip irq và trình quản lý luồng cấp cao, chip gpio (bao gồm cả chip irq), thiết bị ngoại vi, thiết bị ngoại vi amba và trình điều khiển.

Sự hỗ trợ của bộ điều khiển được cải tiến với cơ sở hạ tầng độc lập với xe buýt, Đối tượng có thể thu hồi, mutex có thể thu hồi, trình vòng lặp bit hiệu quả, chẩn đoán hoảng loạn tốt hơn và trình bao bọc con trỏ được đơn giản hóa. Ngoài ra, nó đã cải tiến và đơn giản hóa các đối tượng Ref (tương thích với refcount_t) và thay thế tất cả các phiên bản Rust.

Và một trình điều khiển mới cho các thiết bị gpio PL061 đã được triển khai và xuất xưởng dưới dạng bản vá RFC.

Cuối cùng cần lưu ý rằng Hỗ trợ gỉ vẫn được coi là thử nghiệm. Tuy nhiên, sự hỗ trợ đủ tốt để các nhà phát triển hạt nhân bắt đầu làm việc trong phần trừu tượng Rust để viết các hệ thống con và bộ điều khiển và các mô-đun khác. Loạt hiện tại vừa mới xuất hiện trên Linux-next, vì vậy lần chạy đầu tiên sẽ diễn ra trong tuần này.

Fuente: https://lkml.org/lkml


Để 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.