Linux — это не единая система, а целое семейство систем на базе ядра Linux. Ядро — это главный программный модуль, который отвечает за базовые возможности системы, например работу с памятью и железом.
Ядро Linux бесплатное и распространяется по свободной лицензии. На основе этого ядра создано большое количество операционных систем, которые решают какие-то конкретные задачи. Различные операционные системы на ядре Linux собирают с определенным набором программ, которые получили название дистрибутивов. Дистрибутивы Linux могут быть коммерческими (например, RedHat, Astra Linux, AltLinux, Ubuntu и многие другие) и некоммерческие (например, Debian, CentOS, Gentoo, ArchLinux и многие другие).
Сегодня устройства с операционными системами, основанные на ядре Linux, занимают более 70% от всех устройств, выходящих в интернет. Это и смартфоны на операционной системе Андроид, системы умный дом, роутеры, маршрутизаторы, серверы, музыкальные центры, цифровые тюнеры, домашние компьютеры и ноутбуки и др. То есть Linux окружил нас со всех сторон. При этом Linux остается невидимым, как должна работать любая нормальная операционная система. Задача Linux запустить нужное приложение и обеспечить ему максимальное быстродействие и безопасность.
Немного истории
Создатель ядра Linux — финский разработчик Линус Торвальдс. Дата рождения Linux считается 25 августа 1991 года, когда Линус опубликовал в сети Usenet первый пост о своей операционной системе. Он опубликовал ядро Linux под свободной лицензией и к проекту подсоединились разработчики со всего мира.
В самом ядре Linux было мало программ и Линус объединил усилия с проектом GNU, основанным Ричардом Столлманом. В итоге общий проект стал называться GNU/Linux (это, кстати, более правильное название). Но со временем некотрые стали сокращать это название до простого названия Linux, что не является верным, в том числе и с юридической точки зрения.
В 1996 году вышла новая версия Linux 2.0 и тогда же у Linux появился талисман — пингвин Tux.
Где используется Linux?
Linux используется во множестве областей — от медицины до машиностроения, от робототехники до платёжной инфраструктуры. Коротко перечислим основные сферы, где без этой операционки сегодня не обойтись.
Суперкомпьютеры. Благодаря гибкости и близости к железу Linux позволяет выжимать максимум из суперкомпьютеров. Все 500 машин из списка самых мощных суперкомпьютеров в мире работают под управлением Linux.
Веб-серверы. Linux используется практически на всех серверах в Сети. Согласно опросам агентства W3Techs, 82% веб-сайтов развёрнуты на машинах с установленным Linux- и Unix-системами. Остальные используют Windows.
Смартфоны. Операционная система Android, которая установлена на большинстве смартфонов в мире, работает на ядре Linux. Кстати, яблочная iOS, как и Android, — Unix-подобная система, так что не очень и далеко друг от друга они ушли в плане архитектуры.
Роутеры. Операционные системы, установленные в Wi-Fi-маршрутизаторах, также основаны на ядре Linux.
Умный дом. Linux используют многие устройства в умных домах: холодильники, телевизоры, стиральные машины. Например, прошивки для телевизоров Samsung, LG, Philips и Panasonic работают на базе ядра Linux.
Авиация и транспорт. Linux установлена на бортовых компьютерах автомобилей и в машинах с автопилотом от Google. Ещё Linux используется в авиации: большинство американских систем для отслеживания трафика самолётов разработано на базе Linux.
Из чего состоит Linux
Как и любая операционка, Linux — это посредник между софтом и железом компьютера. Вот её основные компоненты.
Ядро. Сердце любой операционной системы. Связывает программное и аппаратное обеспечение, распределяет ресурсы компьютера между процессами, запускает процессы ввода-вывода и передаёт их на выполнение центральному процессору. При запуске ОС ядро загружается первым и остаётся в оперативной памяти постоянно. В коде ядра содержатся драйверы, которые загружаются в память по мере необходимости.
Оболочка. Командная строка, которая позволяет пользователю взаимодействовать с ядром напрямую. Работает так: вы набираете команды для оболочки на специальном языке, она их интерпретирует и передаёт операционной системе, а та запускает нужные программы.
Самая популярная командная оболочка для Linux — Bash.
Утилиты. Программы, которые выполняют разные служебные задачи: одни обслуживают файловую систему и диски, другие нужны для ведения архивов данных, третьи занимаются диагностикой программ и оборудования.
Графика. Состоит из трёх главных компонентов:
- Графический сервер — система для отрисовки элементов интерфейса: окон, кнопок и меню, а также для предоставления доступа к ним с помощью клавиатуры и мыши. Приложению не нужно думать о том, как отобразить графику, — всё это берёт на себя графический сервер.
- Менеджер входа — тот самый экран, который спрашивает у вас логин, пароль и другие данные аутентификации перед входом в систему.
- Среда рабочего стола. Всё, что вы видите на экране при работе с системой: файловый менеджер, окна, обои, статус-бары, панели задач и другие инструменты. Чаще всего в дистрибутивах Linux используется среда GNOME, пришедшая из вышеупомянутой GNU.
Другая популярная среда — KDE — сильно напоминает Windows, а потому её часто выбирают пользователи, переезжающие с одной системы на другую.
Компиляторы. Преобразуют текст, написанный на «человеческих» языках программирования, в машинный код. Обычно компиляторы не входят в сборку из коробки — их устанавливают отдельно либо вместе со средой разработки.
Пользовательский софт. Всё, что нужно человеку для работы и чего нет в системе изначально: браузеры, мессенджеры, офисные программы, программы для работы с графикой и звуком и другие.
Плюсы и минусы Linux
Для начала назовём достоинства этой операционной системы:
Плюсы Linux
Open source. Это означает, что ядра всех дистрибутивов, модули и программное обеспечение для работы под Linux имеют открытый исходный код. Каждый пользователь может изучать, модифицировать и распространять любую программу и само ядро. Он может опубликовать результаты своих работ в соответствии с лицензией.
Бесплатность. Большинство дистрибутивов Linux, как и многие программы для них, можно бесплатно скачать и установить на свой компьютер.
Безопасность. В мире Linux сильная культура безопасности. Авторы популярных дистрибутивов Linux регулярно выпускают обновления, которые исправляют уязвимости и обеспечивают безопасность системы. Также почти все сборки Linux включают средства для настройки сетевой безопасности: брандмауэры, фильтрацию пакетов и инструменты для обнаружения и предотвращения атак.
Нетребовательность к ресурсам. Многие дистрибутивы можно установить даже на старые компьютеры с маломощными процессорами и небольшим объёмом оперативной памяти. К таким дистрибутивам относятся, например, Tiny Core Linux, Puppy Linux, Slitaz и другие. А если в дистрибутиве нет графического окружения, его можно запустить хоть на самом древнем динозавре из девяностых.
Инструменты для разработчиков. Linux поддерживает множество компиляторов, интерпретаторов и других средств разработки. Например, для C и C++ в Linux есть компилятор GCC, для Python — CPython, для Ruby — JRuby. Также версии для Linux есть у большинства популярных IDE, включая Visual Studio, Sublime Text, Eclipse, IntelliJ IDEA и другие.
Удобная установка и менеджмент программ. Для этого в Linux есть менеджеры пакетов. Они позволяют управлять программными пакетами: устанавливать, обновлять и удалять их. Это, например: APT (для Debian и Ubuntu), YUM (для CentOS и Fedora), Pacman (для Arch Linux) и другие.
Минусы Linux
Сложность освоения. Тем, кто привык работать на Windows и macOS, бывает сложно переходить на Linux. У неё другая философия, которая требует большего участия в настройке системы. Кроме того, нужно будет разобраться в менеджерах пакетов, репозиториях, политике безопасности и других вещах.
Отсутствие некоторых популярных программ. Например, для Linux не разработаны Photoshop, Microsoft Office, AutoCAD и многое другое. Конечно, их можно запускать в виртуальной машине, а у многих программ есть аналоги, но это не подходит тем, кто хочет работать с неповторимыми оригиналами.
Сложности с драйверами. Да, в Linux есть драйверы почти для любого железа, включая процессоры и видеокарты, ОЗУ и периферию. Но ключевое слово — «почти». Бывает так, что производитель не стал заморачиваться с драйверами для Linux, а свободные разработчики ещё не успели до него добраться — и не факт, что вообще когда-нибудь доберутся.
Вполне вероятна ситуация, когда после установки системы не будет работать звук, тачпад или веб-камера и придётся несколько часов танцевать с бубном, чтобы найти нужный драйвер. И это в лучшем случае — в худшем вам придётся писать его самостоятельно.
«Сделай сам» — это вообще квинтэссенция философии Linux, если верить её создателю Линусу Торвальдсу.