Наступна ітерація Rust у Linux 6.2 знову розпалює дебати щодо заміни C на Rust

RustLinux

Інтеграція Rust у Linux отримала високий рівень сприйняття спільнотою та розробниками

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

З першим попереднім переглядом Rust на Linux 6.1, Відроджую настрій з боку значної частини розробників з ядра та Джонатан Корбет зазначає, що «в ядрі все одно буде недостатньо Rust, щоб зробити щось цікаве», включення цієї мови знову розпалило дискусію щодо необхідності відмовитися від мови C на користь Rust у термінах системного програмування. Це питання розділяє спільноту розробників.

асахі лінья взявся за розробку драйвера графічного процесора (GPU) для Mac M1 у Rust.

Про ваше порівняння між мовами Rust і C згадує, що:

«Немає абсолютно жодного шансу, що вам не доведеться мати справу з керуванням одночасним доступом, спробами доступу до областей пам’яті після випуску та всілякими іншими проблемами, якщо ви будете писати це на C. Усі проблеми паралельного доступу зникають із Rust! Пам'ять звільняється за потреби! Щойно ви дізнаєтесь, як змусити Rust працювати на вас, я думаю, це допоможе вам написати пристойний код, навіть за межами обіцянок безпеки мови. Це справді чарівно! »

«Існує багато дискусій про те, корисний Rust у ядрі чи ні... з мого досвіду, він набагато корисніший, ніж я коли-небудь уявляв!» ", - додає вона.

Ваші коментарі якось повторюються з компіляції технічних причин, що ймовірно виправдати відмову від мови C на користь Rust. Насправді 15,9% із 2288 уразливостей, які вплинули на ядро ​​Linux за 20 років (цифри зі словника Common Vulnerabilities and Exposure (CVE)), пов’язані з недоліками в мові C, проблемами, пов’язаними з керуванням пам’яттю: переповнення буфера. , не звільнені виділення, доступ до недійсних або звільнених областей пам’яті тощо.

Крім того, основні розробники ядра Linux знайомі з мовою Сі, вік якої вже вважається 3-м віком. Нове покоління супроводжувачів віком за тридцять років зростає, тому труднощі з пошуком супроводжувачів ядра Linux, ймовірно, збільшаться, якщо його розробка продовжиться на мові C. Причини, чому Лінус Торвальдс відкрив двері до ядра розвитку в Rust.

Щодо питання про можливість відмови від мови Сі, Творець мови C перераховує ряд причин, чому ініціативи, ймовірно, зазнають невдачі які йдуть в цьому напрямку:

Ланцюжок інструментів мови VS

Мова Сі - це не тільки сама мова, а й усі засоби розробки, розроблені для цієї мови.

Бажаєте зробити статичний аналіз вихідного коду? – Багато людей працюють над цим для C. Інструменти для виявлення витоків пам’яті, перегонів даних та інших помилок? Їх багато, навіть якщо ваша мова краще оснащена.

Якщо ви хочете націлитися на маловідому платформу, швидше за все, ви використовуєте C. Статус C як lingua franca комп’ютерної техніки сьогодні робить його вартою написання інструментів, і багато інструментів написано.

Якщо хтось має робочий інструментальний ланцюжок:

навіщо ризикувати зміною мови? «Кращий C» має створити багато додаткової продуктивності, щоб мотивувати час, витрачений на налаштування нового інструментального ланцюга. Чи можливо це, ще належить з’ясувати.

Невизначеність нової мови

До того, як мова досягне зрілості, вона, швидше за все, матиме помилки. і суттєво модифіковано для вирішення семантичних проблем мови. І чи узгоджується мова з рекламою? Він може запропонувати щось на кшталт «винятковий час компіляції» або «швидше, ніж C», але цих цілей стає важко досягти, коли мова додає

А супроводжувачі? Звичайно, ви можете розгалужувати мову з відкритим вихідним кодом, але я сумніваюся, що багато компаній будуть зацікавлені у використанні мови, яку вони можуть бути змушені зберегти пізніше. Робити ставку на нову мову – великий ризик.

Те, що мова може бути недостатньо хорошою

Чи справляється мова з фактичними проблемними точками C?

Виявляється, це Люди не завжди погоджуються щодо слабких сторін C. Розподіл пам'яті, обробка масивів і рядків часто складні, але за допомогою правильних бібліотек і хорошої стратегії пам'яті їх можна мінімізувати.

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

І ще гірше, що, якщо в мові відсутні ключові функції, які присутні в C? Функції, на які покладаються досвідчені програмісти на C? Цей ризик збільшується, якщо розробник мови не використовує багато C, а походить із C++, Java тощо.

Відсутність досвідчених розробників для нової мови

Нова мова, природно, матиме набагато менший пул досвідчених розробників. Для будь-якої середньої чи великої компанії це велика проблема. Чим більше розробників доступно для компанії, тим краще вона.

Крім того, якщо компанія має досвід найму розробників C, вони не знають, як найняти цю нову мову.

Нарешті, якщо ви хочете дізнатись більше про це, ви можете проконсультуватися з подробиці за наступним посиланням.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.