RFC về việc hỗ trợ Rust trong nhân Linux
(lkml.org)-
Tổng hợp các lý do nên dùng Rust làm ngôn ngữ thứ hai của kernel
-
Mục tiêu không phải là viết lại phần lõi hay các hệ thống con quan trọng của kernel, mà là để có thể viết driver và các mô-đun "leaf" tương tự bằng Rust
Khi sử dụng Rust trong nhân Linux
-
nhờ các đặc tính của ngôn ngữ, rủi ro về lỗi an toàn bộ nhớ, tranh chấp dữ liệu và lỗi logic được giảm xuống
-
maintainer có thể tự tin hơn khi refactor mô-đun và áp dụng patch nhờ tính an toàn của Rust
-
nhờ các tính năng ngôn ngữ hiện đại và tài liệu chi tiết, có thể dễ dàng viết driver và mô-đun mới
-
nhiều người hơn có thể tham gia phát triển kernel nói chung bằng cách sử dụng một ngôn ngữ hiện đại
"Why Rust?"
- Trong bối cảnh của nhân Linux, Rust mang lại một số ưu điểm chính so với C
→ (lược bỏ các ưu điểm ở cấp độ ngôn ngữ..)
"Why not?"
- Trong bối cảnh của nhân Linux, Rust có những nhược điểm này so với C
→ Đã đầu tư nhiều công sức vào hệ công cụ dựa trên C, bao gồm compiler plugin, Sanitizer, v.v. Điều này sẽ được cải thiện khi việc sử dụng Rust tăng lên theo thời gian
→ Một triển khai đơn dựa trên LLVM. Hiện đang có các nỗ lực như frontend GCC, backend 'ructc' dựa trên Cranelift, và 'mrustc' nhằm giảm chuỗi bootstrapping
→ Vẫn chưa được chuẩn hóa. Dù vậy, cũng chưa rõ việc chuẩn hóa có thực sự giúp ích cho kernel hay không..
→ Do các tính năng phức tạp và giới hạn của compiler hiện tại, tốc độ biên dịch còn chậm
→ Hiện tại vẫn cần các tính năng chỉ có trong bản dựng Nightly. Chưa thể dùng bản ổn định. Mục tiêu là loại bỏ hạn chế này trong vòng 1 năm
→ Các tính năng trong thư viện chuẩn Rust core và alloc chưa được dùng hết, nên hiện tại chúng lớn hơn nhu cầu thực tế
-
Phần lớn các nhược điểm này xuất phát từ việc Rust vẫn còn là một ngôn ngữ trẻ và chưa được sử dụng rộng rãi
-
Có niềm tin rằng Rust sẽ trở thành một phần quan trọng của lập trình hệ thống, giống như cách C đã làm trong vài chục năm qua
3 bình luận
https://lkml.org/lkml/2021/4/14/1099
"So I replied with my reactions to a couple of the individual patches, but on the whole I don't hate it."
và khi nhìn vào phần theo sau HOWEVER,
có lẽ sẽ còn mất khá nhiều thời gian để thực sự được thêm vào
Linus Torvalds đã trả lời về RFC này tại https://lkml.org/lkml/2021/4/14/1099
"Vì vậy tôi đã trả lời bằng phản ứng của mình với một vài bản vá riêng lẻ, nhưng nhìn chung thì tôi không ghét nó."
Ông ấy nói rằng nhìn chung không ghét nó, nên tôi hy vọng mọi chuyện sẽ tiến triển suôn sẻ.
Tìm kiếm thử thì hóa ra trên GeekNews đã có rất nhiều tin liên quan đến Rust được đăng rồi. Giờ có thể xem đây thật sự là xu hướng của thời đại.
https://news.hada.io/search?q=Rust
Ngôn ngữ lập trình Rust [bản tiếng Hàn] https://vi.news.hada.io/topic?id=1152
Rust - Ngôn ngữ để đạt được hiệu năng cao và độ tin cậy, 'Thật đáng tiếc cho bạn nếu chưa biết sự tuyệt vời của Rust' https://vi.news.hada.io/topic?id=991
Tôi nghĩ có lẽ nó sẽ dần dần cùng tồn tại với C, rồi đến một lúc nào đó sẽ thay thế luôn... Có khi việc tách khỏi Mozilla lại là một lựa chọn tốt hơn.