-1

众所周知,操作系统需要 ac 文件才能执行。但是当我们启动内核时,首先将其解压缩,但使用 ac 函数进行解压缩。到目前为止,系统中还没有操作系统。那么这个c代码是如何执行的呢?

4

3 回答 3

1

引导加载程序负责解压和加载内核,然后将控制权交给解压和加载的内核。内核不像标准 C 可执行文件那样执行。因此,没有要求操作系统是执行 C 代码所必需的。例如,有很多嵌入式系统没有操作系统,但执行的是 C 代码。此外,引导加载程序也是用 C 编写的。执行的唯一要求是将代码加载到内存中并将控制权转移给它。

于 2016-04-26T18:48:35.747 回答
0

关于BootmgrVmlinux(以及initrd )的 Wikipedia 文章应该简要介绍该过程的工作原理。

基本上,当 BIOS 从磁盘的 MBR 加载引导加载程序 (GRUB) 时,GRUB 会将一个小型 ramdisk (initrd) 加载到内存中,这已经是一个非常轻量级的操作系统,能够处理它需要的最基本的进程:启动真正的操作系统。

于 2012-08-10T11:54:42.903 回答
0

您不需要操作系统来运行 C 代码。

让我澄清一下。

当程序由 GCC 编译时,它会生成一个目标代码,作为汇编程序的输入,汇编程序将该目标代码转换为可以由机器直接执行的二进制代码。

但如果 GCC 直接生成二进制代码,则不需要任何汇编程序或任何操作系统。因此,二进制可以直接由硬件逐条指令执行。

于 2013-03-04T07:39:32.127 回答