【发布时间】:2011-08-28 23:26:48
【问题描述】:
我正在尝试在 C++ 上编写完整的独立于操作系统的程序。我想在启动操作系统(即 Windows)之前加载程序。我试图用我的简单“Hello World”程序替换 MBR,但没有任何反应,我丢失了虚拟硬盘的分区表。 我觉得应该把C++编译器写到MBR直接执行程序或者源代码。
问。编译器为 EXE 格式,因此需要 Windows 或 DOS。可以写在MBR上吗?
问。 C++ 程序需要 DOS 平台。是否可以在没有任何操作系统的情况下运行?
我正在尝试编写一个引导加载程序和一些相同类型的程序。
【问题讨论】:
-
MBR 只有 512 字节。你将如何为它编写编译器?此外,编译器需要操作系统设施,以便它可以读取和写入文件。实际上,您需要操作系统来编写“Hello World”。你的想法是行不通的。
-
你太离谱了...如果你不能将“hello world”程序放入 MBR,你将如何安装解释器?
-
我建议您查看一些现有的引导加载程序,例如GRUB:gnu.org/software/grub - 它部分是用 C 语言编写的。
-
我猜standard reference 不会受伤...
-
您不能使用 c/c++,因为它们需要操作系统的内存管理。寻找assembler86.de(警告:需要oldscool x86,不支持64-cpu),您可以轻松地将“hello world”编写为MBR(需要5行代码)。 Hexworkshop 让您可以打开一个驱动器,将 MBR 放置到 USB 棒或“软盘”上。
标签: c++ operating-system mbr