Структура операционных систем linux

«Linux» это не просто Linux: 8 частей программного обеспечения, из которых состоят системы Linux

Дистрибутивы Linux не являются только ядром Linux. Все они содержат другие важные программы, такие как начальный загрузчик Grub, командная оболочка Bash, утилиты командной оболочки GNU, демоны, графический сервер X.org, среда рабочего стола и многое другое.

Все эти различные программы разрабатываются разными, независимыми группами разработчиков. Они объединены при помощи дистрибутивов Linux, где они собираются одна поверх другой с тем, чтобы создать полную операционную систему «Linux». Это отличие от системы Windows, которая разработана исключительно компанией Microsoft.

Начальный загрузчик

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

Если у вас установлено несколько операционных систем, то Grub предлагает меню, позволяющее выбирать одну из них — например, если у вас установлен Linux в конфигурации с двойной загрузкой, вы можете, когда происходит загрузка, выбрать либо Linux или Windows.

Если у вас установлена только одна операционная система, то Grub может загрузить систему Linux практически мгновенно, но он все еще продолжает обработку. Grub обрабатывает процесс непосредственной загрузки Linux, задает параметров командной строки и для того, чтобы устранить неполадки, позволяет вам загрузить Linux другими способами. Без начального загрузчика, дистрибутив просто не будет загружаться.

Ядро Linux

Определенная часть программного обеспечения, которое загружается с помощью Grub, является ядром Linux. Это та часть системы, которая на самом деле называется «Linux». Ядро является центральной частью системы. Он управляет вашим процессором, памятью и устройствами ввода/вывода, такими как клавиатуры, мыши и дисплеи. Поскольку ядро обращается непосредственно к оборудованию, многие драйверы оборудования являются частью ядра Linux и запускаются внутри ядра.

Все другое программное обеспечение работает выше ядра. Ядро является частью программного обеспечения, которое лежит на самом нижнем уровне и взаимодействует с аппаратным обеспечением. Он представляет собой слой абстракции над оборудованием, который имеет дело со всеми аппаратными причудами, тогда как остальная часть системы может почти совсем с ними не иметь дело. В Windows используется ядро Windows NT, а в Linux используется ядро Linux.

Демоны

Демоны, по существу, являются фоновыми процессами. Они часто запускаются как часть процесса начальной загрузки, поэтому они являются тем, что загружается после ядра и прежде, чем вы видите свой графический экран входа в систему. В Windows такие процессы называются «сервисами», в то время как в UNIX-подобных системах они называются «демонами» (прим.пер.: более точно — «даемонами» от английского « daemons»).

Например, crond, который управляет выплнением запланированных задач, является демоном — буква d в конце означает «демон». syslogd является еще одним демоном, который традиционно управляет вашим системным журналом. Серверы, такие как сервер sshd, работают как демоны фонового режима. Это гарантирует, что они всегда работают и прослушивают дистанционные подключения.

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

Командная оболочка

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

Читайте также:  Linux ubuntu openvpn server

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

Утилиты командной оболочки

В командной оболочке предоставляется некоторое количество основных встроенных команд, но большинство из команд командной оболочки, которыми пользуются пользователи 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 не предоставляет полную окружение рабочего стола, это просто графическая система, поверх которой могут быть созданы окружение и инструментарий рабочего стола.

Среда рабочего стола

То, что вы действительно используете на рабочем столе Linux, представляет собой рабочую среду. Например, в состав системы Ubuntu входит среда рабочего стола Unity, в состав системы Fedora входит GNOME, в Kubuntu входит KDE, в в состав системы Mint обычно входит Cinnamon or MATE. Эти окружения рабочего стола обеспечивают все, что вы видите — фон рабочего стола, панели, заголовки и границы окон.

Они также обычно включают в себя свои собственные утилиты, которые встроены для того, чтобы окружение рабочего стола выглядело как единое целое. Например, в GNOME и Unity входит файловый менеджер Nautilus, разработанный в рамках GNOME, а KDE включает в себя файловый менеджер Dolphin, разработанный в рамках проекта KDE.

Программы рабочего стола

Не каждая программа, работающая на рабочем столе, является частью среды рабочего стола. Например, программы Firefox и Chrome работают независимо от среды рабочего стола. Они просто являются программами, которые могут нормально работать поверх любой среды рабочего стола. Либо пакет OpenOffice.org, который является еще одним набор программ, которые не привязаны к конкретной среде рабочего стола.

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

Читайте также:  Incompatible character encodings ibm866 and windows 1251 vagrant

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

Источник

Структура операционной системы Linux

Любая UNIX-подобная операционная система состоит из ядра, некоторых системных и прикладных программ. Системные программы используют средства, предоставляемые ядром для обеспечения выполнения различных функций операционной системы. Системные и все остальные программы выполняются «на поверхности ядра» — в пользовательском режиме. Довольно часто операционная система содержит компиляторы и соответствующие им библиотеки (GCC и C библиотеки для Linux), хотя не обязательно все языки программирования должны быть частью операционной системы. Документация, а иногда даже игры, могут являться ее частью. Обычно состав операционной системы определяется содержимым установочного диска.

Операционную систему Linux можно рассматривать в виде Unix-пирамиды, изображенной на рисунке.

Рисунок Уровни операционной системы Unix

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

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

Все программы обращаются к системным вызовам, помещая аргументы в регистры центрального процессора и выполняя команду эмулированного прерывания для переключения из пользовательского режима в режим ядра и передачи управления операционной системе Unix. За работу команд эмулированного прерывания отвечают библиотечные функции, по одной на системный вызов. Таким образом, чтобы обратиться к системному вызову READ, программа на С должна вызвать библиотечную процедуру READ.

Помимо операционной системы и библиотеки системных вызовов все версии Unix содержать большое количество стандартных программ. К этим программам относятся: командный процессор (оболочка), компиляторы, редакторы, программы обработки текста и утилиты для работы с файлами.

Многие утилиты можно отнести к одной из трех категорий:

Фильтры – считывают входную информацию, поступившую либо от пользователя, либо из файла или другого источника, изучают и обрабатывают ее, а затем выдают результат. Для написания скрипта-фильтра используется специальный язык AWK. К фильтрам относятся – grep, sort, wc, pr, cmp, comm., cpio, fmt, fgrep, srd;

Коммуникационные программы – используются для связи с другими пользователями Вашей системы и других систем.

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

Хотя именно последний интерфейс большинство пользователей считает системой Unix, в действительности он не имеет практически ни какого отношения к самой операционной системе и легко может быть заменен.

3..

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

Дистрибутив Linux – это набор пакетов программного обеспечения, включающий базовые компоненты операционной систем (в том числе, ядро Linux), некоторую совокупность программных приложений и программу инсталляции, которая позволяет установить на компьютер пользователя операционную систему GNU/Linux без привлечения высококвалифицированного эксперта, и набор прикладных программ, необходимых для конкретного применения системы.

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

­ ориентация (или назначение) дистрибутива на конкретную область применений;

Читайте также:  Операционная система windows для acer aspire one

­ требования к аппаратному обеспечению;

­ используемая графическая оболочка (например, KDE, GNOME или XFce);

­ наличие средств локализации, обеспечивающих поддержку необходимых вам;

­ носитель, с которого может запускаться система;

­ организация процедуры начальной загрузки системы (System V или BSD);

­ используемая система управления пакетами (например, dpkg в Debian, RPM в Fedora Core). Программное обеспечение, содержащееся в пакете, поставляется в одном из двух основных видов: в виде бинарных файлов, которые предназначены для непосредственной установки в вашу систему, без какой-либо дополнительной обработки (например, компиляции) и в виде исходных текстов, которые обычно содержат текст на каком-то языке программирования, заархивированный в формате tar и упакованный программой gzip, а также вспомогательные файлы, необходимые для компиляции приложения из файлов пакета;

­ структура каталогов файловой системы (хотя все файловые системы должны по возможности соответствовать стандарту на структуру каталогов файловой системы FHS — Filesystem Hierarchy Standard);

­ родословная или история происхождения дистрибутива (большая часть современных дистрибутивов ведет свою родословную либо от Red Hat, либо от Debian);

­ состав базового устанавливаемого программного обеспечения;

­ доступность дополнительных пакетов;

­ наличие и состав коммерческих программ, включенных в дистрибутив;

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

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

­ система управления пакетами;

5. Файловая система — это часть операционной системы, работающая

файлами, и предоставляющая способы хранения данных и организации доступа к ним, на информационном носителе или его разделе. В Unix-системах файловая система представляет собой некоторое устройство (жесткий диск или компакт-диск) или раздел диска, используемые для хранения файлов.

Основной файловой системой операционной системы Linux стала – Ext2, с длинными именами файлов, длинными файлами и высоко производительностью. Однако Linux также поддерживает и другие файловые системы, используя для этого файловую систему NFS. При компоновке операционной системы Linux предлагает сделать выбор файловой системы, которая будет встроена в ядро. Другие файловые системы при необходимости могут динамически подгружаться во время исполнения в виде модулей.

Ext2 очень похожа на файловую систему BSD с небольшими изменениями. Размещение файловой системы Ext2 на диске показано на рисунке.

Файловая система Linux организована в виде дерева с одной исходной вершиной, которая называется корнем (записывается: « / »), промежуточные вершины которого соответствуют каталогам, и листья — файлам и пустым каталогам. Символ « /» так же используется для разделения имен каталогов. Каждый каталог и файл файловой системы имеет уникальное полное имя. В каталоге содержатся два специальных имени: имя « . » — именующее сам этот каталог, и имя « . . » — именующее «родительский» каталог данного каталога. Файловая система Linux использует два имени пути: полное (абсолютное), которое начинается с корня, т.е. со знака « /» и родственное (относительное), которое начинается и имени текущего каталога.

6. Ext2 очень похожа на файловую систему BSD с небольшими изменениями. Размещение файловой системы Ext2 на диске показано на рисунке.

Рисунок – Размещение файловой системы Ext2 на диске

Вместо групп цилиндров Ext2 делит диск на группы блоков. Описатель группы содержит информацию о расположении битовых массивов, количестве свободных блоков и i-узлов в группе, а также количество каталогов в группе. В двух битовых массивах (блоковый битовый массив и битовый массив i-узлов) ведется учет свободных блоков и свободных i-узлов. Размер каждого битового массива равен одному блоку.

Не нашли, что искали? Воспользуйтесь поиском:

Источник

Оцените статью