从1999年在Turbo C 2.0下第一次用C语言写出Hello Wolrd以来,不知不觉在IT相关行当里也混了近15年。相信所有上机写过Hello World的人当初都会有这样的好奇心:由键盘敲进去的不过是一个个普通的英文字符,C编译器是如何神奇地发现哪一行出现了什么样的语法错误,更神奇的是编译连接后为什么就能得到一个可以运行的程序,而这个可执行程序又是怎么样在操作系统上运行起来的。这些问题也一直萦绕在我脑海里,挥之不去。大学时所学的《操作系统》和《编译原理》课程似乎对这些问题给出了答案,似乎又没有。很遗憾,那时也没有人告诉我,想比较彻底地搞明白这些问题,最好的办法是去读编译器或操作系统的源代码。因为“计算机科学与技术”这一学科,虽然冠上了“科学与技术”,但实际上还是“技术”的成份要来得多些。在所有强调“技术”的工作中,“技术”通常只能来源于长期的动手实践。即便是开车倒库这样的活,也是个技术活,没有长期动手实践是倒不好车的。纸上得来终觉浅,绝知此事要躬行。而真正的牛人在大学里上完《操作系统》和《编译原理》课程后就已脱颖而出,比如大牛Linus和Chris Lattner,前者大学时就开启了他的Linux操作系统王国,而后者也在研究生期间缔造了如今在业界如日中天的LLVM编译器。Apple公司已经不动声色地把公司的Object-C编译器从GCC转成了LLVM和Clang,各位的IPhone手机中运行的代码可能正是LLVM和Clang的产物呢。Apple新推出的Swift语言背后站着的仍然是Charis Lattner和LLVM。
能写出工业水准的操作系统