Как ядро ​​Linux обновляется?

Для меня проще всего было запустить:

aptitude install debian-keyring debian-archive-keyring

Ошибок больше нет:)

31
21.01.2020, 15:58
1 ответ

Когда вы обновляете ядро, вы фактически обновляете пакет ядра . В большинстве дистрибутивов Linux это просто регистрирует пакет в менеджере пакетов, добавляет новые модули в /lib/modules,добавьте initramfs и ядро ​​​​под /bootи, возможно, обновите записи загрузчика и некоторые другие действия. Обычно это не заменяет загруженное ядро ​​​​в памяти.

При загрузке само ядро ​​загружается в память. То есть, даже если файл был загружен из (, например./boot/vmlinuz)исчезает, он не нужен после первоначальной загрузки ядра.

Даже если он был необходим для чего-то, (скажем, для отладочной информации )и был заменен, любой, у кого уже есть открытый дескриптор файла, все равно сможет использовать этот файл, поскольку резервные данные не будут удалены до тех пор, пока счетчик ссылок рассматриваемого inode не станет равным 0 (само ядро ​​не нуждается в такой ссылке, поскольку оно уже загружено в память, в отличие от запуска процессов из исполняемых файлов пользовательского пространства ). Эти блоки обычно могут быть полностью освобождены с диска, если только вы не выполняете какую-либо пользовательскую -космическую программу для этого файла. Ядро Linux не выгружает свою собственную память и даже распаковывает себя на лету при запуске. Не существует способов /proc/.../exeили /proc/.../fdдля доступа к загруженному /boot/vmlinuz — ядро ​​может даже не смонтировать устройство, с которого оно было загружено, в ситуации сетевой загрузки или загрузки с USB -.

Обычно ядро ​​не обновляется. Обычно это делается при перезагрузке или во время kexec. То, что вы описываете , существует для ограниченных случаев использования, таких как kpatch , kgraft и ksplice , но в целом они могут использоваться только для небольших и целевых исправлений, а не для новых выпусков ядра основной ветки разработки.

73
27.01.2020, 19:37

Теги

Похожие вопросы