我下载了一个MINIX 3操作系统,并在Mac pro的并行桌面上运行它。MINIX3是一个.iso文件,我想知道如何编写一些程序并将其打包为.iso文件。并通过虚拟机(Parallels Desktop)运行它?
我该怎么办?
我是一名安卓开发人员。
编写一个操作系统,即使是一个简单的命令行操作系统,也与你作为Android开发人员所看到的应用程序编程有很大不同。Parallels Desktop和其他虚拟机模拟了一个操作系统认为它在真实硬件上运行的环境,因此这相当于在原始PC上编写一个简单的操作系统。
要从头开始编写操作系统,您必须熟悉的一些示例如下:
- C与汇编编程知识
- 了解目标体系结构(在本例中为x86)
- 了解特定设备的引导过程
真正能够在没有循序渐进指南的情况下完成这一切所需的知识需要多年的学习和经验,包括硬件和软件如何交互,阅读有时缺少文档的数据表等。这通常是应用程序开发中没有获得的经验。这是因为在操作系统中,在应用程序开发中,你没有很多你认为理所当然的东西,比如进程、输入/输出函数、哈希表和映射等数据结构、内存管理等。
不要惊慌!你不需要知道所有这些就可以开始开发一个简单的操作系统。您可以从如何编写一个简单操作系统的教程开始,该教程将指导您完成所需的所有组件和步骤。有几个网站提供了这一点,但在我看来最好的是OsDev Wiki。在那里,你会发现操作系统开发的教程和信息,这些教程和信息将指导你完成整个过程,以及人们制作的业余操作系统示例。
与其把重点放在从ISO映像启动的命令行操作系统上,我不如浏览一下wiki上的教程:http://wiki.osdev.org/Bare_Bones.这将使您从一个非常简单的"Hello World"操作系统开始,该操作系统从软盘映像启动,比ISO简单得多。本教程非常深入,深入介绍了硬件和软件交互以及引导过程。
我一直认为,优秀的开发人员,即使是编写web或android应用程序的开发人员也了解组装和硬件/软件交互等低级别方面。学习这些知识的最快方法是通过这样的教程。
祝你好运!
我遇到了一个名为MikeOS的项目(http://mikeos.sourceforge.net/)
此外,我还找到了本教程,介绍如何创建一个简单的裸机操作系统,该操作系统可以从MikeOS项目中获得灵感进行扩展。
任何具有通用编程和Linux技能的人都应该能够学习它。http://mikeos.sourceforge.net/write-your-own-os.html