Dự án Chromium sẽ hỗ trợ sử dụng thư viện Rust

Chromium

, dự án Chromium sẽ hỗ trợ sử dụng thư viện C++ Rust của bên thứ ba trong Chromium

Google ra mắt tin tức gần đây rằng nhóm đằng sau dự án Chromium đang làm việc để thêm chuỗi công cụ Rust từ sản xuất đến hệ thống xây dựng của bạn.

Đối với những người vẫn chưa biết về Rust, họ nên nhớ kỹ vì ngôn ngữ lập trình này, được Mozilla phát triển đặc biệt để viết trình duyệt, đã bắt đầu thâm nhập và được chấp nhận trong nhiều dự án quan trọng, một trong số đó là Hạt nhân rỉ sét.Linux.

Điều này sẽ cho phép chúng tôi đưa mã Rust vào mã nhị phân của Chrome trong năm tới. Mục tiêu là bắt đầu từ quy mô nhỏ và đặt ra những kỳ vọng rõ ràng về thư viện nào sẽ được xem xét khi chúng sẵn sàng.

Vì vậy, lý do là Chromium cuối cùng cũng bắt đầu tung ra công nghệ đó. Đối với Google, việc giới thiệu Rust trong Chromium sẽ hoàn thành mục tiêu cung cấp một cách dễ dàng và an toàn hơn để tuân thủ quy tắc hai, đó là tăng tốc độ phát triển và cải thiện tính bảo mật của Chrome, bên cạnh việc cải thiện bảo mật, loại bỏ lỗi bộ nhớ và giảm mật độ lỗi trong mã.

Chúng tôi biết rằng C++ và Rust có thể phối hợp rất tốt với nhau nhờ các công cụ như cxx, autocxx bindgen, cbindgen, Diplomat và (thử nghiệm) crubit. Tuy nhiên, cũng có những hạn chế. Chúng ta có thể mong đợi hình dạng của những hạn chế này sẽ thay đổi theo thời gian với các công cụ mới hoặc cải tiến, nhưng các quyết định và mô tả ở đây dựa trên trạng thái công nghệ hiện tại.

Quyết định được thực hiện như một phần của sáng kiến ​​​​ngăn chặn lỗi bộ nhớ xuất hiện trong cơ sở mã Chrome. Theo thống kê được cung cấp cách đây hai năm, 70% sự cố bảo mật nghiêm trọng và nguy hiểm trong Chromium là do lỗi bộ nhớ.

Việc sử dụng ngôn ngữ Rust, tập trung vào quản lý bộ nhớ an toàn và cung cấp khả năng quản lý bộ nhớ tự động, nó sẽ làm giảm nguy cơ lỗ hổng gây ra bởi các vấn đề như truy cập vào một vùng bộ nhớ sau khi nó đã được giải phóng và tràn bộ đệm.

Mục tiêu của việc đưa Rust lên Chromium là cung cấp một cách dễ dàng hơn (không có IPC) và an toàn hơn (nói chung là C++ ít phức tạp hơn, không có lỗi an toàn bộ nhớ trong hộp cát) để đáp ứng quy tắc hai, nhằm tăng tốc độ phát triển (viết ít mã hơn , ít tài liệu thiết kế hơn, ít bản vá bảo mật hơn) và để cải thiện tính bảo mật (nhiều dòng mã hơn không có lỗi bảo mật trong bộ nhớ, mật độ lỗi mã thấp hơn) của Chrome. Ngoài ra, công ty tự tin rằng chúng tôi có thể sử dụng các thư viện Rust của bên thứ ba để đạt được mục tiêu này.

Đầu năm 2022, nhóm Chromium đã thử nghiệm với Rust và, sau một vài tháng, đã đi đến kết luận rằng ngôn ngữ ban đầu không phù hợp để thay thế C++ cho các tác vụ phức tạp với mã không đồng bộ phải hoạt động cùng với mã hiện có.

Do đó, ban đầu, việc sử dụng Rust trong Chromium theo kế hoạch bị hạn chế rõ ràng. Đối với một điều, interop sẽ chỉ đi theo một chiều: từ C++ đến Rust. Mặt khác, ban đầu chỉ cho phép sử dụng thư viện của bên thứ ba. Chúng hoạt động như các thành phần độc lập và độc lập với các thành phần bên trong của Chromium. Các thư viện nên có một API đơn giản cho nhiệm vụ cụ thể của bạn. Sau đó, nhóm Chromium sẽ kiểm tra các thư viện.

Cuối cùng, điều đáng nói là như vậy thêm hỗ trợ trong Chromium sẽ cho phép mã Rust chuyển sang mã nhị phân của Chrome bắt đầu từ năm sau. Quyết định chủ yếu xem xét vấn đề bảo mật: Rust cung cấp khả năng bảo mật cao hơn khi ghi vào bộ nhớ so với C++ và cấm các hành vi có khả năng gây hại như đọc các biến không được ghi, truy cập vượt quá giới hạn do mảng đặt, hủy bỏ hội nghị con trỏ null hoặc không hợp lệ, sử dụng trình vòng lặp bị ghi đè .

Nếu bạn quan tâm muốn biết thêm về nó, bạn có thể tham khảo 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: Miguel Ángel Gatón
  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.