Ядро Linux похоже на мост, который обеспечивает вычислительную связь между приложениями и оборудованием и управляет ресурсами системы. Линус Торвальдс разработал ядро ​​Linux на C и ассемблере, и, таким образом, ему удалось создать легкое и переносимое ядро, которое было выпущено для публики как открытый исходный код.

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

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

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

instagram viewer

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

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

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

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

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

Благодаря множеству форматов файловых систем вы можете физически хранить данные на дисках. Наиболее широко известными в Linux являются доб2, доб3, а также доб4 форматы файловой системы. Однако существует множество других форматов файловых систем. В любом случае, вы должны отформатировать файловую систему перед ее монтированием. Вы можете использовать такие команды, как mkfs.ext3 (mkfs означает make file system, а ext3 — файловая система) для этого.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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