C++ Developer • Cpp System Programming. HighLoad, Алгоритмы и Структуры данных. Разработка на Linux и Windows. STL, Boost, Qt и Embedded.
C++ Developer • Cpp System Programming. HighLoad, Алгоритмы и Структуры данных. Разработка на Linux и Windows. STL, Boost, Qt и Embedded.
2 195 подписчиков · @cpp_lib
К каналу →
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https://max.ru/bash_srv Bash Советы https://m…
Читать далее →
6 544
Реклама
Практика языка C (МФТИ, 2023-2024). Допсеминар: системы сборки (make, cmake). 00:00 Зависимости и хедера 08:22 Build.sh 11:48 Makefiles и декларативная модель 19:51 Ленивые и пере…
Читать далее →
6 585

Почему Линус Торвальдс против C++ в ядре Linux

⚔️ Линус Торвальдс против C++: Почему ядро Linux остается на C?

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

Разбираем основные аргументы Линуса (и почему они имеют смысл в context of kernel development).

1. Исключения (Exceptions) - зло для ядра
В C мы проверяем коды возврата. В C++ исключение может вылететь откуда угодно.

🔹 Проблема: Недетерминированность. Для ядра с 30 млн строк кода это ад отладки.
🔹 Риск: Если МРТ-сканер или система управления полетами "выбросит исключение" и упадет, последствия будут фатальными. Ядро требует полного контроля над потоком выполнения.

2. Скрытое управление памятью (RAII)
Линус считает, что компилятор не должен делать ничего "за спиной" программиста.

🔹 Проблема: Конструкторы, деструкторы и неявные аллокации.
🔹 Аргумент: В ядре управление памятью должно быть ручным и прозрачным. Зависимость от магии компилятора снижает производительность и стабильность.

3. "Жирная" объектная модель
Нужно ООП? Его можно сделать и на C. Линус утверждает, что C++ тянет за собой переусложненные иерархии и абстракции, которые потом невозможно рефакторить.

🔹 Цитата: "Ограничение проекта языком C означает, что люди не смогут его испортить... идиотской чушью 'объектной модели'".

💡 Как выглядит ООП в стиле Linux (на чистом C):
Вместо классов - структуры и указатели на функции. Это дает полиморфизм без оверхеда C++.

typedef struct {
int value;
// V-table на минималках: указатель на функцию
void (*increment)(struct Person *self);
} Person;

void increment_person(Person *self) {
self->value++;
}

int main() {
Person *p = (Person*)malloc(sizeof(Person));
p->value = 5;
p->increment = increment_person; // Привязка метода

p->increment(p); // Вызов: 6
free(p);
}

4. Проблема зависимостей (STL/Boost)
То, что стабильно для приложения в GNOME, недостаточно стабильно для ядра. Внедрение STL или Boost - это риск security-проблем (вспомним бэкдор в xz/liblzma) и раздувание бинарников.

А как же Rust?
Интересно, что к Rust отношение другое. Линус допускает Rust, потому что он (в отличие от C++) решает проблемы безопасности памяти, а не просто добавляет синтаксический сахар. C - прост, но позволяет выстрелить себе в ногу. Rust - строг. C++ - слишком сложен и неявен для ядра.


Отказ от C++ - это выбор между эргономикой разработчика и стабильностью системы. Для User-space приложений C++ прекрасен. Но для ядра, от которого зависит работа миллиардов устройств (от тостеров до спутников), консерватизм C - единственно верный путь.

👉 Читать статью полностью: https://habr.com/ru/companies/otus/articles/902724/


#cpp #c #linux #kernel #linus #coding #holivar

👉 @cpp_lib
🚀 CUTE_HEADERS - Коллекция кроссплатформенных однофайловых библиотек на C/C++ без зависимостей, в основном используемых для разработки игр. 🔹 Математика (векторы, матрицы) 🔹 Сис…
Читать далее →
6 845
Три теоремы о сортировках Я знаю многих программистов и руководителей в IT компаниях, которые недолюбливают математиков и в частности считают их далёкими от жизни идиотами из-за и…
Читать далее →
6 850
Другие главы канала «C++ Developer • Cpp System Programming. HighLoad, Алгоритмы и Структуры данных. Разработка на Linux и Windows. STL, Boost, Qt и Embedded.»
Выберите главу, чтобы продолжить чтение
Все посты →
Глава от 10.09.2026
Пишем игру для игровой ретро-консоли Anbernic на C++ Дисклеймер Сразу скажу, чт…
👁 546 просмотров
Глава от 09.09.2026
Руководство по сборке Qt под Windows из исходников с MinGW Официальный способ у…
👁 696 просмотров
Глава от 04.09.2026
Вы сталкиваетесь с блокировками в PostgreSQL при росте нагрузки? На открытом уро…
👁 752 просмотров
Глава от 04.09.2026
#cpp #programming 👉 @cpp_lib
👁 644 просмотров
Глава от 03.09.2026
Опенсорс от кристалла до программного стека Нужны ли нам открытые архитектуры? …
👁 681 просмотров
Глава от 02.09.2026
⚡️ 40 000 000 ₽ ждут, пока ты дочитаешь этот пост Если ты пишешь код, рисуешь …
👁 681 просмотров
Глава от 02.09.2026
Проектируем змейку под учебный RISC-V микроконтроллер На третьем курсе некоторы…
👁 710 просмотров
Глава от 31.08.2026
Game++. Performance traps Стандартная библиотека C++ содержит множество классов…
👁 868 просмотров
Глава от 28.08.2026
Логика коэволюции компиляторов, инструментов разработки и языков программировани…
👁 891 просмотров

Популярные посты канала «C++ Developer • Cpp System Programming. HighLoad, Алгоритмы и Структуры данных. Разработка на Linux и Windows. STL, Boost, Qt и Embedded.»

🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https…
👁 8 735 просмотров
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https…
👁 8 715 просмотров
QML и Widgets в одном проекте: решение без костылей Разработка приложения для настольных или встраиваемых платформ часто упирается в выбор …
👁 8 708 просмотров
Коллекция библиотек и фреймворков для C++ Список удивительных фреймворков, библиотек, ресурсов и блестящих вещей на C++ (или C). Вдохновлен…
👁 8 697 просмотров
Пишем игру для NES на C Всем привет. Я Даг. Добро пожаловать в мой учебник - Как запрограммировать игру NES на C. Вы можете сделать оригина…
👁 8 686 просмотров
Веселье с type erasure: делаем обертку с семантикой значения для полиморфных типов. Павел Новиков Цель доклада — познакомить с подноготной…
👁 8 639 просмотров
О векторном вычислении экспоненциальной функции Однажды передо мной встала задача векторизовать функцию вычисления экспоненты. Неожиданно о…
👁 8 595 просмотров
Практика языка C. Константин Владимиров. На этом занятии мы завершим первый семестр знакомства с основами языка C и разберём многомодульны…
👁 8 586 просмотров
Контракты для С++ Тимур Думлер Контрактное программирование — эффективный подход к написанию более безопасных и корректных программ. Он был…
👁 8 585 просмотров
🐦 Flappy Bird на Си: Вес APK < 100 Килобайт! 🚀 В сентябре 2024 года, увидев Flappy Bird на C# в дискорд-канале Raylib, я решил попробовать …
👁 8 527 просмотров
Преобразование JSON в объекты C++ на этапе компиляции: демонстрация возможностей принятой в C++26 рефлексии https://brevzin.github.io/c++/2…
👁 8 473 просмотров
Как в 19 лет я начал путь разработчика встраиваемого ПО Привет! Меня зовут Данила, мне 21 год, и за последние 2,5 года я успел поработать в…
👁 8 424 просмотров
Создание игры Крестики-нолики на языке C++ #cpp #programming 👉 @cpp_lib
👁 8 417 просмотров
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https…
👁 8 413 просмотров
Сборка C++ проектов. CMAKE. Game Engine серии 0:00:00 - Введение 0:01:32 - Пишем мини игру. FightClub 0:17:03 - MSBUILD 0:19:20 - Собственн…
👁 8 397 просмотров
⚠️ Можно знать алгоритмы машинного обучения и всё равно получать плохие результаты. Большинство проблем моделей начинаются с некачественной …
👁 8 376 просмотров
Константин Владимиров — О денотации: разрешение имен и его пересмотр в C++23 Этот доклад — попытка сделать темную и мрачную область разреше…
👁 8 356 просмотров
Оптимизация GUI на Qt Как правило, при создании desktop-приложений на платформе Qt не возникает проблем, связанных с медленностью работы GU…
👁 8 329 просмотров
🐦 Flappy Bird на Си: Вес APK < 100 Килобайт! 🚀 В сентябре 2024 года, увидев Flappy Bird на C# в дискорд-канале Raylib, я решил попробовать …
👁 8 325 просмотров
Плывущий экран. Вирус на C++. Melting Screen Программа предоставлена в образовательных целях! Автор не несёт ответственности за её использо…
👁 8 316 просмотров

Связанные темы в других каналах

Каналы из той же тематики, где часто появляются близкие сюжеты
Вся тема →
@canalmaxone
AntiCloudMod
8038048808
👥 375 172 · -6 910/7д
@BelgorodDRONE
Информация БПЛА Белгород, Белгородский район
7924148410
👥 197 999 · +1 529/7д
@biologia89
РОБЛОКС🔷
РОБЛОКС В МАКС! Реклама: https://clck.ru/3Tmmgx
👥 181 528 · +3 927/7д
@WylsacomRed
Wylsacom Red
Официальный канал Wylsacom в Max. Тут всё про технологии и жизнь в ногу со временем! Розыгрыши: kichaev@wylsacom.media По вопросам сотрудничества: https://wylsacom.medi…
👥 166 805 · +4 914/7д
@TikTokModCloud
TikTokModCloud
Официальные обновления стабильного мода TikTok Чат: https://clck.ru/3S6mVh По рекламе: https://iimax.ru/dim4ugan
👥 121 990 · +1 601/7д
@yandex_browser
Яндекс Браузер с Алисой AI
Привет, это канал команды Яндекс Браузера Показываем, как превратить наши технологии в ваши возможности. Скачать Браузер тут: https://browser.yandex.ru/ Наше сообще
👥 78 567 · +13 542/7д
🏷 Темы и теги
#cpp #c #linux #kernel #linus #coding #holivar #системное программирование #структуры данных #highload #алгоритмы #embedded
📋 О канале C++ Developer • Cpp System Programming. HighLoad, Алгоритмы и Структуры данных. Разработка на Linux и Windows. STL, Boost, Qt и Embedded.
Канал для серьезных C++ программистов. Глубокое погружение в STL, Boost и метапрограммирование (Templates). Управление памятью (Memory Management), умные указатели и безопасность кода. Разработка высоконагруженных систем, сетевое программирование и Embedded (встраиваемые системы). Сборка через CMake, компиляторы GCC/Clang. Подготовка к собеседованиям: LeetCode, System Design и ООП.
🔍 Архив всех постов Макс
Поиск по 16,531,563 постам из 203,659 каналов
Подключить за 490 ₽/мес →
Удалить пост или канал с МАКСОТЕКИ
Заявка подтверждается через бота Макс: нужно быть администратором канала и добавить бота МАКСОТЕКИ в администраторы. После проверки канал или конкретный пост скрывается с сайта.
📊 Аналитика канала «C++ Developer • Cpp System Programming. HighLoad, Алгоритмы и Структуры данных. Разработка на Linux и Windows. STL, Boost, Qt и Embedded.» ➡️ Перейти в канал Макс
Заявка в МАКСОТЕКА
Добавьте свой канал в каталог
Зарегистрируйтесь в личном кабинете и добавьте канал за пару кликов.
Перейти в личный кабинет →

Бесплатная регистрация, быстрая модерация.