WikiDer > Kexec
kexec, сокращенно от ядро выполнить и аналогично вызову ядра Unix / Linux exec, это механизм Ядро Linux что позволяет загружать новый ядро из текущего. По сути, kexec пропускает загрузчик этап и аппаратное обеспечение этап инициализации, выполняемый системой прошивка (BIOS или же UEFI) и напрямую загружает новое ядро в основная память и немедленно начинает его выполнять. Это позволяет избежать длительного времени, связанного с полной перезагрузкой, и может помочь системам соответствовать требованиям высокой доступности за счет минимизации время простоя.[1][2]
Хотя это возможно, реализация такого механизма, как kexec, порождает две основные проблемы:
- Память текущего ядра перезаписывается новым ядром, а старое все еще выполняется.
- Новое ядро обычно ожидает, что все аппаратные устройства будут в четко определенном состоянии, в котором они находятся после перезагрузки системы, поскольку микропрограмма системы сбрасывает их в «нормальное» состояние. Обход реальной перезагрузки может оставить устройства в неизвестном состоянии, и новому ядру придется восстанавливаться после этого.
Поддержка разрешения только подписанный ядра для загрузки через kexec были объединены в версию 3.17 Основная линия ядра Linux, который был выпущен 5 октября 2014 года.[3] Это запрещает пользователь root загрузить произвольный код через kexec и выполнить его, дополнив Безопасная загрузка UEFI и механизмы безопасности внутри ядра для обеспечения того, чтобы только подписанные Модули ядра Linux можно вставить в работающее ядро.[4][5][6]
Kexec используется LinuxBoot для загрузки основного ядра из ядра Linux, находящегося в прошивке.
Смотрите также
- kdump (Linux) - Механизм аварийного дампа ядра Linux, который внутренне использует kexec
- Перенос ядра Функция Linux, в которой ядро может быть скомпилировано для загрузки с различных адресов памяти.
- kGraft - Технология Live patching для ядра Linux, разработанная SUSE
- kpatch - Технология Live patching для ядра Linux, разработанная Red Hat
- Ksplice - Технология Live patching для ядра Linux, разработанная Ksplice, Inc., а затем купленная Oracle
Рекомендации
- ^ Харипрасад Неллитерта (4 мая 2004 г.). «Перезагрузите Linux быстрее с помощью kexec». IBM. Архивировано из оригинал 21 января 2013 г.. Получено 5 декабря, 2013.
- ^ Дэвид Пенделл (16 августа 2008 г.). "Перезагрузитесь, как гоночный автомобиль, с kexec". linux.com. Архивировано из оригинал 14 февраля 2009 г.. Получено 5 декабря, 2013.
- ^ «Ядро Linux 3.17, раздел 1.10. Подписанные ядра kexec». kernelnewbies.org. 5 октября 2014 г.. Получено 3 ноября, 2014.
- ^ Джейк Эдж (25 июня 2014 г.). "Переделка kexec для подписей". LWN.net. Получено 9 августа, 2014.
- ^ Мэтью Гарретт (3 декабря 2013 г.). "Подрыв безопасности с помощью kexec". dreamwidth.org. Получено 5 декабря, 2013.
- ^ Кис Кук (10 декабря 2013 г.). "Живой патч ядра". Outflux.net. Получено 12 декабря, 2013.
Этот Linux-связанная статья является заглушка. Вы можете помочь Википедии расширяя это. |