今年貌似是国产操作系统的“爆发”之年,除了老牌的银河麒麟、中标麒麟、深度之外,中兴近日发布了自己的“新支点”,华为也公开了自研的操作系统“鸿蒙”。纵观这些国产操作系统,大多基于开源的Linux。那么为什么我们不可以从0开始打造一款不同于windows、Linux和macOS的桌面系统,这样做到底有多难?
要想真真正正的从0开始设计一款操作系统,至少要解决几大问题:
技术问题:处理器的管理——进程的操作和处理器调度
操作系统的核心功能之一是分配和管理CPU的计算资源,决定由哪些核心执行哪些程序的代码。比如我们在使用个人4核CPU的电脑的时候,可以一边用chrome浏览器上网、一边用网易云听着音乐、一边用迅雷下载着文件、一边用视频编辑软件渲染自己编辑好的小视频,另外后台里还跑着上百个系统相关的服务程序。
然而每个CPU的核心在某一时刻只能执行1个进程的代码,之所以4个核心能同时做这些事情,就是操作系统的调度算法在进行进程的操作和处理器调度。操作系统可以非常迅速的在这些任务之间来回切换,以达到最优化使用CPU计算资源,最大化并发执行程序代码。调度算法与操作系统的使用场景紧密联系,