«Linux» это не просто Linux: 8 частей программного обеспечения, из которых состоят системы Linux
Дистрибутивы Linux не являются только ядром Linux. Все они содержат другие важные программы, такие как начальный загрузчик Grub, командная оболочка Bash, утилиты командной оболочки GNU, демоны, графический сервер X.org, среда рабочего стола и многое другое.
Все эти различные программы разрабатываются разными, независимыми группами разработчиков. Они объединены при помощи дистрибутивов Linux, где они собираются одна поверх другой с тем, чтобы создать полную операционную систему «Linux». Это отличие от системы Windows, которая разработана исключительно компанией Microsoft.
Начальный загрузчик
Когда вы включаете компьютер, прошивка BIOS или UEFI вашего компьютера загружает программное обеспечение с загрузочного устройства. Первая программа, которая загружает в любой операционной системе, является начальным загрузчиком. В Linux, это, как правило, начальный загрузчик Grub.
Если у вас установлена только одна операционная система, то Grub может загрузить систему Linux практически мгновенно, но он все еще продолжает обработку. Grub обрабатывает процесс непосредственной загрузки Linux, задает параметров командной строки и для того, чтобы устранить неполадки, позволяет вам загрузить Linux другими способами. Без начального загрузчика, дистрибутив просто не будет загружаться.
Ядро Linux
Определенная часть программного обеспечения, которое загружается с помощью Grub, является ядром Linux. Это та часть системы, которая на самом деле называется «Linux». Ядро является центральной частью системы. Он управляет вашим процессором, памятью и устройствами ввода/вывода, такими как клавиатуры, мыши и дисплеи. Поскольку ядро обращается непосредственно к оборудованию, многие драйверы оборудования являются частью ядра Linux и запускаются внутри ядра.
Все другое программное обеспечение работает выше ядра. Ядро является частью программного обеспечения, которое лежит на самом нижнем уровне и взаимодействует с аппаратным обеспечением. Он представляет собой слой абстракции над оборудованием, который имеет дело со всеми аппаратными причудами, тогда как остальная часть системы может почти совсем с ними не иметь дело. В Windows используется ядро Windows NT, а в Linux используется ядро Linux.
Демоны
Демоны, по существу, являются всего лишь фоновыми процессами, но они являются процессами системного уровня, работу которых вы вообще не замечаете.
Командная оболочка
В большинстве систем Linux по умолчанию используется командная оболочка Bash. Командная оболочка обеспечивает интерфейс командного процессора, что позволяет управлять вашим компьютером с помощью ввода команд в текстовом режиме. В командной оболочке можно также запускать скрипты командного процессора, которые представляют собой набор команд и операций, выполняемых в тем порядке, который указан в скрипте.
Даже если вы пользуетесь только графическим рабочим столом, командные оболочки работают и используются в фоновом режиме. Когда вы откройте окно терминала, вы видите приглашение к работе, выдаваемое командной оболочкой.
Утилиты командной оболочки
В командной оболочке предоставляется некоторое количество основных встроенных команд, но большинство из команд командной оболочки, которыми пользуются пользователи Linux, не встроены в командную оболочку. Например, такие важные команды, как команда cp, используемая для копирования файлов, команда ls, используемая для получения списка файлов в каталоге, и команда rm, используемая для удаления файлов, являются частью пакета базовых утилит GNU Core Utilities.
Вот почему много споров относительно того, должен ли Linux действительно назваться «Linux» или «GNU/Linux». Критики названия «Linux» правильно отмечают, что большая часть программного обеспечения идет в составе типичных систем Linux, что часто не признается. Критики названия «GNU/Linux» правильно отмечают, что в типичную систему Linux также входит другое важное программное обеспечение, которое нельзя охватить названием «GNU/Linux».
Не все из утилит командной оболочки и программ, работающих из командной строки, разрабатываются в рамках проекта GNU. Некоторые команды и терминальные программы имеют свои собственные проекты, предназначенных специально для них.
Графический сервер X.org
Часть Linux, представляющая собой графический рабочий стол, не является частью ядра Linux. Она реализуется с помощью пакете специального вида, известного как «Сервер X», поскольку он реализует «Оконную систему X», которая возникла много лет назад.
В настоящее время наиболее популярным сервером X или графическим сервером является сервер X.org. Когда вы видите окно графического входа или появляется рабочий стол, то это свое волшебство проявляет сервер X.org. Работа всей графической системы осуществляется под управлением сервера X.org, который взаимодействует с вашей видеокарты, монитором, мышью и другими устройствами. X.org не предоставляет полную окружение рабочего стола, это просто графическая система, поверх которой могут быть созданы окружение и инструментарий рабочего стола.
Среда рабочего стола
Они также обычно включают в себя свои собственные утилиты, которые встроены для того, чтобы окружение рабочего стола выглядело как единое целое. Например, в GNOME и Unity входит файловый менеджер Nautilus, разработанный в рамках GNOME, а KDE включает в себя файловый менеджер Dolphin, разработанный в рамках проекта KDE.
Программы рабочего стола
Не каждая программа, работающая на рабочем столе, является частью среды рабочего стола. Например, программы Firefox и Chrome работают независимо от среды рабочего стола. Они просто являются программами, которые могут нормально работать поверх любой среды рабочего стола. Либо пакет OpenOffice.org, который является еще одним набор программ, которые не привязаны к конкретной среде рабочего стола.
Вы можете запускать любую программу Linux, предназначенную для рабочего стола, в любой графической среде, но те программы, которые предназначены для определенной рабочей среды, могут выглядеть не к месту или могут мешать другим процессам. Например, если вы пытаетесь запустить файловый менеджер Nautilus, предназначенный для GNOME, в среде KDE, он будет выглядеть не к месту, потребует от установки разнообразных библиотек GNOME, и, вероятно, когда вы откроете его, будет в фоновом режиме запускать процессы рабочего стола GNOME. Но он будет работать и его можно будет использовать.
Последний шаг остается за дистрибутивами Linux. Они берут все это программное обеспечение, объединяют его так, чтобы оно хорошо работало совместно, и добавляют свои собственные необходимые утилиты. Например, для дистрибутивов создаются их собственные инсталляторы операционной системы с тем, чтобы вы действительно смоли установить Linux, а также менеджеры пакетов для установки дополнительного программного обеспечения и поддержки установленного программного обеспечения в обновленном виде.
Архитектура Linux. Детальное описание анатомии Линукса от и до
Уже с тех времен главным принципом этой ОС была поддержка открытого исходного кода. Именно это позволило развиваться Линукс-системам и дорасти до того, что сегодня имеем мы.
Любая операционная система, которая использует ядро Линукс, будет именоваться «дистрибутивом Линукс а ». И это будет полноценная ОС, как Windows или MacOS. Но дистрибутивы Линукса от других ОС отличает важная особенность — открытый исходный код. А это означает, что фактически любой пользователь способен внести туда собственные корректировки и разработать индивидуальную операционную систему или отредактировать старую под собственные нужды. При этом нужно заметить, что дистрибутивы « пингвина » бывают и платными — это когда их разработчики «закрывают» собственные наработки от стороннего вмешательства.
Архитектура Linux
Как мы уже писали, основным компонентом Линукс-системы является ядро. Ядро — это важнейшая программа в операционной системе. Именно оно:
Заключение
Архитектура Linux настолько проста и эффективна, что ее можно интегрировать в различные устройства. Линукс можно встретить в:
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.
Из чего состоят дистрибутивы Linux?
Чтобы предоставить вам удобную и работающую операционную систему, в рамках различных дистрибутивов Linux объединяются сотни и тысячи программ и системных компонентов. При этом каждый дистрибутив имеет свои собственные наборы компонентов, благодаря которым дистрибутивы могут, как отличаться между собой, так и быть очень похожими друг на друга.
Упомянутое программное обеспечение развивается разными, часто не связанными между собой группами разработчиков, например: ядро Linux создается силами Линуса Торвальдса и представителями Linux-сообщества; утилиты GNU пишутся разработчиками проекта GNU и Фондом Свободного Программного Обеспечения (FSF); разработка окружения рабочего стола KDE ведется одноименным сообществом; браузер Firefox развивает компания Mozilla; и т.д.
На этом уроке мы разберем основные компоненты, из которых состоит любой Linux-дистрибутив.
Компоненты дистрибутива Linux
Ядро Linux
Сердцем любой операционной системы является её ядро. В 1991 году Линус Торвальдс объявил о первом публичном релизе ядра Linux. С тех пор оно сильно эволюционировало, и сегодня тысячи добровольцев (компаний и обычных разработчиков программного обеспечения) работают над его развитием и поддержкой. Можно со всей уверенностью заявлять, что ядро Linux встречается почти в каждом «умном» устройстве, с которым вы, так или иначе, сталкиваетесь в своей жизни: начиная от Android-телефонов и заканчивая проезжающими мимо автомобилями.
Ядро Linux отвечает за связку программного и аппаратного обеспечения устройства, распределяет системные ресурсы между различными приложениями, запускает процессы ввода-вывода и передает их на исполнение центральному процессору. Ни одна операционная система не может работать без ядра.
Примечание: На сегодняшний день в ядре Linux насчитывается свыше 20 миллионов строк кода.
Утилиты GNU
GNU — это проект, начатый в 1980-х годах Ричардом Столлманом, основателем Фонда Свободного Программного Обеспечения (FSF). Целью данного проекта было создание полностью свободной операционной системы, которая могла бы стать альтернативой операционной системы UNIX. Разработчики GNU создали все необходимые для этого инструменты и программы, но непосредственно само ядро им написать не удалось. Именно поэтому в 1991 году Линус Торвальдс создал ядро Linux, а затем использовал программное обеспечение и утилиты GNU, чтобы получить работоспособную операционную систему.
Проект GNU включает в себя множество различных утилит: командную оболочку bash, набор компиляторов GNU Compiler Collection, загрузчик GRUB, фреймворк GTK+, архиватор gzip, текстовый редактор Nano и другое программное обеспечение.
Одним из основных проектов в рамках GNU является загрузчик GRUB:
GRUB — это первая программа, которая загружается после нажатия кнопки питания вашего компьютера. GRUB загружает ядро операционной системы и другие, необходимые для работы системы, компоненты. Почти 99% дистрибутивов Linux используют именно загрузчик GRUB. Если у вас установлено несколько операционных систем, то именно GRUB предоставляет меню, которое позволяет вам выбирать, какую систему следует загрузить (например, Windows или Linux).
Примечание: Есть и другие загрузчики, такие как LILO и BURG, но особой популярностью они не пользуются.
Еще одной важной утилитой проекта GNU является командная оболочка bash:
Командная оболочка bash
Большинство Linux-систем по умолчанию используют командную оболочку bash, которая предоставляет интерфейс командной строки, позволяющий управлять компьютером путем ввода соответствующих команд в окне терминала. Командные оболочки также могут запускать скрипты, которые представляют собой набор команд и операций, выполняемых в порядке, указанном в теле скрипта.
Демоны
Демоны (англ. «daemons») — это работающие в фоновом режиме служебные программы (или процессы), целью которых является мониторинг определенных подсистем ОС и обеспечение её нормальной работы. Например, демон принтера контролирует возможности печати, демон сети контролирует и поддерживает сетевые коммуникации и т.д.
Примечание: Windows называет такие процессы «службами», в то время как UNIX-подобные системы называют их «демонами».
Самым известным демоном является systemd, который управляет всеми другими процессами операционной системы. Это первый процесс, который выполняется после загрузки ядра Linux. Его задача состоит в том, чтобы управлять другими демонами и запускать их при необходимости во время загрузки или в любое другое время. Он контролирует все службы, доступные в операционной системе, и может включать или выключать их при необходимости.
Менеджер пакетов
Менеджер пакетов (или «пакетный менеджер») — это набор программного обеспечения, позволяющего управлять процессом установки, удаления, настройки и обновления различных компонентов программного обеспечения.
В Linux программное обеспечение представлено в виде пакетов. Если вы хотите установить приложение, библиотеку, игру или что-то еще, то для этого вам не нужно искать файл установки в Интернете. Всё, что вам нужно сделать — это открыть центр управления пакетами/программным обеспечением, найти и установить нужные вам приложения.
Обратите внимание на формат используемых пакетов. Red Hat и многие другие семейства дистрибутивов Linux используют формат rpm-пакетов, имеющие расширение .rpm (аналогично .exe в Windows). В свою очередь, системы на базе Debian Linux применяют систему управления пакетами dpkg, которая работает с пакетами формата .deb.
Примечание: Не допускается (за некоторыми исключениями) устанавливать deb-файлы в дистрибутивах Linux, в которых используются rpm-пакеты. Но вы можете попытаться преобразовать пакет из формат .deb в формат .rpm с помощью утилиты под названием Alien, либо поискать соответствующий пакет в официальных репозиториях вашей системы.
В Linux существует много разных менеджеров пакетов, и они отличаются от дистрибутива к дистрибутиву. Например, Ubuntu использует менеджер пакетов apt, в то время как Fedora использует dnf, openSUSE используется zypper, а Arch Linux использует pacman.
Если вы хотите, например, в своей системе установить браузер Firefox, то вам следует выполнить следующую команду:
sudo apt install firefox
sudo dnf install firefox
sudo zypper install firefox
Пользователям Arch Linux:
sudo pacman install firefox
Как видите, команды очень похожи, но в то же время запускаемые ими системы управления пакетами «под капотом» очень разные; различия заключаются в том, как они работают, скорости их работы и безопасности.
Дисплейный сервер
Дисплейный сервер (или «оконный интерфейс») — это важная часть операционной системы, отвечающая за отображение на экране графического пользовательского интерфейса. Значки, окна, меню, все графические объекты, которые вы видите на экране, отображаются дисплейным сервером. Без дисплейного сервера вы будете обречены сидеть за черным интерфейсом командной строки, развернутым на весь экран вашего монитора.
Существует множество различных дисплейных серверов. Для UNIX-подобных систем и дистрибутивов Linux наиболее известным является X.Org Server, выпущенный в 1987 году (еще до ядра Linux), и используемый по сей день.
Примечание: Поскольку X.Org Server существует уже более 30 лет, он полон проблем с безопасностью. В ответ на это некоторые разработчики, поддерживаемые такими компаниями, как Red Hat и Intel, разработали новый протокол отображения под названием Wayland.
Окружение рабочего стола
Окружение рабочего стола (или «среда рабочего стола») — это разновидность графических интерфейсов пользователя, основанная на метафоре рабочего стола, облегчающая работу с операционной системой при помощи некоторого специфического набора инструментов, а именно: значков, окон, панелей, меню, виджетов, файлового и дисплейного менеджеров и многого другого. Наиболее известными окружениями рабочего стола в Linux являются GNOME и KDE.
Дисплейный менеджер
Дисплейные менеджеры используются для отображения экрана приветствия пользователя и запуска сеансов рабочего стола: они запрашивают у вас имя пользователя и пароль, прежде чем разрешить вам войти в окружение рабочего стола. Если вы используете GNOME, то для него дисплейным менеджером по умолчанию является GDM. Если же ваш выбор пал в сторону KDE, то дисплейным менеджером по умолчанию у вас будет KDM (или SDDM).
Дисплейный менеджер SDDM
Вы можете использовать любой дисплейный менеджер, который захотите. Но при этом не допускается одновременно запускать более одного дисплейного менеджера.
Пользовательские приложения
Пользовательские приложения — это обычные приложения, которые вы используете каждый день, например: браузер Firefox, офисный пакет LibreOffice, медиаплеер VLC и т.д. Все эти приложения могут полностью отличаться от дистрибутива к дистрибутиву.
Стоит также отметить, что вы можете запускать любую Linux-программу в любом окружении рабочего стола, но программы, предназначенные для одних окружений рабочего стола, в других окружениях рабочего стола могут неправильно отображаться или мешать соседним процессам. Например, если вы попытаетесь запустить файловый менеджер GNOME Files (ранее Nautilus) в KDE, то он потребует установки различных библиотек GNOME и, вероятно, запуска процессов окружения рабочего стола GNOME в фоновом режиме при его открытии. Но при этом файловый менеджер можно будет использовать.
Пользовательские приложения (как и все другие пакеты) загружаются из соответствующих репозиториев.
Заключение
Дистрибутивы Linux выполняют заключительный шаг: они берут всё вышеуказанное программное обеспечение, объединяют его и добавляют свои собственные необходимые утилиты для создания полноценной работоспособной операционной системы.
Поделиться в социальных сетях:
3.1. Как устроен Linux: ядро и процессы
3.1. Как устроен Linux: ядро и процессы
Главная, постоянно находящаяся в оперативной памяти, часть ОС Linux называется ядром (Kernel). Ядро ОС обрабатывает прерывания от устройств, выполняет запросы системных процессов и пользовательских приложений, распределяет виртуальную память, создает и уничтожает процессы, обеспечивает многозадачность посредством переключения между ними, содержит драйверы устройств, обслуживает файловую систему (см. рис. 3.1).
Рис. 3.1. Устройство ОС Linux
Пользовательские процессы не могут непосредственно, например, порождать другие процессы, производить чтение или запись на диск, выводить данные на экран или создавать гнездо (socket) для обмена по сети. Для выполнения этих действий они должны воспользоваться сервисами ядра. Обращения за такими услугами называются системными вызовами.
Начальная загрузка системы состоит в том, что файл с образом ядра считывается в оперативную память, начиная с нулевого адреса. Этот файл находится в каталоге /boot и называется vmlinuz-x.y.z, где x.y.z — это номер версии ядра. На текущий момент большинство дистрибутивов основано на ядре версии 2.4, хотя уже вышло ядро 2.6 (Fedora Core 3) и кое-где еще встречается версия 2.2.
По соглашению разработчиков ядра, все ветви с четным номером (2.2, 2.4 и т.д.) считаются стабильными и рекомендуются для широкого использования, а на ветвях с нечетным номером испытываются новые идеи, Линус Торвальдс предложил распространить эту схему нумерации и на третью цифру версии: в ядра с нечетными номерами добавлять новые функции, а в четных — только исправлять обнаруженные ошибки.
В UNIX-подобных системах в отличие от других ОС ядро минимизировано и не выполняет ни одной функции, служащей непосредственно пользователю. Для этой цели применяются многочисленные утилиты, выступающие в качестве посредников между пользователем и ядром. Только в комплекте с ними ядро образует полноценную операционную систему.
Этих компонент ОС Линус Торвальдс не создавал: они поступили из проекта GNU (http://www.gnu.org), участники которого с 1984 года работают над созданием полноценной UNIX-подобной ОС, целиком состоящей из свободно распространяемого программного обеспечения. К 1991 году им не хватало только ядра, и эту-то прореху и заполнил Торвальдс. Так что ОС, которой посвящена эта книга, правильнее называть не Linux, а «операционной системой GNU, основанной на ядре Linux», или просто GNU/Linux.
Итак, ядро обслуживает запросы процессов. Что же такое процесс? Это понятие является базовым в UNIX-подобных системах. Процесс можно представить себе как виртуальную машину, отданную в распоряжение одной задачи. Каждый процесс считает, что он на машине один и может распоряжаться всеми ее ресурсами. На самом же деле процессы надежно изолированы друг от друга, так что крушение одного не может повредить всей системе (сколько раз вы наблюдали в Windows, как сбой одной программы приводил к общему зависанию?).
Каждый процесс выполняется в собственной виртуальной памяти (см, рис. 3.2), в которую никакой другой процесс вмешаться не может. Этим и обеспечивается устойчивость всей системы.
Рис. 3.2. Виртуальная память процесса
Напоминаю, что такое виртуальная память. Каждому процессу разрешено считать, что его адреса начинаются с нулевого адреса и от него наращиваются. Таким образом, в 32-разрядной ОС процесс может адресовать 4 гигабайта оперативной памяти. Механизм виртуальной памяти позволяет процессу думать, что именно столько ему и выделено, хотя физически объем ОЗУ вашей машины — какие-то жалкие 256 Мбайт. Недостающую память заменяет жесткий диск путем записи временно не используемых страниц памяти в раздел подкачки (свопинга).
Разделяемость библиотек между процессами обеспечивается тем, что их код и статические данные отображаются на один и тот же участок физической оперативной памяти.
Данный текст является ознакомительным фрагментом.
Продолжение на ЛитРес
Читайте также
Глава 1 Введение в ядро Linux
Глава 1 Введение в ядро Linux Даже после трех десятилетий использования операционная система (ОС) Unix все еще считается одной из самых мощных и элегантных среди всех существующих операционных систем. Со времени создания операционной системы Unix в 1969 году, это детище Денниса
Ядро Linux в сравнении с классическими ядрами Unix
Ядро Linux в сравнении с классическими ядрами Unix Благодаря общему происхождению и одинаковому API, современные ядра Unix имеют некоторые общие характерные черты. За небольшими исключениями ядра Unix представляют собой монолитные статические бинарные файлы. Это значит, что они
Ядро в роли арбитра
Ядро в роли арбитра Так кто же определяет, который из потоков должен выполняться в данный момент времени? Этим занимается ядро.Ядро определяет, который из потоков должен использовать процессор в данный момент времени и переключает контекст на этот поток. Давайте
Ядро системы
Ядро системы Ядро обеспечивает базовую функциональность операционной системы: создает процессы и управляет ими, распределяет память и обеспечивает доступ к файлам и периферийным устройствам.Взаимодействие прикладных задач с ядром происходит посредством стандартного
IPLabs Linux Team: начало русского Linux’а
IPLabs Linux Team: начало русского Linux’а Следующая веха на пути русского Linux’а – 1998 год, когда фирма IPLabs (точнее, ее подразделение – IPLabs Linux Team) совместно с Институтом логики (на самом деле это были одни и те же люди – Алексей Новодворский, Алексей Смирнов и Юрий Девяткин с
Linux (ядро)
Linux (ядро) Официальная ссылкаLinux (2.4.19): ftp://ftp.kernel.org/pub/linux/kernel/Содержимое LinuxПоследняя проверка: версия 2.4.18.Файлы поддержкиЯдро Linux и и его заголовочные файлыОписанияЯдро LinuxЯдро – основа любой системы Linux. Когда компьютер включается и загружает Linux, первое, что загружается –
1.4. Ядро
1.4. Ядро Ядро — это сердце ОС, в котором реализовано управление физическими и программными ресурсами компьютера. Помимо этого оно позволяет получить доступ к различному железу. Например, ранние версии ядра обеспечивали работу только двух USB-устройств: клавиатура и мышь.
20.5.1. Зачем обновлять ядро?
20.5.1. Зачем обновлять ядро? Linux развивается быстрее любой другой операционной системы. Регулярно появляются новые версии ядра, реализующие новые функции. Например, едва успел выйти дистрибутив Fedora Core 4 на ядре 2.6.11, а на www.kernel.org уже лежит стабильная версия 2.6.12.2. Еще чаще
Семантическое ядро
Семантическое ядро Анализ семантического ядра на полноту охвата. Очень важно, чтобы семантическое ядро охватывало максимально возможное количество проблем пользователей и запросов, формирующих эти проблемы. Нужно выяснить:? охватывает ли семантическое ядро весь
Составьте семантическое ядро
Составьте семантическое ядро Чтобы успешно продвигать свой бизнес в Интернете, необходимо правильно составить семантическое ядро.Семантическое ядро, говоря простым языком, – это слова, которые будут наиболее точным образом характеризовать направленность вашей
Глава 1 Как устроен компьютер
Глава 1 Как устроен компьютер Эта глава посвящена обзору аппаратных средств персонального компьютера. В ней мы также кратко познакомимся с понятием программного обеспечения и узнаем о назначении операционной системы.• Аппаратные средства ПК• Как включить
Ядро API Firebird
Ядро API Firebird Программирование с использованием API необходимо при написании драйверов для создания сценариев в таких языках, как PHP и Python, и при разработке объектно- ориентированных классов доступа к данным для объектно-ориентированных языков типа Java, C++ и Object Pascal.
Как устроен Internet
Как устроен Internet Internet качественно отличается от телеграфа, телефона, газет, радио и телевидения: информация здесь не только доставляется адресату, но и просто предоставляется на всеобщее обозрение, и каждый может сам найти и воспользоваться именно тем, что ему интересно.
Технология мысленных приказов: как устроен первый интерфейс «мозг — мозг» Андрей Васильков
Технология мысленных приказов: как устроен первый интерфейс «мозг — мозг» Андрей Васильков Опубликовано 29 августа 2013 Исследователи из университета штата Вашингтон провели необычный эксперимент, который можно считать первым в истории случаем










