17 điểm bởi GN⁺ 2025-12-11 | 3 bình luận | Chia sẻ qua WhatsApp
  • 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

 
secret3056 2025-12-12

Nhưng chẳng phải vì chuyện đó mà đã có vài maintainer rời đi sao?

 
bus710 2025-12-12

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ự.

 
GN⁺ 2025-12-11
Ý 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

    • Một số bản phân phối đã làm vậy rồi
      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ợ
    • Tôi được biết Fedora 43 được biên dịch với CONFIG_RUST=y
    • Tôi thắc mắc cụm “kernel có hỗ trợ Rust được bật mặc định” nghĩa là gì
      Khô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
    • Tôi vẫn nghi ngờ liệu điều này có khả thi trên mọi nền tảng trước khi Rust được hỗ trợ đầy đủ trong GCC hay không
  • 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

    • Tôi nhớ trước đây từng có vụ hỗn loạn quanh đoạn mã Rust liên quan đến dự án Asahi do maintainer từ chối
      Không biết đó có phải quân domino đầu tiên của dự án hay không
    • Theo bài viết của Phoronix
      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

    • Thực tế, đây chỉ là tín hiệu cho thấy Rust đã có chỗ đứng chính thức trong kernel
      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
    • Trong kernel, ngoài API không gian người dùng ra thì không có gì được đảm bảo ổn định
      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

    • Không phải vậy. Hiện Rust chỉ được dùng trong các subsystem driver
      Phần lõi của kernel vẫn phải được viết bằng C
    • Tôi tò mò không biết những kiến trúc nào chưa được hỗ trợ
    • Có người đùa rằng “đúng vậy, tất cả đều đã chín rồi (cooked)”
  • 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

    • Tôi thấy tiêu đề sửa lại là hợp lý
      Theo quy định của Hacker News
      chỉ nên “sửa tiêu đề gốc khi nó gây hiểu lầm
    • Từ “successful” có lẽ vốn đã được ngầm hiểu rồi
      Vì thí nghiệm thất bại thì đâu có kết thúc như vậy
    • Có người đùa đề xuất tiêu đề kiểu “Linux devs tried Rust — you won’t BELIEVE the reaction!”
  • Trước câu hỏi “Đây có phải chuyện lớn không?”

    • “Đúng, tức là đã thêm vào một phụ thuộc lớn
    • Có người chỉ ngắn gọn đồng ý là “đú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

    • Nhưng có người phản bác rằng “cái mới thì không ổn định và khó học”
      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

    • Tiêu biểu là DRM Panic “Screen of Death” được viết bằng Rust
      Xem bài viết của Phoronix
    • Rust hiện chủ yếu được dùng ở phía driver GPU
  • 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

    • Phần lớn mã unsafe được giấu bên trong kernel crate dùng để tương tác với API C
      Người phát triển driver hầu như không cần dùng unsafe
    • unsafe về bản chất được thiết kế để chỉ dùng ở mã biên (edge)
      Phần lớn mã vẫn được viết bằng Rust an toàn
    • unsafe vẫn khó thật, nhưng trong mã driver thực tế thì gần như không xuất hiện
      Ví dụ, pwm_th1520.rs chỉ có
      một dòng unsafe để hỗ trợ SendSync
    • Nguyên tắc là phải ghi tài liệu cho các khối unsafe và bọc chúng trong giao diện an toàn để không phải nhìn trực tiếp chúng nữa