我之前在频道里推荐过一些可以自学的网课,其中包括一门操作系统网课MIT 6.828。该课程教学操作系统为Unix改编的xv6,xv6虽然只有几千行代码,但是已经涵盖了操作系统最核心的运作原理,是很好的学习资源。
接下来可以学习一下Linux的内核。在此,我推荐一本20年前出版的书——Understanding the Linux Kernel(第一版出版于2000年,最新的第三版出版于2005年)。如果6.828课程认真完成的话,这本书是不难读进去的。
这本书(第三版)以linux-2.6.11为对象,进行了深入到源码的讲解。别看这个内核的版本老,Linux的许多核心设计都已经确定下来了,系统调用也实现了200多个(目前的6.x版本内核实现了500多个),同时早期版本的代码清晰,没那么多弯弯绕绕,比较适合拿来阅读学习。
对于想把写代码作为终身爱好/事业的朋友来说,我特别推荐你投资一些时间到操作系统内核的学习上,毕竟一次理解终身受益(越早学习越好),它能让你写代码写得非常自信,让你不再惧怕任何新生的技术……另外,网络协议也是如此,这里面有很多东西可以聊一聊,但限于篇幅有限,未来再发一些技术评论和推荐。
接下来可以学习一下Linux的内核。在此,我推荐一本20年前出版的书——Understanding the Linux Kernel(第一版出版于2000年,最新的第三版出版于2005年)。如果6.828课程认真完成的话,这本书是不难读进去的。
这本书(第三版)以linux-2.6.11为对象,进行了深入到源码的讲解。别看这个内核的版本老,Linux的许多核心设计都已经确定下来了,系统调用也实现了200多个(目前的6.x版本内核实现了500多个),同时早期版本的代码清晰,没那么多弯弯绕绕,比较适合拿来阅读学习。
对于想把写代码作为终身爱好/事业的朋友来说,我特别推荐你投资一些时间到操作系统内核的学习上,毕竟一次理解终身受益(越早学习越好),它能让你写代码写得非常自信,让你不再惧怕任何新生的技术……另外,网络协议也是如此,这里面有很多东西可以聊一聊,但限于篇幅有限,未来再发一些技术评论和推荐。