Jump to content

vmlinux

Процесс загрузки и распаковки ядра Linux

vmlinux — это статически связанный исполняемый файл, содержащий ядро ​​Linux в одном из форматов объектных файлов, поддерживаемых Linux, включая формат исполняемых и связываемых файлов (ELF) и общий формат объектных файлов (COFF). vmlinux Файл может потребоваться для отладки ядра , создания таблицы символов его необходимо сделать загрузочным, или других операций, но перед использованием в качестве ядра операционной системы добавив заголовок мультизагрузки , загрузочный сектор и процедуры настройки.

Этимология

[ редактировать ]

Традиционно платформы UNIX называли образом ядра. /unix. С развитием виртуальной памяти ядра, поддерживающие эту функцию, получили vm- префикс для их различения. Имя vmlinux является мутацией vmunix , тогда как в vmlinuz письмо z в конце означает, что он сжат (например, gzipped ). [1]

Расположение

[ редактировать ]

Традиционно ядро ​​располагалось в корневом каталоге иерархии файловой системы; загрузчик должен использовать BIOS драйверы однако, поскольку для доступа к жесткому диску , ограничения некоторых систем i386 означали, что адресными были только первые 1024 цилиндра жесткого диска .

Чтобы преодолеть эту проблему, дистрибьюторы Linux рекомендовали пользователям создавать раздел в начале своих дисков специально для хранения файлов загрузчика и ядра. GRUB , LILO и SYSLINUX являются распространенными загрузчиками .

По соглашению этот раздел монтируется в иерархии файловой системы как /boot. Позже это было стандартизировано стандартом иерархии файловой системы (FHS), который теперь требует, чтобы образ ядра Linux располагался либо в / или /boot, хотя технических ограничений на это не существует. [2]

Традиционно при создании загрузочного образа ядра ядро ​​также сжимается с помощью gzip или, начиная с Linux 2.6.30, [3] используя LZMA или bzip2 очень маленькой заглушки для распаковки , что требует включения в результирующий образ . Заглушка распаковывает код ядра, в некоторых системах выводит точки на консоль для обозначения прогресса, а затем продолжает процесс загрузки. Поддержка ЛЗО , [4] хз , [5] LZ4 [6] и зстд [7] сжатие было добавлено позже.

Процедура распаковки играет незначительную роль во время загрузки, и до разработки bzImage ограничения по размеру некоторых архитектур, особенно i386, были чрезвычайно ограничивающими, что делало сжатие необходимым.

В архитектуре SPARC файл vmlinux сжимается с помощью простого gzip , поскольку загрузчик SILO прозрачно распаковывает сжатые gzip образы.

Имя файла загрузочного образа не имеет значения, но многие популярные дистрибутивы используют vmlinuz .

Анатомия bzImage

По мере развития ядра Linux размер ядер, генерируемых пользователями, вышел за пределы, налагаемые некоторыми архитектурами, где пространство, доступное для хранения сжатого кода ядра, ограничено. Формат bzImage ( big zImage ) был разработан для преодоления этого ограничения за счет разделения ядра на несмежные области памяти . [ нужна ссылка ]

BzImage сжимался с помощью gzip до Linux 2.6.30. [3] который представил больше алгоритмов . Хотя bz префикс может указывать на то, что используется сжатие bzip2 , но это не так. [ нужна ссылка ] (Пакет bzip2 часто распространяется вместе с инструментами, имеющими префикс bz, такой как bzless, bzcat, и т. д.)

Файл bzImage имеет определенный формат. Он содержит объединенные bootsect.o + setup.o + misc.o + piggy.o. [8] piggy.o содержит заархивированный файл vmlinux в разделе данных. Сценарий extract-vmlinux найдено под scripts/ в исходниках ядра распаковывает образ ядра. Некоторые дистрибутивы (например, Red Hat и клоны) могут поставляться с kernel-debuginfo RPM, содержащий vmlinux файл для соответствующего RPM ядра, и обычно он устанавливается под /usr/lib/debug/lib/modules/`uname -r`/vmlinux или /usr/lib/debug/lib64/modules/`uname -r`/vmlinux.

См. также

[ редактировать ]

Примечания и ссылки

[ редактировать ]
  1. ^ «Определение vmlinuz» . www.linfo.org . Бельвью Линукс. 29 марта 2005 года . Проверено 21 июня 2015 г.
  2. ^ «Раздел 3.5.2 — /boot: Статические файлы загрузчика». ФХС 2.3 . 29 января 2004 г. Проверено 11 марта 2014 г. Ядро операционной системы должно находиться в каталоге / или /boot.
  3. ^ Jump up to: а б В Linux 2.6.30, выпущенном 9 июня 2009 г., добавлена ​​поддержка сжатия образа ядра с помощью алгоритмов LZMA и bzip2 [1].
  4. ^ Linux 2.6.33, выпущенный 24 февраля 2010 г., добавлена ​​поддержка сжатия образа ядра с помощью LZO [2]
  5. ^ В Linux 2.6.38, выпущенном 14 марта 2011 г., добавлена ​​поддержка сжатия образа ядра с помощью xz [3]
  6. ^ Linux 3.11, выпущенный 2 сентября 2013 г., добавлена ​​поддержка сжатия образа ядра с помощью LZ4 [4]
  7. ^ В Linux 5.9, выпущенном 11 октября 2020 г., добавлена ​​поддержка сжатия образа ядра, initrd и initramfs с помощью zstd [5]
  8. ^ Янн Дроно (28 сентября 1999 г.). «Re: Распаковка bzImage» . LKML (список рассылки). ZImage содержит bootsect.o + setup.o + misc.o + piggy.o.

Дальнейшее чтение

[ редактировать ]
  • Алавор Васудеван (15 августа 2003 г.). «10. Информация о файлах ядра». HOWTO по ядру Linux . Архивировано из оригинала 10 октября 2017 г. Проверено 11 марта 2014 г.
  • Даниэль Пьер Бове (3 января 2013 г.). «Специальные разделы в двоичных файлах Linux» . LWN.net . все специальные разделы, появляющиеся в ядре Linux, в конечном итоге упаковываются в один из сегментов, определенных в заголовке ELF vmlinux. Каждый специальный раздел выполняет определенную цель.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 9bb6731eff52722b7d857ccf7ee8956a__1714974480
URL1:https://arc.ask3.ru/arc/aa/9b/6a/9bb6731eff52722b7d857ccf7ee8956a.html
Заголовок, (Title) документа по адресу, URL1:
vmlinux - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)