操作系统就是让人与电脑硬件进行互动。操作系统是由成百上千条代码构成的,通常由C、C++和集成程序语言编写而成。 ## 步骤 ### 1 开始之前学会编程。 集成语言是必须的。另一种补充的低级语言,如C语言也是强力推荐的。 ### 2 选择你想把你的操作系统搭载到什么媒体。 可以是CD驱动、DVD驱动、闪盘驱动、硬盘驱动,或是另一台电脑驱动。 ### 3 决定你想让你的操作系统干什么。 是否整个操作系统都配有图形用户界面(GUI)或是更加动漫式的。开始之前你需要了解你做的是哪个方向。 ### 4 选择你的操作系统支持哪种处理器平台。 AI-32 和x86_64 是最常用的个人电脑平台,你最好选择它们。 ### 5 选择是否由自己从头做起,还是按照现有的核心自己往上建立。 比如,Linux核心就是设计给那些想要在其之上建立他们自己的Linux版本的人的。 ### 6 选择是否要使用自己的引导装载程序或做一个预创建的程序,比如统一引导装载程序 (GRUB)。 由于编写你的引导装载程序需要扩展对硬件和BIOS的知识,因此要把它推到实际的核心编程之后。 ### 7 决定用哪种程序语言。 尽管用如Pascal或BASIC语言也可以创建操作系统,但你最好还是用C语言或集成语言。集成语言绝对是必须的,操作系统至关重要的部分需要它。另一方面,C++语言也是关键的,但它需要完整的操作系统来运行。 要用C或C++代码编写操作系统,当然,你需要使用一个编译程序。因此,不论这些指南是软件附带的,还是可以从经销商的网上下载,你都应该阅读用户指南/手册/文档,来选择你的C/C++编译程序。你也需要了解关于编译程序的很多复杂问题,对于C++,你应该了解编译程序的识别编码模式和它的ABI。你需要懂多种可执行的格式(ELF、PE、COFF、纯二进制等等,并且要懂得Windows专有的格式,PE (.exe)是受版权保护的。 ### 8 选择你的应用程序界面(API)。 一个好的API选择就是POSIX,因为它已经编译好了。所有的Unix系统都部分支持POSIX,因此,把Unix程序植入你的操作系统并不重要。 ### 9 决定你的设计。 有单片核心和微核心可供选择。单片核心可执行核心上的一切服务,而微核心是一个小的核心,其结合了用户后台进程,进程可以执行服务。通常而言,单片核心更快,但是微核心故障隔离和可靠性更好。 ### 10 考虑用团队发展和工作。 这种方式可以花更少的时间解决更多的问题,而且可以更快造出更好的操作系统。br> ### 11 不要完全擦除你的硬盘。 记住,擦除你的硬盘会永久清除你的所有数据!用GRUB或其他启动管理器来用另一个操作系统做双启动系统,直到你自己的操作系统完全可以用了。 ### 12 从小地方开始。 在进行内存管理和多进程任务之前,从小地方开始,如现实文本和中断。 ### 13 保存最新工作源的备份。 这样可以预防你当前的操作系统版本或是你当前的工作出问题。如果你的电脑死机且无法启动了,用副本进行工作是个好主意,这样就可以排除故障了。 ### 14 考虑用虚拟机测试你的新操作系统。 不要每次做出修改后就重启电脑,而是要把文件从你的电脑传输到虚拟机上,你可以用虚拟机应用来运行你的操作系统,同时当前的操作系统也是运行的。VM应用包括VMWare (它也有一个免费使用的服务器产品),另一个开源的选择就是Bochs,微软虚拟PC(不能与Linux兼容),还有xVM VirtualBox。 ### 15 发布一个"候补版本",这样可以让用户报告给你操作系统的潜在问题。 ### 16 一个操作系统可以是用户友好型的,因此增添一点用户友好特点,把这些整合进你的设计。