首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

掌握这些知识,你也可以开发出一个鸿蒙操作系统

有了操作系统,我们可以跟计算机硬件进行交互。有了操作系统,我们可以在上面使用各种编程语言编写相关的应用程序。那么,当然了,开发操作系统并不是一件很容易的事情。因为开发一个操作系统的工作里面要求的知识非常庞杂。

第1步,就是学习编程。有两种语言是必学的,一种是汇编语言,一种是c语言。那么有没有其他语言呢,那当然是有了,这主要是看你开发的操作系统是什么级别的。比如说微软就有一套模板,可以开发cosmos操作系统。这套模板允许你用c sharp来写一个操作系统。这种操作系统当然就属于学生作业一个级别的。我们这篇文章暂且不讨论这种操作系统。当然,开卷有益,去看看这个模板,也是有点收获的,至少你会感觉操作系统开发起来好简单呀。

...媒介

就是选一个运行你操作系统的媒介,你的操作系统,理论上讲可以运行在光驱上,也可以在移动硬盘上,当然啦,最常见的就是运行在电脑的硬盘上。

...支持范围

确定好你操作系统的支持方向。你可以支持用户界面,也可以只支持命令行界面,然后就是安全性方面,要不要做很多工作?如果是要连接网络,是开放性的系统的话,安全性方面一定要做很多工作。

...处理器

确定好将来你的操作系统可以运行的哪些处理器平台上。比如arm结构的,x86结构的,x86 64位的和ia-32的等等这些目前最常用的个人PC架构。

...内核

要确定你想从0开发,还是用一些现成的内核作为你的操作系统基础。比如说你可以用Linux内核来开发你的操作系统。

...启动程序

要确定你是要自己写启动程序,还是使用现成的,比如grub, lilo等等。这一部分需要对BIOS有一定的了解,比如BIOS在哪里加载的,正常模式和保护模式的区别。BIOS是硬件和软件的,可编程接口, 主要用来在电脑上将程序软件和硬件进行衔接。比如,对软盘,硬盘,光驱,键盘,显示器等外围设备的管理,都是通过BIOS系统的终端服务程序来实现的。

...编程语言

要确定开发操作系统的编程语言,效率最高的当然是用汇编或者c。汇编是必须要用到的,因为有一些非常关键的部分,比如中断调用,用汇编是最好的。内核部分肯定要用c,应用部分可以选择c++。选择和c和c++呢,就要选择相关的编译器。这个编译器将会普遍的被操作系统的使用者和开发者用到。与编译相关的,你需要了解应用程序的二进制接口。

...编程接口

确定你的应用编程接口。很好的选择是POSIX,也就是可移植操作系统接口。所有的基于Unix的操作系统,都或多或少的支持这种接口。如果你的操作系统支持这种接口的话,你就可以把Unix的应用程序移植到你的操作系统上。

值得一提的是,目前流行的操作系统,比如Linux, windows,Mac OS,都是基于Unix的操作系统。

...设计系统方向

是选择你的设计方向。操作系统可以是单片机系统,也可以是微内核操作系统。单片机系统,所有的服务都在内核里面。微内核系统是通过一个内核和守护进程来执行各种服务的。通常来说单片机系统内核更快一些,但是微内核系统有更好的容错机制和更高的可靠性。

...开源与否

可以考虑将操作系统开源,或者建立一个开发团队,这样子,通过协同作业,可以开发出更好的操作系统来,当然时间用的会更少,开发周期也就更短。

...开发模式

选择一个比较高效安全的开发模式,比如说用双启动的模式来开发和调试你的操作系统。不要轻易的擦除自己的数据。时刻都要有备份。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190613A0BDZE00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券