1

我已经下载了一个 MINIX 3 操作系统,并在我的 Mac pro 上的并行桌面上运行它。MINIX3 是一个 .iso 文件,我想知道如何编写一些程序并将其打包成一个 .iso 文件。并通过虚拟机(Parallels Desktop)运行它?

我应该怎么办?

我是一名安卓开发者。

4

2 回答 2

6

编写一个操作系统,即使是一个简单的命令行,与您作为 Android 开发人员所看到的应用程序编程有很大不同。Parallels Desktop 和其他虚拟机模拟操作系统认为它在真实硬件上运行的环境,因此这相当于在原始 PC 上编写简单的操作系统。

从头开始编写操作系统必须熟悉的一些示例如下:

  • C和汇编编程知识
  • 了解目标架构(在本例中为 x86)
  • 了解特定设备的启动过程

在没有分步指南的情况下真正能够完成所有这些所需的知识需要多年的学习和硬件和软件如何交互的经验,阅读有时缺少文档的数据表等。这通常是在应用程序中无法获得的经验发展。这是因为在操作系统中,您没有很多在应用程序开发中认为理所当然的东西,例如进程、输入/输出函数、哈希表和映射等数据结构、内存管理等。

不要恐慌!您无需了解所有这些即可开始开发简单的操作系统。您可以从有关如何编写简单操作系统的教程开始,它将指导您完成所需的所有组件和步骤。有几个提供此功能的站点,但我认为最好的是OsDev Wiki。在那里,您将找到指导您完成整个过程的操作系统开发的教程和信息,以及人们制作的示例爱好操作系统。

与其专注于从 ISO 映像引导的命令行操作系统,我将阅读此处找到的 wiki 上的教程:http ://wiki.osdev.org/Bare_Bones 。这将使您开始使用从软盘映像引导的非常小的“Hello World”操作系统,比 ISO 简单得多。本教程非常深入,涉及硬件和软件交互以及启动过程。

我一直认为,优秀的开发人员,即使是编写 web 或 android 应用程序的开发人员,都了解低级方面,例如组装和硬件/软件交互。学习这些的绝对最快的方法是通过这样的教程。

祝你好运!

于 2014-10-23T06:31:33.830 回答
0

我遇到了一个名为 MikeOS 的项目(http://mikeos.sourceforge.net/

此外,我还找到了有关创建一个简单的裸机操作系统的教程,可以从 MikeOS 项目中获得灵感来扩展它。

任何具有一般编程和 Linux 技能的人都应该能够遵循它。 http://mikeos.sourceforge.net/write-your-own-os.html

于 2019-08-18T02:08:06.170 回答