Я играл с Grub из его командной строки, я заметил кое-что, что меня уловило, я перечислил устройства с помощью команды Grub ls
и Я заметил, что есть виртуальное устройство с именем (proc):
grub> ls
(proc) (hd0) (hd0, msdos1)
Интересным аспектом устройства (proc)
является то, что оно содержит сжатое ядро Linux, и его структура похожа на корневую. каталог,
(grub)> ls (proc) /
Device proc: Filesystem type procfs - Sector size 512B - Total size 0Kid
lost+found/ swapfile etc/ bin/ boot/ dev/ home/ lib/ lib64/ mnt/ opt/
vmlinuz initrd.img
--snip--
Я пришел к выводу, что (proc) - это файловая система в памяти, где Grub монтирует свою собственную корневую файловую систему, мне кажется, что grub также использует файловую систему proc, которая обычно встречается в ядре Linux, в качестве своей корневой файловой системы. Что такое устройство (proc)
в Grub и почему оно там?
Нет, загрузчик Grub 2 не является модифицированным ядром Linux. У него есть собственная кодовая база, и вы можете прочитать больше о Grub 2 в этой статье Википедии.
Почему тогда используется папка proc? Ответ :Файловая система procfs не является чем-то специфичным для Linux. Подобные подходы используются в BSD и других ОС, совместимых с POSIX (, читайте здесь).
Grub 2 должен управлять ресурсами, такими как дисковые устройства (, чтобы загружать ядра ), ввод с помощью мыши и клавиатуры. Он должен читать и понимать различные файловые форматы (, такие как формат ELF ), и запускать процессы распаковки, например, для ядра Linux.
Вот почему Grub 2 по своей функциональности является подмножеством того, что мы называем операционной системой (не поймите неправильно :это не на самом деле ОС )и разработчики, возможно, решили использовать такие procfs для управления вещами.
Редактировать:
Обратите внимание, что команда Grub ls /
не предоставляет содержимое корневой папки в файловой системе -памяти Grub. Внутри оболочки Grub моей машины с Ubuntu он просто предоставляет содержимое корневого каталога моего основного загрузочного диска. Это означает, что упомянутый выше файл linuz
— это просто ядро, которое будет загружаться grub...