精子生于 1995 年,英文 ID jysperm.
没有当年那么宏伟的目标了
人一生就那么长,很多时候必须妥协——和时间妥协。
突然想起知乎上有两个问题:
- 世间有那么多美丽的女子,可我只能得到其中一个,每想到此,总是郁郁不得欢。
- 世界上有那么多好书好电影好动漫注定看不完,我们对这个事实该持何种态度?
还有一个回答:
客亦知夫水与月乎?逝者如斯,而未尝往也;盈虚者如彼,而卒莫消长也,盖将自其变者而观之,则天地曾不能以一瞬;自其不变者而观之,则物与我皆无尽也,而又何羡乎?且夫天地之间,物各有主,苟非吾之所有,虽一毫而莫取。惟江上之清风,与山间之明月,耳得之而为声,目遇之而成色,取之无禁,用之不竭,是造物者之无尽藏也,而吾与子之所共适。
扯远了,其实这篇日志是用来挖坑的,前面只是给我还没填的坑找个借口。
想来想去,有三个轮子是必须要造的,以至于零毫秒都要退后,不然以后都不好意思说自己会 C++.
操作系统,编译器,数据结构。
写一个操作系统的想法在我初接触编程的时候已经有了,当时和小伙伴们设想得很宏大,也许也是当时知道自己不可能实现吧。
现在虽然一个操作系统的图景在我脑中并不明朗,但是我已经很清楚去哪去查找这些知识了。
要写一个仅实现了最基本功能的操作系统并不难不是么,去年还刚刚有一本译自日文版的<30 天自制操作系统>.
当然,没有当年那么宏伟的目标了,只是当成一个玩具来写而已,我只打算实现 4 个部分:内存管理,进程管理,文件系统,TCP/IP 网络。
前 3 个应该说没有什么选择的余地吧,都是一个操作系统的必须组成部分,而网络部分,我还是非常希望实现一下的。
我打算自己设计一种编程语言,当然,也是当成玩具来设计,一开始我打算 JSON Based, 后来想想,JSON 还是表现能力有限,目前对于语系还没太多想法。
编译器分三个部分,由语言至中间字节码,由字节码自本地代码,字节码的解释器。
打算不借助其他工具,完全自行实现,这个工作量应该和操作系统还是差不多的。
数据结构这个要简单多了,就是用 C 和 C++ 各写一遍常见的数据结构。
用原始的 Makefile, 再调研调研 C++ 库的二进制兼容性有多么不堪。