Linux® относится к классу бесплатных компьютерных операционных систем с открытым исходным кодом, в которой используется то же ядро, которое является центральным компонентом компьютерной системы, служащей связующим звеном между оборудованием компьютера и его программным обеспечением. Ключевое различие между операционными системами заключается в том, как они управляют загрузкой компьютера, и процесс запуска Linux® заметно отличается от её аналогов. Процесс запуска Linux® начинается с базовой системы ввода/вывода (BIOS), которая выполняет большинство аппаратных задач запуска.
После того, как BIOS завершает различные системные процессы, система передаётся ядру, которое устанавливает основные системные функции и передаёт управление системой пользователю.
BIOS представляет собой набор аппаратного кода, который инициализирует все аппаратные компоненты компьютерной системы. В большинстве компьютерных систем он загружается в микросхему ПЗУ, которая находится на материнской плате компьютера. Поскольку BIOS представляет собой аппаратную реализацию, его кодирует производитель материнской платы, а не разработчики операционной системы Linux®. Это самая важная часть процесса запуска Linux®, поскольку она выполняет жизненно важную задачу подготовки оборудования компьютера к запуску операционной системы.
После инициализации всех компонентов компьютера управление процессом запуска Linux® передаётся программе запуска системы Linux®, называемой загрузчиком, также называемой начальной загрузкой. Основная функция этой небольшой программы – загрузить операционную систему в память машины и подготовить её к выполнению. Обычно операционная система Linux® сжимается на жёстком диске, поэтому загрузчик также выполняет задачу распаковки. Если на компьютере установлено несколько операционных систем или версий, при начальной загрузке пользователю будет предложено выбрать одну из них. Также важно отметить, что процесс запуска Linux® имеет два разных типа начальной загрузки – LILO и GRUB – хотя большинство новых версий Linux® используют GRUB.
Когда операционная система распакована и загружена в память, ядро Linux® отвечает за систему. Эта небольшая, но мощная программа выполняет основную часть процесса запуска Linux®. Она загружает программное обеспечение для управления памятью и планировщик задач, запускает драйверы устройств и запускает сценарии запуска Linux®. Когда ядро Linux® выполнит свою задачу, оно бездействует, и планировщик берёт на себя управление системой, создавая реальную пользовательскую среду. Процесс запуска Linux® эффективно заканчивается, когда пользователю предоставляется экран входа в систему.