Skip to content

开始我们了不起的旅程! ​

芜湖,大伙好!现在终于我们可以安心的坐下来,开始我们了不起的Cinux操作系统的旅程了!

感谢大伙愿意陪我唠唠嗑,因为这个旅途注定没有终点!操作系统作为现代软件运行的一个重要基石,我不认为Operating System自己是具备终点的,直到 LLM 爆发的今天,操作系统仍然在LLM的辅助下,以Linux为例子,正在修复大量曾经没有被察觉到的bug,并且为上层软件提供更加迅猛,疾速,安全的运行环境。笔者也是在LLM的帮助下,完成了这个了不起的操作系统的旅程(之前对于我来说,写一个X64的OS,简直就是痴人说梦,没时间,也菜的抠脚= =)

我相信您在旅程的前夜,已经收拾好了东西。还请您点齐东西!

  • 我相信您应该理解了工具链的概念了!当我们拿出gcc, nm, objdump快速冒烟看东西的时候,您不会发出疑问:我靠这是啥!
  • 我相信您掌握了基本的汇编基本功,而且,不会对之感到陌生~
  • 我也相信您可以理解基本的CMake了!当然您要是觉得xmake或者是其他的构建系统也很有意思,欢迎挑战自己重新组织。其实也是我希望的!
  • 打开您的背包!一台装好 GCC 与 CMake 的 Linux 机器肯定是有的。您问Windows如何呢?实在不太好意思。我对Windows的mingw和MSVC实在不太感冒。正如同我在README说的那样。如果您喜欢的话,欢迎补充教程:Windows如何跟随开始Cinux的活!
  • 命令行不生疏哦~

哈?您问我工具链怎么装、为什么挑这几样,前置卷的工具链课讲过啦!

Q: 可以不看嘛,我想缺啥补啥? A: 当然可以,我们仍然会轻微的带过一下,您一下子反应不过来,再去对应的地方慢慢补充~

Why Cinux? 咱们市场上这么多教程,吃饱了撑着看您的嘛 ​

其实,Cinux并不是第一代,笔者冲锋了三次操作系统。第一次是笔者自己跟随郑刚老师书写的《操作系统还原真相》,也是如果您偏好于C语言和传统的nasm汇编的话,可以跟随这本书,当然代价就是享受gcc 4.6.2,也就是十几年前的工具链。

地址在这里哇,您从这儿进:CCOperateSystem

第二次就是CCOperatingSystemX64,嗯,失败品,连CLI都没出,非要考古的朋友,欢迎到我的Github找找喔。

第三次,就是隔壁的Cinux,当然也是我们这一次的主角,Cinux!

Cinux 无教学站的操作系统地址,您也从这儿进:Cinux

现在,是笔者希望化简一下自己跟LLM,无数的OS网站参考和拼杀中,捞出来的一次希望可以在阅读上,稍微顺一些的一个小旅记。

出发之前,咱们还是走平坦的大道。 ​

其实很多教程起手是让您开始美好的Bootloader,我说不太好。其实建立起来一些规范,和概念,甚至是测试,会比咱们直接动手强多了。

这是因为笔者之前就发现一个很严肃的问题,很多教程您跟着做的时候,很有可能会出一些偏差,最后孩子们这个CPU怎么疯狂死机和重启了。如果进入了长模式开启了CPU的异常处理等等,那就是天天见美好的Page Fault,或者是Double Fault,反正您看到的任何的抽象的错误。

所以,在写下第一行引导代码之前,咱们把四件武器磨好:

  • Result——让"出错了"从一个含糊的返回值,变成一个有名字、有类型的东西。
  • 格式引擎——把数字、指针、字符串变成可读的文本,只管排版,不管送去哪。
  • 断言——让"绝不该发生的事"发生时,死得明明白白。
  • 测试框架——让每一次改动在几秒内被验证,而不是开一轮虚拟机碰运气。

四件武器共同回答同一个问题:出了事,咱们能不能在第一时间知道——事发了、叫什么、在哪。答案都是"能",本站就算站稳了。

以上!咱们走吧。

r05_long_mode-2-gfc5569b · fc5569b · 2026-10-01