В моей системе, (ubunt 16.04), когда я ввожу uname -r
, Я добираюсь
4.15.0-33-generic
когда я делаю ls /boot/*4.15.0-33* -l
, Я добираюсь
-rw-r--r-- 1 root root 1537455 8월 16 06:00 /boot/abi-4.15.0-33-generic
-rw-r--r-- 1 root root 216913 8월 16 06:00 /boot/config-4.15.0-33-generic
-rw-r--r-- 1 root root 53435246 8월 25 06:29 /boot/initrd.img-4.15.0-33-generic
-rw-r--r-- 1 root root 0 8월 16 06:00 /boot/retpoline-4.15.0-33-generic
-rw------- 1 root root 4041375 8월 16 06:00 /boot/System.map-4.15.0-33-generic
-rw------- 1 root root 8108600 8월 17 03:58 /boot/vmlinuz-4.15.0-33-generic
Я знаю, что initramfs является своего рода простой файловой системой, временно используемой во время начальной загрузки (на самом деле, заключительные файловые системы смонтированы?). Но каковы те много файлов каждый используемый для? Просто краткие объяснения ценились бы.
Вот краткое объяснение на основе собранной информации и примечание, я не являюсь опытным в этой области [Предупреждение гиковского материала]:
/boot/System.map-4.15.0-33-generic
boot/vmlinuz-4.15.0-33-generic
/boot/config-4.15.0-33-generic
Установленная конфигурация ядра. Этот файл является самым полезным при компиляции ядер в других системах или модулях устройства. Ниже небольшая выборка того, на что содержание файла похож.
CONFIG_X86=y
CONFIG_MICROCODE=m
CONFIG_X86_MSR=m
CONFIG_MATH_EMULATION=y
CONFIG_MTRR=y
CONFIG_MODULES=y
CONFIG_MODVERSIONS=y
CONFIG_SCSI_DEBUG=m
CONFIG_I2O=m
CONFIG_ARCNET_ETH=y
CONFIG_FMV18X=m
CONFIG_HPLAN_PLUS=m
CONFIG_ETH16I=m
CONFIG_NE2000=m
CONFIG_HISAX_HFC_PCI=y
CONFIG_ISDN_DRV_AVMB1_C4=m
CONFIG_USB_RIO500=m
CONFIG_QUOTA=y
CONFIG_AUTOFS_FS=m
CONFIG_ADFS_FS=m
CONFIG_AFFS_FS=m
CONFIG_HFS_FS=m
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_UMSDOS_FS=m
CONFIG_FBCON_VGA=m
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
CONFIG_SOUND=m
CONFIG_SOUND_CMPCI=m
CONFIG_AEDSP16=m
/boot/abi-4.15.0-33-generic
Общая информация: В программном обеспечении двоичный интерфейс приложений (ABI) является интерфейсом между двумя модулями программы в двоичном представлении; часто, один из этих модулей является библиотекой, или средство операционной системы и другой являются программой, которая запускается пользователем.
ABI определяет, как к структурам данных или вычислительным процедурам получают доступ в машинном коде, который является низким уровнем, аппаратно-зависимым форматом;
Конкретный Linux: ABI является рядом конвенций, который позволяет компоновщику комбинировать отдельно скомпилированные модули в одну единицу без перекомпиляции, такие как соглашения о вызовах, интерфейс машины и интерфейс операционной системы. Среди прочего ABI определяет двоичный интерфейс между этими единицами.... Преимущества приспосабливания ABI - то, что оно позволяет связывать объектные файлы, скомпилированные различными компиляторами.
Мое понимание - то, что это помогает в коммуникации между программами, кодом, библиотеки и т.д. [Представление неспециалиста]
/boot/retpoline-4.15.0-33-generic
/boot/initrd.img-4.15.0-33-generic
initramfs-4.15.0-33-generic (?)
Примечание: Для 7
и 8
:
Как Википедия приятно описывает, initrd (начальный электронный диск) схема загрузки временной файловой системы в память в процессе начальной загрузки ядра Linux. Initrd и initramfs обращаются к немного отличающимся методам достижения этого. Оба являются наиболее часто используемыми для создания приготовлений, прежде чем реальная корневая файловая система сможет быть смонтирована, но существует различие.
Initrd является блочным устройством фиксированного размера, которое требует, чтобы быть 'отформатированным' файловой системой, такой как ext2. Это находится на/dev/ram0 по умолчанию, и не может быть увеличено или сокращено.
С другой стороны, initramfs является архивом cpio, который просто распакован во время начальной загрузки к ramfs памяти. Эта память имеет динамический размер и таким образом может быть сокращена или увеличена по мере необходимости.
Таким образом, initramfs кажется лучше, правильно? Не обязательно. Основная проблема состоит в том, что это не поддерживает pivot_root. Что делает pivot_root? Это в основном 'переключается' от initrd до нового корня (unioned структуры данных, смонтированные с CD/USB), но initramfs так или иначе не способен к этому. Кажется, что была некоторая циклическая ссылка, и разработчики ядра отключили pivot_root для initramfs вообще. И без pivot_root мы наклоняемся, транспонируют текущий корень с новым. - источник - см. также это.