我有三个问题:
我的目标: 我正在尝试制作一个基本的操作系统。这将使用个人制作的引导加载程序和内核。我也会尝试从 Linux 内核(即驱动程序)中获取一些零碎的东西,并将它们集成到我的内核中。我希望创建一个 32 位类似 DOS 的操作系统来处理大多数现代计算机上的内存。我认为我不会为我的操作系统创建可执行格式,因为我的操作系统不会动态到需要它。
我的情况: 我在带有 Intel Celeron CPU 的 x86-64 windows 8 笔记本电脑上运行;我相信它使用安全启动。我将在带有 Intel Core I3 CPU 的 x86-64 台式机上测试我的操作系统。我对操作系统及其技术有一般的了解。我知道这个项目所需的 C、ASM 和计算机理论。我认为值得一提的是,我 16 岁,没有接受过计算机科学方面的正规教育。
我的研究:在谷歌搜索 C 通常编译成的内容后,我找到了机器代码、二进制、纯二进制、原始二进制、汇编和可重定位目标代码的答案。据我所知,程序集通常会组装成 PE 格式的可执行文件。我听说过 Cygwin、GCC C 和 MingW C 编译器。至于汇编程序,我听说过 FASM、MASM 和 NASM。我搜索过OSDev和OSDever等网站。
我尝试过的:我尝试设置 GCC(一个噩梦)并创建一个交叉编译器(另一个噩梦)。
结论:如您所知,我对编译器、汇编器和可执行格式感到困惑。请消除我的无知并回答我的问题。这些可能是唯一让我无法在简历上安装操作系统的原因。抱歉,我会包含更多链接,但是 stackoverflow 不会让我创建两个以上的链接。万分感谢!