Linux или GNU/Linux — популярная операционная система (ОС), которая распространена как серверная ОС, но имеет и другие области применения. Более точно — это целое семейство операционных систем. Они базируются на двух китах:
GNU — UNIX-подобное операционное окружение, которое состоит из утилит, операционной оболочки и ее команд, а также средств разработки, прежде всего, ‒ коллекции компиляторов gcc;
Linux — ядро операционной системы, по имени которого часто называется и вся ОС.
Если в ОС Linux используется графический режим, появляется еще одна особенность:
X Windows System — оконная система, реализующая клиент-серверную модель.
Одно из главных свойств и достоинств операционной системы — открытость. Поэтому часто применяются и другие компоненты, разработанные независимыми людьми и группами разработчиков.
Вокруг наименования ОС существует спор. Наиболее распространенные варианты:
Linux. Подразумевается, что не только ядро носит такое название, но и вся ОС целиком;
GNU/Linux. На этом варианте настаивает Ричард Столлман, основатель проекта GNU. Он подчеркивает, что операционная система — не только ядро Linux, но и многие важные компоненты, которые в ней используются, в частности, проект GNU.
У каждого из подходов есть аргументы как за, так и против. Существуют операционные системы на ядре Linux, в которых нет GNU: Android или Open webOS. Кроме того, ОС — не только ядро Linux и окружение GNU, но и множество других компонентов: X Windows System, Systemd и т.д. Полное их перечисление сделало бы название слишком громоздким.
Мы будем считать наименования Linux и GNU/Linux синонимами. Когда будет идти речь о ядре Linux, укажем на это отдельно.
Достоинства Linux
GNU/Linux как операционная система — это:
UNIX-подобная ОС. Это значит, что архитектура, идеология и удобство работы напрямую исходят из истории и архитектуры UNIX-систем. Усвоив архитектуру Linux, просто перейти к работе с другими UNIX-подобными ОС: FreeBSD, OpenBSD, OpenSolaris, Mac OS X.
Многопользовательская операционная система с удачной реализацией управления пользователями и правами, благодаря подобию UNIX.
Многозадачная операционная система, которая использует механизмы защиты процессора. Ядро Linux изначально было написано под процессор Intel 80386. Поэтому, в отличие от DOS и Windows 9x, в GNU/Linux не нужно было обеспечивать совместимость в ущерб надежности. В процессоре Intel 80386 уже стала классической полноценная поддержка колец защиты процессора. Это система впервые появилась в процессоре 80286 и позволяла отделить код ядра операционной системы от кода приложений. До этого весь код выполнялся в одном режиме, имея доступ ко всем ресурсам. Поэтому, например, DOS мог напрочь зависнуть в результате ошибки в прикладной программе. Очень долго Microsoft в целях совместимости приходилось поддерживать выполнение определенных фрагментов пользовательского кода на уровне ядра и в Windows. Это приводило к появлению синего экрана смерти и необходимости перезагрузки. В Linux не было необходимости поддерживать старый код, потому что операционная система сразу использовала механизмы защиты процессора и сейчас является довольно устойчивой и надежной. Kernel panic — сообщение-аналог синего экрана смерти в WIndows, которое говорит о крахе ядра, в Linux можно увидеть очень редко. Разве что в процессе отладки драйверов для Linux, работающих как модули ядра.
Сетевая операционная система, реализующая стек TCP/IP на уровне ядра и обладающая широким набором сетевого программного обеспечения: веб-сервера, почтовые сервера, системы мониторинга и т.д. и т.п.
Свободная операционная система. Linux распространяется по лицензии GNU GPL, которая, с одной стороны, позволяет распространять ОС бесплатно, а с другой — обязывает предоставлять исходные коды. Это делает разработку, поиск ошибок и их исправление прозрачными и надежными. Поэтому многие решения для Linux являются опробованными и надежными, а найденные уязвимости быстро закрываются сообществом. Далеко не всегда то же самое можно сказать о проприетарном (собственническом) программном обеспечении. Но есть и Enterprise-решения — коммерческие решения, созданные на базе свободного Linux. Самый известный пример — Red Hat. Основа остается бесплатной, но производитель может добавлять дополнительные услуги и решения, платную поддержку. Иногда встречается и откровенное нарушение лицензии GPL, когда ОС полностью продается без поставки исходного кода, например Linux XP и, возможно, МСВС. Тем не менее, большая часть операционных систем Linux остается открытой, и даже у коммерческих версий есть функциональные аналоги, например Centos для Red Hat. Но в таком случае система используется на свой страх и риск — поддержки от производителя нет.
Надежная операционная система. В Linux продуманная система прав, наследуемая из UNIX. Linux не отягощена наследием неверного использования модели безопасности, как Windows, где система безопасности не используется в полную меру из соображений совместимости. Наконец, Linux — прозрачная система, где быстро закрываются все уязвимости. Все вместе это дает надежную систему, на которую всегда можно положиться.
Операционная система, дающая полный контроль пользователю. Linux позволяет системному администратору или разработчику полностью управлять операционной системой: разрабатывать скрипты и автоматизировать рутинные действия. Здесь и возможности командной строки, и использование конвейеров и виртуальных файловых систем с доступом ко всем параметрам ядра ОС, процессов и устройств.
Опробованная система с широким опытом внедрения. Linux лидирует в мире серверного программного обеспечения, а также используется на десктопах, в т.ч., во встраиваемом программном обеспечении. Это дает огромный пользовательский опыт в технологическом и специализированном программном обеспечении, сформированные пользовательские сообщества. Благодаря этому, во-первых, есть уверенность, что решение испытано, а во-вторых, можно обращаться к пользовательскому опыту в случае возникновения сложностей.
Операционная система с возможностью работы в графическом оконном режиме. Механизм X Windows Server в Linux вместе с SSH позволяет реализовать даже удаленное выполнение оконных приложений. Это удобнее, чем, например, механизм RDP. Кроме того, он включает набор сред рабочего стола, например, Gnome, KDE, и позволяет выбрать систему рабочего стола по вкусу. При этом приложения выполняются независимо от используемой среды. И, наконец, проект Wine в Linux реализует трансляцию вызовов WinAPI в системные вызовы ядра и тем самым позволяет запускать в оконной среде Linux приложения Windows.
Операционная система с возможностью виртуализации. Набор механизмов Linux позволяет как изолировать пользователей и процессы (как cgroups и chroot), так и запускать гостевые ОС на хост-системе. Для этого используются механизмы виртуализации на уровне ядра, например kvm (в том числе и для Windows-машин), либо контейнерная виртуализация, то есть на уровне ОС, когда запускаются в гостевом режиме другие экземпляры Linux. Например, это LXC или OpenVZ.