今年貌似是国产操作系统的“爆发”之年,除了老牌的银河麒麟、中标麒麟、深度之外,中兴近日发布了自己的“新支点”,华为也公开了自研的操作系统“鸿蒙”。纵观这些国产操作系统,大多基于开源的Linux。那么为什么我们不可以从0开始打造一款不同于windows、Linux和macOS的桌面系统,这样做到底有多难?
要想真真正正的从0开始设计一款操作系统,至少要解决几大问题:
技术问题:处理器的管理——进程的操作和处理器调度
操作系统的核心功能之一是分配和管理CPU的计算资源,决定由哪些核心执行哪些程序的代码。比如我们在使用个人4核CPU的电脑的时候,可以一边用chrome浏览器上网、一边用网易云听着音乐、一边用迅雷下载着文件、一边用视频编辑软件渲染自己编辑好的小视频,另外后台里还跑着上百个系统相关的服务程序。
然而每个CPU的核心在某一时刻只能执行1个进程的代码,之所以4个核心能同时做这些事情,就是操作系统的调度算法在进行进程的操作和处理器调度。操作系统可以非常迅速的在这些任务之间来回切换,以达到最优化使用CPU计算资源,最大化并发执行程序代码。调度算法与操作系统的使用场景紧密联系,具体的设计可以千变万化,是决定操作系统工作效率的核心技术。
技术问题:存储器的管理——协调管理多种不同速度的存储器
操作系统的核心功能之二是如何配合程序执行,使数据和程序代码以最高的效率在CPU寄存器、内存、磁盘之间传输。寄存器、内存、磁盘都叫存储器,它们的容量差别很大、速度差别也很大。操作系统要协调这些速度不同的存储器尽可能的高效率工作,不让速度快的“闲死”、“撑死”,不让速度慢的“忙死”、“饿死”,所以要综合运用分区、段式、页式等各种存储管理技术以及缓存技术来解决这些问题。
技术问题:文件管理、系统安全性、设备管理……
除了上面两个核心的功能,操作系统还要解决文件以什么方式存放在硬盘上、如何管理、如何实现高速检索、如何实现海量文件存储等等;操作系统的安全方面要考虑如何控制用户权限、账户管理策略、密码管理策略、漏洞风险控制等等;设备管理方面要考虑如何更好的支持常用设备,提高兼容性……
非技术问题:生态
一款新操作系统,如果没有应用程序支持,那就只能是个操作系统,不会有人去用。所以操作系统在技术上“诞生”之后,面临的更大的问题是生态问题,培养一个良好的生态并不是2-3年就可以做到的。反观Android,从诞生到现在也不敢说生态成熟完整。建设一个生态的难度要大于所有的技术上遇到的问题。
总之,一个操作系统的诞生,并非我们想象中那样写写代码、搞搞开发就能轻松完成的。它是许许多多计算机科学家的心血和智慧的结晶,借鉴现有成熟的技术,是满足我们现实中对国产自主操作系统迫切需求的一个非常好的路子。从0开始做操作系统不是没有可能,而是没有必要。
举报/反馈