Route_of_Linux
爬过六个陡坡,对Linux了如指掌
本文是极客时间App中刘超老师趣谈Linux操作系统的学习路径课程的学习笔记
抛弃旧思维习惯,熟练使用命令行
要从Windows的思维习惯,切换成Linux的命令行+文件的使用模式。
Linux中,无论做什么事情,都会有相应的命令工具,用户需要对最基本的命令有所掌握;在知道命令后,可以通过help或者man命令进行配置项和文档的查看。大部分的命令的行为模式都很像,经过练习熟练掌握后,几乎不需要搜索就可以完成大部分的操作。
爬上第一个坡后,就会看到:很有技巧的命令sed和awk、神奇的正则表达式、灵活的管道和强大的bash,也可以自动化的去处理一些事情。
推荐书籍:《鸟哥的Linux私房菜》和《Linux系统管理技术手册》
通过系统调用或者glibc,学会自己进行程序设计
命令行是别人写的程序,自己也可以写程序,即用自己的代码操作Linux,可以使用Linux系统调用,也可以使用glibc库。Linux中的系统调用非常多,每个函数都非常复杂,传入的参数、返回值、调用的方式等等都有讲究。你会发现,平时你用的一个简单的命令行程序,需要N个系统调用组合才能完成。需要掌握很多Linux操作系统的原理,否则无法理解为什么应该这样调用。
爬上第二个坡后,会发现:你曾经学习的理论是有用的。使用过fork,会理解进程树;使用了信号量,会了解进程同步机制;使用了socket,会了解网络应用层和传输层的分界线。
推荐书籍:《UNIX环境高级编程》
了解Linux内核机制,反复研习重点突破
进一步了解内核的原理,有助于你更好地使用命令行和进行程序设计,让你的运维和开发水平上升一个层次。需要先了解一下Linux的内核机制,知道基本的原理和流程即可。一旦学起来你会发现,Linux内核机制也非常复杂,而且其中相互关联。如:进程运行要分配内存,内存映射涉及文件的关联,文件的读写需要经过块设备,从文件中加载代码才能运行进程。需要把知识点反复对照,才能理清。
爬上第三个坡后,会发现:Linux这个复杂的系统也开始透明起来,可以知道背后发生的事情,可以在出现异常情况时,大概知道背后发生的事情,并在出现异常情况时,比较准确的定位到问题所在。
推荐书籍:《深入理解LINUX内核》
阅读Linux内核代码,聚焦核心逻辑和场景
阅读代码,代码是精准的。在工作中需要重点研究某方面技术的时候,如果涉及内核,这个时候了解原理已经不够了,需要查看代码。开始阅读代码时,不能在乎一城一池的的是,要聚焦于核心逻辑和使用场景。
爬上第四个坡以后,会对:操作系统的原理烂熟于心,可以有能力把现在正在做的东西和Linux内核结合起来,会有重点性突破。
推荐书籍:《Linux内核源代码情景分析》
实验定制化Linux组件,没人能阻当你成为内核开发工程师
Linux有源代码,可以参考现有的实现进行自己模块的定制。可以自己实现一个设备驱动程序,实现一个自己的系统调用,或者实现一个自己的文件系统等等。这里难度较大,细节较多。在阅读源代码时一定要仔细,一个细节的bug会导致实验失败。
爬上第五个坡以后,已经没有什么能够阻挡你成为已经一名内核开发工程师。
面向真实场景开发,实践没有终点
真正的高手都是在实战中摸爬滚打出来的。如果你是运维,仅仅熟悉上面基本的操作是不够的,生产环境会有大量的不可控因素,尤其是集群规模大的更是如此,大量的运维经验是实战来的,不能光靠读书。如果你是开发,对内核进行少量修改容易,但是一旦面临真实的场景,需要考虑各种因素,并发与并行,锁与保护,扩展性和兼容性,都需要真实项目才能练出来。

Route_of_Linux的更多相关文章
随机推荐
- JS错误写法[清除DOM]
前言 我现在总结一下我之前敲代码犯的错误,清除DOM元素,我们开始写代码吧! HTML <h1 style="font-size: 18px;font-weight: bold;col ...
- win7下安装docker
为了支持老版本的windows系统,docker官方提供了docker toolbox,让用户可以在windows10以前版本的操作系统上来体验docker. 一,安装 下载msi安装文件,一路nex ...
- Spring Boot 学习摘要--关于日志框架
date: 2020-01-05 16:20:00 updated: 2020-01-08 15:50:00 Spring Boot 学习摘要--关于日志框架 学习教程来自:B站 尚硅谷 1. 关于日 ...
- Linux下更新JDK版本
date: 2018-11-18 11:04:13 updated: 2018-11-18 11:04:13 1.输入 su 进入管理员权限 2.输入 rpm -qa | grep jdk 查看当前系 ...
- APP后台架构20191205
1.架构,架构与业务紧密相关,是有业务驱动的. 2.APP后台演进原则. App后台的架构是由业务规模驱动而演进的,App后台是为业务服务的,App后台的价值在于能为业务提供其所需要的功能,不应过度设 ...
- Codeforces Round #679 (Div. 2, based on Technocup 2021 Elimination Round 1)
考场上只做出来四道,第二天一早就写出来了E,蛮绝望的. A Finding Sasuke 水构造 #include <cstdio> #include <algorithm> ...
- LuoguP3615 如厕计划
题面 现有两个厕所,一个女士专用,一个通用,给出\(2*n\)个排成一列的人的性别 每人如厕需要一分钟,假如女厕是空的,女生中最靠前的可以直接进入. 需要通过调换顺序使得所有人都上完厕所最后的时间为n ...
- sqlsugar入门(1)-初识sugar正确打开sugar的方式
1.实例化DB public static SqlSugarClient GetDB(string s) { var ssc = new SqlSugarClient(new ConnectionCo ...
- Java学习的第十天
1.类方法 实例方法 自定义方法 2.今天使用visio不太会使用,方法覆盖不懂. 3.明天将方法剩余部分学完
- debian 安裝SSH 增加新用戶 并使用sudo
1 新建新用戶user 2 3 adduser user 4 5 passwd 123654 6 7 exit 刚安装好的Debian默认还没有sudo功能. 1.安装sudo # apt-get i ...