Josh Triplett, người làm việc tại Intel và nằm trong ủy ban giám sát sự phát triển của Crates.io, phát biểu tại Hội nghị thượng đỉnh công nghệ nguồn mở
Trong một nhóm làm việc đang trong quá trình thành lập, các nhà phát triển Rust cùng với các kỹ sư của Intel sẽ chuẩn bị các thông số kỹ thuật xác định chức năng cần triển khai trong Rust để lập trình hệ thống. Lập trình hệ thống thường yêu cầu thao tác ở mức độ thấp, chẳng hạn như thực thi các lệnh bộ xử lý đặc quyền và thu thập thông tin chi tiết về trạng thái của bộ xử lý. Trong số các tính năng tương tự đã được phát triển cho Rust, có hỗ trợ cho các cấu trúc không tên, liên kết, chèn ngôn ngữ hợp ngữ (macro “asm!”) và định dạng số dấu phẩy động BFLOAT16.
Josh tin rằng tương lai của lập trình hệ thống thuộc về Rust và ngôn ngữ C trong thực tế hiện đại đang khẳng định vị trí mà trong những năm qua đã bị Assembly chiếm giữ. rỉ sét
không chỉ giúp các nhà phát triển thoát khỏi những vấn đề cố hữu trong ngôn ngữ C phát sinh do làm việc với bộ nhớ ở mức độ thấp mà còn tạo cơ hội sử dụng nó trong việc phát triển các mô hình lập trình hiện đại.
Suốt trong
Josh nảy ra ý tưởng bổ sung khả năng phát triển trình điều khiển trong nhân Linux bằng ngôn ngữ Rust, điều này có thể tạo ra các trình điều khiển an toàn hơn và tốt hơn với nỗ lực tối thiểu, không gặp phải các vấn đề như truy cập bộ nhớ sau khi giải phóng, null hủy đăng ký con trỏ và lỗi tràn bộ đệm.
Greg Kroah-Hartman, người chịu trách nhiệm duy trì nhánh ổn định của hạt nhân Linux, bày tỏ sự sẵn sàng bổ sung một khung phát triển trình điều khiển bằng ngôn ngữ Rust vào hạt nhân nếu nó có những ưu điểm thực sự so với C, chẳng hạn như nó sẽ cung cấp khả năng bảo mật. các ràng buộc trên API hạt nhân. Ngoài ra, Greg chỉ coi framework này là một tùy chọn, không hoạt động theo mặc định, để không đưa Rust vào làm phần phụ thuộc xây dựng trên kernel.
Hóa ra một số đội đã làm việc theo hướng này. Ví dụ: các nhà phát triển từ công ty “Fish in a Barrel”
Song song
Không phải tất cả chức năng dự kiến đều đã được triển khai nhưng khung này đã khá phù hợp cho công việc và được sử dụng để viết trình điều khiển hoạt động cho bộ điều khiển Ethernet USB LAN9512 được cung cấp trong bo mạch Raspberry Pi 3. Trình điều khiển smsc95xx hiện có, được viết bằng Ngôn ngữ C. Cần lưu ý rằng kích thước mô-đun và chi phí chung từ các thành phần thời gian chạy khi phát triển trình điều khiển trong Rust là không đáng kể, điều này cho phép sử dụng khung này cho các thiết bị có nguồn lực hạn chế.
Nguồn: opennet.ru