Linux的内核主要是用C语言编写的,还有少量的汇编语言编写的代码。Linux内核由Linux之父Linus维护并定期更新发布新版本,你可以在Linux kernel的官方网站自由下载免费使用。
Linux Kernel 官方网站
我们来看一段有意思的Linux内核代码,这段代码在Linux系统重启代码reboot.h中,学过C语言的都知道文件名后缀为.h的文件主要是对函数的声明和一些变量的定义。
首先我们使用curl命令来下载最新稳定版Linux内核:
下载完成后,使用xz和tar命令解压缩文件名后缀为.tar.xz的Linux kernel软件包:
解压缩.tar.xz压缩包
使用grep命令过滤在reboot.h中的MAGIC变量值:
使用grep命令在reboot.h中过滤MAGIC变量
使用printf命令将上面四个MAGIC变量定义的值由十六进制转化为十进制:
Printf命令将16进制变量值转换成十进制
转换后的十进制数字代表的是什么意思呢?有人已经成功破解了这四个10进制数字串的含义,他们分别是Linux之父Linus的生日和他三个女儿的生日。
- 28121969 ( 28-12-1969) - Birthday of Linus
- 5121996 (5-12-1996) - Birthday of Patricia Miranda, Linus’ first daughter
- 16041998 (16-04-1998) - Birthday of Daniela Yolanda, Linus’ second daughter
- 20112000 (20-11-2000) - Birthday of Celeste Amanda, Linus’ third daughter
作为Linux之父,没人愿意去反对Linus有意将自己和他三个女儿的生日写进Linux系统重启的代码里,每当系统重启时这四个魔术值都会被调用,如果避开这四个魔术值,系统将无法正常重启,重启就是重生。Unix之父肯•汤普森在老婆带孩子回娘家的几个月里,编写了Unix内核,两位大神都没有将自己的劳动成果当成摇钱树,而是无私奉献给了全人类,他们至今过着普通人的生活。
当你在Linux内核的代码里突然看到一个父亲对女儿的爱,你的内心是否已经被这段刻进代码里的爱而感动。