Может ли Линус Торвальдс рассмотреть возможность внедрения C++ в ядро ​​Linux?

Linustorvalds

Линус Бенедикт Торвальдс — инженер-программист, известный тем, что инициировал и поддерживал разработку ядра Linux.

Несколько недель назадмы делимся здесь, в блоге, новостями о предложении который был возрожден после многих лет в отношении жизнеспособности внедрения кода C++ в ядро ​​Linux, предложение, которое было выдвинуто в 2018 году как шутка.

La предложение было запущено снова в списках рассылки ядра, но серьёзно для Ганс Петер Анвин, Ключевой разработчик ядра Intel поднял вопрос о возможности включения C++ в качестве третьего языка программирования в Linux.

Linux C ++
Теме статьи:
C++ на Linux, тема возрождена спустя 6 лет

С введением Ржавчина в Linux, многие разработчики и часть сообщества увидели отличный путь вперед в Linux, плюс еще Появились различные «идеи» по реализации других языков программирования., предложение внедрить C++ в очередной раз вызывает дебаты среди многих разработчиков ядра, и даже Линус Торвальдс еще раз самым пассивным и понятным образом объясняет, почему Linux не готов к C++ (сарказм).

Мы должны помнить, что Rust не был принят в Linux с самого начала., поскольку проект Rust для Linux (Rust for Linux) претерпел ряд изменений самим Линусом Торвальдсом, прежде чем был принят в основную ветку ядра для его включения, и стоит отметить, что отец Linux не был чем-то софтовым при внесении изменений и комментировании предлагаемых изменений.

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

Сейчас в случае предложения C++ в качестве третьего языка программирования, в предполагаемом случае, и я говорю «конечно», Реализация должна пройти аналогичную серию проверок., если не даже более строгим, чем это было для Rust. А факт упоминания об этом связан с тем, что C++ и Linus имеют свою историю, небольшую, но уже многолетнюю.

Причина упоминания что в случае C++ как третьего языка Linux «Предположительно», это потому, что отец Linux, Линус Торвальдс, не относился и не будет благосклонно относиться к C++., поскольку он не раз при каждой возможности упоминал, что C++ «ужасный язык».

По упоминаниюr некоторые моменты, когда рассматривалось использование C++. на линуксе и Линус Торвальдс выразил не только свое несогласие, но «определённая ненависть» к C++, которая прикрывается упоминанием о том, почему «это просто не вариант для Linux», один из последних был во время обзоров реализации Rust, поскольку во время обсуждения сообщения Googleв качестве предложения было упомянуто включение C++:

«Решение здесь простое: просто используйте C++ вместо Rust»

Который Линус Торвальдс не смог удержаться от смеха и ответил:

"РЖУ НЕ МОГУ". «C++ не решает ни одной проблемы C, а только усугубляет ситуацию, это действительно мусорный язык.

Людям, которым не нравится C, стоит выбрать язык, который действительно предлагает вам что-то стоящее. Такие языки, безопасные для памяти, и «эти» языки позволяют избежать некоторых ловушек C, или языки, которые имеют внутреннюю поддержку «сборки мусора» GC и упрощают управление памятью. «C++ решает все неправильные проблемы, и любой, кто говорит: «Перепиши ядро ​​на C++», слишком невежественен, чтобы даже знать об этом».

Линус Торвальдс всегда считал C++ «отходами» и считал его «бесполезным». Ну, потому что «C++ вообще не может решить проблему языка C, а только усугубит ситуацию». Торвальдс считаю, что те, кому не нравится язык C, могут поискать язык, который действительно может принести пользу. Например, языки, которые безопасны для памяти и могут избежать скрытых опасностей, вызванных C (таких как Rust).

По сравнению с С++, Линус упомянул, почему C является его стандартным выбором:

«Когда люди говорят об опасностях, вызванных C, они также говорят об одной из причин, почему C настолько мощный: «Он позволяет эффективно реализовывать все эти низкоуровневые вещи», — отметил Линус. Кроме того, хотя GC в большинстве случаев хорош для упрощения программирования, обычно это не то, что можно сделать в низкоуровневом системном программировании.

Фактически, в списках рассылки упоминается, что В какой-то момент была предпринята попытка использовать C++ в Linux, в 1992 году. (примерно через год после рождения Linux), но это так и осталось лишь «попыткой», поскольку Торвальдс упоминание об этой попытке:

Это ужасно. Поверьте мне: писать код ядра на C++ — это ОЧЕНЬ ТУПАЯ ИДЕЯ.

Дело в том, что компиляторы C++ ненадежны. В 1992 году они были еще хуже, но некоторые фундаментальные факты не изменились:

— Вся обработка исключений в C++ фундаментально нарушена. Это "особенно" сломано для ядер.
– любой компилятор или язык, который любит прятать за спиной такие вещи, как распределение памяти, просто не является хорошим выбором для ядра.
— вы можете писать объектно-ориентированный код (полезный для файловых систем и т. д.) на C, «без мусора, которым является C++».

Учитывая эти и многие другие комментарии, Мы можем немного понять, почему Линус Торвальдс считает C++ ужасным языком., помимо критики языка за то, что он используется «некачественные программисты, до такой степени, что с их помощью гораздо проще генерировать полную и полнейшую фигню.» И это то, что Похоже, что C++ в какой-то момент стал горьким привкусом во рту Торвальдса., поскольку в вашей критике создается впечатление, что я пытаюсь попробовать С++, ну Я упоминаю в электронном письме, что:

«C++ приводит к действительно плохому выбору дизайна. Вы неизменно начинаете использовать «хорошие» возможности языковой библиотеки, такие как STL и Boost, и прочий полный и полный мусор, который может «помогать» вам программировать, но вызывает:

бесконечное количество боли, когда они не работают (и любой, кто говорит мне, что STL и особенно Boost стабильны и портативны, настолько чушь, что это даже не смешно)
«неэффективные модели абстрактного программирования, когда два года спустя вы замечаете, что некоторая абстракция была не очень эффективной, но теперь весь ваш код зависит от всех красивых объектных моделей вокруг него, и вы не можете это исправить, не переписав свое приложение».

Итак, возвращаясь к названию публикации и уже немного разобравшись в верхушке айсберга той ненависти, которую Линус Торвальдс питает к C++, особо расследовать не придется, поскольку По мнению Торвальдса, Linux не нуждается в каком-либо другом языке, поскольку достаточно C. и на протяжении всего этого времени C был, был и будет языком, который подходит для его работы, а Линус продолжит атаковать языки программирования, которые ему не нравятся, особенно C++.

И это одна из многих причин, почему C++ просто не рассматривается для Linux, в том, что он допускает исключения, а Rust не любит C, поскольку в программировании ядра нельзя допустить Неперехваченное исключение может вывести из строя операционную систему, и вам не следует даже думать о том, что ядро ​​когда-либо выйдет из строя.

Y в «предполагаемом», учитывая, что Торвальдс начал рассматривать C++ на linux, это может быть больше, чем преимущество включение третьего или более языков программирования, станет проблемой, поскольку, например, при реализации В настоящее время в Rust начинают выявляться некоторые проблемы., такие как те, которые мы уже упоминали в публикации о текущее состояние Rust в Linux.

Драйверы ржавчины в Linux
Теме статьи:
Rust в Linux: достижения, проблемы и текущий статус

Среди текущих проблем мы отмечаем в статье, что одна из них – это «набрать больше рецензентов для кода который разрабатывается» в дополнение к Развитие компилятора Rust на базе GCC замедлилось, слишкомШанс, что они перепишут большие части ядра на Rust, очень мал короткий срок и даже очень низкие шансы на то, что они смогут это сделать, не привнося всевозможных ошибок и особенно проблем с совместимостью.

Если эти проблемы, которые отражаются в Rust мы добавляем их на C++ или любом другом языке которые можно добавить в Linux, Разработка ядра будет сильно затронута и при этом вначале мы не будем получать версию каждые два месяца, а скорее будет разработка между более длинными версиями, потребуется больше разработчиков, больше рецензентов, и все это приводит к большим усилиям.

Без сомнения, подход к внедрению C++ в качестве третьего языка программирования далек от рассмотрения и, как мы уже упоминали, одним из главных препятствий для этого является сам Линус Торвальдс.


Оставьте свой комментарий

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

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.