Рубріки: Новини

Серед розробників ядра Linux виник конфлікт через бажання поєднати код Rust і C

Дмитро Сімагін

Розробники, які намагаються додати код Rust до ядра Linux, продовжують стикатися з протидією з боку супроводжувачів ядра, які вважають використання кількох мов небажаним і ризикованим ускладненням. Про це повідомляє The Register.

Вперше занепокоєння виникло у вересні минулого року, коли програміст Microsoft Ведсон Алмейда Фільо вийшов з проекту Rust for Linux, посилаючись на розчарування через «нетехнічну нісенітницю».

Проблема посилилась кілька тижнів тому, коли була запропонована абстракція, яка дозволяє написаним на Rust драйверам пристроїв викликати основний API DMA ядра на основі C. Ця ідея зустріла опір з боку супроводжуючого ядра Крістофа Хеллвіга. У повідомленні до списку розсилки ядра Linux Хеллвіг написав: «Будь ласка, без коду Rust у kernel/dma».

Після цього Мігель Охеда з проекту Rust for Linux попросив Хеллвіга запропонувати альтернативу. Не це супроводжувач ядра відповів: «Зберігайте оболонки у своєму коді замість того, щоб робити болючим життя інших». За його словами, «інтерфейси API DMA повинні залишатися в читабельному коді C, а не в дивних прив’язках для обробки та підтримки». 

Далі Хеллвіг дав зрозуміти, що він просто не хоче мати справу з кодом Rust.

«Не змушуйте мене мати справу з вашою блискучою мовою дня. Підтримка багатомовних проектів — це проблема, з якою я не зацікавлений мати справу. Якщо ви хочете використовувати щось, що не є C, будь то Асемблер чи Rust, то пишіть в інтерфейси C і самі вирішуйте невідповідність імпедансу», — написав він.

У відповідь Даніло Круммріх, розробник Red Hat, який бере участь у проекті Rust for Linux, пояснив, що сторона C ядра залишається незмінною, а драйвери Rust просто використовують абстракції для цього коду C, і що ці абстракції підтримуються командою централізовано в rust/kernel, і це, мабуть, краще, ніж драйвери, які мають власні індивідуальні прив’язки C.

Але Хеллвіг, здається, не зацікавлений у тому, щоб абстракції DMA Rust підтримувалися окремо:

«Якщо ви хочете зробити Linux неможливим для підтримки через багатомовну кодову базу, то робіть це в своєму драйвері, а не поширюйте цю ракову пухлину на основні підсистеми».

Останні статті

Google випустила бету бібліотеки Compose 1.2 — базовий інструментарій для створення user-інтерфейсів в Android

Google оголосила, що бібліотека адаптивних макетів Compose 1.2 офіційно переходить у бета-версію. Вона надає розробникам…

04.09.2025

«Тепер важлива не кваліфікація, а ключові слова»: IT-фахівці розчаровані автоматизованим аналізом резюме

Опитування Dice, проведене серед понад 200 IT-працівників, виявило широке розчарування автоматизованою перевіркою резюме. Багато респондентів…

04.09.2025

Хакери навчились використовувати Grok для поширення шкідливих посилань

Зловмисники використовують Grok, вбудований у X помічник на основі штучного інтелекту, щоб обійти обмеження на…

04.09.2025

На GitHub виклали оригінальний код BASIC 1978 року

На GitHub виклали оригінальний вихідний код інтерпретатора BASIC 1.1 для процесора MOS 6502. Microsoft датує…

04.09.2025

Функція Projects тепер доступна для безкоштовних користувачів ChatGPT

Компанія OpenAI оголосила, що функція Projects стала доступною для безкоштовних користувачів ChatGPT. Проекти дозволяють каталогізувати…

04.09.2025

Мінцифри шукає бажаючих тренувати національну LLM

Міністерство цифрової трансформації оголосило конкурс для бажаючих взяти участь у розробці та навчанні української великої…

03.09.2025