Projekt Chromium będzie wspierał korzystanie z bibliotek Rust

chrom

, projekt Chromium będzie obsługiwał korzystanie z zewnętrznych bibliotek C++ Rust w Chromium

Google zaprezentował niedawno dowiedzieliśmy się, że zespół odpowiedzialny za projekt Chromium pracuje nad dodaniem zestawu narzędzi Rust z produkcji do systemu kompilacji.

Ci, którzy jeszcze nie znają Rusta, powinni go dobrze pamiętać, ponieważ ten język programowania, który został opracowany przez Mozillę specjalnie do pisania przeglądarek, zaczął przenikać i być akceptowany w wielu ważnych projektach, jednym z nich jest Jądro rdzy. Linux.

To pozwoli nam włączyć kod Rust do pliku binarnego Chrome w ciągu następnego roku. Celem jest rozpoczęcie od małych kroków i określenie jasnych oczekiwań, które biblioteki zostaną wzięte pod uwagę, gdy będą gotowe.

Jest więc zrozumiałe, że Chromium wreszcie zaczyna wdrażać tę technologię. Dla Google wprowadzenie Rust w Chromium spełni cel zapewnienia łatwiejszego i bezpieczniejszego sposobu przestrzegania zasady dwóch, czyli przyspieszenia rozwoju i poprawy bezpieczeństwa Chrome, oprócz poprawy bezpieczeństwa, usunięcia błędów pamięci i zmniejszenie gęstości błędów w kodzie.

Wiemy, że C++ i Rust mogą ze sobą bardzo dobrze współpracować dzięki narzędziom takim jak cxx, autocxx bindgen, cbindgen, dyplomat i (eksperymentalny) crubit. Istnieją jednak również ograniczenia. Możemy spodziewać się, że kształt tych ograniczeń będzie się zmieniał wraz z nowymi lub ulepszonymi narzędziami, ale decyzje i opisy tutaj oparte są na obecnym stanie technologii.

Decyzja została podjęta w ramach inicjatywy mającej na celu zapobieganie pojawianiu się błędów pamięci w bazie kodu Chrome. Według statystyk przedstawionych dwa lata temu, 70% krytycznych i niebezpiecznych problemów bezpieczeństwa w Chromium wynika z błędów pamięci.

Wykorzystanie języka Rust, który koncentruje się na bezpiecznym zarządzaniu pamięcią i zapewnia automatyczne zarządzanie pamięcią, zmniejszy ryzyko podatności spowodowane problemami takimi jak dostęp do obszaru pamięci po jego zwolnieniu i przepełnienie bufora.

Celem wprowadzenia Rust do Chromium jest zapewnienie łatwiejszego (bez IPC) i bezpieczniejszego (ogólnie mniej złożonego C++, bez błędów bezpieczeństwa pamięci w piaskownicy) sposobu spełnienia zasady dwóch, aby przyspieszyć programowanie (mniej kodu do napisania , mniej dokumentów projektowych, mniej poprawek bezpieczeństwa) i poprawić bezpieczeństwo (więcej wierszy kodu bez błędów bezpieczeństwa w pamięci, mniejsza liczba błędów w kodzie) Chrome. Ponadto firma jest przekonana, że ​​do osiągnięcia tego celu możemy użyć zewnętrznych bibliotek Rusta.

Na początku 2022 roku zespół Chromium eksperymentował już z Rust i po kilku miesiącach doszedł do wniosku że język początkowo nie nadaje się jako zamiennik C++ dla złożonych zadań z kodem asynchronicznym, który musi współpracować z istniejącym kodem.

Dlatego planowane użycie Rust in Chromium jest początkowo wyraźnie ograniczone. Po pierwsze, interop będzie działać tylko w jedną stronę: od C++ do Rusta. Z drugiej strony, początkowo dozwolone jest tylko korzystanie z bibliotek innych firm. Działają one jako samodzielne komponenty i są niezależne od wewnętrznych komponentów Chromium. Biblioteki powinny mieć prosty interfejs API do określonego zadania. Następnie zespół Chromium sprawdzi biblioteki.

Na koniec warto wspomnieć, że jako takie dodanie obsługi w Chromium umożliwi przeniesienie kodu Rust do plików binarnych Chrome począwszy od przyszłego roku. Decyzja dotyczy głównie kwestii bezpieczeństwa: Rust zapewnia większe bezpieczeństwo podczas zapisywania w pamięci niż C++ i zabrania potencjalnie szkodliwych zachowań, takich jak odczytywanie niezapisanych zmiennych, dostęp poza ograniczeniami określonymi przez tablice, usuwanie odwołań do zerowych lub nieprawidłowych wskaźników, stosowanie przesłoniętych iteratorów .

Jeśli chcesz dowiedzieć się więcej na ten temat, możesz zapoznać się ze szczegółami W poniższym linku.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.