Устройство ядра операционной системы linux

Как работает ядро Linux? анатомия ядра Linux.

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

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

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

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

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

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

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

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

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

Читайте также:  Jarsigner kali linux установка

Вы также можете использовать параметр -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 означает файловую систему make, а ext3 — файловую систему).

Читайте также:  Audio codecs for linux

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

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

Операции с разделяемыми функциями

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

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

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

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

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

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

Читайте также:  Linux vnc with ssh

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

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

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

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

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

Ядро Linux контролирует все

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

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

Смотрите другие статьи на нашем канале .

Структура каталогов Linux

Команда Linux, которую вам нужно знать

8 лучших сайтов для запуска Linux в веб-браузере

Вы также можете оставить свое мнение об этом посте в разделе комментариев.

Источник

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