嵌入式Linux 2月23日

如今的软件开发行业,服务器端市场基本被 Linux 系统占领了。移动端中的 Android 系统是基于 Linux 内核开发的,那些很火的虚拟化、消息队列、云计算、大数据等技术,都默认支持 Linux 操作系统。

 

而对软件工程师来说,也几乎一定会遇到 Linux 操作系统的应用场景:比如 Google 搜索,淘宝购物,QQ、微信聊天等,其实背后都是成千上万的 Linux 服务器在支撑。

 

可以说,打开 Linux 操作系统这扇门,你才是合格的软件工程师。如果不能熟练地操作 Linux,你基本上等于少了一半的功力,也少了一半的机会。

 

而且,越是高薪工作,对操作底层原理的考量越明显。可是很多人在学习过程中很容易迷路,主要是因为 2 方面原因:

 

  1. 操作系统涉及方方面面的知识,包括数据结构与算法、计算机组成原理、网络协议、编译原理等等 CS 专业的硬核知识,可以说是最复杂的软件系统;

  2. 理解操作系统需要理论与实践深度结合,很多具体的编程问题,比如并发、网络编程、性能调优等等,都需要你理解操作系统的工作原理。

 

Linux 上手难,学习曲线陡峭,更像一个爬坡模式。之前刘超(前网易的大佬,我偶像)总结过 Linux 学习过程,要爬的坡有六个,如下图:


Linux 操作系统太难?先爬过这 6 个陡坡_嵌入式


难点是知道了,怎么更快、更轻松地上手呢?我印象很深刻的,是超哥设计的一个“故事”假设现在做一家外包公司,目标是把这家公司做上市。其中,操作系统就是这家外包公司的老板。

 

用“上市公司”做比喻,不断地延伸这个故事,把 Linux 操作系统零散的知识点,用图谱的形式表现出来,很好诠释了 Linux 的整体学习路线,强烈建议收藏