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內核的代碼里突然看到一個父親對女兒的愛,你的內心是否已經被這段刻進代碼里的愛而感動。