今年貌似是国产操作系统的“爆发”之年,除了老牌的银河麒麟、中标麒麟、深度之外,中兴近日发布了自己的“新支点”,华为也公开了自研的操作系统“鸿蒙”。纵观这些国产操作系统,大多基于开源的Linux。那么为什么我们不可以从0开始打造一款不同于windows、Linux和macOS的桌面系统,这样做到底有多难?

要想真真正正的从0开始设计一款操作系统,至少要解决几大问题:

技术问题:处理器的管理——进程的操作和处理器调度

操作系统的核心功能之一是分配和管理CPU的计算资源,决定由哪些核心执行哪些程序的代码。比如我们在使用个人4核CPU的电脑的时候,可以一边用chrome浏览器上网、一边用网易云听着音乐、一边用迅雷下载着文件、一边用视频编辑软件渲染自己编辑好的小视频,另外后台里还跑着上百个系统相关的服务程序。

然而每个CPU的核心在某一时刻只能执行1个进程的代码,之所以4个核心能同时做这些事情,就是操作系统的调度算法在进行进程的操作和处理器调度。操作系统可以非常迅速的在这些任务之间来回切换,以达到最优化使用CPU计算资源,最大化并发执行程序代码。调度算法与操作系统的使用场景紧密联系,具体的设计可以千变万化,是决定操作系统工作效率的核心技术。

技术问题:存储器的管理——协调管理多种不同速度的存储器

操作系统的核心功能之二是如何配合程序执行,使数据和程序代码以最高的效率在CPU寄存器、内存、磁盘之间传输。寄存器、内存、磁盘都叫存储器,它们的容量差别很大、速度差别也很大。操作系统要协调这些速度不同的存储器尽可能的高效率工作,不让速度快的“闲死”、“撑死”,不让速度慢的“忙死”、“饿死”,所以要综合运用分区、段式、页式等各种存储管理技术以及缓存技术来解决这些问题。

技术问题:文件管理、系统安全性、设备管理……

除了上面两个核心的功能,操作系统还要解决文件以什么方式存放在硬盘上、如何管理、如何实现高速检索、如何实现海量文件存储等等;操作系统的安全方面要考虑如何控制用户权限、账户管理策略、密码管理策略、漏洞风险控制等等;设备管理方面要考虑如何更好的支持常用设备,提高兼容性……

非技术问题:生态

一款新操作系统,如果没有应用程序支持,那就只能是个操作系统,不会有人去用。所以操作系统在技术上“诞生”之后,面临的更大的问题是生态问题,培养一个良好的生态并不是2-3年就可以做到的。反观Android,从诞生到现在也不敢说生态成熟完整。建设一个生态的难度要大于所有的技术上遇到的问题。

总之,一个操作系统的诞生,并非我们想象中那样写写代码、搞搞开发就能轻松完成的。它是许许多多计算机科学家的心血和智慧的结晶,借鉴现有成熟的技术,是满足我们现实中对国产自主操作系统迫切需求的一个非常好的路子。从0开始做操作系统不是没有可能,而是没有必要。

举报/反馈

国产操作系统和linux 之间的关系,为何国产系统大多基于开源Linux?操作系统从0做起到底有多难?...相关推荐

  1. 国产操作系统和Linux

    一,简介 现在市面上有很多国产操作系统,都是在linux基础上做二次开发.现在很多单位也在采购,平时也在使用,那就简单了解一下,以下内容,都属于瞎胡说. 开发操作系统,有两条路线: 1,从底层开始自己 ...

  2. 国产操作系统和CPU一览

  3. linux上搭载was应用上传中文文件,受支持的Linux操作系统和WAS ND 9.0安装部署文档的资料说明...

    本文档的主要内容详细介绍的是受支持的Linux操作系统和WAS ND 9.0安装部署文档的资料说明. 从was9.0开始支持的最低版本的red hat Linux系统为6.6且仅支持64位操作系统 计 ...

  4. 推荐一本经典的操作系统和Linux原理书

    总是有童鞋问我看Linux内核和OS原理哪本书好,我的推荐是: operating systems 3 easy pieces. 这本书的网站是: http://pages.cs.wisc.edu/~ ...

  5. 对鸿蒙操作系统和AI Camera Hi3516dDV300 开发过程的记录和理解

    对鸿蒙操作系统和AI Camera Hi3516dDV300 开发过程的记录和理解 写在前面 鸿蒙的资料比较少,各方面出现报错之后可能无法解决,所以在开始开发的时候,千万不要乱搞,不然会出现很多重大错 ...

  6. 《uCOS51移植心得》---七年前之《快快乐乐跟我学51单片机操作系统和IP栈》

    http://www.amobbs.com/forum.php?mod=viewthread&tid=3396563 <uCOS51移植心得>---七年前之<快快乐乐跟我学5 ...

  7. 论GNU、Linux和GNU/Linux之间的关系

    相信很多人看到了这个标题就会产生疑问,这篇文章到底要讲什么东西?在回答这个问题之前,我先提出几个问题? 1. 什么是Linux? 2. 什么是GNU? 3. GNU/Linux是什么玩意儿? 在回答了 ...

  8. QNX操作系统和QNX Hypervisor简介

    概述 QNX操作系统和QNX Hypervisor是由QNX Software Systems开发的两个重要的嵌入式技术.它们在嵌入式系统领域具有广泛的应用和卓越的表现. QNX OS是一个实时操作系 ...

  9. 服务器的操作系统和数据库关系,数据库、数据库管理系统和SQL之间的关系

    数据库.数据库管理系统和SQL之间的关系 数据库(DataBase,简称DB):长期存储在计算机内.有组织的.统一管理的相关数据的集合,可供各种用户共享,具有最小冗余度和较高的数据独立性. 数据库系统 ...

最新文章

  1. 推进五通一平:手淘技术核心三大容器 五大方案首次整体亮相 百川开放全面升级...
  2. poj1740 A New Stone Game
  3. 不到 10 个提升逼格的 Redis 命令
  4. docker 导入镜像_官方下一代Docker镜像构建神器 -- BuildKit
  5. mysql 从物理文件恢复_从物理文件恢复MySQL数据库
  6. Angular 如何自定义 pipe 管道以及参数传递问题
  7. asp.net模态窗口返回值
  8. CCF201703-5 引水入城(100分题解链接)
  9. mysql5.5 mysqldump_mysql5.5mysqldump原文翻译_MySQL
  10. 以计算机基础知识做二十张ppt,计算机基础知识教程.ppt
  11. 工具学习——介绍几个C++项目可用的UML工具
  12. gitlab的账号注册以及分组
  13. 国内物联网平台初探(八):中移物联网开放平台OneNet
  14. 清华大学计算机吴教授,清华大学计算机系教授吴文虎到我校讲学
  15. 【推荐系统】DUPN:Deep User Perception Network
  16. 在OpenGL中创建一个球体动画,使球体在窗口内做自由落体运动,并在撞击地面后能够返回原来高度
  17. android 高德地图设置不能旋转_高德地图行车记录仪AR导航怎么设置使用教程
  18. 购买了虚拟主机还要云服务器,购买了虚拟主机还要云服务器
  19. (嵌入式)关于arm中的存储控制器
  20. 设计一个车辆违章系统

热门文章

  1. 吉林大学22年 考研 软件学院 复试条件
  2. 拆解VCM音圈马达,原理、结构
  3. oracle导出数据到文本文件,Oracle数据直接导出到文本文件的方法
  4. 安全基础第二天:http的header和referrer
  5. 泰勒公式求极限c语言switch,泰勒公式Ç
  6. 有没有关于黄昏日落的温柔文案
  7. 对话:物流的下一个赛道
  8. 双正电气变频器说明书_【132G-A3 通用型变频器 高品质变频器】_浙江双正电气有限公司...
  9. mysql千万级数据怎么删除,MySQL 快速删除大量数据(千万级别)的几种实践方案详解...
  10. python numpy库作用_python数据分析之numpy库