Код
#статьи

Что такое Linux: гайд по самой свободной операционной системе

Смеёмся в лицо опасности и делаем первый шаг к пониманию философии open source.

Иллюстрация: Оля Ежак для Skillbox Media

Даже если вы никогда не имели дела с Linux, дух этой системы присутствует почти во всём, чем вы пользуетесь ежедневно. Без Linux остановится работа серверов, банкоматов и платёжных терминалов, выйдут из строя почти все умные телевизоры, а также 70% смартфонов по всему миру.

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

Содержание


Что такое Linux

Технически Linux — это не единая система, а целое семейство систем на базе ядра Linux. Ядро — это главный программный модуль, который отвечает за базовые возможности системы, например работу с памятью и железом.

Фишка ядра Linux в том, что оно бесплатное и распространяется по лицензии open source. Это значит, что каждый разработчик может взять ядро и настроить по своему вкусу: добавить модули и программы, нарисовать любой интерфейс, внедрить продвинутые алгоритмы защиты и так далее.

Когда на основе ядра Linux собирают свою операционку, результат называют дистрибутивом. Дистрибутивов великое множество — по разным оценкам, около 600. Как правило, они решают какую-то конкретную задачу — например, Gentoo заточен на скорость, Ubuntu — на простоту и удобство, а Kali Linux сделан для инженеров по кибербезу.

Важно понимать, что, когда кто-то говорит «установить Linux», обычно имеется в виду установка какого-то дистрибутива на базе ядра Linux. Не существует отдельного образа Linux, который можно быстро залить на флешку и установить, — придётся гуглить различия разных сборок и выбирать, что ближе по духу. В этом главная прелесть философии Linux.

Окей, с дистрибутивами разобрались. Но кто же тогда создал само ядро?

Как появилась Linux

Создатель ядра Linux — легендарный финский разработчик Линус Торвальдс, один из крёстных отцов свободного ПО, истинный гик, технарь и бунтарь, выходец из семьи левых финских журналистов.

Будучи студентом Хельсинкского университета, Линус познакомился с книгой Эндрю Таненбаума «Проектирование и организация операционных систем», в которой была описана учебная система для студентов под названием Minix. Под влиянием книги Линус установил Minix на свой новый компьютер Intel 386 и… полностью в ней разочаровался:

  • По официальной версии — из-за ограничений лицензии Minix, которая была заточена на использование в учебных заведениях.
  • По рассказам однокурсников — из-за отсутствия терминала, с помощью которого Линус надеялся получить доступ к вузовскому компьютеру и изучать лекции прямо из дома (да, он был удалёнщиком ещё до того, как это стало мейнстримом).

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

25 августа 1991 года Линус Торвальдс выпустил первый пост о своей ОС в новостной группе comp.os.minix сети Usenet:

​​Привет всем, кто пользуется Minix. Сейчас я работаю над бесплатной операционной системой (просто хобби, не что-то серьёзное и профессиональное, как GNU) для компьютеров-клонов 386 (486) AT. Тружусь над системой уже с апреля, и что-то начинает получаться.

Хотелось бы узнать у вас, что люди любят и не любят в Minix, так как моя ОС чем-то похожа на неё. Любые предложения приветствуются, но не обещаю, что я их реализую.

Линус (torvalds@kruuna.helsinki.fi)

Сейчас дата размещения поста считается днём рождения Linux. Правда, тогда система называлась по-другому — freax. Это сочетание трёх слов: freaks (придурки), free (свобода) и Unix (система, на которой основаны Minix и Linux). Но мудрые товарищи Линуса настояли на более благозвучном названии Linux, заменив провокационную часть названия на имя основателя системы.

Три недели спустя Линус выкатил первую версию ядра Linux Kernel 0.01, ещё бесконечно сырую. Что важно, ядро вышло под общественной лицензией GNU GPL, что позволило разработчикам по всему миру участвовать в разработке и тестировании. Это решение резко подстегнуло темпы разработки — теперь над ядром работал уже не один человек, а целая команда энтузиастов. Такая модель развития проекта сохраняется и сегодня.

Список команд в самой первой версии Linux
Изображение: Public Domain

Главным фактором, тормозящим развитие Linux, было отсутствие приложений для полноценной работы. Тогда Линус совершил финт ушами и объединил усилия с другим культовым деятелем свободного ПО Ричардом Столлманом, автором проекта GNU, в арсенале которого была масса некоммерческих программ, но недоставало мощного и открытого ядра. Две операционки объединились, и их гибрид стал называться GNU/Linux.

Это была классическая ситуация win-win: в распоряжении Столлмана оказалось быстрое и Unix-совместимое ядро, а Торвальдс получил право использовать в Linux все наработки проекта GNU: командную оболочку Bash, графическую среду GNOME, текстовый редактор Emacs и другие. Правда, Линус выиграл от этого слияния всё же чуть больше: большинство людей называет системы на основе GNU/Linux просто Linux, игнорируя вклад Столлмана.

Несмотря на это, Ричард Столлман — личность поистине легендарная для всего computer science. О проектах и философии этого гениального безумца у нас выходил большой спецпроект с декорациями в духе космических аркад восьмидесятых.

В 1996-м вышла версия Linux 2.0 со множеством улучшений и расширенной поддержкой подключаемого железа. Тогда же у Linux появился фирменный талисман — пингвин Tux. Его нарисовал программист-дизайнер Ларри Юинг, который выиграл в конкурсе, объявленном самим Торвальдсом.

Изображение: Linux

Постепенно популярность Linux росла: о молодой операционке с открытым исходным кодом писали крупные издания, включая Forbes и Dr. Dobb’s Journal. Появились организации, которые помогали её распространению и развитию: Linux International, Linux Expo, Linux World и другие.

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

Где используется 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 установлена на бортовых компьютерах автомобилей Tesla и в машинах с автопилотом от Google. Ещё Linux используется в авиации: большинство американских систем для отслеживания трафика самолётов разработано на базе Linux.

Из чего состоит Linux

Как и любая операционка, Linux — это посредник между софтом и железом компьютера. Вот её основные компоненты.

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

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

Самая популярная командная оболочка для Linux — Bash.

Скриншот: Skillbox Media

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

Графика. Состоит из трёх главных компонентов:

  • Графический сервер — система для отрисовки элементов интерфейса: окон, кнопок и меню, а также для предоставления доступа к ним с помощью клавиатуры и мыши. Приложению не нужно думать о том, как отобразить графику, — всё это берёт на себя графический сервер.
  • Менеджер входа — тот самый экран, который спрашивает у вас логин, пароль и другие данные аутентификации перед входом в систему.
Скриншот: Skillbox Media
  • Среда рабочего стола. Всё, что вы видите на экране при работе с системой: файловый менеджер, окна, обои, статус-бары, панели задач и другие инструменты. Чаще всего в дистрибутивах Linux используется среда GNOME, пришедшая из вышеупомянутой GNU.
Рабочий стол GNOME
Скриншот: «Пингвинус Linux» / Skillbox Media

Другая популярная среда — KDE — сильно напоминает Windows, а потому её часто выбирают пользователи, переезжающие с одной системы на другую.

Рабочий стол KDE
Скриншот: Skillbox Media

Компиляторы. Преобразуют текст, написанный на «человеческих» языках программирования, в машинный код. Обычно компиляторы не входят в сборку из коробки — их устанавливают отдельно либо вместе со средой разработки.

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

Дистрибутивы Linux

Как мы рассказали выше, Linux — это не единая система, а целая куча систем, предназначенных для решения разных задач. Одни появляются, другие исчезают, некоторые разделяются на отдельные проекты, а некоторые объединяются. Разработчики и компании создают дистрибутивы:

  • для научной работы — чтобы упростить работу сотрудников университетов и исследовательских лабораторий;
  • для безопасности — чтобы повысить защищённость систем на режимных объектах;
  • для скорости — чтобы повысить производительность серверов и вычислительных систем;
  • для простоты — чтобы обычные пользователи тоже могли наслаждаться бесплатным софтом и не кормить корпоративных боссов из Кремниевой долины :)

Существуют даже дистрибутивы для церквей, и мы даже однажды о них писали.

У нас есть большой путеводитель по дистрибутивам Linux для тех, кто решил переметнуться в стан линуксоидов. В этом разделе коротко перечислим самые популярные из них с описанием ключевых фишек.

Debian. Один из старейших и «базовых» дистрибутивов Linux, созданный 1993 году программистом Иэном Мёрдоком. На Debian основано множество других дистрибутивов: Linux Mint, Kali Linux, Ubuntu и другие.

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

Чистый Debian в основном используют на серверах, но это не значит, что он не подходит для пользователей. В системе есть графический интерфейс — более того, вы даже сможете выбрать оболочку по вкусу: GNOME, KDE, Xfce или LXDE.

Ubuntu. Популярный debian-based-дистрибутив «для дома», разработанный компанией Canonical. Благодаря простоте установки и дружелюбному интерфейсу хорошо подходит для самого широкого круга пользователей.

Интерфейс Ubuntu
Скриншот: Skillbox Media

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

Fedora. Совместная разработка компании Red Hat и проекта Fedora Community. В отличие от Ubuntu, Fedora использует только свободное ПО, закрытые для изучения программы использовать запрещено — и это принципиальная позиция создателей. Все компоненты дистрибутива доступны для свободного использования, изменения и распространения.

OpenSUSE. Хороший вариант для тех, кто ищет компромисс между новизной и стабильностью: компоненты системы проходят тестирование, но не такое педантичное, как в Ubuntu. Из плюсов: большая библиотека встроенных драйверов и широкий выбор приложений в репозиториях.

Дистрибутив разрабатывает и поддерживает сообщество OpenSUSE в сотрудничестве с компанией SUSE Linux GmbH. Выпускается в двух версиях: для обычных и для корпоративных клиентов.

Gentoo. Позволяет гибко настраивать систему под своё железо. В Gentoo нет готовых программ, так как весь софт собирается из исходного кода. Сборка ориентирована прежде всего на опытных пользователей — говорят, чтобы правильно установить и настроить Gentoo, многие берут отпуск.

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

Плюсы и минусы 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) и другие.

Есть и минусы:

❌ Сложность освоения. Тем, кто привык работать на Windows и macOS, бывает сложно переходить на Linux. У неё другая философия, которая требует большего участия в настройке системы. Кроме того, нужно будет разобраться в менеджерах пакетов, репозиториях, политике безопасности и других вещах.

❌ Отсутствие некоторых популярных программ. Например, для Linux не разработаны Photoshop, Microsoft Office, AutoCAD и многое другое. Конечно, их можно запускать в виртуальной машине, а у многих программ есть аналоги, но это не подходит тем, кто хочет работать с неповторимыми оригиналами.

Сложности с драйверами. Да, в Linux есть драйверы почти для любого железа, включая процессоры и видеокарты, ОЗУ и периферию. Но ключевое слово — «почти». Бывает так, что производитель не стал заморачиваться с драйверами для Linux, а свободные разработчики ещё не успели до него добраться — и не факт, что вообще когда-нибудь доберутся.

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

«Сделай сам» — это вообще квинтэссенция философии Linux, если верить её создателю Линусу Торвальдсу :)

Стоит ли переходить на Linux

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

  • Софт. Если вы привыкли к Photoshop и к возможности в любой момент установить любую игру планеты, химии с Linux может и не возникнуть.
  • Опыт. Если вы никогда не имели дела с Linux, понадобится время, чтобы её освоить.
  • Драйверы. Не для всех устройств и комплектующих они есть.

Но если эти сложности вас не смущают и вы, как и Линус Торвальдс, любите смеяться в лицо опасности, скорее открывайте гайд по тому, как быстро, дёшево и без боли перейти с Windows на Linux, и добро пожаловать в сообщество!

Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!

Проверьте свой английский. Бесплатно ➞
Нескучные задания: small talk, поиск выдуманных слов — и не только. Подробный фидбэк от преподавателя + персональный план по повышению уровня.
Пройти тест
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована