GRUB — это относительно новый загрузчик, который формально еще находится на стадии бета-тестирования. Основным его преимуществом перед LILO являются расширенные возможности работы с файловой системой. Способности LTLO ограничиваются всего лишь нахождением физических секторов данных и сведением этих секторов для обнаружения ядра и загрузочных файлов.
Загрузчик LILO состоит из двух компонентов: средства, загружающего программу загрузки в главный загрузочный сектор жесткого диска, и самой программы загрузки. Настройки загрузчика LILO содержатся в файле
К этому моменту в память компьютера загружены только те компоненты, которые работают "за кадром". Все остальные программы, выполняющиеся в процессе работы операционной системы, загружаются с помощью программы инициализации (init). Эта программа отвечает за запуск всех необходимых служб и программ.
Первый этап загрузки — функция POST (Power-On Self Test— самотестирование при включении питания) — выполняется независимо от того, какую операционную систему вы используете, будь то Linux или другая система.
Интерфейс, обеспечиваемый пакетами функций для работы с нитями, должен обладать несколькими важными средствами. Он должен поддерживать большой набор различных операций над нитями, таких как.
Существует возможность поддержки нитей полностью на прикладном уровне, при этом ядру об их существовании ничего известно не будет. Указанная возможность реализована в таких библиотечных пакетах, как C-threads системы Mach и pthreads стандарта POSIX.
Нити ядра не требуют связи с каким-либо прикладным процессом. Они создаются и уничтожаются ядром и внутри ядра по мере необходимости и отвечают за выполнение определенных функций.
Центральный процессор представляет собой ресурс, который используется всеми процессами системы. Часть ядра, распределяющая процессорное время между процессами, называется планировщиком (scheduler).
Существуют три различных типа событий, которые могут перевести систему в режим ядра. Это — прерывания устройств (interrupts), исключительные ситуации или просто исключения (exceptions), а также ловушки (traps) или программные прерывания (software interrupts).
Системный вызов fork создает новый процесс. При этом вызывающий процесс становится родительским, а новый процесс является его потомком. Связь «родитель-потомок» создает иерархию процессов, графически изображенную систему.
Появление многопроцессорных систем стало причиной возникновения нового класса проблем синхронизации. Защита ядра, основанная на отсутствии вытеснения, здесь уже не может быть применена. В одно процессорных системах ядро может производить манипуляции с большинством структур данных, не опасаясь за их целостность
Несмотря на то что ядро системы защищено от вытеснения другим процессом, процесс, манипулирующий структурами ядра, может быть прерван различными устройствами. Если обработчик прерывания попытается получить доступ к таким структурам, то обнаружит, что они находятся в состоянии нарушения целостности.