Rust, điều mà các nhà phát triển Linux có vẻ đồng ý với

Ngôn ngữ lập trình Rust luôn hướng tới việc thay thế C trong phát triển nhân Linux Và khi Rust đã trưởng thành, một số nhà phát triển đã bày tỏ sự quan tâm ngày càng lớn đến việc sử dụng nó trong nhân Linux.

Trong Hội nghị Ảo của Linux Plumbers 2020, quy trình hội nghị vi mô bởi LLVM tổ chức một phiên về các câu hỏi mở và rào cản để chấp nhận ngược dòng Rust trên nhân Linux.

Có thể thấy sự quan tâm đến chủ đề này, vì phiên này là buổi bận rộn nhất trong sự kiện năm 2020.

Vậy bây giờ chúng ta có nên viết lại toàn bộ nhân Linux bằng ngôn ngữ Rust không? Cuộc thảo luận này không bắt đầu từ hôm nay và đã được nhấn mạnh kể từ khi xuất hiện phiên bản ổn định đầu tiên của Rust vào năm 2015.

Xét về những khả năng nó mang lại Rust, một số đề nghị làm điều đó. Năm nay, tại hội nghị Linux Plumbers vào tháng XNUMX, các diễn giả lại có thời gian để thảo luận về nó.

Và điều đáng ngạc nhiên là họ có vẻ đồng ý nhất trí không không phải để viết lại mã hiện có trong Rust, nhưng để phát triển hạt nhân tiếp tục sử dụng Rust. Đó là, họ hình dung ra một thế giới trong đó các đoạn mã mới có thể được viết bằng Rust.

Phiên này được xây dựng dựa trên công việc trước đây của nhiều nhà phát triển, bao gồm một bài nói chuyện của Alex Gaynor và Geoffrey Thomas vào năm ngoái tại Hội nghị thượng đỉnh về bảo mật Linux.

Tại hội nghị, họ đã trình bày công việc của mình về việc tạo mẫu các mô-đun nhân Rust và ủng hộ việc áp dụng Rust trong nhân.

Họ trích dẫn kết quả nghiên cứu cho thấy khoảng XNUMX/XNUMX lỗ hổng 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ớ.

Họ đã giải thích rằng Rust hoàn toàn có thể tránh được loại lỗi này nhờ các API an toàn hơn được kích hoạt bởi loại hệ thống và trình xác minh khoản vay của bạn.

Nghiên cứu này đã thuyết phục được một số nhà bảo trì đã Linus Torvalds, người đã hỗ trợ việc đưa Rust vào hạt nhân. Thomas và Gaynor, Josh Triplett, đồng chủ tịch của nhóm ngôn ngữ Rust và nhà phát triển nhân Linux lâu năm, cũng như các nhà phát triển quan tâm khác đã tham gia vào cuộc thảo luận về chủ đề này.

Họ đã nói sơ qua về công việc của anh ấy cho đến nay và một số suy nghĩ và câu hỏi đầu tiên của anh ấy trước khi mở hầu hết thời gian thảo luận.

Đây là việc sử dụng các API hiện có trong hạt nhân, hỗ trợ kiến ​​trúc và câu hỏi về khả năng tương thích ABI giữa Rust và C.

Trên thực tế, ban đầu họ tin rằng đưa Rust vào cấu trúc cây phải tôn trọng các API C hiện có. 

Tuy nhiên, mọi người đều cảm thấy ma quỷ đang ở trong các chi tiết, và cả công việc đã hoàn thành cho đến nay cũng như cuộc trò chuyện trong phiên họp đã tiết lộ một số thách thức mở.

Ví dụ, Linux sử dụng nhiều các macro tiền xử lý và các hàm nội tuyến, vốn không dễ dàng được hỗ trợ bởi công cụ bindgen và giao diện chức năng bên ngoài của Rust.

Theo họ, hiện tại việc triển khai thành thục duy nhất của Rust là trình biên dịch gỉc, cấp mã thông qua LLVM.

Nhân Linux hỗ trợ nhiều loại kiến ​​trúc, nhiều kiến ​​trúc không có sẵn phần phụ trợ LLVM.

Về phần mình, Triplett gợi ý rằng việc thêm Rust vào hạt nhân sẽ giúp tăng khả năng hỗ trợ kiến ​​trúc cho Rust, trích dẫn kinh nghiệm của anh ấy với dự án Debian. Anh ấy đề cập rằng việc giới thiệu phần mềm Rust trong Debian đã giúp thúc đẩy những người đam mê và người dùng kiến ​​trúc thích hợp cải thiện hỗ trợ Rust và anh ấy hy vọng sẽ thêm hỗ trợ hạt nhân để có hiệu quả tương tự.

Đặc biệt, ông tin chắc rằng bất kỳ kiến ​​trúc nào có phần phụ trợ LLVM sẽ nhanh chóng tương thích với Rust. Cuộc thảo luận cũng tập trung vào các triển khai Rust thay thế như một con đường để hỗ trợ kiến ​​trúc rộng rãi hơn.

Phiên họp đã kết thúc mà không có thêm cột mốc cụ thể nào, nhưng có vẻ như có sự nhiệt tình chung trong việc hỗ trợ Rust Mods và ngày càng đồng ý về các yêu cầu chung đối với hỗ trợ nà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: 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.

  1.   Máy bay tự động dijo

    Có vẻ như là sự khởi đầu của một kỷ nguyên mới, chữ C bất động xuất hiện.

    Xin chào Rust, Bye Linus Torvalds!