Что такое linux
@linux_schoolLinux — это семейство Unix-подобных операционных
систем, использующих ядро Linux, которое разработал финно-американский
программист Линус Торвальдс. ОС, использующие ядро Linux, называются дистрибутивами Linux,
и они являются такими же операционными системами как Microsoft Windows
или Apple macOS, но с одной очень важной особенностью, а именно — их
исходные коды являются открытыми, так как они распространяются под лицензией GNU GPL, которая подразумевает создание свободного и открытого программного обеспечения (open source software). Это означает, что у любого пользователя есть право изучать и изменять исходный код.
Примечание: Стоит отметить, что есть также и платные дистрибутивы Linux, например, Red Hat Enterprise Linux, Astra Linux Special Edition и др.
Официальным талисманом Linux с 1996 года является пингвин Tux (сокр. от «Torvalds UniX«). Идею использовать пингвина в качестве талисмана Linux выдвинул создатель этого ядра Линус Торвальдс.
Пингвин Tux — талисман Linux
GNU/Linux или Linux?
В сообществе программистов существует спор об именовании операционных систем,
использующих ядро Linux и программное обеспечение, разработанное под
лицензией GNU GPL. Поскольку ядро Linux само по себе не является
работающей операционной системой, то многие предпочитают использовать
термин «GNU/Linux».
Архитектура Linux-систем
На следующем рисунке показана архитектура Linux-систем:

Рассмотрим детально:
«Железо» — аппаратное обеспечение компьютера (процессор, видеокарта, оперативная память и пр.) со всеми его периферийными устройствами.
Ядро
— является основным компонентом операционной системы, взаимодействует
непосредственно с аппаратным обеспечением, играя роль посредника между
низкоуровневым «железом» и компонентами верхнего уровня.
Оболочка (или «shell», «командный интерпретатор»)
— интерфейс для взаимодействия между пользователями системы и ядром ОС,
абстрагирующий внутреннее устройство системы. Принимает команды от
пользователей и запускает на выполнение соответствующие функции.
Утилиты (vi, cat, sed, date, компиляторы
и др.) — служебные программы, которые предоставляют пользователю
большую часть функциональных возможностей операционной системы.
Ядро Linux
Ядро — это своего рода главная программа, являющаяся
основной частью операционной системы. Оно выступает в роли посредника
между устройствами компьютера (процессором, видеокартой, оперативной
памятью и т.д.) и его программным обеспечением, абстрагируя от обычных
программ и пользователей сложную, низкоуровневую работу с «железом»
компьютера, предоставляя взамен простой, понятный и удобный в
использовании интерфейс. Для этого в код ядра были включены драйверы
устройств, которые могут как загружаться в память вместе с ядром ОС, так
и подключаться по мере возникновения потребности в ресурсах
необходимого устройства.
Как вы наверняка знаете, на компьютере может быть запущено сразу
несколько программ: какие-то из них работают в фоновом режиме, другие
могут ожидать определенных действий от пользователя, а третьим
необходимо получать информацию из другой запущенной программы. В такой
ситуации именно ядро берет на себя функцию оптимального распределения
ресурсов компьютера между запущенными программами и организацию
параллельной работы множества различных процессов. Оно первым
загружается в оперативную память компьютера и всегда находится в
запущенном состоянии, постоянно взаимодействуя с его аппаратным
обеспечением и установленными программами.
Как правило, большинство ядер делятся на три типа:
1)микроядра;
2)монолитные;
3)гибридные.
Микроядро — это ядро, состоящее из нескольких
подгружаемых в память по мере надобности независимых модулей,
выполняющихся в отдельных адресных пространствах. По сути, в таком
варианте исполнения оно не сильно отличается от обычных прикладных
программ. К достоинствам данного ядра можно отнести теоретически большую
надежность в сравнении с другими архитектурами (в действительности же
не всё так радужно и гладко) и его модульность (легкость в подключении
дополнительных частей ядра). К минусам микроядерной архитектуры
относится то, что ядро, построенное по такой схеме, получается очень
медленным (ведь ему нужно постоянно переключаться между отдельными
частями).
Монолитное ядро — это полная противоположность
микроядра, т.к. в памяти компьютера всегда находится весь (или почти
весь) код ядра, вследствие чего скорость его работы выше в сравнении с
микроядром.
Гибридное ядро — это ядро, сочетающее в себе элементы как монолитной, так и микроядерной архитектур.
Ядро Linux хоть и относится к монолитным ядрам, но оно также заимствует и некоторые идеи из микроядерной архитектуры,
что означает, что вся операционная система работает в пространстве
ядра, а драйвера устройств (в виде модулей) могут быть легко загружены
(или выгружены) прямо во время работы операционной системы.
Заключение
Linux поддерживает целый ряд аппаратных устройств от телефонов и до
суперкомпьютеров. Каждая операционная система на базе ядра Linux имеет
ядро Linux и набор ПО для управления аппаратными ресурсами компьютера.
На следующих уроках мы детально рассмотрим тему лицензии GNU GPL, сравним Linux и Windows, выполним обзор дистрибутивов Linux, изучим терминал и продолжим наше погружение в изучение Linux.
