Процессный планировщик (Process Scheduler): отвечает за управление ресурсами процессора, обеспечивая использование процессорных ресурсов каждым процессом в виде временных слотов.
Управление памятью (Memory Manager): отвечает за управление ресурсами памяти, позволяя различным процессам безопасно использовать память машины. Кроме того, управление памятью предоставляет механизмы виртуальной памяти, что позволяет процессам использовать больше памяти, чем доступно в системе. Ненужная память сохраняется в файловой системе на внешнем неразрушимом накопителе, а при необходимости снова загружается в память.
VFS (Virtual File System) - Виртуальная файловая система: абстрагирует различные внешние устройства с различными функциями, такие как устройства диска (жесткие диски, флэш-память NAND, NOR и т.д.), устройства ввода-вывода, устройства отображения и т.д., представляя их как единый интерфейс файловых операций (открытие, закрытие, чтение, запись и т.д.).
Сетевая система (Network): отвечает за управление сетевыми устройствами системы и реализацию различных сетевых стандартов.
IPC (Inter-Process Communication) - Коммуникация между процессами: не управляет никакими аппаратными средствами, а вместо этого отвечает за коммуникацию между процессами в системе Linux.Linux-ядро состоит из пяти основных подсистем, между которыми существует следующая связь:
Исходный код Linux-ядра включает три основные части.
/include/ ---- Ядерные заголовочные файлы, которые должны быть предоставлены внешним модулям (например, коду пользователя).
/kernel/ ---- Основной код Linux-ядра, который включает подсистему планирования процессов, описанную в разделе 2.1, а также связанные с ней модули.
/mm/ ---- Подсистема управления памятью, описанная в разделе 2.2.
/fs/ ---- Подсистема VFS, описанная в разделе 2.3.
/net/ ---- Не включает в себя подсистему сети без драйверов сетевого оборудования (см. раздел 2.4).
```ipc/ ---- подсистема IPC (обмен данными между процессами).
arch/ ---- код, относящийся к архитектуре, например arm, x86 и т.д.
arch/mach- ---- код, относящийся к конкретному устройству/плате.
arch/include/asm ---- заголовочные файлы, относящиеся к архитектуре.
arch/boot/dts ---- файлы дерева устройств (Device Tree).
init/ ---- код, связанный с инициализацией системы Linux.
block/ ---- уровень предоставления блочных устройств.
sound/ ---- драйверы и подсистемы, связанные с аудио, можно рассматривать как "аудиоподсистему".
drivers/ ---- драйверы устройств (в ядре Linux версии 3.10 драйверы устройств составляют 49,4% от общего объема кода).
lib/ ---- библиотечные функции, используемые в ядре, такие как CRC, FIFO, list, MD5 и т.д.
crypto/ ---- библиотечные функции шифрования и расшифровки.
security/ ---- подсистема обеспечения безопасности (например SELinux).
virt/ ---- подсистема поддержки виртуальных машин (например KVM).
usr/ ---- код для создания initramfs.
firmware/ ---- firmware для работы с внешними устройствами.
samples/ ---- примеры кода.
tools/ ---- полезные инструменты, такие как профилирование производительности и автотесты.
Kconfig, Kbuild, Makefile, scripts/ ---- конфигурационные файлы и скрипты для сборки ядра.
COPYING ---- лицензия на использование.
MAINTAINERS ---- список поддерживаемых лиц.
CREDITS ---- список основных вкладчиков в проект Linux.
REPORTING-BUGS ---- руководство по отчету об ошибках.Documentation, README ---- справочная и ознакомительная документация.
Файл Makefile фактически объясняет, как будут выполняться команды сборки make, например, для структуры на базе ARM, также используется файл .mk, который я рассмотрю более подробно позднее.
Основные функции Makefile следующие:
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )