{}const=>[]async()letfn</>var
Разработка

🔍 На чём написаны Windows, Linux и macOS?

ОС, которыми мы пользуемся каждый день, работают благодаря языкам программирования. Разбираем, на чём написаны Windows, Linux и macOS.

К

Кодик

Автор

5 мин чтения

Зачем вообще знать языки ОС? 💡

Язык - это не «мода». Он определяет, насколько близко система подходит к «железу», как управляет памятью и какой ценой достигает скорости. Поэтому выбор для операционных систем десятилетиями оставался консервативным: нужен контроль, предсказуемость и переносимость.

Лупа лежит на клавиатуре ноутбука, на экране цветные строки системного кода
🔥 100 000+ учеников уже с нами

Устал читать теорию?
Пора кодить!

Кодик — приложение, где ты учишься программировать через практику. AI-наставник, интерактивные уроки, реальные проекты.

🤖 AI 24/7
🎓 Сертификаты
💰 Бесплатно
🚀 Начать учиться
Присоединились сегодня

Windows: C в основе, C++ вокруг

Ядро Windows (NT) исторически написано на C с точечными вставками на ассемблере для критически низкоуровневых операций. По мере роста платформы слой API, подсистемы, графика и множество сервисов активно использовали C++. На уровне приложений Microsoft продвигает C#, но это уже «над» системой.

Тренд: Rust уже используется в отдельных компонентах Windows для снижения багов памяти (use-after-free и др.).

Linux: классика C и прагматизм

Ядро Linux с 1991 года - почти «чистый» C плюс немного ассемблера. Причина проста: контроль за памятью и переносимость между архитектурами CPU. Сообщество тщательно держит планку качества и производительности.

Тренд: официальная поддержка Rust для написания отдельных драйверов - ставка на безопасность без потери скорости.

macOS: XNU - гибрид с корнями в C

macOS опирается на ядро XNU (гибрид Mach + BSD). Базовые слои, драйверы и многие системные компоненты - на C с ассемблером там, где это необходимо. Пользовательские фреймворки долгое время развивались на Objective‑C (и частично C++), а в последние годы Apple активно продвигает Swift в пользовательском пространстве - но ядро остаётся верным C.

Три материнские платы с процессорными сокетами и слотами памяти на рабочем столе

Сравним по ключевым пунктам 📊

ОС

Ядро

Системные компоненты

Пользовательское пространство

Современные сдвиги

Windows

C + ASM (точечно)

C/C++

C++, C#, .NET

Пилотные зоны Rust (безопасность памяти)

Linux

C + ASM

C

На выбор: C/C++/Rust/Go/…

Rust для драйверов (опционально)

macOS

C + ASM (ядро XNU)

C, C++, Objective‑C

Objective‑C / Swift

Рост роли Swift «сверху»

Почему везде побеждает C? 🧠

  • Контроль памяти: ручное управление - меньше абстракций, больше предсказуемости.

  • Переносимость: C сравнительно легко тащить на разные архитектуры CPU.

  • Зрелая экосистема: компиляторы, тулчейны, драйверные SDK - всё отточено годами.

Не путайте «старый» с «устаревшим»: на системном уровне важнее предсказуемость, чем новизна синтаксиса.

А при чём тут Rust и Swift? 🚀

Rust заходит туда, где критична память и безопасность: драйверы, отдельные модули ядра, системные утилиты. Он не «переписывает всё», а аккуратно уменьшает класс ошибок. Swift же в мире Apple - это прежде всего удобство и безопасность пользовательских приложений и фреймворков, тогда как «низ» остаётся на C.

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

А ещё у нас есть активный telegram-канал, где мы обсуждаем крутые идеи, делимся опытом и вместе разбираем задачи - учиться становится не только полезно, но и весело.

Если бы вы переписывали один модуль ОС ради безопасности, что бы выбрали: остаться на C или рискнуть с Rust - и почему?

Частые вопросы про языки операционных систем

На каком языке написано ядро Windows?

Ядро Windows (NT) исторически написано на C с точечными вставками ассемблера для самых низкоуровневых операций. Слой API, подсистемы, графика и системные сервисы во многом используют C++. C# идёт уже выше, на уровне приложений, а не самой системы.

На каком языке написано ядро Linux?

Ядро Linux с 1991 года пишут почти на чистом C с небольшими вставками ассемблера. Такой выбор даёт контроль над памятью и переносимость между разными архитектурами процессоров. В пользовательском пространстве Linux при этом можно писать на чём угодно: C, C++, Rust, Go и других языках.

На каком языке написан macOS?

macOS опирается на гибридное ядро XNU (Mach плюс BSD), которое написано на C с ассемблером там, где он нужен. Системные компоненты используют C, C++ и Objective-C, а пользовательские фреймворки давно жили на Objective-C и постепенно переходят на Swift. Ядро при этом остаётся на C.

Почему операционные системы пишут именно на C?

C побеждает в системном программировании из-за трёх вещей: ручное управление памятью даёт предсказуемость, код сравнительно легко переносится на разные архитектуры CPU, а компиляторы, тулчейны и драйверные SDK отточены десятилетиями. Старый язык здесь не значит устаревший: на уровне ядра предсказуемость важнее свежего синтаксиса.

Заменит ли Rust язык C в ядрах ОС?

Rust пока не заменяет C, а заходит точечно туда, где критична безопасность памяти: драйверы, отдельные модули ядра, системные утилиты. В Linux есть официальная поддержка Rust для написания отдельных драйверов, в Windows идут локальные эксперименты ради снижения багов вроде use-after-free. Полного переписывания ядер никто не делает.

Зачем Apple продвигает Swift, если ядро на C?

Swift в мире Apple отвечает за удобство и безопасность пользовательских приложений и фреймворков, то есть за верхний слой системы. Низкоуровневая часть, ядро XNU и драйверы, остаётся на C с ассемблером. Поэтому знание Swift не отменяет пользы от понимания C.

🎯Хватит откладывать

Понравилась статья?
Пора применять на практике!

В Кодик ты не просто читаешь — ты сразу пишешь код. Теория + практика = реальный скилл.

Мгновенная практика
🧠AI объяснит код
🏆Сертификат

Без регистрации • Без карты