W GCC zatwierdzili wdrożenie RUST (gccrs)

Niedawno pojawiły się wiadomości Komitet Sterujący GCC zatwierdził włączenie implementacji gccrs (GCC Rust) z kompilatora Rusta w jądrze GCC.

Z tym GCC (Kolekcja kompilatorów GNU) masz już zaplecze dla Rust, poprzez projekt o nazwie rustc_codegen_gcc założony przez Antoniego Bouchera. Nadal jest opisywany jako praca w toku, ale został włączony do głównego repozytorium Rusta we wrześniu 2021 roku.

Dla tych, którzy nie znają języka Rdza, powinni wiedzieć, co jeste koncentruje się na bezpiecznym zarządzaniu pamięcią i zapewnia środki do osiągnięcia wysokiej równoległości pracy. Bezpieczna obsługa pamięci, która wyklucza błędy, takie jak dostęp do obszaru pamięci po jego zwolnieniu, wyłuskiwanie wskaźników zerowych i przepełnienie granic bufora, jest osiągana w Rust w czasie kompilacji poprzez sprawdzanie referencji, śledzenie własności obiektów, uwzględnienie czasu życia obiektów (zakresy ) oraz ocenę poprawności dostępu do pamięci podczas wykonywania kodu.

Rdza zapewnia również ochronę przed przepełnieniem całkowitoliczbowym, wymaga inicjalizacji zmiennych przed użyciem, lepiej radzi sobie z błędami w bibliotece standardowej, domyślnie wymusza koncepcję referencji i zmiennych niezmiennych.

Po zintegrowaniu interfejsu, w standardowym GCC można go używać do kompilacji programów Rust bez konieczności instalowania kompilatora rustc zbudowanego z kompilacji LLVM.

Od listopada 2020 roku pracuję na pełny etat nad front-endem Rust dla GCC, dzięki Open Source Security, Inc i Embecosm. W rezultacie piszę na tę listę mailingową, aby wcześniej uzyskać informacje zwrotne na temat zbiorowego doświadczenia tutaj, aby zaplanować ścieżkę do przesłania front-endu do GCC.

Znaczenie tego projektu jest jego znaczenie dla Linuksa, ogólnie zbudowanego przy użyciu GCC, gdzie plany umożliwienia używania Rusta razem z C dla kodu jądra, ze względu na bezpieczeństwo pamięci, stale się rozwijają.

Oznacza to, że kompilator Rusta, rustc, może być używany z backendem GCC, Backend jest generatorem kodu, który obsługuje więcej architektur procesora niż LLVM, zwykły kompilator zaplecza Rusta, chociaż istnieją ograniczenia, takie jak wymaganie załatanej wersji GCC.

Alternatywą jest posiadanie pełnego łańcucha narzędzi GCC. W styczniu 2021 r. Open Source Security, Inc, twórcy wzmocnionej wersji jądra Linuksa o nazwie Grsecurity, powiedzieli, że sfinansują „publiczne wysiłki na rzecz rozwoju” interfejsu GCC dla Rust, ponieważ poprawi on bezpieczeństwo. mieszać różne kompilatory.

Z mojej perspektywy jako lidera tego front-endu obecnie jesteśmy w fazie intensywnego rozwoju, więc oznacza to dużą rotację kodu jeszcze i nie widzę, żeby to się zmieniło, dopóki nie będziemy mogli pomyślnie skompilować pudełko libcore jeszcze w tym roku. Chociaż chciałbym się zobaczyć połączone z GCC 13, chcę mieć pewność, że ten projekt odniesie sukces dla wszystko, a to może oznaczać powrót do następnego okna wydania aby upewnić się, że jest to wykonalne, aby stworzyć wysokiej jakości front-end do siedzenia razem do innych.

Firma powołała się na artykuł pokazujący, „jak można zmniejszyć ogólne bezpieczeństwo środowiska uruchomieniowego, wprowadzając kod napisany w języku Rust lub innym języku, w którym kompilator nie zapewnia takiego samego bezpieczeństwa na poziomie binarnym”.

Zachęcamy programistów gccrs do rozpoczęcia współpracy z zespołami przeglądowymi oraz GCC Change Release do finalizowania i zatwierdzania poprawek pod kątem spełnienia wymagań technicznych dotyczących kodu, który ma zostać dodany do GCC.

Zakładając, że rozwój gccrs będzie kontynuowany zgodnie z planem i nie zostaną zidentyfikowane żadne nieprzewidziane problemy, interfejs języka Rust zostanie zintegrowany z wydaniem GCC 13 zaplanowanym na maj przyszłego roku. Implementacja Rust w GCC 13 będzie w stanie beta, ale domyślnie nie jest jeszcze włączona.

W końcu jeśli chcesz dowiedzieć się więcej na ten temat o projekcie możesz zapoznać się ze szczegółami w poniższy link.


Zostaw swój komentarz

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

*

*

  1. Odpowiedzialny za dane: AB Internet Networks 2008 SL
  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.

  1.   ćwierć powiedział

    Świetnie, mam nadzieję, że implementacja przyda się wielu programistom.