Почему ядро ​​Linux называется «образ»?

62

Я часто слышу, что люди называют ядро ​​Linux образом ядра Linux, и я не могу найти ответы ни в каких поисковых системах, почему он называется образом.

Когда я думаю об изображении, я могу думать только о двух вещах, будь то копия диска или фотография. Конечно же, это не фотоизображение, так почему его называют изображением?

Тони
источник
10
Это может быть также копия области ОЗУ (что имхо в случае с ядром)
Ромео Нинов

Ответы:

60

Процесс загрузки Unix имел (имел) лишь ограниченные возможности интеллектуальной загрузки программы (перемещения, загрузки библиотек и т. Д.). Поэтому исходная программа представляла собой точное изображение, сохраненное на диске, того, что необходимо было загрузить в память и «вызвать» для запуска ядра.

Только намного позже были добавлены такие вещи, как (де) сжатие, и, хотя теперь появились более мощные загрузчики, имя образа застряло.

Энтон
источник
1
Сжатие и декомпрессия не имеют ничего общего с тем, что называют «образом». Он все еще загружается в определенную точку памяти и вызывается напрямую, как в старые времена. Промежуточный загрузчик также существовал всегда. Само ядро ​​по-прежнему является изображением, загруженным в конкретную точку памяти и вызываемым напрямую.
phyrfox
Именно поэтому ОП смутил ИМО. Сжатая версия его изображения больше не будет выглядеть как изображение (если смотреть на него без сжатия) и не будет называться изображением. Но ядро ​​все еще называется образом.
Антон
TBH не уверен, что вы правы относительно его происхождения, но ваше объяснение имеет столько смысла, что я должен выразить недовольство. ИМХО сжатое изображение все еще изображение. Способ получения изображения не имеет значения. Это изображение. Это ясно дает понять, о чем вы говорите, и, возможно, это самое главное.
Акостадинов
Интересно. Поэтому, если у меня есть файл javascript, который содержит текст объекта, содержащего кучу функций, подобных ядру, и я загружаю его через XMLHttpRequest и проверяю его на стороне NodeJS и использую сервер NodeJS для взаимодействия с ним через запросы, я могу вызвать это javascript файл Ядро Изображение: O
Дмитрий
31

Слово image также имеет определение «Файл, который содержит всю информацию, необходимую для создания рабочей рабочей копии».

Саймон Рихтер
источник
3
Это хороший однозначный термин, позволяющий избежать необходимости возиться с такими терминами, как «двоичный», «исполняемый файл», «программа», ... для обозначения фактического образа на диске.
Томас
3
Изображение - это снимок памяти.
икегами
2
Не совсем - мне нужно достаточно информации, чтобы (заново) создать полное состояние системы. Если для этого достаточно дампа памяти, то у меня есть неявные знания (начальный адрес, начальное состояние системы); если этого недостаточно, я бы не назвал дамп памяти образом .
Саймон Рихтер
20

Это не означает, что «образ» - это просто копия диска 1: 1. Точно так же, как фотография представляет реальность в точности так, как она была при съемке, изображение исполняемой программы (или ядра) представляет программу в состоянии, когда она может быть загружена (или распакована) в системную память точно так же, как она есть, а затем дал контроль над этим. Затем эта программа может запускаться из этого состояния согласованным образом. Таким образом, образ ядра Linux является образом (изображением состояния) ядра Linux, которое может запускаться само по себе после передачи ему контроля.

В настоящее время загрузчик загружает такой образ из файловой системы жесткого диска (необходим драйвер), заменяет его собой и предоставляет ему контроль. Процесс загрузки компьютера делает это несколько раз, пока операционная система, наконец, не запустится. Это называется загрузкой цепи . Или, если небольшая программа (цепочка) загружает более сложную программу, она называется начальной загрузкой .

BIOS загружает загрузчик, который также является образом, например, boot.imgв случае grub. Это boot.imgне файл (если установлен grub); это имя для части, которая находится в основной загрузочной записи (MBR). Если вы скопируете это в файл, это будет изображение в форме файла, не записанного на диск, а записанного в файл. Это также представление (изображение) самого раннего состояния, в котором grubможно загрузить остальную часть себя. grubзатем имеет свой собственный механизм, как полностью загрузить себя, загружая другие изображения. Это представлено различными этапами в grub. После этого загрузчик загружает образ ядра, заменяя его извлеченным содержимым этого файла.

хаос
источник
7

Древняя история. термин image происходит от старого термина Digital Equipment Corporation для вывода из компилятора-> компоновщика. файл представляет собой изображение, созданное путем интерпретации кода и т. д. с помощью компоновщика для создания исполняемого «образа» вашего проекта.

SkipBerne
источник
1
Я бы поддержал, если бы вы добавили ссылку-ссылку
RobAu
см. «Справочное руководство по системам RSX-11M +» корпорации Digital Equipment Corporation, DEC 1981 года. С тех пор она распространилась по всей отрасли
SkipBerne
5

В математике ядро ​​- это обратное изображение подмножества изображения некоторой карты, где подмножество равно элементу идентичности в кодомене. Я уверен, что эти имена происходят от математических понятий, поскольку они существенно связаны в различных областях математики. Учитывая, что Unix был создан в академической среде, вполне возможно, что он использует ядро ​​и образ этих слов одинаково.

Если у вас есть набор, представляющий некоторый уровень информации о «полной» ОС, если эта информация также образует группу, вы можете определить гомоморфизм группы в этом наборе или в основном сопоставить его с другими наборами, имеющими другие размеры, чем исходный набор, если они «уважают» структуру оригинального набора, которая сделала его группой. Вы можете видеть, что может быть в вашу пользу сопоставить набор с меньшим набором или подмножеством некоторого набора, где подмножество меньше.

Изображение - изображение группового гомоморфизма и в общих функциях и картах - это всего лишь подмножество некоторого набора, на чьи элементы фактически отображаются. Функция может не отображаться на каждый отдельный элемент, и эти элементы не будут включены в изображение.

Ядро - в основном только элементы из исходного набора, которые отображаются на изображение, но только отображаются на элемент идентичности на изображении. В основном элементы, которые отображаются на 0, любят вещи на изображении.

Если изображение меньше по размеру, чем исходный набор, мы видим, что несколько элементов должны отображаться в одном элементе. Так, например, в ядре может быть несколько элементов, которые отображаются на изображение, и мы уже знаем, что все они должны отображаться в 0.

Мы можем видеть, что если мы выберем исходный набор конечных последовательностей двоичных кодов или единиц и нулей, а кодомен (набор сопоставленных) также будет последовательностями двоичных кодов, то мы можем построить такие вещи тогда и только тогда, когда подходящая групповая структура может быть определено (это немного в глубине и не связано с заданным вопросом).

Таким образом, мы видим с полной уверенностью, что «ядро» и «образ» ОС полностью определены и имеют математическое значение. Независимо от, возможно, других вариантов использования терминов.

маршал ремесло
источник
По сути, ядро ​​может быть «утонченной» версией ОС или частью ОС, которая важна и может быть «абстрагирована», тогда при условии, что карта была инъективным гоморфизмом и, как известно, может обрабатывать все изображение без необходимости прочесывать все изображение. Похоже, что метод сжатия данных - это то, из чего произошли термины «ядро» и «изображение». Но на самом деле они вытекают из хорошо известных математических концепций.
маршал ремесло
3
Привет маршал. Лучше улучшить свой пост, редактируя его, а не добавляя комментарии.
Энтони Дж. - справедливость для Моники
4
Я полагаю, что вычислительное использование ядра происходит от « центральной (обычно съедобной) части ореха, особенно после удаления твердой оболочки » (см. Викисловарь ) - это маленькая внутренняя часть операционной системы; после удаления всех «внешних слоев» (GUI, командных оболочек, загружаемых драйверов) это (примерно) минимальная часть, необходимая для того, чтобы заставить / позволить оборудованию работать каким-то полезным способом.
TripeHound
Вау просто вау. Спекуляция без основы. TripeHound понял это правильно. Маршал ремесло только что догадался.
Джошуа
Пересмотрите свой "довольно определенный" ты :)
Хоббс