巧了,作为十年程序员,偶的头条简介里写的就是精通linux。那研究到什么程度才叫精通linux呢?小编以自己的经历来做一个解释:(以下经历由浅入深)
1、至少安装过不下10种linux发行版,了解各个发行版的特性和差异。
2、多年的linux操作系统使用经验
使用linux可以让你对linux的机制有一些外在的感觉
3、至少3年linux环境编程经验
linux环境编程,可以让你对linux的实现机制有了解。你就可以知道在linux系统上该怎么玩,怎么样去实现自己的业务目的。
4、定制过linux内核和文件系统
这样的经历可以让你对linux内核的运行机制有更深刻的了解。你可以了解内核和文件系统的界限是什么?联系点是什么?如何从内核态转入应用态。
5、了解linux内核
linux环境编程告诉你怎么做,让你一步一步的调用函数来完成目标。
但是如果你想知道为什么这么做,或者说底层是怎么做的?你就需要深入内核了,推荐下面这本内核学习的入门书籍,这本书很通俗的讲解了linux内核的设计与实现。偶通过这本书大粒度的了解了linux底层的实现机制。
6、深入linux内核
了解linux内核的基本运作原理对上层开发人员是够了,但是如果要成为一个linux精通者远远不够,偶的做法是阅读源码,但是linux的源码太多了,偶选择了赵炯的linux0.11的内核去对照学些,这样对linux内核的细节有了很深的了解。
7、开发驱动
驱动开发会用到很多linux内核相关的机制,比如自旋锁、信号量、硬件中断、软中断、线程、工作队列、时钟、DMA等。这些可以进一步加深对linux内核的理解。偶开发过的驱动过包括,watchdog,gpio,lcd,串口,虚拟串口、网卡,pci/pcie,usb等。
8、从内核层面思考问题
现在偶的一个习惯就是碰到问题,会从内核角度去思考,会从上层思考到内核层面是如何设计的、为什么这样设计。如果想不通,会自己阅读内核源码找答案。
以上就是偶的经历,这个程度,算不算精通linux呢?
其实偶是心虚的,因为linux内核博大精深,很多人穷其一生也只是研究了一个小模块。
在这样的巨无霸面前,大家要学习和深究的地方还很多,惭愧呀惭愧!
欢迎关注偶,一起努力、一起学习linux内核。