Một nhà phát triển cung cấp triển khai lại GNU Coreutils trong Rust 

gnu-coreutils-gỉ

Sử dụng Rust cho dự án này sẽ giúp tăng tốc quá trình này vì rất nhiều lỗi tiềm ẩn đã được loại bỏ hoàn toàn.

Sylvestre Ledru bắt đầu triển khai lại GNU Coreutils trong Rust trong đại dịch COVID-19 và đã trình bày nó vào tuần trước trong ấn bản FOSDEM năm 2023. Nỗ lực được gọi là uutils hiện được đóng gói bởi nhiều bản phân phối Linux và cũng được sử dụng bởi một mạng xã hội nổi tiếng thông qua dự án Yocto.

So sánh ngôn ngữ Rust và C++ có một điểm chung: làm nổi bật sự vượt trội của Rust so với C++ về mặt an toàn bộ nhớ. Trình chỉnh sửa RisingWave giải thích lý do tại sao anh ấy viết lại Cloud DBMS gốc của mình từ đầu trong Rust sau khi rời dự án C++.

“Rust đảm bảo an toàn cho bộ nhớ và luồng tại thời điểm biên dịch bằng cách đưa ra các quy tắc sở hữu. Nó vượt xa RAII, một cơ chế quản lý bộ nhớ thường được sử dụng trong C++. Nó có hai lợi thế. Đầu tiên là rõ ràng: một khi trình biên dịch Rust xác thực chương trình của chúng tôi, chúng tôi sẽ không có bất kỳ lỗi phân đoạn hoặc điều kiện tương thích nào trong thời gian chạy, điều này sẽ yêu cầu hàng chục giờ gỡ lỗi, đặc biệt là trong một cơ sở mã có tính đồng thời cao và hầu như không đồng bộ. Thứ hai tinh tế hơn: Trình biên dịch của Rust chỉ hạn chế các loại lỗi, làm giảm các đoạn mã được lồng chặt chẽ có thể gây ra hành vi lỗi như vậy. Sao chép lỗi được cải thiện đáng kể bằng cách sử dụng thực thi xác định. »

GNU Coreutils là một gói từ dự án GNU chứa nhiều công cụ cơ bản cần thiết cho các hệ điều hành giống Unix: cp (sao chép tệp hoặc thư mục), mkdir (tạo thư mục), v.v. Nhà phát triển cung cấp bản triển khai lại bằng ngôn ngữ Rust.

Một trong những mục tiêu: làm cho gói có thể sử dụng được trên các hệ điều hành khác: Windows, macOS, Android, FreeBSD, v.v. Động thái này làm sống lại cuộc tranh luận về câu hỏi liệu có nên tiếp tục bắt đầu các dự án mới bằng C và C++ hay chỉ đơn giản là chọn ngôn ngữ Rust.

“Ngôn ngữ Rust cung cấp các đảm bảo bảo mật theo mặc định khi nói đến quản lý bộ nhớ. Đây không phải là trường hợp của C và C++, mà việc sử dụng chúng trong Mozilla là nguyên nhân gây ra các vấn đề về bảo mật bộ nhớ”, Sylvestre Ledru nhấn mạnh.

Tuy nhiên, Bjarne Stroustrup không đồng ý rằng việc so sánh giữa Rust và C++ giới hạn khái niệm bảo mật phần mềm thành bảo mật bộ nhớ:

“Không có định nghĩa duy nhất về khái niệm 'bảo mật' và chúng ta có thể đạt được nhiều loại bảo mật khác nhau thông qua sự kết hợp của các kiểu lập trình, thư viện hỗ trợ và bằng cách tận dụng phân tích tĩnh. Do đó, Bjarne Stroustrup gợi ý rằng những gì có thể thu được từ C++ về mặt bảo mật phần mềm, ngoài những thứ khác, phụ thuộc vào nhà phát triển và đặc biệt là kiến ​​thức về các công cụ mà ngôn ngữ này cung cấp, khả năng thành thạo trình biên dịch của anh ta, v.v.

Các kỹ sư của Google, nhận thức được những khả năng mà C++ mang lại cho họ, đã bắt tay vào việc tạo ra một trình xác minh khoản vay bằng ngôn ngữ này. Đó là một tính năng của trình biên dịch Rust đảm bảo an toàn cho bộ nhớ thông qua quản lý cấp phát con trỏ bộ nhớ.

nhóm Google, có ấn phẩm xuất hiện trong quý thứ ba của năm trước, đi đến kết luận của rằng hệ thống giống như C++ không cho phép thực hiện như vậy. Và để có thể đạt được sự an toàn bộ nhớ trong C++ với các điều khiển trong quá trình thực hiện chương trình. Nói cách khác, với mã C++ chậm, có thể đạt được mức độ bảo mật tương đương với mức độ bảo mật của Rust.

Việc phát hành trình soạn thảo RisingWave diễn ra khi Rust nổi bật so với các ngôn ngữ khác đã được trình bày trong nhiều năm như là các lựa chọn thay thế cho C và C++. Trên thực tế, nhân Linux ngày càng trở nên cởi mở hơn với ngôn ngữ lập trình hệ thống của Mozilla.


Để 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.