TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
Boris Burkov

7 Feb 2025, 17:37

Открыть в Telegram Поделиться Пожаловаться

Битва при dma_alloc_coherent()

В Линуксе сейчас будет приниматься эпохальное решение: включать ли Rust в кодовую базу “ядра ядра" или нет.

“Ядро ядра” линукса написано на чистых C, без плюсов. Драйверы, объем кодовой базы которых на несколько порядков больше по объему, но не по сложности, чаще всего тоже пишутся на C с ассемблерными вставками.

В 2022 Марк Руссинович, глава Microsoft Azure, призвал всех писать драйверы на Rust, поскольку он дает гораздо лучшие гарантии корректности кода, чем устаревшие языки, такие как C++ (тут стоит похвалить Microsoft, который при Сатье Наделле стал во-первых главным контрибьютором драйверов в код Linux, а во-вторых, стал одним из главных адоптеров Rust среди бигтехов).

Однако, зоопарк из разных языков программирования в ядре не нравится многим ключевым разработчикам ядра.

Разработчик из проекта Rust for Linux Мигель Охеда (Miguel Ojeda), пытался внести изменения на Rust в кодовую базу подсистемы прямого доступа к памяти, DMA, части “ядра ядра”.

Кристоф Хелвиг (Christoph Hellwig), отвечающий в ядре за подсистемы прямого доступа к памяти (DMA), виртуализацию KVM, крупноблочное выделение памяти (Slab allocator) и поддержку архитектуры PowerPC, отказался принимать пулл-реквест на Расте, заявив, что не хочет превращать “ядро ядра" в бульон из разных языков программирования. Мол, не имею ничего против Rust, но Linux написан на C, и должен оставаться на C. Мол, так Rust превратится в раковую опухоль, которой прорастет все ядро.

Однако, без внесения кусков растового кода вроде того, что предложил Мигель Охеда, писать полноценные драйверы на Rust, как призывает Руссинович, тоже станет невозможно.

Программисты проекта Rust for Linux Данило Круммрих (Danilo Krummrich) и Гектор Мартин (Hector Martin), попытались поднять вопрос принятия PR’а на уровень Линуса в обход Кристофа Хелвига. Мартин, мейнтейнер архитектур ARM для процессоров от Apple, пригрозил начать кампанию в соцсетях. Линус ответил, что травля в соцсетях - это подход, который его крайне раздражает.

Ведсон Алмейда Фильо (Wedson Almeida Filho), один из основателей проекта Rust for Linux, говорит, что старые мейнтейнеры саботируют внедрение Rust в ядро, и развитие проекта парализовано. Гектор Мартин снял с себя полномочия мейнтейнера ARM для Apple в Linux и заявил, что продолжит поддержку ARM вне кодовой базы ядра.

Имеем клинч, где каждая из сторон конфликта по-своему права. От того, какое решение будет принято сейчас Линусом, будет зависеть, появится ли Rust в ядре, что будет иметь очень далекоидущие последствия, поскольку он постепенно заместит там С.

1.1k 3 12 11
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot