Перейти к содержимому
2.6. Windows, Linux, macOS, Android: в чём разница

Четыре системы: где ломается совместимость

Соберите стек от приложения до ядра для любой пары «программа - система» и посмотрите, где рвётся стык, а потом разберите, чем Unix-подход отличается от особого пути Windows.

// почему программа не переносится

Пойдёт ли эта программа в этой системе

Ядра у всех четырёх делают одно и то же: процессы, память, файлы, устройства. А программа разговаривает не с ядром, а с системными библиотеками - и вот они у всех разные. Выберите программу и систему: стек соберётся сверху вниз, и будет видно, где именно он рвётся и чем это лечится.

Что запускаем
Где запускаем
  1. Приложение
  2. Зовёт функции
  3. Системные библиотеки
  4. Ядро
0 / 3 исходов найдено
0 / 20 сочетаний открыто

Задание: найдите все три исхода - когда программа идёт сама, когда её спасает прослойка и когда не спасает ничто.

Что чего требует

Игра в виде .exe зовёт: Win32: функции Windows, DirectX: графика Windows. Установщик под Windows и графика через DirectX - самый частый случай в играх для ПК. Именно из-за этой пары игры и считаются «виндовыми».

Утилита командной строки зовёт: POSIX: функции Unix. Классическая маленькая программа Unix: читает поток, пишет поток, соединяется с другими конвейером.

Программа для Mac на Swift зовёт: Cocoa: функции Apple, POSIX: функции Unix. Интерфейс собран на фирменных библиотеках Apple, и под ними всё тот же Unix. Первая половина есть только у Apple.

Приложение .apk зовёт: Android: Bionic и ART. Собрано под виртуальную машину ART и библиотеку Bionic: это ядро Linux, но обвязка вокруг него полностью своя, гугловская.

Веб-приложение зовёт: Браузер: HTML и JavaScript. Ему нужен только браузер - а браузер есть везде. Ровно поэтому столько программ и переехало в веб: писать четыре версии никому не хочется.

Windows (Win32 API: ntdll.dll, kernel32.dll, ядро Windows NT) умеет сама: Win32: функции Windows, DirectX: графика Windows, Браузер: HTML и JavaScript. Через прослойку: POSIX: функции Unix - через WSL 2; Android: Bionic и ART - через Эмулятор Android.

macOS (libSystem, ядро Darwin (XNU: Mach + BSD)) умеет сама: Cocoa: функции Apple, POSIX: функции Unix, Браузер: HTML и JavaScript. Через прослойку: Win32: функции Windows - через CrossOver на основе Wine; DirectX: графика Windows - через CrossOver на основе Wine; Android: Bionic и ART - через Эмулятор Android.

Linux (glibc, ядро Linux) умеет сама: POSIX: функции Unix, Браузер: HTML и JavaScript. Через прослойку: Win32: функции Windows - через Wine или Proton; DirectX: графика Windows - через Wine или Proton; Android: Bionic и ART - через Waydroid или эмулятор.

Android (Bionic вместо glibc, свои утилиты, ядро Linux (с правками под мобильные)) умеет сама: Android: Bionic и ART, Браузер: HTML и JavaScript. Через прослойку: POSIX: функции Unix - через Termux.

Прослойки устроены по-разному: WSL запускает рядом настоящее ядро Linux, Wine переводит вызовы Win32 на лету и эмулятором не является, а эмулятор Android поднимает целую виртуальную машину. Поэтому и результат разный - от «не отличить» до «запускается, но играть нельзя».

// одно и то же действие

Unix-подход против особого пути: кому что в плюс

Три системы из четырёх делают по-унихсовому, Windows - по-своему. Ни один подход не лучше вообще: у каждого своя цена. Решите сами, кому плюс, а потом смотрите разбор.

Unix-подход macOS, Linux, Android
Особый путь Windows
Задача Устройство, соединение, принтер
Кому это в плюс?
Unix-подход Всё есть файл: программа пишет в файл, а разбирается система.
Особый путь Всё есть объект: у файла, процесса, соединения свой тип и свои операции.

Семь задач. Смотрите не на привычку, а на то, чем приходится платить за каждый подход.

0 / 7 угадано
Устройство, соединение, принтер

Unix-подход: Всё есть файл: программа пишет в файл, а разбирается система.

Особый путь: Всё есть объект: у файла, процесса, соединения свой тип и свои операции.

Это не лучше и не хуже - это разные проектные решения, принятые в 1970-х и 1980-х. Единый интерфейс Unix удобен для маленьких утилит, типизированные объекты Windows - для сложных системных служб. Следствие одно: то, что в терминале Unix делается одной строкой, в Windows требует другого подхода.

Посмотреть, что настроено

Unix-подход: Открыть текстовый файл в /etc любым редактором.

Особый путь: Открыть бинарный реестр специальным редактором.

Текстовые конфигурации прозрачны и правятся чем угодно. У реестра есть и архитектурное следствие: повреждённый реестр роняет всю систему, а кривой конфиг в Linux ломает только свою программу - остальные работают, загрузка не нарушается.

Права по умолчанию

Unix-подход: Работаете без прав суперпользователя, для системных дел нужен пароль.

Особый путь: Историческая традиция работать администратором, с 2007 года смягчённая запросом подтверждения.

Принцип минимальных привилегий - это Unix-модель пятидесятилетней давности. В macOS поверх неё лежит защита системного раздела даже от root, в Android - отдельный пользователь на каждое приложение. Windows шла к этому дольше, потому что дольше всех была главной мишенью.

Поставить программу и обновить всё разом

Unix-подход: Одна команда менеджеру пакетов: ставит и обновляет из общего репозитория, вместе со всеми зависимостями.

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

Репозиторий - это и удобство, и безопасность: пакеты подписаны и проверены сопровождающими. Плата - программа появляется в репозитории не сразу, а свежую версию иногда приходится ждать. У Android и macOS роль репозитория играют магазины приложений.

Игры и специализированные программы

Unix-подход: Часть работает через прослойку, часть не работает вовсе.

Особый путь: Пишут в первую очередь под Windows: совместимость максимальная.

Дело не в технике, а в доле рынка: около 72 % настольных машин - это Windows, и разработчик целится туда. Ровно та же причина держит людей в экосистеме: пересесть на другую систему можно, а уговорить коллег принять непривычный формат файла - нет.

Случайное устройство из коробки

Unix-подход: Драйвер обычно уже в ядре, но редкое или новое железо может не заработать.

Особый путь: Производитель почти всегда выпускает драйвер именно под Windows.

Тут снова решает доля рынка, а не архитектура. У macOS этой проблемы нет по другой причине: Apple делает и железо, и систему, поэтому поддерживать нужно только своё.

Сервер, роутер, банкомат, телевизор

Unix-подход: Около 90 % серверов интернета и все 500 самых мощных суперкомпьютеров мира.

Особый путь: Windows Server встречается, но остаётся меньшинством.

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

macOS, Linux и Android объединены здесь условно: между ними тоже полно различий - от закрытости Apple до магазина приложений в Android. Общее у них - Unix-модель прав, файлов и системных вызовов.

Интерактив разработан - ремонт компьютеров и ноутбуков в Барановичах. © 2008-2026. Источник: any.by/demo/chetyre-sistemy