На проходящей в эти дни конференции Open-Source Summit 2022 в секции ответов на вопросы Линус Торвальдс упомянул о возможности скорой интеграции в ядро Linux компонентов для разработки драйверов устройств на языке Rust. Не исключается, что патчи с поддержкой Rust будут приняты в ближайшем окне приёма изменений, формирующем состав ядра 5.20, намеченного на конец сентября.

Запрос на включение изменений в ядро ещё не был отправлен Торвальдсу, но набор патчей прошёл дополнительное рецензирование, избавлен от основных замечаний, уже достаточно давно тестируется в ветке linux-next и доведён до состояния, пригодного для создания слоёв абстракции над подсистемами ядра, написания драйверов и модулей. Поддержка Rust преподносится как опция, не активная по умолчанию и не приводящая к включению Rust в число обязательных сборочных зависимостей к ядру.

Предложенные изменения дают возможность использовать Rust в качестве второго языка для разработки драйверов и модулей ядра. Использование Rust для разработки драйверов позволит с минимальными усилиями создавать безопасные и более качественные драйверы, избавленные от таких проблем как обращение к области памяти после её освобождения, разыменование нулевых указателей и выход за границы буфера.

Безопасная работа с памятью обеспечивается в Rust во время компиляции через проверку ссылок, отслеживание владения объектами и учёт времени жизни объектов (области видимости), а также через оценку корректности доступа к памяти во время выполнения кода. Rust также предоставляет средства для защиты от целочисленных переполнений, требует обязательной инициализации значений переменных перед использованием, лучше обрабатывает ошибки в стандартной библиотеке, применяет концепцию неизменяемости (immutable) ссылок и переменных по умолчанию, предлагает сильную статическую типизацию для минимизации логических ошибок.

  • torvn77
    link
    fedilink
    arrow-up
    0
    ·
    4 years ago

    Мне вот интересно, к каким выводам придёт анализ взаимодействия проприетарных рпсширений Rust и расширяемой архитектуры комманд Risk V?

    Я правильно понимаю что это грядущая жопа?

    • d_a
      link
      fedilink
      arrow-up
      0
      ·
      4 years ago

      Я правильно понимаю что это грядущая жопа?

      Да. However, есть малая надежда на развитие растового фронтенда GCC и стандартизацию в ISO.

    • l-xoid
      link
      fedilink
      arrow-up
      0
      ·
      4 years ago

      Проприетарные расширения Rust (что бы это ни было) попросту не станут использовать в ядре.

      • torvn77
        link
        fedilink
        arrow-up
        0
        ·
        4 years ago

        Но другие станут.
        Будет форк ядра с кодом на проприетарных командах и он будет работать, а свободное ядро нет.

        Будет таже ситуация что сейчас с libre и coreboot или даже ещё хуже, вплоть до полной невозможности работать без платных расширений вообще.

        • l-xoid
          link
          fedilink
          arrow-up
          0
          ·
          4 years ago

          Будет форк ядра с кодом на проприетарных командах и он будет работать, а свободное ядро нет.

          Как это затрагивает апстрим? Никак, так что пусть делают что хотят. Закрывать исходники и привязывать к производителю можно и без раста, при чём тут язык вообще?

        • cocucka
          link
          fedilink
          arrow-up
          0
          ·
          4 years ago

          Будет форк ядра с кодом на проприетарных командах и он будет работать, а свободное ядро нет.

          Окстись, ядро это ЖоПээЛ код, его не закрыть. Надо будет – портируют из форка.

          • torvn77
            link
            fedilink
            arrow-up
            0
            ·
            4 years ago

            Окстись, ядро это ЖоПээЛ код, его не закрыть.

            Код будет свободным, но часть операторов языка на котором он написан будет проприетарной и требовать покупки лицензии.
            Это обход GPL и его можно решить только дополнением лицензии новыми ограничениями.

    • cocucka
      link
      fedilink
      arrow-up
      0
      ·
      4 years ago

      Чё за платные расширения? Можно подумать их на сишечке не написать?

      • torvn77
        link
        fedilink
        arrow-up
        0
        ·
        4 years ago

        Чё за платные расширения?

        Когда раст только появился люди отмечали что можно делать проприетарные расширения языка.
        То есть можно писать СВОБОДНЫЙ код несвободными операторами и командами.

          • cryptOP
            link
            fedilink
            arrow-up
            0
            ·
            4 years ago

            он по жизни такой. это же торн.