Linux命令大全:https://www.linuxcool.com
第一是Linux内核源代码结构。Documentation很好用,它虽然没有内核的代码,但是它有一套有用的内核文档,这些内核文档大多是可以用的,例如文件系统;也有不能用的,例如进程调度。arch下面的子目录都是体系结构特有的代码,看见这个一定要记清楚。drivers是内核的驱动程序代码,里面有我们熟知的显卡、网卡、PCI等外围设备的驱动代码,所以对于我们来说是很关键的。fs:文件系统代码。包含ext2、ext3、ext4等本地文件系统。Linux命令内核中的大部分文件在include里边,我们如果有需要寻找的文件,可以先从这里开始找。kernel是Linux内核中最重要的组成部分,它的功能主要包含进程创建、销毁和调度的代码,如果缺少了它,我们的系统就不能继续运行了。除了这些代码外,还有其他的一些重要的组成部分,这里就不一一说了,但是我们需要知道的是,无论代码中的子目录或大或小,都是我们应该掌握的。
第二是内部的网络剖析过程。由于网络协议栈是由若干个层次所构成的,因此网络信息的处理过程主要是指在协议栈的不同层次间的信息传输。而按照为前一章的TCP系统所编写的流程,构建TCP系统内部的过程根据链接socket参数,绑定地址接口bind函数,侦听接口listen参数,接收链路accept变量,传送数据send函数,接受信息recv参数,关闭socket参数的次序来完成。而与此相对应内部的过程就是根据此次序完成的,因此网络信息在系统内部中的处理过程一般都是在网卡与协议栈中间完成的:由网卡接收数据,再交由协议栈处理过程;协议栈把要传输的信息经由网络发送出去。
我们在给系统传递数据的同时,也将消息经由插口层传送到协议层,协议层的UDP层增加UDP的首次、TCP层增加TCP的首次、IP层增加IP的首次,而接口层的网卡则在加载了互联网上的数据块后,再经由网卡的传输功能发送到互联网上。
接受信息的处理过程则是一种完全相反的处理过程,当有信息出现的时候,通过电话卡的中断程序将信息从互联网网卡的FIFO对列中收集到内部,然后传送到协商层,由协商层将IP层剥夺IP的首次、UDP层剥夺UDP的首次、TCP层剥夺TCP的首次并传送到插口层,经过插口层对socket的识别后,将信息发送给用户层对应的socket。
经过以上的介绍,相信大家对Linux内核有了一个大概的认识。其实学好Linux内核真的很重要,学好了Linux内核就等于学好了一半的Linux系统。但是为了大家能够进一步补齐短板,吸收理论知识和实操技能,我向大家推荐《Linux就该这么学》,在线阅读:https://www.linuxprobe.com/这本书讲的就是怎样学好Linux系统,怎样利用Linux系统去完成一些高难度的操作。我们在知道了内核很重要的基础上,当然就要进行深度学习了。这本书非常适合零基础的新手,当然对于一些老玩家也是上下兼容。总之就是新手可以从中收获知识,老手可以从中温故而知新。我认为在我们掌握了Linux内核基础知识的情况下,利用这本书来巩固一下是很好的。
现在大家对Linux内核的重要性已经一清二楚了吧,如果想进一步的了解,那么就从这本书入手吧,相信大家经过一段时间的学习一定会有所收获的。
红帽RHCE认证:https://www.rhce.net