前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >解密中国人自己的操作系统DIM-SUM

解密中国人自己的操作系统DIM-SUM

作者头像
博文视点Broadview
发布2020-07-29 14:40:39
1.2K0
发布2020-07-29 14:40:39
举报
文章被收录于专栏:博文视点Broadview

如果说DIM-SUM操作系统是一个完美的操作系统,那无疑是一个谎言。如果说DIM-SUM操作系统只是大家茶余饭后的谈资,那无疑是另一个谎言。

在国产基础软件大发展的历史背景下,自研国产操作系统显得十分迫切和必要。2018年DIM-SUM第一个版本:HOT-POT操作系统诞生。业界同人亲切地将这个系统称为火锅操作系统。

实际上,DIM-SUM仅仅是一个快速原型操作系统,它可以运行在ARM 64 的QEMU模拟器中。用户可以随便找一台机器,通过QEMU模拟器将它运行起来。在这个原型操作系统中,实现了同步与互斥、调度、内存、中断、定时器、块设备、文件系统模块,并且有一个简单的命令行控制台。

DIM-SUM实现的功能

开源软件运动,已经为实现操作系统提供了现实可能性。首先,像Linux这样的开源操作系统提供了很好的基础,这样可以从开源软件中学习到不少的技能、方法、设计思路。其次,开源软件允许分散在全球各地的开发者协同工作、集思广益。我在Linux社区中,作为ARM/ZTEARCHITECTURE的Maintainer,对此深有体会。

操作系统是IT行业的“核武器”。到目前为止,我们还处于“缺芯少魂”的状态,其中的“魂”就是操作系统。真正核心的软件,需要一代人,甚至几代人耐心地雕琢,而不能寄希望于短时间内产生立竿见影的效果。换句话说,要用“板凳一坐十年冷”的心态来做这件事。有了这样的心态,就不会觉得难。

从另一角度来说:万古长空,一朝风月。任何难事,一旦想要去做,就需要把握当下。空谈误国,实干方能兴邦。即使这件事情很难,但是不动手永远不会有任何结果。况且,我喜欢有挑战性的事情,例如:写一个可用于生产环境的,能够替代Linux的服务器操作系统!

目前,DIM-SUM已经实现了如下功能:

  • ARM 64 QEMU小系统,含内存|时钟初始化。
  • 全局优先级调度模块,调度算法类似于Linux实时调度。
  • 内存管理模块,包含页面管理、Beehive分配器。
  • 兼容Linux Ext3的LEXT3文件系统。
  • 块设备层实现。
  • 集成了LWIP网络协议栈。
  • 移植了常用的内核态C库API。
  • 实现了一个粗糙的命令行控制台。

总之,我认为HOT-POT是DIM-SUM操作系统的良好起点。在DIM-SUM后续的开发过程中,我怀着热切的心情,期待你参与到它的开发中来。

▊ DIM-SUM欢迎什么

任何建设性、对抗性建议、稳定“优雅”的代码、BUG报告、测试、社区建设等,都是DIM-SUM欢迎的!

▊ DIM-SUM不欢迎什么

我们不欢迎空谈和只会抱怨的人。虽然我们知道DIM-SUM并不完善,你有很多指责它的理由,可以指出DIM-SUM的不足,但是请同时拿出能优化DIM-SUM、可以正常运行的代码贡献给DIM-SUM。

获得源代码

Paul E.Mckenney曾经说过:If you want to do cool things,it is necessary to invest large amounts of time learning and (especially!)practicing.

诚哉斯言!

请读者相信我这个20年传奇工匠程序员的经验:要深刻地理解像Linux操作系统中源代码这样的复杂代码,必须动手实践,对着源代码看书!

本书尽量少粘贴DIM-SUM源代码,我保证会对本书中出现的源代码进行逐行分析。这是故意为之的,目的是尽量使读者下载源代码并对照源代码阅读本书。

要获得本书配套源代码,有以下两种方式:

  • 直接通过网页下载。
  • 通过Git获取源代码。

▊ 通过网页下载源代码

通过网页下载源代码,是最简单、快捷的方式。下载好DIM-SUM的源代码之后,将下载的源代码包命名为dim-sum.20200616.tar.bz2。为了防止在下载过程中,由于网络原因导致文件损坏,可以验证源代码包的MD5值。在ubuntu16.04系统中,可以通过在命令行控制台上输入如下命令,来得到源代码包的MD5值:md5sum dim-sum.20200616.tar.bz2

正确的MD5值应当是:

9248ca8c21f3a4988ddba6426c4fdf60

关于DIM-SUM操作系统的最新消息,也会通过博客发布,有兴趣的读者可以看看。

通过网页下载源代码,可以满足阅读本书的要求。但是,它满足不了你如下的要求:

  1. 获得DIM-SUM操作系统最新的源代码。
  2. 查阅DIM-SUM操作系统的补丁记录。

下一步将讨论如何通过Git获得源代码,这也是我推荐的方式。

▊ 通过Git获取源代码

无论怎样强调Git在开源项目中的重要性都不过分。我甚至推荐读者找一本Git简明手册仔细阅读。

如系统已安装Git工具,就可以通过gitclone命令获取DIM-SUM操作系统的源代码。DIM-SUM源代码将托管到码云服务器。

这个命令会在当前目录中创建一个名为dim-sum的子目录,并将DIM-SUM操作系统的代码下载到本地。

当然,对于大多数读者来说,不仅仅想对照着源代码阅读本书,他们还希望:

  • 跟踪DIM-SUM的最新版本。
  • 查阅DIM-SUM的补丁记录,明白每一个补丁的作用,与补丁的作者联系。
  • 给DIM-SUM提交补丁。
  • 在DIM-SUM中添加自己的代码。
  • 在PC上调试DIM-SUM的代码。

本文节选自博文视点新书《自研操作系统:DIM-SUM设计与实现》

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 博文视点Broadview 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ▊ 通过网页下载源代码
  • ▊ 通过Git获取源代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档