Linux
Linux — это семейство операционных систем (ОС), работающих на основе одноименного ядра. Нет одной операционной системы Linux, как, например, Windows или MacOS. Есть множество дистрибутивов (набор файлов, необходимых для установки ПО), выполняющих конкретные задачи.

«IT-специалист с нуля» наш лучший курс для старта в IT
Краткая история создания Linux
Линус Торвальдс — первый разработчик и создатель Linux. Именно в честь него и была названа ОС. В 1991 году Линус начал работу над собственной ОС семейства Unix. Через три года появилась первая версия, доступная для скачивания. Но тогда она имела очень низкий спрос — ей пользовались буквально несколько человек.
Только через 10 лет ОС Linux получила широкое распространение. Сообщество программистов подхватило идею свободного ПО, специалисты стали помогать развивать проект.
Про логотип
Логотип и талисман Linux — пингвин Tux с желтыми лапами и клювом. В 1996 году разработчики ядра Linux решили выбрать талисман. Торвальдс обмолвился о том, что ему очень нравятся пингвины. Поэтому на логотипе ОС изображен пингвин.

Профессия / 8 месяцев
IT-специалист с нуля
Попробуйте 9 профессий за 2 месяца и выберите подходящую вам

Где нужен Linux?
Веб-серверы
Дистрибутивы Linux практически полностью захватили рынок веб-серверов. Согласно рейтингу аналитического агентства W3Techs, на Linux-серверах развернуты 75,1% сайтов.
Мобильные устройства
ОС Android работает на ядре Linux, поэтому она используется и в мобильных устройствах.
Суперкомпьютеры
Это специализированные вычислительные машины, превосходящие по своим техническим параметрам и скорости вычислений многие обычные компьютеры. Они уникальны, для многих из них требуется особая ОС, способная решать конкретные задачи. Благодаря открытому исходному коду разработчики могут видоизменять ОС так, чтобы она работала и на таких машинах.
Читайте также Востребованные IT-профессии 2023 года: на кого учиться онлайн
Игровые консоли
Linux занял свою нишу и в игровых консолях, но ориентированных на эту ОС игр пока не так много. Компания Steam работает над исправлением ситуации — разрабатывает операционную систему SteamOS. Она будет поставляться вместе с игровой консолью Steam Machine.
Устройства IoT и умная техника
Многие из них созданы на основе Linux. Так, компания Samsung разработала операционную систему Tize, LG — WebOS, а Panasonic и Philips используют FirefoxOS.
Авиация и транспорт
Во встроенных компьютерах Tesla и машинах с автопилотами Google используется операционная система Linux. ПО для отслеживания трафика в США аналогично разработано на этой ОС, а администрация авиации Америки перешла на нее еще в 2006 году.
Какие компоненты у дистрибутива Linux?
Начинающий программист должен знать структуру Linux, чтобы понимать, как она устроена и каким образом функционирует.
Ядро
Что это такое, как работает и зачем нужно? Это так называемая главная программа, основная часть ОС. Ядро выступает в качестве посредника между устройствами ПК (видеокартой, процессором, оперативной памятью и пр.) и его ПО. Для этого в коде есть драйверы устройств. Они загружаются в память или подключаются по мере необходимости ресурса определенного устройства. Ядра управляют устройствами, процессами и памятью, обрабатывают системные вызовы.
На компьютере могут быть запущены сразу несколько программ. Первые работают в фоновом режиме, вторые ожидают определенных действий от пользователя, третьи получают информацию из других запущенных программ. Именно ядро распределяет ресурсы компьютера между всеми программами и организует параллельную работу множества разных процессов.
Какие есть виды ядер? Всего выделяют 3 типа: микроядра, монолитные и гибридные.
Состоит из нескольких независимых модулей, которые подгружаются в память по мере надобности.
Плюсы:
- теоретически высокая степень надежности (по сравнению с другими архитектурами);
- низкое потребление памяти;
- легкое подключение дополнительных частей ядра (модульность).
Минусы:
- низкая скорость из-за постоянного переключения между отдельными частями;
- доступность аппаратных средств только через драйверы.

Станьте веб-разработчиком и найдите стабильную работу на удаленке
- Монолитное ядро (monolithic)
Противоположность микроядра. В памяти ПК всегда размещен весь (либо практически весь) код ядра. Поэтому скорость его работы выше в сравнении с микроядром.
Плюсы:
- прямой доступ к аппаратным средствам;
- простой обмен данными между процессами;
- более высокая скорость реакции процессов.
Минусы:
- большой размер;
- меньшая степень безопасности (по сравнению с микроядром);
- занимает много оперативной памяти.
Комбинация элементов двух ранее описанных архитектур. Для ускорения работы запускает модули операционной системы в пространстве ядра.
Плюсы:
- возможность выбора того, что будет функционировать в пространстве ядра и пользователя;
- меньший физический размер (в сравнении монолитным ядром);
- большая степень гибкости.
Минусы:
- более медленная работа;
- выпуск драйверов устройств только производителями.
Ядро Linux — монолитное, при этом оно заимствует некоторые идеи из микроядерной архитектуры. Это означает, что вся ОС функционирует в пространстве ядра, а драйвера устройств могут легко загружаться (или выгружаться) непосредственно при работе операционной системы.

Железо — аппаратное обеспечение ПК с его периферийными устройствами.
Ядро — основной компонент ОС, взаимодействует с аппаратным обеспечением, выступает посредником между низкоуровневым железом и компонентами верхнего уровня.
Оболочка — интерфейс для взаимодействия между ядром ОС и пользователями, абстрагирует внутреннее устройство системы, получает команды от пользователей, запускает необходимые функции.
Утилиты — служебные программы, дающие пользователю большую часть функциональных возможностей System OS Linux. Виды утилит: sed, cat, date, vi и прочие.
Компиляторы — технические средства, преобразующие программный код в машинный.
Системные утилиты
Утилиты — вспомогательные компьютерные программы в составе общего ПО. Они нужны для выполнения типовых задач, связанных с работой оборудования и ОС. У Linux есть набор простых утилит. Они позволяют, например, редактировать данные, изменять расположение файлов.
Системные библиотеки
Системные библиотеки — это специальные программы, дающие доступ к функциям ядра. Для выполнения какой-либо задачи ядро вначале получает системный вызов, исходящий от приложений. Но у каждого ядра свой набор системных вызовов, и они должны понимать формат выполнения задачи. Поэтому программисты разработали стандартную библиотеку процедур, описывающую набор системных вызовов для конкретной ОС.
Утилиты разработки ПО
При помощи трех вышеперечисленных компонентов операционная система сможет запускаться и функционировать. Но для обновления и создания новых программ нужно иметь дополнительные библиотеки и инструменты — toolchain. Этот набор программ, инструментов и утилит поможет создавать рабочее приложение из исходных кодов.
Пользовательские программы
Они не считаются обязательными компонентами ОС. Нередко их пишут сами пользователи. Программы помогают задать конкретную работу. К таким утилитам относятся браузеры, офисные пакеты, инструменты графического дизайна, плееры и пр.
Плюсы Linux
- Бесплатное использование. Использование большинства ОС Linux и большей части программ, основанных на ней, абсолютно бесплатно.
- Открытыйисходный код системы/программы. Благодаря доступу к исходному коду можно изучать его, изменять, распространять, а также публиковать изменения в соответствии с лицензией.
- Актуальность и производительность. По сравнению с Windows Linux не устаревает со временем. То есть, чтобы восстановить первоначальную производительность, не нужно будет регулярно чистить или переустанавливать ОС, запускать дефрагментацию.
- Безопасность. Linux поддерживает разные параметры безопасности, защищающие от вирусов, замедлений, вредоносных программ, сбоев. Это основная причина популярности ОС среди разработчиков. Конечно, Linux — не на 100% безопасная ОС, но менее уязвимая, чем другие.
- Универсальность. Linux поддерживает практически все популярные языки программирования: Java, C/C++, Python, Ruby, C# и другие. Менеджер пакетов поможет установить и обновить целые и отдельные части компонентов ПО. Благодаря поддержке SSH можно быстро управлять серверами.
- Дистрибутивы. Многие организации модифицировали ОС Linux, выпустив собственные дистрибутивы. Перечисляем наиболее популярные: Debian, Ubuntu, Linux Mint, Arch Linux, MX Linux, Fedora, Manjaro, CentOS. Linux Mint и Ubuntu подойдут начинающим пользователям, а Arch Linux, Fedora и Debian — опытным разработчикам. Дистрибутив можно собрать и самостоятельно.
- Установка ПО из централизованного места— репозитория. Это место, где хранятся данные. Благодаря этому можно установить несколько программ одним щелчком мыши. Можно забыть о поиске кряков, серийных ключей и программ в интернете — с Linux это точно не понадобится.
Минусы Linux
- Сложности с освоением ОС. Интерфейс большей части версий Linux значительно отличается от привычных Windows и MacOS.

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

- Требование прав доступа к файлам для работы части программ. Для пользователя это значит, что придется вводить пароль по несколько раз в сутки.
- Малое количество совместимых игр и программ (по сравнению с Windows). Сегодня это одна из основных причин, почему пользователи не переходят на Linux.
Поддержка и помощь
Существуют разные онлайн-форумы и чат-каналы, которые можно использовать для получения помощи. Эти каналы варьируются в зависимости от дистрибутива, который используется.
- Общие форумы Linux: форум Linux.Org.Ru, Linux Forum.
- Для Ubuntu: web-сайты Ubuntu Forums и AskUbuntu.
- Для других: ссылки на поддержку размещены на ресурсе дистрибутива.
Fullstack-разработчик на Python
Fullstack-разработчики могут в одиночку сделать IT-проект от архитектуры до интерфейса. Их навыки востребованы у работодателей, особенно в стартапах. Научитесь программировать на Python и JavaScript и создавайте сервисы с нуля.
Linux системы — популярные дистрибутивы. Из чего состоит «Линукс»


Линукс — это не только операционная система, но и философия, которая ставит во главу угла надежность, открытость и сотрудничество. Эта ОС уже занимает большую часть рынка в некоторых сферах и продолжает привлекать все больше людей и организаций, которые ценят мощность, безопасность и гибкость Линукс. В этой статье мы рассмотрим более подробно, что такое Linux простыми словами, что делает его таким уникальным и почему он стоит вашего внимания.
Что такое Linux простыми словами
Linux — это ядро операционной системы, на базе которого создано множество дистрибутивов. Ядро операционной системы — это основная часть ОС, которая обеспечивает взаимодействие между аппаратным обеспечением компьютера и прикладными программами. Оно является фундаментальной частью операционной системы и обеспечивает ее стабильную работу. При этом, с точки зрения пользователя разные дистрибутивы, использующие одно ядро, могут сильно отличаться между собой и быть похожими на другие операционные системы. Например, во многих дистрибутивах Linux можно сделать интерфейс весьма похожий на Windows.

Linuxfx 11 — пример похожего на Windows оформления
Изначально ОС была частным проектом шведского программиста Линуса Торвальдса, и писался он для души. У Linux открытый исходный код, что позволяет энтузиастам, которые заинтересовались проектом и увидели в нем бесплатную альтернативу UNIX, помогать в его развитии. Сейчас в серверной структуре преимущественно используется Linux, хотя на пользовательских компьютерах преимущество остается за Windows и macOS. За время существования систем Linux вокруг них сформировалось активное сообщество разработчиков и пользователей. Оно постоянно вносит вклад в развитие и улучшение операционной системы, создавая новые приложения, утилиты и драйверы. Благодаря этому Линукс обладает огромным количеством бесплатного и открытого программного обеспечения, доступного для пользователей.

Создатель ядра Linux — Линус Торвальдс
Одной из основных особенностей популярных дистрибутивов Linux принято называть их гибкость. Это означает, что пользователи могут настроить операционную систему под свои нужды, выбирая различные программы, интерфейсы и утилиты. При желании пользователь может создать собственную версию операционной системы, став разработчиком нового дистрибутива. Именно гибкость Линукс позволила адаптировать ее для различных задач. В итоге ОС используется в персональных компьютерах, на серверах . Даже сервера Международной космической станции с 2013-го года работают на дистрибутиве Linux Debian.
Linux считается надежной и безопасной операционной системой. В отличие от Windows или macOS, которые делятся только частью исходников с ограниченным кругом организаций, полный исходный код Linux доступен любому желающему. Благодаря такому подходу множество разработчиков работает над улучшением и обновлением системы, что помогает обнаруживать и устранять уязвимости и ошибки. Также открытость исходного кода усложняет появление вредоносного ПО в самой операционной системе: даже если кто-то попытается его добавить, другие пользователи обратят на это внимание и заблокируют подобные правки.
Важно отметить, что Linux может быть сложным для новичков, поскольку требует некоторого времени и усилий для изучения и освоения. Однако, с ростом популярности Linux, появляются все более простые и дружественные интерфейсы, которые делают его использование более доступным для широкой аудитории.

Из чего состоит Linux
Операционная система Linux — это в первую очередь ядро ОС. Оно управляет памятью, устройствами, процессором, сетью и т. д. Фактически, для работы операционной системы достаточно ядра и единственной программы init. Обычно она стартует демоны (сервисные процессы), занимается конфигурацией системы и запускает интерфейс, с помощью которого пользователь может взаимодействовать с операционной системой.
В современных дистрибутивах в качестве системы инициализации используется systemd. Это системный менеджер, который предоставляет набор инструментов и сервисов для управления процессами, запуска и остановки служб, управления журналами, управления сетью и других системных задач. Он обеспечивает более эффективное управление ресурсами, улучшенную отказоустойчивость и возможность динамического изменения конфигурации системы без перезагрузки по сравнению со старой системой инициализации SysV init.
С точки зрения опытного пользователя и разработчика два описанных выше компонента и составляют основу Линукса. Для полноценного функционирования системы, однако, требуются другие компоненты. Разберем, из чего состоит Linux и какие особенности есть у его компонентов.
Командный интерпретатор
Командный интерпретатор — программа, которая обеспечивает текстовый интерфейс для взаимодействия с операционной системой. Он принимает команды от пользователя, интерпретирует их и выполняет соответствующие операции. В Linux самым распространенным командным интерпретатором является bash (Bourne Again SHell). Кроме bash, в Linux существуют и другие командные интерпретаторы, такие как zsh, csh, ksh, sh и другие, каждый из которых имеет свои особенности и возможности.
Пакетный менеджер
Пакетный менеджер в Linux — это инструмент, который упрощает установку, обновление, удаление и скачивание программных пакетов в операционной системе. Он предоставляет пользователю централизованный способ легко устанавливать и обновлять пакеты из официальных и других репозиториев (хранилищ).

Пакетный менеджер дистрибутива Alpine Linux
Пакетный менеджер обычно содержит базу данных со списком доступных пакетов, и пользователь может использовать его для поиска, установки, обновления и удаления программ. Он также может автоматически управлять зависимостями, то есть устанавливать или обновлять другие пакеты, необходимые для работы выбранного пакета.
В Linux существует несколько популярных пакетных менеджеров, таких как apt (Advanced Package Tool) в Debian и Ubuntu, yum (Yellowdog Updater, Modified) в Fedora и CentOS, pacman в Arch Linux и другие. Каждый из них имеет свои особенности, но общая идея остается прежней — предоставить удобный способ управления программным обеспечением в Linux.
Графическая система
Графическая система в Linux — это компонент ОС который отвечает за создания графического интерфейса пользователя (GUI). Она предоставляет средства для отображения окон, иконок, кнопок, меню и других элементов интерфейса. Пользовательская часть графической подсистемы Linux состоит из нескольких основных компонентов:
- Window system (система окон). Это программное обеспечение, которое управляет созданием и отображением окон на экране. Традиционно использовалась система окон X Window System (X11), но сейчас популярность набирает Wayland.
- Graphics Libraries (графические библиотеки). Они предоставляют разработчикам инструменты для создания компонентов графических пользовательских интерфейсов (GUI) и взаимодействия с системой окон. Например, они позволяют создавать поля ввода, кнопки, чекбоксы и другие подобные элементы. Примерами могут служить GTK+, Qt.
- Window Manager (менеджер окон). Менеджер окон отвечает за управление расположением и внешним видом окон на рабочем столе. Он позволяет пользователям перемещать, изменять размер и закрывать окна, а также управлять рабочими пространствами.
- Desktop Environment (оболочка рабочего стола). Представляет собой набор программ, которые организуют для пользователя полноценный рабочий стол с возможностью запуска приложений, управления файлами и настройками системы. Примеры популярных оболочек рабочего стола в Linux включают GNOME, KDE, Xfce и Unity.
Все эти компоненты работают совместно и предназначены для создания графической пользовательской среды и, фактически, определяют как выглядит Линукс. Их взаимодействие обеспечивает удобство использования операционной системы и функциональность для пользователей.
Загрузчик
Загрузчик (bootloader) в Linux — это программное обеспечение, которое управляет инициализацией операционной системы при запуске компьютера. Он загружает ядро операционной системы и другие необходимые компоненты, а затем передает управление операционной системе.
Наиболее популярным загрузчиком является GRUB. Он широко используется в большинстве лучших дистрибутивов Linux. Этот загрузчик предоставляет гибкую конфигурацию, поддержку различных файловых систем и возможность выбора операционной системы при загрузке.

Внешний вид загрузчика GRUB
В чем разница между Linux и другими ОС
Главное отличие операционной системы Linux от любой другой в его ядре. Ядро у Линукс монолитное, оно состоит из одного файла. Для расширения функциональности используются модули. Другие отличия:
- структура файловой системы. Файловая система имеет единый корень, к подкаталогам которого могут монтироваться диски. Файлы сортируются в зависимости от типа, то есть разные компоненты одной программы могут храниться в разных каталогах. Также существует деление на системные файлы и файлы пользователя, что повышает безопасность системных файлов и упрощает резервное копирование;
- специальные файловые системы, которые отражают текущее состояние системы и позволяют им манипулировать. К примеру, procfs предоставляет список системных процессов и информацию о ядре, sysfs управляет настройками ядра ОС;
- централизованное хранение файлов конфигурации. Это позволяет легко перенести настройки системы на другой компьютер;
- использование пакетного менеджера для управления программами. Несмотря на то, что в Windows тоже есть пакетные менеджеры, в Linux у пакетного менеджера гораздо больше возможностей по управлению зависимостями. В Linux он позволяет установить не только пользовательские приложения, но и заменить целую оболочку рабочего стола или само ядро;
- высокий уровень безопасности. Linux предлагает различные механизмы контроля доступа к объектам, такие как POSIX ACL (Access Control Lists), SELinux (Security-Enhanced Linux) и AppArmor. Они позволяют определить дополнительные правила доступа на основе ролей, контекстов безопасности и профилей приложений.
Разница между Linux и другими операционными системами является значительной и важной для множества пользователей. Linux отличается своей открытостью и свободой, позволяя пользователям настраивать и модифицировать систему под свои потребности.
Для кого подходит Linux
Linux подходит для различных категорий пользователей. Он популярен среди разработчиков, потому что большое количество системного программного обеспечения разрабатывается именно под эту операционную систему. Также Линукс подходит для системных администраторов, так как предоставляет большую гибкость и контроль над операционной системой. Linux также широко используется в серверных средах и в облачных вычислениях, где надежность и безопасность играют важную роль.
Кроме того, Linux привлекает тех, кто ценит свободное и открытое программное обеспечение. С открытым исходным кодом, Linux позволяет пользователям изучать и изменять систему под свои нужды. Это особенно привлекательно для энтузиастов, сторонников свободного программного обеспечения и тех, кто хочет полностью контролировать свою операционную систему.
Linux также может быть полезен для обычных пользователей, которые просто хотят стабильную и безопасную операционную систему для своего персонального компьютера или ноутбука. Существует множество вариантов ОС, которые подойдут для решения различных пользовательских задач. Главное — правильный выбор дистрибутива Linux с учетом потребностей конкретного человека.
Перечислим несколько примеров, где используется Линукс:
- Серверные системы. Linux является одной из наиболее популярных операционных систем для серверов. Аналитическое агентство W3Techs приводит данные, что Unix-подобные системы используются на 82% серверов.
- Управление мобильными устройствами. ОС Android разработана на ядре Linux. По статистике за апрель 2023-го года он используется на 68% мобильных устройств.
- Производство фильмов и мультипликации. К примеру, команда, создавшая Титаник в 1997-м году использовала для работы сервера с Линуксом. Сейчас DreamWorks Animation, Pixar также используют эту ОС;
- Встраиваемые системы. Linux используется во многих встраиваемых системах, таких как маршрутизаторы, медиаплееры, системы видеонаблюдения и другие устройства, которые требуют стабильности, гибкости и безопасности.
Это лишь некоторые примеры. Специализированные и стандартные популярные Линукс дистрибутивы используются во многих других сферах, включая научные исследования, разработку программного обеспечения, игровую индустрию и даже в космических аппаратах.
Популярные дистрибутивы Linux
Составить ТОП дистрибутивов Linux по популярности практически невозможно, потому что нет инструментов, которые помогли бы собрать достаточно точную статистику. И, даже если бы такая статистика была, лидирующие позиции в ТОПе заняли бы специализированные ОС, заточенные под конкретные цели, например, под управление умным домом. Поэтому, когда мы говорим про самые популярные дистрибутивы Linux, мы имеем в виду операционные системы, которые активно разрабатываются, у которых большое сообщество и много обычных пользователей т. д. Приведем список популярных разновидностей ОС, чтобы вам было легче решить, какой дистрибутив Linux выбрать для своих задач.
Ubuntu

Ubuntu считается универсальной операционной системой, подходящей для ПК, ноутбуков, серверов. Для пользователей и серверных задач существуют отдельные редакции ОС. Ubuntu ориентирована на простоту использования и обычно выходит с дополнительным программным обеспечением, что позволяет сразу же использовать ОС после установки. Релизы делятся на обычные и помеченные как LTS (Long Term Support; «поддержка в течение длительного периода»). Последние поддерживаются в течение пяти лет с момента выпуска.
Debian
Debian чаще всего используется как операционная система для серверов, т. к. сообщество, которое его разрабатывает, придерживается принципа стабильности. У Debian есть различные выпуски, среди которых можно выбрать stable версию. Обновления для этой версии содержат только пакеты, необходимые для устранения уязвимостей и ошибок в программах, вошедших в официальный дистрибутив. Так называемый срок длительной поддержки версии составляет 5 лет, что достаточно много для ОС.
Интересно, что NASA использует этот дистрибутив на рабочих местах космонавтов МКС. В экспериментах с шаттлом Колумбия также применялся Debian.
Arch Linux
Arch Linux считается дистрибутивом для опытных пользователей, так как разработчики придерживаются модели rolling release. Это означает, что дистрибутив содержит последние версии программ, а не немного устаревшие, но стабильные, как во многих других Линуксах. Также особенностью Arch Linux можно назвать пакетный менеджер pacman. Он способен самостоятельно найти и загрузить все необходимые пакеты, пользователю достаточно выполнить одну команду для обновления системы.

Пример интерфейса обновления Arch Linux
Manjaro
Manjaro — это дистрибутив, который также содержит последние версии программ. Поставляется в нескольких версиях с разным рабочим окружением: Xfce, KDE Plasma или GNOME. Обладает полной поддержкой мультимедиа, собирается так, чтобы у пользователя все работало «из коробки». Также использует менеджер pacman.
Mint
Дистрибутив Linux Mint основан на Ubuntu. Отличается большим количеством предустановленных медиа-кодеков, Java, наличием дружественной среды рабочего стола Cinnamon. Также есть дистрибутив, основанный на Debian, но собранный по принципам сообщества Linux Mint, т. е. предоставляющий поддержку различных форматов мультимедиа.
Alpine
Дистрибутив, ориентированный на малый размер, безопасность, нетребовательность к ресурсам. Alpine из-за своего небольшого размера и быстрой загрузки часто используется в Docker-контейнерах, на виртуальных машинах, во встроенных устройствах (маршрутизаторы, NAS и др.).

Интерфейс Alpine Linux
Fedora
Дистрибутив Fedora разрабатывается при коммерческой поддержке Red Hat Enterprise Linux (система, рассчитанная на корпоративное использование с платной поддержкой в течение 10 лет). По умолчанию использует Security-Enhanced Linux с расширенными возможностями контроля доступа, поставляется с широким спектром программного обеспечения. Выпускается в нескольких редакциях, включая редакцию для пользователя, сервера, интернета вещей и других целей.
Red Hat Enterprise Linux
Red Hat Enterprise Linux — это коммерческий дистрибутив, рассчитанный на крупные компании. Компания-разработчик Red Hat продает поддержку в течение 10 лет и предоставляет платные обновления, исходные коды которых доступны только подписчикам. Также существуют совместимые с RHEL дистрибутивы AlmaLinux OS и Rocky Linux.
Из всех дистрибутивов Linux 2023 выбрать подходящий можно, опираясь на свои потребности и задачи. Если вы новичок, стоит начать с дистрибутива, который предоставляет простой и дружественный интерфейс, такого как Ubuntu или Linux Mint. Если у вас есть опыт работы с Linux, вы можете рассмотреть более продвинутые дистрибутивы, такие как Arch Linux или Debian. Также не забудьте убедиться, что выбранный вами вариант совместим с вашим оборудованием. На официальном сайте дистрибутива обычно есть списки совместимых компонентов. Кроме того стоит обратить внимание на сообщество дистрибутива: чем больше оно и активнее, тем выше шанс получить помощь и решить какие-то нестандартные проблемы.
Задумались о том, чтобы сменить ОС на компьютерах своей компании? Не знаете, какой из ТОП дистрибутивов Linux выбрать для сервера или организации рабочих мест? Обращайтесь в «Роксис». Мы предлагаем услугу сервисного обслуживания компьютеров и другую поддержку для малого бизнеса. Звоните, чтобы узнать подробности!
Интерфейс Linux и как его настроить
Что это такое? Интерфейс Linux – рабочий стол ОС, который можно настраивать на свое усмотрение или вообще выбрать готовое решение. Это является основным преимуществом операционной системы.
Какой лучше? Существуют различные варианты оболочек рабочего стола, есть даже такие, которые функционируют с 1998 года. Однако год создания интерфейса ничего не говорит, главное, чтобы он был удобен и приятен для пользователя в работе.
В статье рассказывается:
- Что такое Linux
- Где применяется Linux
- Как устроена ОС
- Интерфейс пользователя Linux
- 9 самых популярных оболочек рабочего стола Linux
Пройди тест и узнай, какая сфера тебе подходит:
айти, дизайн или маркетинг.
Бесплатно от Geekbrains
Что такое Linux
Linux представляет собой семейство операционных систем (ОС), которые функционируют на базе одноимённого ядра. Не существует единой ОС Linux, как в случае с Windows или MacOS. Вместо этого есть несколько дистрибутивов (наборов файлов, которые требуются для установки программного обеспечения). Каждый из них предназначен для решения определенных задач.
Создателем Linux является Линус Торвальдс. Как вы могли догадаться, операционная система была названа в честь этого американского программиста. Специалист приступил к разработке ОС семейства Unix в 1991 году. Уже в 1994 году была выпущена первая версия продукта. В то время она не была популярна. Её пользователями являлись всего несколько человек.
Спустя 10 лет спрос на ОС Linux резко возрос. Многим программистам начала нравится концепция свободного ПО, поэтому они приняли участие в развитии операционной системы. В 1996 году разработчики ядра Linux решили, что компании нужен талисман и логотип. Линусу Торвальдсу нравились пингвины, поэтому была выбрана именно эта птица.
Где применяется Linux
Рассмотрим основные сферы применения Linux:
- Веб-серверы. По данным аналитического агентства W3Techs, 75,1 % сайтов используют Linux-серверы.
- Мобильные устройства. ОС Android, которая устанавливается на мобильные устройства, функционирует на базе ядра Linux.
- Суперкомпьютеры. Речь идёт об особых вычислительных машинах, которые гораздо быстрее и производительнее обычных ПК.Для таких устройств нужна особая операционная система, предназначенная для выполнения определённых задач. Linux имеет открытый исходный код, так что программисты могут вносить корректировки, адаптируя ОС под конкретный суперкомпьютер.
Узнай, какие ИТ — профессии
входят в ТОП-30 с доходом
от 210 000 ₽/мес
Павел Симонов
Исполнительный директор Geekbrains
Команда GeekBrains совместно с международными специалистами по развитию карьеры подготовили материалы, которые помогут вам начать путь к профессии мечты.
Подборка содержит только самые востребованные и высокооплачиваемые специальности и направления в IT-сфере. 86% наших учеников с помощью данных материалов определились с карьерной целью на ближайшее будущее!
Скачивайте и используйте уже сегодня:

Павел Симонов
Исполнительный директор Geekbrains
Топ-30 самых востребованных и высокооплачиваемых профессий 2023
Поможет разобраться в актуальной ситуации на рынке труда
Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка
Только проверенные нейросети с доступом из России и свободным использованием
ТОП-100 площадок для поиска работы от GeekBrains
Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽
Получить подборку бесплатно
Уже скачали 25868
- Игровые консоли. На данный момент существует не так много игр, которые поддерживаются ОС Linux. Однако стоит отметить, что компания Steam собирается выпустить свою операционную систему — SteamOS. Пользователь сможет получить ее вместе с игровой консолью Steam Machine.
- Устройства IoT и умная техника. Например, компания Samsung выпустила операционную систему Tize, LG — WebOS, а Panasonic и Philips работают на базе FirefoxOS. Во всех этих устройствах используется Linux.
- Авиация и транспорт. Встроенные компьютеры Tesla и транспортные средства с автопилотами Google функционируют на основе OS Linux. Кроме того, в 2006 году администрация авиации США начала применять эту операционную систему для отслеживания трафика.
Как устроена ОС
Операционная система Linux основана на модульных принципах, стандартах и соглашениях, которые были разработаны Unix ещё в 70-х и 80-х годах. В этой ОС используется монолитное ядро. Оно управляет различными процессами, сетевыми функциями, периферией и доступом к файловой системе. При этом драйверы устройств могут быть реализованы двумя различными способами: их либо добавляют в виде модулей, которые загружаются в процессе функционирования ОС, либо внедряют в само ядро.
Нельзя не упомянуть о программах, которые обеспечивают функции системы более высокого уровня при взаимодействии с ядром. Яркий пример — пользовательские компоненты GNU. Это немаловажный элемент практически всех Linux-систем. Компоненты GNU содержат в себе самые распространённые реализации библиотеки языка Си, популярные оболочки операционной системы и т. д. Эти инструменты необходимы для выполнения важных задач ОС.
Практически во всех системах Linux графический интерфейс пользователя (GUI) базируется на X Window System. В редких случаях применяется Wayland.
Интерфейс пользователя Linux
В ОС Linux пользователи применяют интерфейсы командной строки (CLI) и графический пользовательский (GUI). Если же речь идёт о встраиваемых системах, то работа ведётся посредством элементов управления самих аппаратных средств. В настольных системах чаще всего устанавливается графический пользовательский интерфейс (ПИ). В этом случае командную строку можно открыть с помощью окна эмулятора терминала или отдельной виртуальной консоли.
Практически все низкоуровневые компоненты интерфейса Linux (в том числе и пользовательские компоненты GNU) применяют только командную строку. Она является оптимальным вариантом для автоматизации повторяющихся или отложенных задач. Кроме того, командная строка позволяет использовать крайне простой механизм межпроцессного взаимодействия.
Чтобы получить доступ к командной строке с рабочего стола Linux, нередко применяется программа графического эмулятора терминала. При этом те дистрибутивы, которые созданы специально для серверов, могут применять командную строку в качестве единственного интерфейса.
В случае с настольными системами самыми распространёнными пользовательскими интерфейсами являются варианты, которые базируются на средах рабочего стола по типу GNOME, KDE Plasma Desktop и Xfce.
Однако есть и другие ПИ. При этом наиболее распространённые пользовательские интерфейсы Linux функционируют на базе X Window System, которая предоставляет прозрачность сети. Кроме того, эта система позволяет графическому приложению, установленному на одном ПК, отображаться на другом. Пользователь может работать с программой на обоих компьютерах.
FVWM, Enlightenment и Window Maker считаются простейшими менеджерами окон X Window System. Они имеют не так много функций. Эти программы позволяют управлять размещением и внешним видом отдельных окон приложений. Кроме того, такие менеджеры взаимодействуют с X Window System. С 2011 года в среде рабочего стола GNOME используется Mutter. В 2000 году в KDE был внедрён KWin. Xfwm применяется по умолчанию в оболочке Xfce с 1998 года. При этом пользователь может без труда установить другой оконный менеджер.
9 самых популярных оболочек рабочего стола Linux
Пользователь может установить оболочку рабочего стола в свою систему. Но если вы являетесь новичком, то рекомендуется загрузить готовый дистрибутив. В нём окружение будет предустановлено и настроено, что упростит задачу. Рассмотрим некоторые оболочки.
KDE
KDE Plasma считается наиболее функциональной оболочкой рабочего стола. Кроме того, она имеет очень приятный внешний вид. В KDE есть множество полезных настроек. Если постараться, то систему можно трансформировать в нечто похожее на Windows, macOS или внести другие дизайнерские изменения. В Интернете есть большое количество сторонних расширений и виджетов (плазмоидов), которые вы можете установить на KDE.
Интерфейс данной оболочки изначально похож на Windows. В нижней части реализована панель задач. Там находится стартовое меню, трей и системные часы. Вы можете создавать и удалять панели в неограниченном количестве. Если хотите полностью поменять внешний вид системы, то поэкспериментируйте с расположением элементов.
Вместе с KDE поставляется набор полезных приложений. К примеру, один из самых мощных аудиоплееров Amarok, который может конкурировать по своей функциональности с iTunes. Пользователю будет доступен KGet. Это приложение поможет загружать файлы из Интернета. В набор также входит браузер Konqueror и удобный мессенджер Kopete. Отличным дополнением станет KDE Connect, с помощью которого можно будет связать мобильное Android-устройство с десктопом.
Из-за своей многофункциональности данная оболочка будет полезна опытным пользователям. KDE также понравится эстетам, которые ценят красивый дизайн.
Преимущества этой оболочки:
- Стильное оформление.
- Большое количество настроек.
- Функциональность.
- Требовательность. Оболочка затрачивает большой объём ресурсов системы.
- Неопытным пользователям будет не так-то просто разобраться с настройками KDE.
Основы Linux (обзор с практическим уклоном)
В последние несколько лет все больше и больше людей ищут возможность войти в ИТ или поглубже изучить Linux, повысив уровень своей квалификации. Вместе с тем полноценных обзоров с практическим уклоном по типу «все и сразу» написано не так уж и много (особенно на русском языке).
Главная задача данной статьи – указать начинающим специалистам направление развития, дать ключевые понятия для дальнейшего изучения и показать несколько простых практических приемов. По этой причине (а еще, безусловно, вследствие недостаточной квалификации автора) теоретический материал достаточно сильно упрощен.
Что такое Linux?
История и определение
В 1969 году в дочернем подразделении компании AT&T – Bell Laboratories – была выпущена операционная система Unix, которая стала основной для большого количества операционных систем того времени. UNIX была проприетарной системой, лицензия на нее стоила порядка 40 000 долларов. Таким образом, позволить себе ее покупку могли только крупные компании. Это послужило толчком для старта в 1983 году проекта GNU – GNU is Not Unix. Его основоположник, Ричард Столлман, объявил целью проекта создание свободно распространяемой операционной системы. Чуть позже Столлманом был написан знаменитый манифест GNU, который стал основой для лицензии GPL (GNU General Public License), актуальной и по сей день. К началу 1990-х годов в рамках проекта GNU было написано большинство компонентов ОС – оболочка bash, компиляторы, отладчик, текстовый редактор и др. Не хватало лишь ядра операционной системы.
В 1991 году Линус Торвальдс, будучи студентом финского университета, увлекся идеей написания ядра операционной системы для своего персонального компьютера с процессором Intel. Вдохновлением и прототипом для будущего Linux стала совместимая с Unix операционная система для персональных компьютеров Minix. Уже в августе 1991 года было написано ядро операционной системы, в нее были портированы оболочка bash и компилятор gсс из проекта GNU. По признанию самого Линуса, изначально это было не более, чем хобби, однако проект оказался весьма востребованным, к нему начали присоединяться разработчики со всего мира. Дополненная массой программ, разработанных в рамках проекта GNU, ОС Linux стала пригодна для практического использования. При этом ядро системы распространялось под лицензией GNU General Public License, что гарантировало свободное распространение кода ядра системы.
Итак, сегодня Linux (или GNU/Linux) – семейство Unix-подобных операционных систем на базе ядра Linux, включающих тот или иной набор утилит и программ проекта GNU. Linux-системы распространяются в виде различных дистрибутивов, имеющих свой набор системных и прикладных компонентов (как свободных, так и проприетарных).
Серверные дистрибутивы
Дистрибутив Linux — это операционная система, созданная на основе ядра Linux, которая включает в себя набор библиотек и утилит (пакетов), разработанных в рамках проекта GNU, а также систему управления пакетами (менеджер пакетов). В настоящее время существует более 500 различных дистрибутивов, разрабатываемых как при коммерческой поддержке (Red Hat / Fedora, SLED / OpenSUSE, Ubuntu и др.), так и исключительно усилиями добровольцев (Debian, Slackware, Gentoo, ArchLinux и др.).
Дистрибутивы делятся на несколько типов в зависимости от базового дистрибутива и системы управления пакетами. Вот несколько примеров наиболее популярных серверных дистрибутивов двух типов:
- RPM-based (используют формат пакетов .rpm)
RedHat Enterprise Linux, CentOS, Fedora - DEB-based (используют формат пакетов .deb)
Debian, Ubuntu, Astra Linux
Стоит отметить, что существует великое множество различных дистрибутивов на любой вкус и цвет. Их невозможно даже сосчитать, так как практически каждый представитель сообщества может собрать свой собственный дистрибутив на основе ядра Linux.
Работа с Linux
Загрузка
Алгоритм включения сервера и загрузки Linux в большинстве случаев выглядит следующим образом:
- BIOS / UEFI → MBR / GPT
Выполняется код, заложенный производителем аппаратного обеспечения. Этот код проводит тестирование системы POST (Power On Self Test) и передает управление загрузчику в MBR (Master Boot Record) / GPT (GUID Partition Table) - MBR / GPT → GRUB2 (существуют и другие загрузчики)
Загрузчик из MBR / GPT очень простой – он способен только найти на диске и запустить следующий загрузчик. Как правило это GRUB2, но существуют и другие загрузчики, например LILO (в настоящее время практически не используется) - GRUB2 → Kernel
GRUB2 расположен на разделе жесткого диска в каталоге /boot. GRUB2 загружает ядро Linux (vmlinuz) - Kernel → Init
Ядро запускает процесс инициализации операционной системы. Как правило это SystemD, но существуют и другие системы инициализации, например SystemV (в настоящее время практически не используется). Процесс инициализации запускает все остальные процессы в системе
Подключение
Командная оболочка
Подключиться к Linux для управления можно в интерфейсе командной строки (command-line interface, CLI) или в графическом интерфейсе (graphical user interface, GUI). При работе с серверной инфраструктурой в подавляющем числе случаев GUI отсутствует и взаимодействие с сервером осуществляется в CLI. При входе пользователя на сервер в CLI запускается командная оболочка (в GUI командную оболочку можно запустить через эмулятор, например Terminal). Командная оболочка (shell) – это программа, которая принимает команды с клавиатуры и передает их операционной системе для выполнения. Наиболее распространенной командной оболочкой в Linux является GNU bash (Bourne Again SHell). bash основывается на другой легковесной оболочке-предшественнике – sh (Bourne sh), созданной Стефеном Борном.
Команды можно выполнять с помощью командной строки, указав имя двоичного (бинарного, bin) исполняемого файла или сценария. По умолчанию в Linux много команд, которые позволяют перемещаться по файловой системе, устанавливать ПО, конфигурировать его и выполнять другие действия. Каждая запущенная команда является отдельным процессом. Важно отметить, что в Linux (в отличие от Windows) почти всегда учитывается регистр, включая имена файлов и каталогов, команды, аргументы и опции.
SSH
Подключаться к Linux и работать с командной оболочкой можно локально (например включив ПК дома или подойдя к серверу в центре обработки данных), однако гораздо чаще работать с системой требуется удаленно. Для этого необходимо настроить SSH и подключаться через него. SSH (Secure SHell) – это протокол, позволяющий производить удаленное управление операционной системой и туннелирование TCP-соединений (например, для копирования файлов). SSH основан на клиент-серверной архитектуре, которая организует защищенное (зашифрованное) соединение поверх небезопасных каналов связи. Серверная часть устанавливается на удаленном сервере, а клиентская на компьютере, с которого осуществляется подключение.
Существует много клиентов для удаленного подключения к серверу по SSH. Вот несколько примеров для различных операционных систем:
- Windows
PuTTY – выбор новичка, PowerShell (команда ssh), Xshell – выбор автора, MobaXterm, mRemoteNG - Linux
Terminal (команда ssh) – выбор новичка и автора, Asbru Connection Manager - MacOS
Terminal (команда ssh) – выбор новичка и автора, Core Shell
- SSH
- Как подключиться по SSH
- Лучшие SSH клиенты для Windows, Linux и MacOS
Установка программ (утилит) пакетным менеджером
Зачем нужны пакетные менеджеры?
На заре развития Linux установить приложение (утилиту) можно было только путем скачивания исходного кода программы и компиляции. Это не практично и не слишком удобно для пользователей, поэтому были разработаны пакетные менеджеры. Установка приложений в них производится из пакетов – архивов с файлами скомпилированной программы. Большинство популярных дистрибутивов Linux содержат пакетные менеджеры, способные устанавливать любое программное обеспечение. Пакетные менеджеры имеют свой список репозиториев – серверов с базой пакетов. Во время установки алгоритм менеджера находит необходимый пакет в базе и производит автоматическое скачивание, установку и настройку.
Существует несколько форматов пакетов, однако наибольшее распространение получили .deb и .rpm. Рассмотрим операционные системы и менеджеры пакетов для данных форматов:
- DEB (.deb)
ОС – DEB-based, например Debian, Ubuntu, AstraLinux
Система управления пакетами – DPKG (работает только с локальными пакетами)
Пакетный менеджер – apt - RPM (.rpm)
ОС – RPM-based, например RedHat Enterprise Linux, Fedora, CentOS
Система управления пакетами – RPM (работает только с локальными пакетами)
Пакетный менеджер – yum (в последних дистрибутивах заменен на dnf)
Практика
На практике пользователю необходимо уметь взаимодействовать с пакетными менеджерами – устанавливать и удалять пакеты.
Ниже приведены несколько примеров команд:
# руководство (справочная информация) man # просмотр справочной информации по утилите --help # просмотр справочной информации по утилите # менеджер пакетов apt (.deb) sudo apt install nano # установка пакета sudo apt remove nano # удаление пакета sudo apt autoclean # удаление кэша пакетов # менеджер пакетов yum (.rpm) - для dnf команды полностью аналогичны sudo yum install nano # установка пакета sudo yum remove nano # удаление пакета sudo yum clean all # удаление кэша пакетов
При необходимости уточняйте описание утилит и ключей выполнения в Интернете или в руководстве man.
Структура файловой системы и работа с файлами
Типы файлов
Все объекты в Linux являются файлами. Существуют следующие типы файлов:
- Обычные файлы —
Символьные и двоичные данные (текст, картинки, программы и др.) - Каталог (директория) d
Список ссылок на файлы или другие каталоги - Символьные ссылки l
Ссылки на другие файлы по имени - Блочные устройства b, символьные устройства c
Интерфейсы для взаимодействия с аппаратным обеспечением (диски, терминалы, клавиатуры, принтеры и др.). Когда происходит обращение к файлу устройства, ядро операционной системы передает запрос драйверу этого устройства - Сокеты s и каналы p
Интерфейсы для взаимодействия процессов
Структура файловой системы
Структура файловой системы представляет собой дерево, корнем которой является каталог /.
Рассмотрим подробно структуру и назначение каталогов:
- /bin (binaries) – исполняемые файлы самых необходимых утилит. Может быть символьной ссылкой на /usr/bin
- /boot – файлы, необходимые для самого первого этапа загрузки – загрузки ядра (и обычно само ядро)
- /dev (devices) – блочные и символьные файлы устройств (диски, терминалы, клавиатуры, принтеры и др.)
- /etc (etcetera) – конфигурационные файлы системы и различных программ
- /home – домашние каталоги пользователей для хранения «личных» файлов
- /lib (libraries) – файлы библиотек (стандартных функций, необходимых многим программам), необходимых для работы утилит. Может быть символьной ссылкой на /usr/bin
- /mnt (mount) – каталог для подключения файловых систем (съемных носителей и др.)
- /opt (optional) – каталог для дополнительных программ (проприетарных драйверов, агентов мониторинга и др.)
- /proc (process) – файлы в оперативной памяти, в которых содержится информация о выполняемых в системе процессах
- /root – домашний каталог пользователя root
- /sbin (system binaries) – файлы системных утилит, необходимые для загрузки, резервного копирования и восстановления системы. Может быть символьной ссылкой на /usr/sbin
- /sys (system) – виртуальная файловая система sysfs, которая содержит информацию об аппаратном обеспечении (ЦПУ, ОЗУ, дисках, сетевых устройствах), драйверах, ядре системы и др.
- /tmp – каталог для временных файлов, обычно зачищается при каждой загрузке системы
- /usr – пользовательский каталог, который содержит каталоги исполняемых файлов и конфигурационных файлов
- /var (variable) – файлы, создаваемые или используемые различными программами (логи, очереди, идентификаторы процессов, БД и др.)
Права доступа
В Linux права доступа к файлам (в том числе к каталогам) задаются для трех видов пользователей – владельца, группы владельца и остальных. Также есть три типа доступа к файлу – чтение r (Read), запись w (Write) и исполнение x (eXecution), которые задаются для каждого из видов пользователей. Прочерк — означает отсутствие доступа.
Таким образом, права доступа к файлу выглядят следующим образом:
- права для владельца (u, user) – read, write, execution
- права для группы владельца (g, group) – read, write, execution
- права для остальных пользователей (o, other) – read, write, execution
Пример: rwx r— — означает, что у владельца есть права на все, у группы владельца доступ только на чтение, а у остальных доступа нет. В двоичной системе счисления эти права выглядят как три группы цифр – 111 100 000, что равносильно трем цифрам 7 4 0 в восьмеричной и десятичной системах счисления.
- Владельцы файлов и папок в Linux
- Команда chmod в Linux
Практика
На практике пользователю необходимо осуществлять навигацию по системе, просматривать, создавать, редактировать и удалять файлы, настраивать права доступа.
Ниже приведены несколько примеров наиболее часто используемых команд:
# руководство (справочная информация) man # просмотр справочной информации по утилите --help # просмотр справочной информации по утилите # навигация ls -la # просмотр содержимого каталога (в том числе прав доступа) cd # переход в каталог # каталоги mkdir # создание каталога rmdir # удаление пустого каталога rm -rf # удаление каталога с файлами # файлы cat # вывод файла в консоль less # постраничный вывод файла tail # вывод последних строк («хвоста») файла vi # редактиврование файла текстовым редактором vi nano # редактирование файла текстовым редактором nano cp # копирование файла в каталог mv # перемещение файла в каталог (для переименования переместите файл в тот же каталог) rm # удаление файла rm -rf /* # удаление всех файлов в каталоге # права доступа chown # установить пользователя владельцем каталога chown : # установить владельца и группу владельца каталога chmod 644 # установить права доступа rw- r-- r-- (чтение и запись для владельца, чтение для группы владельца, чтение для остальных пользователей) сhmod 740 # установить права доступа rwx r-- --- (чтение, запись и исполнение для владельца, чтение для группы владельца) chmod u+w # добавить владельцу право на запись файла
При необходимости уточняйте описание утилит и ключей выполнения в Интернете или в руководстве man.
Процессы и потребление ресурсов сервера
Процессы
Если предельно упростить, то процесс – это любая программа, которая выполняется в системе. В ходе работы с системой может быть запущено множество программ, которые, в свою очередь, могут запустить множество процессов. Простейший пример процесса – командная оболочка bash. Каждому процессу в Linux присваивается уникальный идентификатор процесса (PID), который используется ядром для управления процессом до завершения программы или команды, с которой он связан.
Процесс может находиться в следующих статусах:
- Выполнение (R, Running)
Выполнение или ожидание ЦПУ для выполнения - Сон (S, Sleep)
Прерываемое программно ожидание - Непрерываемый сон (D, Direct)
Ожидание «прямого» сигнала от аппаратной части для прерывания - Приостановлен (T, Tracing)
Отладка - Зомби (Z, Zombie)
Выполнение завершено, однако ресурсы не освобождены
Почти любой процесс (кроме процесса в статусе D) может быть принудительно прерван администратором в случае необходимости («убит»). Это не всегда безопасно, однако возможно.
Запущенные процессы требуют использования аппаратных ресурсов сервера – ЦПУ, ОЗУ, дисков, сетевых интерфейсов.
Практика
На практике пользователю необходимо просматривать списки процессов и останавливать процессы, а также просматривать имеющиеся и потребляемые ресурсы сервера в системе.
Ниже приведены несколько примеров наиболее часто используемых команд:
# руководство (справочная информация) man # просмотр справочной информации по утилите --help # просмотр справочной информации по утилите # процессы top sudo ps aux sudo kill -9 # убийство процесса по PID sudo killall -s 9 # убийство всех процессов по имени # утилиты для мониторинга использования ресурсов htop # использование ресурсов по процессам (может потребоваться установка пакета htop) nmon # использование процессора по ядрам, памяти, дисков и др. (может потребоваться установка пакета nmon) iostat # использование процессора в среднем по ядрам и чтение/запись по дискам # ЦПУ lscpu # общая информация cat /proc/cpuinfo # подробная информация # ОЗУ cat /proc/meminfo # общая информация и потребление free -h # удобное представление на основе данных из файла meminfo ps aux --sort -rss # использование памяти по процессам # диски lsblk # общая информация df -h # просмотр занятного места по разделам du -сh # просмотр занятого места в каталоге # сеть /sys/class/net//speed # просмотр максимальной скорости интерфейса
При необходимости уточняйте описание утилит и ключей выполнения в Интернете или в руководстве man.
Программный комплекс systemd
Зачем нужен systemd?
SystemD – это программный комплекс, состоящий из системных компонентов Linux. Основным компонентом является система инициализации системы SystemD, которая пришла на смену SystemV в большинстве современных дистрибутивов. Ядро Linux запускает процесс systemd, который, в свою очередь, запускает все остальные процессы системы.
SystemD предоставляет следующий функционал:
- Запуск служб при старте системы (по возможности параллельно) по различным таргетам (target, аналог уровней загрузки в SystemV)
Обеспечивается обратная совместимость с системами инициализации SystemV и LSB - Контроль состояния запущенных служб
- Управление устройствами, входом в систему, сетевыми подключениями, ведение журнала событий
- Интерфейсы для реализации функциональных возможностей ядра – cgroups, autofs, kdbus
- Набор утилит для управления системой – systemctl, journalctl и др.
Что такое systemd unit?
SystemD Unit – это обычный текстовый файл в стиле ini, который декларативно описывает информацию о службах .service, устройствах .device, целях запуска .target и других типах модулей systemd.
Описание юнита состоих из нескольких секций:
- Unit
Description (краткое описание), After (ожидание запуска), Requires (обязательная зависимость) и др. - Service
Type (тип) – по умолчанию Simple, ExecStart (команда для запуска), ExecStop (команда для остановки) и др. - Install
WantedBy (таргет или уровень запуска, на котором юнит должен запуститься)
Файлы systemd unit располагаются в следующих каталогах:
- /etc/systemd/system – юниты, создаваемые администраторами
- /usr/lib/systemd/system – юниты из установленых пакетов
- /run/systemd/system – юниты, создаваемые во время работы системы (в runtime)
Редактировать и создавать юниты можно с помощью текстового редактора (например vi или nano).
- Применение systemd: только самое главное
- Понимание systemd юнитов
- Примеры systemd unit – NGINX, Apache
Практика
На практике пользователю необходимо просматривать различные systemd unit, просматривать их содержимое и управлять сервисами, а также читать журналы логов.
Ниже приведены несколько примеров наиболее часто используемых команд:
# руководство (справочная информация) man # просмотр справочной информации по утилите --help # просмотр справочной информации по утилите # просмотр юнитов systemctl # список юнитов (это псевдоним команды systemctl list-units) systemctl --type=service # юниты типа сервисы systemct | grep # юниты, содержащие ключевое слово (полезно для быстрого поиска) systemctl cat # описание юнита # управление юнитами systemctl status # статус (состояние) юнита sudo systemctl daemon-reload # перезагрузка конфигурационных файлов в systemd sudo systemctl enable # включение сервиса в автозагрузку sudo systemctl disable # отключение сервиса из автозагрузки sudo systemctl start # запуск sudo systemctl stop # остановка # журналы логов journalctl -u # чтение логов по юниту journalctl -u --since today # чтение логов по юниту со смены дня
При необходимости уточняйте описание утилит и ключей выполнения в Интернете или в руководстве man.
Сеть
На практике пользователю необходимо уметь просматривать сетевые настройки сервера, а также уметь проводить простейшую диагностику сетевых проблем.
Ниже приведены несколько примеров наиболее часто используемых команд:
# руководство (справочная информация) man # просмотр справочной информации по утилите --help # просмотр справочной информации по утилите # просмотр сетевых настроек сервера ip a # IP адреса ip n # ARP таблица cat /etc/resolv.conf # конфигурация DNS sudo netstat -tulpn # открытые порты sudo ss -tulpn # открытые порты (молодежный вариант) # диагностика сетевых проблем nslookup # проверка разрешения DNS имени ping # отправка ICMP пакетов до хоста traceroute # трассировка до хоста UDP пакетами telnet # проверка доступности TCP порта на хосте nmap # сетевое сканирование хоста nmap -p T: # проверка доступности TCP порта на хосте (молодежный вариант) nmap -p U: # проверка доступности UDP порта на хосте (молодежный вариант)
При необходимости уточняйте описание утилит и ключей выполнения в Интернете или в руководстве man.
Все статьи серии:
- Основы Linux (обзор с практическим уклоном)
- Основы виртуализации (обзор)
- Основы контейнеризации (обзор Docker и Podman)
- Основы мониторинга (обзор Prometheus и Grafana)