爬过这6个坡,你就能对Linux操作系统了如指掌

2019 年 4 月 11 日

爬过这6个坡,你就能对Linux操作系统了如指掌

在平时的生活中,我们几乎时时刻刻都在使用操作系统,只是大部分时间你都意识不到它的存在。操作系统到底在背后默默地做了哪些事情,才能让我们轻松地使用电子设备呢?不知道你有没有产生过这些疑问:


  • 桌面上的图标到底是啥?凭啥我在鼠标上一双击,就会出来一个美丽的画面?这都是从哪里跑出来的?

  • 电脑怎么知道我鼠标点击的是这个地方,又是怎么知道我要输入的是这个地方?

  • 为什么我一回车,这些字符就发到遥远的另外一台机器上去了?


对于普通用户来讲,其实只要会用就行了,但是咱们作为专业人士,要深入探究一下背后的答案。操作系统其实就像一个软件外包公司,其内核就相当于这家外包公司的老板。为什么这么说呢?


假设,我们现在就是在做一家外包公司,我们的目标是把这家公司做上市。其中,操作系统就是这家外包公司的老板。我们把这家公司的发展阶段分为这样几个时期:


  • 初创期:这个老板基于开放的营商环境(x86体系结构),创办一家外包公司(系统的启动)。因为一开始没有其他员工,老板需要亲自接项目(实模式)。

  • 发展期:公司慢慢做大,项目越接越多(保护模式、多进程),为了管理各个外包项目,建立了项目管理体系(进程管理)、会议室管理体系(内存管理)、文档资料管理系统(文件系统)、售前售后体系(输入输出设备管理)。

  • 壮大期:公司越来越牛,开始促进内部项目的合作(进程间通信)和外部公司合作(网络通信)。

  • 集团化:公司的业务越来越多,会成立多家子公司(虚拟化),或者鼓励内部创业(容器化),这个时候公司就变成了集团。大管家的调度能力不再局限于一家公司,而是集团公司(Linux集群),从而成功上市(从单机操作系统到数据中心操作系统)。


把外包公司做上市的过程,就是我们对 Linux 操作系统从入门到精通的过程。要做到对 Linux 了如指掌,我认为你需要爬 6 个陡坡。在《趣谈 Linux 操作系统》这个专栏里,我会基于下面这 6 个陡坡,用“图解”和“趣谈”的形式,带你一步一步进入 Linux 操作系统的大门,让基础变成你技术生涯的左膀右臂。


第一个坡:抛弃旧的思维习惯,熟练使用 Linux 命令行


上手 Linux 的第一步,要先从 Windows 的思维习惯,切换成 Linux 的“命令行+文件”使用模式。不过,在这个专栏里,命令行并不是我们的重点,但是考虑到一些刚起步的同学,在第一部分我会简单介绍一些能够让你快速上手 Linux 的命令行。专栏每一模块的第一节,我都会有针对性地讲解这一模块的常用命令,足够你把 Linux 用起来。


第二个坡:通过系统调用或者 glibc,学会自己进行程序设计


用代码操作 Linux,可以直接使用 Linux 系统调用,也可以使用 glibc 的库。如果说使用命令行的人是吃馒头的,那写代码操作命令行的人就是做馒头的。你会发现,你平时用的一个简单的命令行,却需要 N 个系统调用组合才能完成。其中每个系统调用都要进行深入地学习、读文档、做实验。经过一段时间的学习,你已经很接近操作系统的原理了,你能看到另一番风景。


第三个坡:了解 Linux 内核机制,反复研习重点突破


进一步了解内核的原理,有助于你更好地使用命令行和进行程序设计,能让你的运维和开发水平上升一个层次。Linux 内核机制是我们这个专栏重点要讲述的部分,我会基于最新 4.x 的内核进行讲解,当然我也意识到了内核机制的复杂性,所以我选择通过故事性和图形化的方式,帮助你了解并记住这些机制。


第四个坡:阅读 Linux 内核代码,聚焦核心逻辑和场景


一旦爬上这个坡,对于操作系统的原理,你应该就掌握得比较清楚了。这个时候,你就可以有针对性地去做课题,把所学和你现在做的东西结合起来重点突破。例如你是研究虚拟化的,就重点看 KVM 的部分;如果你是研究网络的,就重点看内核协议栈的部分。


第五个坡:实验定制化 Linux 组件,已经没人能阻挡你成为内核开发工程师了


纸上得来终觉浅,绝知此事要躬行。从只看内核代码,到上手修改内核代码,这又是一个很大的坎。例如,你可以自己实现一个设备驱动程序,实现一个自己的系统调用,或者实现一个自己的文件系统等等。专栏最后一个部分,我专门设计了两个实验,帮你度过这个坎。只要跟着我的步伐进行学习,接下来,就没人能够阻挡你成为一名内核开发工程师了。


第六个坡:面向真实场景的开发,实践没有终点


说了这么多,我们都只是走出了万里长征第一步。我始终坚信,真正的高手都是在实战中摸爬滚打练出来的。


如果你是运维,仅仅熟悉上面基本的操作是不够的,生产环境会有大量的不可控因素,尤其是集群规模大的更是如此,大量的运维经验是实战来的,不能光靠读书。


如果你是开发,对内核进行少量修改容易,但是一旦面临真实的场景,需要考虑各种因素,并发与并行,锁与保护,扩展性和兼容性,都需要真实项目才能练出来。


这些内容,都出自我在极客时间的第二个专栏《趣谈 Linux 操作系统》。在接下来的四个月,我会带你一起来一场“爬坡计划”,按照这个路径稳步前进,攻克 Linux 操作系统。


值得说明的是,在专栏里,我希望用一种更轻松地方式,让你掌握 Linux 操作系统呢。我根据自己多年云架构师的经历,总结了一套独家的 Linux 操作系统学习方法论,通过“图解”和“趣谈”的方式,让你更轻松地学习 Linux 操作系统。


1、趣谈,将枯燥的基础知识结合某个场景,生动具体的讲述,帮你加深理解、巩固记忆、夯实基础。就像前面图片里描述的,我会延伸这家外包公司的故事,把它的发展分为几个阶段,并在专栏详细地逐一讲解。


2、图解一图胜千言。我会通过图谱的方式,将 Linux 复杂的概念、数据结构、流程表现出来,用一张图串起一篇文章的知识点。最终,整个专栏下来,你如果能把这些图都掌握,你的知识就会形成体系和连接。在此基础上再进行深入学习,就会如鱼得水、易如反掌。



文件操作在各个层的数据结构的关联


作者介绍


刘超,网易杭州研究院云计算技术部首席架构师,QCon2019 广州专题出品人。我有 15 年云计算领域研发及架构经验,出版过《Lucene 应用开发解密》。


极客时间的老用户都知道,我也是极客时间“趣谈网络协议”专栏的作者,这个专栏目前有超过 3 万人订阅,我收到很多用户的反馈,说非常认可我这种“像小说一样”的“趣谈”形式,讲得通俗易懂,可以更好的理解底层知识。


大家的学习热情也十分高涨,光互动留言就超过了 5 万字。在和很多同学交流后,我发现很多人希望我继续延续“趣谈”的形式,讲一讲 Linux 操作系统。这也是《趣谈 Linux 操作系统》专栏诞生的初衷。


出处:极客时间《趣谈Linux操作系统》专栏


2019 年 4 月 11 日 14:5215636
用户头像

发布了 22 篇内容, 共 32.9 次阅读, 收获喜欢 145 次。

关注

评论 1 条评论

发布
用户头像
买过了,开始学了,很不错
2019 年 04 月 11 日 15:00
回复
没有更多评论了
发现更多内容

Flink 使用大状态时的一点优化

Apache Flink

flink RocksDB

耦合层:撮合物联网的理论与实践牵手的“月老”

华为云开发者社区

AI 物联网 IoT 低耦合 华为云

移动互联网系统与应用安全国家工程实验室联合中国信息通信研究院安全研究所和智游网安公司共同发布《全国移动App风险监测评估报告》

InfoQ_11eaedef67e9

移动应用安全 大数据报告 App风险

漫画解读:唐僧师徒是如何用CDN神力,修复雷音寺官网的?

巨侠说

CDN

一文带你学习DWS数据库用户权限设计与管理

华为云开发者社区

数据库 数据 用户权限 数据安全 华为云

作业1

武鹏

Java 线程池

陈皮

北京麻辣女程序员的生存现状

北柯

阿里巴巴 阿里云 程序员 北京行动计划

从业14年的SaaS业务牛人,为你拆穿SaaS创业骗局

北柯

互联网 SaaS IT 创业者

影响地图:业务敏捷中你需要掌握的可视化力量

华为云开发者社区

敏捷 敏捷开发 业务线 需求 华为云

Java 8 中的函数式接口

陈皮

云图说|“真人?机器?傻傻分不清!” WAF Bot管理,带你慧眼辨“精”!

华为云开发者社区

bootstrap 搜索引擎 安全 防火墙 华为云

简易web性能工具

王鹏飞

总结

武鹏

第八周架构师训练营学习心得

子豪sirius

第八周架构师训练营作业

子豪sirius

2020掠夺者刀锋500搭载英特尔十代酷睿处理器硬核上阵

飞天鱼2017

MySQL主从复制详解

Simon

MySQL 主从复制

人车识别实验丨华为ModelArts VS 百度Easy DL硬核体验

华为云开发者社区

百度云 AI 车联网 物体检测 华为云

环信大学:从IT建设模式变化看客户中心发展

DT极客

3. 懂了这些,方敢在简历上说会用Jackson写JSON

YourBatman

json Jackson Fastjson

LeetCode题解:142. 环形链表 II,JavaScript,HashMap,详细注释

Lee Chen

LeetCode 前端进阶训练营

百度官方论文复现营!顶会审稿人28天手把手带你复现顶会论文

百度大脑

人工智能 百度 AI GAN 视频分类

百万并发「零拷贝」技术系列之Linux实现

码农神说

Java 架构 零拷贝

初识进程coredump(以中间件为例)异常宕机

清康

艺术鬼才,Unicode 字符还能这么玩?

楼下小黑哥

html 互联网 后端 js

判断字链表伪代码

Mr.Monkey

两个单向链表的合并判断

任小龙

智能边缘,开启中国“数”“智”新时代

飞天鱼2017

云小课|带你揭开IP地址的神秘身份

华为云开发者社区

网络安全 IP 网络 服务器 华为云

【写作群星榜】7.18~7.24 写作平台优秀作者 & 文章排名

InfoQ写作平台

写作平台 排行榜

爬过这6个坡,你就能对Linux操作系统了如指掌-InfoQ