Rust không được miễn trừ những lời chỉ trích của Linus Torvalds

Vài tuần trước tin tức về một số triển khai đã được thực hiện trong nhánh linux-next, bao gồm một tập hợp các thành phần ban đầu để phát triển trình điều khiển thiết bị bằng ngôn ngữ Rust.

Tài liệu này được xuất bản riêng về việc sử dụng Rust trong nhân Linux và một ví dụ về mô-đun nhân có trình điều khiển thiết bị ký tự bằng ngôn ngữ Rust. Mã được thêm bởi Stephen Rothwell, người duy trì chi nhánh.

Sau đó Linus Torvalds đã xem xét việc triển khai bản vá các khả năng thiết lập trình điều khiển ngôn ngữ Rust trong nhân Linux và lên tiếng chỉ trích một số.

Những lời phàn nàn lớn nhất là do tiềm năng thoát khỏi "Thời gian chạy thất bại hoảng sợ" trong các tình huống sai, ví dụ, trong tình huống hết bộ nhớ, khi các hoạt động cấp phát bộ nhớ động, bao gồm cả các hoạt động hạt nhân, có thể không thành công.

torvalds đã nói rằng sự tập trung như vậy vào hạt nhân về cơ bản là không thể chấp nhận được, Và nếu bạn không hiểu điểm này, bạn hoàn toàn có thể từ chối bất kỳ mã nào cố gắng sử dụng cách tiếp cận như vậy. Mặt khác, nhà phát triển của bản vá đã đồng ý với vấn đề và coi nó có thể giải quyết được.

Một vấn đề khác là cố gắng sử dụng các loại dấu phẩy động hoặc 128 bit, không hợp lệ cho các môi trường như nhân Linux.

Bạn có thể không hiểu các phân nhánh của thời điểm nó có thể xảy ra, vì vậy có thể
ít vấn đề hơn tôi nghĩ, nhưng về cơ bản
Tôi nghĩ nếu bất kỳ ánh xạ Rust nào có thể gây ra hoảng loạn, thì điều này chỉ đơn giản là
_ về cơ bản_ không thể chấp nhận được.

Các lỗi ánh xạ trong bộ điều khiển hoặc mã không phải lõi, và đó là đối với
định nghĩa, tất cả mã Rust mới, không bao giờ KHÔNG BAO GIỜ có thể gây ra
hoảng sợ một cách hợp lệ. Điều tương tự cũng xảy ra với «ồ, trong một số trường hợp, tôi đã không thử sử dụng
Số nguyên 128 bit hoặc dấu phẩy động '.

Vì vậy, nếu trình biên dịch Rust gây ra các nhiệm vụ ẩn không thể
phát hiện và trả về dưới dạng lỗi, sau đó tôi thực sự tin rằng tất cả những điều này
phương pháp tiếp cận phải hoàn toàn NAK'ed và cơ sở hạ tầng Rust,
ở cấp trình biên dịch hoặc trong trình bao bọc hạt nhân, bạn cần thêm
công việc

Điều này hóa ra là một vấn đề nghiêm trọng hơn., kể từ lúc này Thư viện trung tâm của Rust không thể phân chia được và đại diện cho một vết bẩn lớn; không có cách nào để chỉ yêu cầu một số tính năng, do đó tránh việc sử dụng một hoặc một chức năng có vấn đề khác.

Giải pháp cho vấn đề có thể yêu cầu thay đổi trình biên dịch và thư viện gỉ, mặc dù nhóm vẫn chưa có chiến lược về cách triển khai mô-đun cho các thư viện ngôn ngữ.

Bên cạnh đó, Torvalds đã chỉ ra rằng bộ điều khiển ví dụ được cung cấp là vô dụng và khuyên bạn nên đính kèm như một ví dụ về trình điều khiển giải quyết một trong những vấn đề thực tế.

Trước đây Google tuyên bố tham gia vào một sáng kiến ​​thúc đẩy hỗ trợ Rust trong nhân Linux y cung cấp các khía cạnh kỹ thuật về tính khả thi của việc triển khai Rust để chống lại các vấn đề phát sinh từ các lỗi trong quá trình làm việc với bộ nhớ.

Google cho rằng Rust đã sẵn sàng tham gia C làm ngôn ngữ phát triển Các thành phần nhân Linux. Bài báo cũng cung cấp các ví dụ về việc sử dụng ngôn ngữ Rust để phát triển trình điều khiển hạt nhân, trong bối cảnh nó được sử dụng trên nền tảng Android (Rust được công nhận là ngôn ngữ được hỗ trợ chính thức cho phát triển Android).

Cần lưu ý rằng Google đã chuẩn bị một nguyên mẫu ban đầu của bộ điều khiển được viết bằng Rust cho cơ chế giao tiếp giữa các quá trình của Binder, cho phép so sánh hiệu suất và bảo mật chi tiết của việc triển khai Binder trong C và Rust.

Ở dạng hiện tại, công việc vẫn chưa được hoàn thành, nhưng đối với hầu hết tất cả các phần trừu tượng cơ bản của chức năng hạt nhân cần thiết để Binder hoạt động, các lớp đã được chuẩn bị để sử dụng những phần trừu tượng này trong mã Rust.

Cuối cùng, nếu bạn muốn biết thêm về nó, bạn có thể kiểm tra chi tiết Trong liên kết sau đâ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: AB Internet Networks 2008 SL
  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.   Miguel Rodriguez dijo

    Tất cả những lời chỉ trích của họ đều có giá trị, vì Rust là một ngôn ngữ mới hoạt động với mô hình khác với C, nên có thể hiểu được mối quan tâm về bất kỳ chi tiết nào trong thư viện hoặc trong chính trình biên dịch, mặc dù mã hợp lệ, nhưng nó gây ra hạt nhân để phá vỡ cách nó được triển khai và xây dựng. Đó là lý do tại sao các đề xuất như có thể mô-đun hóa thư viện để gọi và duy trì hoạt động chỉ những chức năng cần thiết cho chương trình (hoặc trong trường hợp này là cho bất kỳ bộ điều khiển nào) hoạt động chính xác. Điều bạn yêu cầu cũng không phải là vô lý, mà họ mang đến cho bạn một bộ điều khiển nguyên mẫu thực sự hoạt động tốt đối với một vấn đề hiện tại (hoặc ít nhất là thực hiện công việc tương tự như một bộ điều khiển hiện có trong hạt nhân và hoạt động mà không lo sợ).

  2.   Sete dijo

    Thỉnh thoảng tôi đọc lại các bài viết của Linux Adictos Nhưng tôi phải mất rất ít thời gian để tuyệt vọng khi thấy rằng dù có nội dung rất hay nhưng kết quả cuối cùng lại bị phá hủy với lỗi chính tả khủng khiếp.
    Liệu chính tả và ngữ pháp có khó như vậy không?
    Thật xấu hổ!
    Cổ vũ!