本文作者:凯少技术网

Linux学习之路:六大爬坡秘籍助你成为Linux高手推荐

凯少技术网 1个月前 ( 08-15 ) 44 抢沙发
摘要: Linux系统自从诞生之日起,就拥有了与众不同的命运。当然只用windows系统的你,永远也无法体验Linux之美。如今Linux占据了70%的服务器市场,不懂Linux就如同隔离...

Linux系统自从诞生之日起,就拥有了与众不同的命运。当然只用windows系统的你,永远也无法体验Linux之美。如今Linux占据了70%的服务器市场,不懂Linux就如同隔离了一个世界一样,那是你远没有过的体验。

一个不懂Linux的大妈就不是合格的大爷,很多人喜欢考个证,上面写着XX师,XX级。考证就是混个“砖家”,说懂吧,能说个一二,但是距离专业的水平相去甚远。说白了就是没有实战的历练,考证对打好基础还是有作用的,仅限于考证就失去了本来的意义。学习Linux就像咱平时玩游戏,作为主人公,你既不能完全没有任何装备和法术就开始,也不能等练级练到满,将整个地图都了解清楚才开始。你只要有一个初始装备,例如一把木剑、一套基本的法术就可以开始。先上路,之后在探索的路上,慢慢摸清地图,积累装备,训练法术,最终PK终极Boss。


不要等一切都准备好了再前行,如果把一切都准备好了再前行,那我们永远迈不出第一步。


学习Linux又如同爬坡一样,颓废如你和大神之间只隔着一道山,只不过此山有六坡。


爬坡之路:彼山更比此山高,第一个坡:抛弃旧的思维习惯,熟练使用Linux命令行

不要老想着图形界面,习惯于用鼠标点点点。专业的人员需要习惯Linux命令行。在Linux中,无论我们做什么事情,都会有相应的命令工具。认识使用命令行的过程可能非常痛苦,在没有熟练掌握命令行之前,你会发现干个非常小的事情都要搜索半天,读很多文档。但是最简单的动作也架不住无数次的重复。随着时间的积累,慢慢的你会发现,不需要搜索就可以完成大部分操作了。当你使用神奇的正则表达式、灵活的管道和grep、强大的bash。自动化处理数据,当你打个盹,回过神来,发现都自动处理完毕,岂不美哉。这个时候,算是爬上了第一个坡。


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

学习使用命令行是第一个坡,学会写程序来操作Linux是第二个坡。如果说使用命令行的人是下馆子吃饭,那写代码操作命令行的人就是饭店的厨师。看着简简单单的一道菜,可能要经过N个工序才能做出来。同样,你平时用的一个简单的命令行,却需要N个系统调用组合才能完成。其中每个系统调用都要进行深入地学习、读文档、做实验。经过一段时间的学习,你啃下了这些东西,你本来不理解进程树,调用了fork,就明白了;你本来不理解进程同步机制,调用了信号量,就明白了。你本来分不清楚网络应用层和传输层的分界线,调用了socket就明白了。恭喜你,爬上一个坡。这个时候你能看到另一番风景了。

爬坡秘籍:第二道坡这里推荐《UNIX环境高级编程》这本书有代码,有介绍,有原理,非常实用。


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

当你熟练使用代码操作Linux的时候,你已经很希望解开这层面纱,看看系统调用背后到底做了什么?进一步了解内核原理,有助于更好的使用命令进行程序设计,能让你的运维和开发水平上升一个层次。一旦学起来的时候,你会发现,Linux内核机制也非常复杂,进程运行要分配内存,内存映射涉及文件的关联,文件的读写需要经过块设备,从文件中加载代码才能运行起来进程。一旦爬上这个坡,你会发现Linux这个复杂的系统开始透明起来,无论运维还是开发,都大概会知道背后发生的事情,并在出现异常的情况时,比较准确的定位到问题所在。

爬坡秘籍:第三道坡这里推荐《深入理解LINUX内核》,这本书言简意赅地讲述了主要的内核机制。


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

当你在工作中需要重点研究某方面技术的时候,如果涉及内核,这个时候仅仅了解原理已经不够了,你需要看这部分代码。一开始阅读代码不要纠结一城一池得失,不要每一行都一定要搞清楚他是干嘛的,而要聚焦于核心逻辑和使用场景。一旦爬上这个坡,对于操作系统的原理,掌握的就比较清楚了。如果你是研究虚拟化的,就重点看KVM的部分;如果你是研究网络的,就重点看内核协议栈的部分。当你要奋力爬上这个坡时,推荐爬坡秘籍:《LINUX内核源代码情景分析》这本书最大的优点是结合场景进行分析,看得见、摸得着,非常直观。


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

纸上得来终觉浅,绝知此事要躬行。从只看内核代码,到上手修改内核代码,这又是一个很大的坎。因为有Linux源代码,很多地方可以参考现有的实现,定制化自己的模块。虽然难度很大,但是只要努力实现,没人能阻挡你的步伐。


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

爬上第六个坡,万里长城才走完了第一步。真正的高手都是在实战中摸爬滚打练出来的。在真实生产环境中,会有大量不可控因素,尤其是集群规模大的更是如此,大量的运维经验是实战来的,不能光靠读书。如果你是开发,对内核进行少量修改容易,但是一旦面临真实的场景,需要考虑各种因素,并发与并行,锁与保护,扩展性和兼容性,都需要真实项目才能练出来。


凯少技术网官方公众号

文章版权及转载声明:

作者:凯少技术网本文地址:https://www.skyko.cn/?id=493发布于 1个月前 ( 08-15 )
文章转载或复制请以超链接形式并注明出处凯少技术网

赞(0

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

发表评论

快捷回复:

评论列表 (暂无评论,44人围观)参与讨论

还没有评论,来说两句吧...