幸好大学学过操作系统,顺利过关入职了。当时还纳闷,我做开发,掌握语言不就好了,为什么还要掌握操作系统。
入职工作后我恍然大悟:弄懂了操作系统解决问题的思路,遇到问题就不至于两眼一抹黑。
在我看来,每一个程序员都应该深入研究操作系统的原理。为什么这么说呢?
1. 打开 Linux 操作系统这扇门,你才是合格的软件工程师。根据 2018 年W3Techs 数据统计,服务器端,Unix-Like OS 占的比例近 70%,其中 Linux 可以称得上是中流砥柱;移动端, Android 也是基于 Linux 内核,可以说,编程世界中,Linux 是主流,不会 Linux 操作系统的你会格格不入。
2. 研究操作系统内核代码,你能学到数据结构与设计模式的落地实践。在 Linux 内核里,你会看到数据结构和算法的经典使用案例。你甚至还会看到系统对并发情况保护这种复杂场景。在实践中遇到问题的时候,也可以直接参考内核中的实现。
3. 了解 Linux 操作系统生态,能让你事半功倍地学会新技术。Linux 最大的优点就是开源。无数优秀软件运行在 Linux 上,比如数据 MySQL、消息队列 RabbitMQ、大数据 Hadoop、虚拟化 KVM 等等,学习 Linux,你可以亲密接触大牛思想,这对于你个人的技术进步和职业发展都非常有益。
可以说,如果想在技术之路上走得更远,找到更高薪的工作,深入地学习并掌握操作系统是必经之路。可是很多人在学习过程中很容易迷路,主要有下面两个原因:
1. 操作系统涉及方方面面的知识,包括数据结构与算法、计算机组成原理、网络协议、编译原理等等 CS 专业的硬核知识,可以说是最复杂的软件系统;
2. 理解操作系统更需要理论与实践深度结合,很多具体的编程问题,比如并发、网络编程、性能调优等等,都需要你理解操作系统的工作原理。
我一直希望有一种方式,可以生动有趣地学习 Linux 操作系统,更快地上手。直到我发现了下面这张图,用“上市公司”的比喻,把 Linux 操作系统零散的知识点用图谱的形式表现出来,很好诠释了 Linux 的学习路线,太形象了!
上图出自刘超《趣谈 Linux 操作系统》,如果你想轻松有趣地系统学习操作系统,推荐你刘超老师最近在极客时间开的专栏《趣谈 Linux 操作系统》。
他是网易杭州研究院云计算技术部首席架构师,有 15 年云计算领域研发及架构经验,出版过《Lucene 应用开发解密》,QCon2019 广州专题出品人。
去年,他在极客时间开了个 “趣谈网络协议” 专栏,这个专栏目前有超过 3 万人订阅。我非常认可他这种 “像小说一样” 的 “趣谈” 形式,讲得通俗易懂,可以让人更好的理解底层知识。写得也很到位,我刷了 3 遍,后面还准备再刷。
大家的学习热情也十分高涨,光互动留言就超过了 5 万字。很多同学希望刘超老师再延续 “趣谈” 的形式,开一门 Linux 操作系统的课程。据说经过半年时间的打磨,这门《趣谈 Linux 操作系统》终于上线了,我迫不及待地想要推荐给你。
第二个特色是图解,一图胜千言。专栏会通过图的方式,将 Linux 复杂的概念、数据结构、流程表现出来,用一张图串起一篇文章的知识点。比如下面刘超老师画的图,讲了文件操作在各个层的数据结构的关联,我一下就理解了。
上图出自刘超《趣谈 Linux 操作系统》专栏
可以说,学完这个专栏,你将收获:
1. 快速上手 Linux 操作系统
2. 趣味图解内核工作原理
3. 熟练掌握程序运行机制
4. 讲练结合修炼底层能力