1.2 DIM-SUM是什么
1.2.1 DIM-SUM的第一个版本为什么是HOT-POT
如果说目前的DIM-SUM是一个完美的操作系统,那无疑是一个谎言。但是,如果说这个操作系统就仅仅是一个茶余饭后的谈资,那无疑是另一个谎言。
最基本的,希望它可供操作系统的爱好者学习,我相信这完全没有问题。但是,我的目的不仅如此,更远大的目标是实现一款可以替代Linux的服务器操作系统。简而言之,就是一款既可以在生产环境下使用的,也可以在服务器和个人计算机上正常运行的操作系统。当然,这样的一款操作系统必然也能够运行在嵌入式设备中。例如,运行在电视、电表、摄像头、手表,以及其他一些我们能够想象到的嵌入式设备中。
任何心智正常的人,都知道实现这样的操作系统是一件很难的事情。读者可能忍不住想问:为什么你想去做这么一件很难且可能没有什么收益,也许还会让你招致耻笑的笨事呢?难道你真的是一个笨蛋?
我忍不住这样回答:
1.是的,我确实是一个笨蛋。但是古语说得好:聪明人下笨功夫!
2.正如我在《深入理解并行编程》一书的译者序中所说:
20年前,当我正式成为一名软件工程师的时候,就有一个梦想:开发一款操作系统。那时候,虽然知道Linux的存在,但是实在找不到一台可以正常安装、使用Linux的PC。因此只能阅读相关的源代码分析书而不能动手实践。
在浮躁的年代,谈论梦想可能是不合时宜的行为。然而这毕竟真的是我 20 年前的梦想,难道你想让我撒谎?
3.开源软件运动,已经为实现操作系统提供了现实可能性。首先,像Linux这样的开源操作系统提供了很好的基础,这样可以从开源软件中学习到不少的技能、方法、设计思路。其次,开源软件允许分散在各地的开发者协同工作,集思广益地开发操作系统。我在 Linux 社区中作为ARM/ZTE ARCHITECTURE的Maintainer,对此深有体会。
4.操作系统是IT行业的“核武器”。到目前为止,我们还处于“缺芯少魂”的状态,其中的“魂”就是操作系统。真正核心的软件,需要一代人,甚至几代人耐心地雕琢,而不能寄希望于短时间内产生立竿见影的效果。换句话说,要用“板凳一坐十年冷”的心态来做这件事。有了这样的心态,就不会觉得难。
5.从另一个角度来说:万古长空,一朝风月。任何难事,一旦想要去做,就需要把握当下。空谈误国,实干方能兴邦。即使这件事情很难,但是不动手永远不会有任何结果。况且,我喜欢有挑战性的事情,例如:写一个可用于生产环境的,能够替代Linux的服务器操作系统!
目前,DIM-SUM已经实现了如下功能:
1.ARM 64 QEMU小系统,含内存、时钟初始化。
2.全局优先级调度模块,调度算法类似于Linux实时调度。
3.内存管理模块,包含页面管理、Beehive分配器。
4.兼容Linux Ext3的LEXT3文件系统。
5.块设备层实现。
6.集成了LWIP网络协议栈。
7.移植了常用的内核态C库API。
8.实现了一个粗糙的命令行控制台。
总之,我认为HOT-POT是DIM-SUM操作系统的良好起点。在DIM-SUM后续的开发过程中,我怀着热切的心情,期待你参与到它的开发中来。
1.2.2 DIM-SUM欢迎什么
任何建设性对抗性质的建议、稳定“优雅”的代码、BUG 报告、测试、社区建设等,都是DIM-SUM所欢迎的!
1.2.3 DIM-SUM不欢迎什么
我们不欢迎空谈和只会抱怨的人。虽然我们知道DIM-SUM并不完善,你有很多指责它的理由,可以指出 DIM-SUM 的不足,但是请同时拿出能优化 DIM-SUM、可以正常运行的代码贡献给DIM-SUM。