Как работает ядро Linux? Объяснение анатомии ядра Linux

You are currently viewing Как работает ядро Linux? Объяснение анатомии ядра Linux

Ядро Linux похоже на мост, который обеспечивает вычислительную связь между приложениями и оборудованием и управляет ресурсами системы. Линус Торвальдс разработал ядро Linux на C и ассемблере, и, таким образом, ему удалось создать легкое и переносимое ядро, которое было выпущено для публики как открытый исходный код.You can see the Linux kernel in many different sectors such as space, computers, smart watches, mobile phones, robotics, and health. But have you ever wondered how does the Linux kernel work under the hood?

Использование оборудования в Linux

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

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

Используя виртуальные файловые системы /proc и /sys, ядро Linux может экспортировать подробную информацию об обнаруженном оборудовании. Ниже вы можете увидеть несколько инструментов, используемых для этого, и какие устройства и карты они экспортируют:

  • lspci: для устройств PCI
  • lsusb: для USB-устройств
  • lspcmcia: для карт PCMCIA

Как видите, дистрибутив Linux на скриншоте выше работает на VirtualBox. Однако у вас есть возможность увидеть много информации, такой как VGA, контроллер USB, мосты и контроллер SATA.

Вы также можете использовать параметр -v для получения более подробной информации.

В ядре Linux приложения обычно получают доступ к устройствам через специальные файлы, находящиеся в каталоге /dev . Эти специальные файлы представляют собой дисководы и другие физические устройства. Примерами таких специальных файлов являются такие файлы, как /dev/hda, /dev/sdc, /dev/sdc3, /dev/input/mouse0 и dev/snd/*.

Управление файловой системой Linux

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

Отправной точкой этой иерархии является корневой каталог (/). Другие подкаталоги находятся в корневом каталоге. Наиболее часто используемым подкаталогом в разделе / является /home каталог. Этот подкаталог содержит другие подкаталоги, и в каждом каталоге есть файлы, в которых хранятся фактические данные.

Например, вы можете думать о текстовом файле на рабочем столе. Если вы создаете текстовый файл с именем helloworld.txt на рабочем столе, вы можете ссылаться на него как /home/muo/Desktop/helloworld.txt. Пример /muo здесь, конечно, будет другим. Потому что это имя подкаталога зависит от вашего текущего имени пользователя. С помощью этой системы именования ядро Linux выполняет преобразование между фактическим и физическим хранилищем, существующим на диске.

Также ядро Linux может интегрировать данные с нескольких дисков. Тут в дело вступает система крепления. Он использует один из дисков в корневой системе и монтирует остальные в существующие каталоги в иерархии. Затем другие диски размещаются под точками монтирования. Это позволяет пользователям хранить каталог /home на втором жестком диске, который также содержит другие подкаталоги.

Когда вы подключаете диск к каталогу /home, вы можете получить доступ к этим каталогам из обычных мест. Таким образом, такие пути, как /home/muo/Desktop/helloworld.txt, продолжают работать.

Вы можете увидеть точки монтирования между файлами в вашей системе с помощью команды findmnt -A.

Благодаря множеству форматов файловых систем вы можете физически хранить данные на дисках. Наиболее широко известными в Linux являются форматы файловых систем ext2, ext3 и ext4. Однако существует множество других форматов файловых систем. В любом случае, вы должны отформатировать файловую систему перед ее монтированием. Для этого можно использовать такие команды, как mkfs.ext3 (mkfs означает создание файловой системы, а ext3 – файловая система).

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

Кроме того, существуют сетевые файловые системы, такие как NFS, которые использует ядро Linux. NFS — это сетевая файловая система, в которой данные не хранятся на локальном диске. При использовании NFS данные передаются по сети на сервер, на котором они хранятся. Так как данные будут на сервере, пользователям не придется постоянно с ними возиться. Они также могут использовать традиционную иерархическую файловую систему Linux.as usual.

Операции с общими функциями

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

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

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

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

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

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

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

Права доступа в Linux

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

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

Ядро Linux управляет всем

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

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

233650cookie-checkКак работает ядро Linux? Объяснение анатомии ядра Linux

Автор публикации

не в сети 3 месяца

ViGo

Комментарии: 6Публикации: 1154Регистрация: 29-04-2020
Если Вам понравилась статья, то поделитесь ею в соц.сетях:
guest

0 комментариев
Inline Feedbacks
View all comments