【问题标题】:How to write a simple command line OS?如何编写一个简单的命令行操作系统?
【发布时间】:2014-10-23 03:50:52
【问题描述】:

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

我该怎么办?

我是一名 Android 开发人员。

【问题讨论】:

标签: operating-system minix


【解决方案1】:

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

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

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

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

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

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

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

祝你好运!

【讨论】:

  • 非常感谢,我确实也觉得这太难太复杂了。但我会尽力而为。
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-20
    • 2013-02-01
    • 2014-01-23
    相关资源
    最近更新 更多