如果我们考虑C语言,它直接编译处理器指令中的代码。因此,程序在哪个处理器上执行并不重要。但是如果我们考虑汇编语言,它特定于它正在执行的处理器。所以,根据这个,如果我们用 C 编写程序,并使其成为可 Bootstrap 。使用的处理器应该没有问题,&程序应该立即运行,而且它也确实运行没有任何问题。那为什么会这样,Microsoft Windows 需要驱动程序才能使用 CPU(您可以查看设备管理器,其中安装了正在使用的 CPU 的驱动程序)。如果是一个简单的可 Bootstrap ,则无需驱动程序即可编写、编译和执行。那为什么windows要安装CPU驱动呢?
您也许可以这样做,但前提是您的程序不执行任何 I/O,即不写入屏幕、不访问磁盘等。
要制作一个实际执行某些操作的 C 程序,它需要执行一些 I/O(至少将“Hello world”发送到屏幕、LED 矩阵或串行端口)。 I/O 管理既可以包含在您的程序中,因为它在嵌入式设备中很常见,也可以以您的程序加载和调用的共享库的形式提供给它,由操作系统管理。
也就是说,您确实可以在许多环境中制作、编译和运行一个简单的程序作为 Bootstrap ,前提是它需要的所有 I/O 例程都包含在可执行文件中,并且有一个工具链可以使用您的 C 程序,并为您提供适用于所需平台的可执行启动镜像。
另一方面,Windows 没有让您使用 CPU 的设备驱动程序。您看到的名为“CPU”的设备驱动程序用于管理诸如 IO APIC 之类的东西,以路由中断;本地 APIC,以启用多核处理、虚拟化、NX 位等多种功能。你看...碰巧 CPU 内部有一些 I/O 设备,因此该设备驱动程序用于管理它们。