- Công việc tích hợp Rust trong nhân Linux đã kết thúc giai đoạn thử nghiệm và được công nhận là thành phần chính thức
- Tại Maintainers Summit thường niên, các nhà phát triển đã đồng thuận chấp nhận hỗ trợ Rust như một tính năng vĩnh viễn
- Theo đó, thẻ
experimental sẽ được gỡ bỏ khỏi mã liên quan đến Rust trong nhân
- Biên tập viên LWN cho biết “thử nghiệm đã kết thúc, và đó là một thành công”, đồng thời nhắc đến thành quả của nhóm Rust for Linux
- Đây được đánh giá là một bước ngoặt quan trọng theo hướng an toàn và hiện đại hóa, cũng như mở rộng ngôn ngữ phát triển nhân
Kết thúc thử nghiệm Rust trong nhân và được chấp nhận chính thức
- Tại Maintainers Summit thường niên, việc hỗ trợ Rust trong nhân đã được thảo luận, và các nhà phát triển tham dự đã đồng thuận rằng Rust không còn là tính năng thử nghiệm nữa
- Rust hiện đã trở thành một phần cốt lõi của nhân
- Theo đó, dấu
experimental sẽ được gỡ bỏ khỏi phần mã liên quan
- Biên tập viên LWN đã nêu rõ trong bài viết rằng “thử nghiệm đã kết thúc, và đó là một thành công”
- Đồng thời gửi lời chúc mừng tới những nỗ lực của nhóm Rust for Linux
Phản ứng của cộng đồng
- Tiêu đề bài viết từng gây hiểu lầm trong chốc lát, khiến một số độc giả tưởng rằng Rust bị loại bỏ
- Nhiều bình luận xuất hiện với các phản ứng như “suýt bị lừa”, “một chuyến tàu lượn cảm xúc”
- Một số người dùng phản ứng hài hước khi nhắc đến phong cách đặt tiêu đề của Phoronix
- Đồng thời cũng đưa ra đánh giá rằng các hoạt động benchmark và cập nhật hệ sinh thái mã nguồn mở của Phoronix rất hữu ích
- Các bình luận khác đề cập rằng Microsoft cũng đang đưa Rust vào nhân Windows
- Có ý kiến cho rằng một số thành phần đã được viết bằng Rust và đã nằm trong các bản phát hành
Ý nghĩa của việc đưa Rust vào sử dụng
- Việc hỗ trợ Rust trong nhân được chuyển thành tính năng chính thức và lâu dài đồng nghĩa với việc
tăng cường an toàn bộ nhớ và đưa ngôn ngữ hiện đại vào đã trở thành một phần của quá trình phát triển nhân
- Khi Rust được chấp nhận ở cả nhân Linux lẫn Windows, xu hướng chuyển thế hệ trong ngôn ngữ lập trình hệ thống ngày càng hiện rõ
- Cộng đồng xem quyết định lần này là sự hoàn tất của một thử nghiệm thành công, và kỳ vọng Rust sẽ tiếp tục mở rộng trong các mô-đun nhân về sau
3 bình luận
Nhưng chẳng phải vì chuyện đó mà đã có vài maintainer rời đi sao?
Hiện chỉ có đúng một cuốn sách liên quan đến tiếng Hàn được xuất bản, nhưng đáng tiếc là do cách dùng Rust trong nhân Linux đã trải qua nhiều thay đổi phá vỡ tương thích nhiều lần nên nó hoàn toàn không còn tương thích với các phiên bản nhân hiện nay. Sẽ thật tốt nếu có thể được bổ sung thông qua GitHub hoặc các kênh tương tự.
Ý kiến trên Hacker News
Hỗ trợ Rust đã tiến bộ rất nhiều trong 2 năm qua
Giờ gần như đã có thể viết module kernel hầu như không cần boilerplate
Tôi nghĩ việc bỏ nhãn “experimental” là một cột mốc lớn
Trong tương lai, ngày các bản phân phối tung ra kernel có hỗ trợ Rust được bật mặc định sẽ thật sự là bước ngoặt
Ví dụ, NixOS và Arch đã bật màn hình kernel panic mã QR được viết bằng Rust
Tôi nghĩ Fedora chắc cũng có hỗ trợ
CONFIG_RUST=yKhông phải kernel hỗ trợ không gian người dùng Rust, mà tôi hiểu là chỉ một phần mã kernel được biên dịch bằng rustc
Sau thời gian dài bị phản đối, việc Rust được chính thức chấp nhận trong Linux kernel thật sự rất xúc động
Xin chúc mừng đội Rust for Linux
Không biết đó có phải quân domino đầu tiên của dự án hay không
Alex Gaynor, đồng maintainer của Rust for Linux, đã chính thức rút lui
Giờ Miguel Ojeda là maintainer chính thức duy nhất còn lại, cùng với một số reviewer mã nguồn
Tôi thắc mắc liệu việc bỏ nhãn “experimental” có đồng nghĩa với việc bắt buộc mọi maintainer không được làm hỏng mã Rust hay không
Nó mang lại cảm giác yên tâm rằng các nhà phát triển có thể đầu tư vào driver viết bằng Rust
Các quy tắc vẫn như cũ, và mã làm hỏng bản dựng Rust thì không thể gửi lên cho Linus
Tức là maintainer có làm hỏng mã Rust nội bộ thì cũng không bị xem là vi phạm quy tắc
Tôi thắc mắc những kiến trúc mà Rust không hỗ trợ bây giờ có phải sẽ bị bỏ rơi không
Phần lõi của kernel vẫn phải được viết bằng C
Có nói rằng tiêu đề bài đã được sửa thành “The (successful) end of the kernel Rust experiment”
Vì cộng đồng phản hồi rằng tiêu đề ban đầu hơi cường điệu
Theo quy định của Hacker News
chỉ nên “sửa tiêu đề gốc khi nó gây hiểu lầm”
Vì thí nghiệm thất bại thì đâu có kết thúc như vậy
Trước câu hỏi “Đây có phải chuyện lớn không?”
Nếu xu hướng driver Linux kernel chuyển sang Rust, tôi tò mò liệu các hệ BSD như FreeBSD cũng sẽ trải qua quá trình oxy hóa (oxidation) tương tự không
Hay sẽ xuất hiện sự phản kháng và phân hóa
Tôi hoan nghênh những thử nghiệm mới
Tôi nghĩ Rust xứng đáng để chấp nhận sự khó khăn đó nhờ an toàn bộ nhớ và khả năng biểu đạt cao
Tôi tò mò hiện trong kernel có những phần nào được viết bằng Rust
Xem bài viết của Phoronix
Tôi thắc mắc trong mã Rust của kernel có bao nhiêu unsafe
Trước đây đã có nhiều phàn nàn rằng unsafe quá bất tiện
Người phát triển driver hầu như không cần dùng unsafe
Phần lớn mã vẫn được viết bằng Rust an toàn
Ví dụ, pwm_th1520.rs chỉ có
một dòng unsafe để hỗ trợ
SendvàSync