Answers:
Unix引导过程仅具有(有限)智能加载程序(重定位,加载库等)的功能。因此,初始程序是一张精确的映像,存储在磁盘上,该映像需要将其加载到内存中并“调用”以使内核运行。
仅添加了很多以后的事情,例如(解压缩),尽管现在有了更强大的引导加载程序,但映像名称却卡住了。
图像一词也有一个定义“一个文件,其中包含产生实时工作副本所需的所有信息”。
这并不意味着“映像”只是磁盘的1:1副本。正如照片表示现实准确,因为它在拍摄时被,可执行程序(或内核)的图像表示的状态,在那里它可以在系统存储器中加载(或解压缩)的程序完全相同,因为它是和然后控制它。然后,该程序可以以一致的方式从该状态开始运行。因此,Linux内核映像是Linux内核的映像(状态图),在将控制权交给它之后便能够自行运行。
如今,引导程序从硬盘的文件系统(需要驱动程序)中加载此类映像,并用其替换自身,从而对其进行控制。计算机的启动过程会执行几次,直到操作系统最终运行。这称为链加载。或者,如果较小的程序(链式)加载了更复杂的程序,则称为bootstrapping。
BIOS加载也是图像的引导加载程序,例如boot.img
在的情况下调用grub
。那boot.img
不是文件(如果安装了grub);它是主引导记录(MBR)中零件的名称。如果将其转储到文件中,则它将是文件形式的映像,而不是原始写入磁盘,而是原始写入文件。这也是最早状态的表示(图像),在此状态下grub
它本身可以加载其余部分。grub
然后具有自己的机制,即如何通过加载其他图像来完全加载自身。这是由表示不同阶段在grub
。之后,引导加载程序通过将自身替换为该文件的提取内容来加载内核映像。
在数学上,核是某个映射图像的子集的逆图像,该子集等于共域中的恒等元。我敢肯定,这些名称是从数学概念衍生而来的,因为它们在数学的各个领域都有着重要的联系。考虑到Unix是在学术环境中派生的,因此使用这些词的内核和映像可能是相同的。
如果您有一个表示“完整”操作系统的某种级别信息的集合,并且该信息也构成一个组,则可以在该集合上定义组同态或基本上映射到其他大小不同的集合,只要原始集合他们“尊重”原始组合的结构。您可以看到将集合映射到较小的集合或某个集合的子集(其中子集较小)可能是有利的。
图像-组同态的图像以及一般的函数和映射,只是某些集合的一个子集,实际上是将其元素映射到该集合的子集。该功能可能不会映射到每个单个元素,并且这些元素不会包含在图像中。
内核-基本上,原始集中的元素仅映射到图像,但仅映射到图像中的identity元素。基本上,映射为0的元素就像图像中的东西。
如果图像的尺寸小于原始图像,则可以看到多个项目必须映射到一个元素。因此,例如,内核中可能有多个映射到图像的元素,我们已经知道它们都必须映射为0。
我们可以看到,如果我们选择原始集合为二进制或1和0的有限序列,并且选择共域(映射到)也是二进制序列,则可以并且仅当合适的组结构构造此类事物可以定义(这一点很深,与提出的问题无关)。
因此,我们可以完全确定地看到操作系统的“内核”和“映像”已完全定义并具有数学意义。独立于术语的其他用法。