Core Linux. Введение

В последнее время на тематических ресурсах в очередной раз активизировалось обсуждение вопроса о том, что же такое ОС Linux и не GNU ли он. Я своё мнение по этому поводу высказывал неоднократно (последний раз здесь), и потому повторю лишь в тезисной форме:

Операционная система Linux -- системная целостность, которая может существовать независимо от проекта GNU, и потому название GNU/Linux имеет ничуть не больше оснований, чем X/Linux.

Однако в связи с этим возникает другой вопрос -- а что же тогда такое эта системная целостность, которая носит имя Linux? В своё время я пытался ответить на него, сформулировав понятие Base Linux как

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

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

Однако ограничим понятие Base Linux некими разумными рамками -- а в качестве критерия разумности можно выбрать FreeBSD Distributions, то есть, в терминах последней ОС, kernelland'ом и userland'ом. Именно в таких рамках я и рассматривал некогда Base Linux. И именно наличие Linux'ового userland'а, в немалой мере состоящего из GNU-утилит, давало основание на претензии для включения имени наследницы легендарного Лорен-Дитриха в название ОС Linux.

Однако за прошедшие годы ситуация изменилась -- и утилиты userland'а (я по прежнему буду применять это FreeBSD'шный термин, как наиболее адекватный) уже не выглядят неотъемлемой частью интересующей нас ОС. Можно сколько угодно дискутировать на тему, являются ли системы типа Android'а или MeeGo настоящим Linux'ом. Однако остаётся фактом, что они

  • основаны на ядре Linux, и
  • обходятся без всяких GNU-утилит и их аналогов.

То же самое можно сказать и о встраиваемых системах для всякого рода роутеров etc. Наконец, мне известен по крайней мере один пример самого обычного пользовательского дистрибутива Linux -- Tiny Core, весь userland которого в минимальной комплектации (MiniCore) сводится к набору, предоставляемому BusyBox'ом.

Но, как говорил товарищ Саахов, есть и другая сторона медали. С точки зрения современного чисто вымытого конечного пользователя, нарушитель -- это не нарушитель Linux -- это не какое-то там ядро с утилитами userland'а, пусть даже трижды GNU'тыми. А то, что он видит перед своими глазами после умолчальной установки Ubuntu или Mandriva, Fedora или openSUSE, Mint'а или... список юзерофильных дистрибутивов можно продолжать до бесконечности.

А видит он, как мы знаем, Иксы с запущенным поверх них десктопом, будь то KDE, GNOME, XFce или даже LXDE, и некоторый набор их штатных приложений (а иногда -- и приложений внештатных). Однако при этом в случае Linux'а понятие ОС подменяется, с одной стороны, уже конкретным её дистрибутивом. А с другой -- и Иксы, и десктопы таковыми являются и в Африке любой UNIX-подобной системе, например, Free-, Net- или какая иная BSD.

И тут мы опять возвращаемся к многократно обсуждавшемуся вопросу -- что же такое операционная система Linux? Ядро её? Ядро с набором утилит userland'а, то есть тот самый пресловутый GNU/Linux (а возможно, что и не очень GNU)? Или полный комплекс, включающий Иксы и всевозможные десктопы с их приложениями? А может, даже и с оконными менеджерами и приложениями, сочиняемыми независимыми разработчиками?

Чтобы определиться с этим раз и навсегда, давайте посмотрим, что же такое операционная система вообще.

. .