Linux

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

Кратчайшая история создания Linux

Линус Торвальдс — первый разработчик и создатель Linux. Именно в честь него и была названа ОС. В 1981 году Линус начал работу над собственной ОС семейства Unix. Через три года появилась первая версия, доступная для скачивания. Но тогда она имела очень низкий спрос — ей пользовались буквально несколько человек.

Только через 10 лет ОС Linux получила широкое распространение. Сообщество программистов подхватило идею свободного ПО, специалисты стали помогать развивать проект.

Про логотип

Логотип и талисман Linux — пингвин Tux с желтыми лапами и клювом. В 1996 году разработчики ядра Linux решили выбрать талисман. Торвальдс обмолвился о том, что ему очень нравятся пингвины. Поэтому на логотипе ОС изображен пингвин.

Логотип и талисман Linux

Где нужен Linux?

Веб-серверы

Дистрибутивы Linux практически полностью захватили рынок веб-серверов. Согласно рейтингу аналитического агентства W3Techs, на Linux-серверах развернуты 75,1% сайтов.

Мобильные устройства

ОС Android работает на ядре Linux, поэтому она используется и в мобильных устройствах.

Курс

Android-разработчик

Освойте разработку на самой распространенной платформе уже сейчас. Дополнительная скидка по промокоду BLOG — 5%.

Узнать больше

Суперкомпьютеры

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

Они уникальны, для многих из них требуется особая ОС, способная решать конкретные задачи. Благодаря открытому исходному коду разработчики могут видоизменять ОС так, чтобы она работала и на таких машинах.

Игровые консоли

Linux занял свою нишу и в игровых консолях, но ориентированных на эту ОС игр пока не так много. Компания Steam работает над исправлением ситуации — разрабатывает операционную систему SteamOS. Она будет поставляться вместе с игровой консолью Steam Machine.

Устройства IoT и умная техника

Многие из них созданы на основе Linux. Так, компания Samsung разработала операционную систему Tize, LG — WebOS, а Panasonic и Philips используют FirefoxOS.

Авиация и транспорт

Во встроенных компьютерах Tesla и машинах с автопилотами Google используется операционная система Linux. ПО для отслеживания трафика в США аналогично разработано на этой ОС, а администрация авиации Америки перешла на нее еще в 2006 году.

Какие компоненты у дистрибутива Linux?

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

Ядро

Что это такое, как работает и зачем нужно? Это так называемая главная программа, основная часть ОС. Ядро выступает в качестве посредника между устройствами ПК (видеокартой, процессором, оперативной памятью и пр.) и его ПО. Для этого в коде есть драйверы устройств. Они загружаются в память или подключаются по мере необходимости ресурса определенного устройства. Ядра управляют устройствами, процессами и памятью, обрабатывают системные вызовы.

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

Какие есть виды ядер? Всего выделяют 3 типа: микроядра, монолитные и гибридные.

Микроядро (microkernel)

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

Плюсы:

теоретически высокая степень надежности (по сравнению с другими архитектурами);

низкое потребление памяти;

легкое подключение дополнительных частей ядра (модульность).

Минусы:

низкая скорость из-за постоянного переключения между отдельными частями;

доступность аппаратных средств только через драйверы.

Монолитное ядро (monolithic)

Противоположность микроядра. В памяти ПК всегда размещен весь (либо практически весь) код ядра. Поэтому скорость его работы выше в сравнении с микроядром.

Плюсы:

прямой доступ к аппаратным средствам;

простой обмен данными между процессами;

более высокая скорость реакции процессов.

Минусы:

большой размер;

меньшая степень безопасности (по сравнению с микроядром);

занимает много оперативной памяти.

Гибридное ядро (hybrid)

Комбинация элементов двух ранее описанных архитектур. Для ускорения работы запускает модули операционной системы в пространстве ядра.

Плюсы:

возможность выбора того, что будет функционировать в пространстве ядра и пользователя;

меньший физический размер (в сравнении монолитным ядром);

большая степень гибкости.

Минусы:

более медленная работа;

выпуск драйверов устройств только производителями.

Курс

Системный администратор

Станьте универсальным специалистом по администрированию Linux с нуля и разверните собственный кластер. Дополнительная скидка 5% по промокоду BLOG.

Узнать больше

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

Архитектура системы 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.
Пример интерфейса Linux
  • Консоль и терминал. Консоль позволяет управлять операционной системой через ввод текста. Там же высвечиваются ответы ОС. Терминал — это современный аналог консоли, он отображается в виде окна на фоне рабочего стола.
Консоль и терминал ОС Linux
  • Требование прав доступа к файлам для работы части программ. Для пользователя это значит, что придется вводить пароль по несколько раз в сутки.
  • Малое количество совместимых игр и программ (по сравнению с Windows). Сегодня это одна из основных причин, почему пользователи не переходят на Linux.

Поддержка и помощь

Существуют разные онлайн-форумы и чат-каналы, которые можно использовать для получения помощи. Эти каналы варьируются в зависимости от дистрибутива, который используется.

Курс

Системный администратор

Станьте универсальным специалистом по администрированию Linux с нуля и разверните собственный кластер. Дополнительная скидка 5% по промокоду BLOG.

Узнать больше

« ВСЕ ТЕРМИНЫ
Блог SkillFactory
Добавить комментарий