Телефон: +7 (383)-202-16-86

Статья опубликована в рамках: XLVI Международной научно-практической конференции «Научное сообщество студентов: МЕЖДИСЦИПЛИНАРНЫЕ ИССЛЕДОВАНИЯ» (Россия, г. Новосибирск, 07 июня 2018 г.)

Наука: Информационные технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Гусев В.В., Шиганова М.В., Христофоров Р.П. [и др.] ПОСТРОЕНИЕ ЯДРА LINUX И ЕГО ПОДСИСТЕМЫ // Научное сообщество студентов: МЕЖДИСЦИПЛИНАРНЫЕ ИССЛЕДОВАНИЯ: сб. ст. по мат. XLVI междунар. студ. науч.-практ. конф. № 11(46). URL: https://sibac.info/archive/meghdis/11(46).pdf (дата обращения: 05.04.2020)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

ПОСТРОЕНИЕ ЯДРА LINUX И ЕГО ПОДСИСТЕМЫ

Гусев Вадим Владимирович

студент факультета естественных, математических и компьютерных наук НГПУ им. К. Минина,

РФ, г. Нижний Новгород

Шиганова Марина Викторовна

студент факультета естественных, математических и компьютерных наук НГПУ им. К. Минина,

РФ, г. Нижний Новгород

Христофоров Роман Петрович

студент факультета естественных, математических и компьютерных наук НГПУ им. К. Минина,

РФ, г. Нижний Новгород

Романова Наталья Анатольевна

студент факультета естественных, математических и компьютерных наук НГПУ им. К. Минина,

РФ, г. Нижний Новгород

Начало проекту было положено в 1991 году с публикации сообщения в новостной группе Usenet. К тому времени GNU уже создал множество составляющих для свободной операционной системы, но её ядро GNU Hurd ещё не было готово. Поэтому пустующее место ядра для свободной операционной системы занял Linux и, несмотря на ограниченную функциональность ранних версий, привлёк к себе множество разработчиков и пользователей [2].

Операционную систему можно разделить на два уровня. В верхней части находится пользователь или приложение. Ниже пространства пользователя располагается пространство ядра. Существует также библиотека GNU C. Она обеспечивает интерфейс системного вызова, который подключается к ядру и обеспечивает механизм перехода между пользовательским пространством приложения и ядра. Это важно, потому что ядро и пользовательское приложение занимают разные защищенные адресные пространства. И хотя каждый процесс пользовательского пространства занимает его собственное виртуальное адресное пространство, ядро занимает одно адресное пространство [1].

Ядро Linux можно разделить на три уровня. В верхнем находится система интерфейс вызова, которая реализует основные функции, такие как чтение и запись. Ниже располагается системный вызов - это код ядра, который определяется как независимый от архитектуры код ядра. Этот код является общим для всех процессоров ar-архитектуры, поддерживаемых Linux. Нижний уровень - это код, зависящий от архитектуры, который чаще называют BSP. Этот код служит как процессор и код для платформы этой архитектуры.

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

Основные подсистемы ядра Linux

Интерфейс системного вызова SCI - это тонкий слой, который предоставляет средства для выполнения вызовов функций от пользователя. Этот интерфейс может быть зависим от архитектуры, даже в пределах одного семейства процессоров. SCI на самом деле интересная служба мультиплексирования и демультиплексирования функций.

Управление процессом

Управление процессами сосредоточено на их выполнении. В ядре это потоки и они представляют собой индивидуальную виртуализацию процессора. Это поток кода, данных, стеков и регистров процессора. Ядро предоставляет интерфейс прикладной программы API через SCI для создания нового процесса, остановки процесса, а также установки связи и синхронизации. Также в управлении процессами необходимо разделять процессор между активными потоками. Ядро реализует новый алгоритм планирования, который работает постоянно, независимо от количества потоков, соперничающих за процессор.

Управление памятью

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

Виртуальная файловая система

Виртуальная файловая система (VFS) является интересным аспектом ядра Linux, поскольку она обеспечивает общую абстракцию интерфейса для файловых систем. VFS обеспечивает коммутацию уровня между SCI и файловыми системами, поддерживаемыми ядром. В верхней части VFS есть общая абстракция API функций. В нижней части VFS представлены абстракции файловой системы, которые определяют, как реализуются функции верхнего уровня. Это плагины для данного файла. Ниже уровня файловой системы находится буферный кеш, который обеспечивает общий набор функций на уровень файловой системы, независимо от какой-либо конкретной файловой системы. Этот уровень кэширования оптимизирует доступ к физическим устройствам, сохраняя данные на короткое время. Ниже буфера располагается кэш - это драйверы устройств, которые реализуют интерфейс для конкретного физического устройства.

Сетевой стек

Протокол IP является протоколом основного сетевого уровня, который находится ниже транспортного протокола. TCP - это слой сокетов, который вызывается через SCI. Уровень сокетов является стандартным API для сетевой подсистемы и предоставляет пользователю интерфейс к различным сетевым протоколам.

Драйвер устройств

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

Код, зависящий от архитектуры

Хотя большая часть Linux не зависит от архитектуры, на которой она работает, есть элементы, которые должны учитывать архитектуру для нормальной работы и эффективности. Подкаталог /linux /arch определяет зависимую от архитектуры часть ядра, содержащуюся в ряде подкаталогов, которые являются специфичными для архитектуры, совместно формируя BSP. Для обычного рабочего стола используется каталог i386. Каждый подкаталог архитектуры содержит ряд других подкаталогов, которые фокусируются на конкретный аспект ядра.

Интересные особенности ядра Linux

Linux, являясь производственной операционной системой, является отличным испытательным стендом для новых протоколов. Linux поддерживает большое количество сетевых протоколов, включая типичный TCP / IP, а также расширения для высокоскоростных. Linux также поддерживает протокол передачи управления потоком SCTP, который предоставляет многие дополнительные функции, в качестве замены транспортного протокола. Linux также является динамическим ядром, поддерживающим добавление и удаление программного обеспечения. Это динамически загружаемые модули ядра и они могут быть вставлены при загрузке, в любое время для пользователя. Linux также используется в качестве операционной системы для других операционных систем называемых гипервизорами. Единственное ограничение заключается в том, что базовый процессор должен поддерживать новые инструкции по виртуализации.

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

 

Список литературы:

  1. Linux [Электронный ресурс] - Режим доступа. - URL: https://ru.wikipedia.org/wiki/Linux (дата обращения: 02.06.18).
  2. Ядро Linux [Электронный ресурс] – Режим доступа. – URL: https://goo.gl/kzg6tP (дата обращения: 02.06.18).
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий

Уважаемые коллеги, издательство СибАК с 30 марта по 5 апреля работает в обычном режиме