2

linux操作系统应用(Linux操作系统应用沈平)

linux 运维工程师必须要知道的66条常用命令 #软件开发# #每日一点linux#

10分钟搞懂 60条Linux运维必备的Linux命令

爱T馆

3年左右经验的程序员该怎么样去入手学习linux下的tcp/ip协议栈呢?

1、对于linux上层应用开发者

可以从应用开发者所熟悉的linux socket编程入手,顺着这些编程接口对应的系统调用切入,通过这些系统调用往下走继续深入,等你把socket(), listen(), accept(), connect(), write(), read()这几个socket系统调用的linux内核代码看到底,你基本上对linux网络部分的脉络就清楚了。

2、对于底层的linux驱动或者内核开发者

linux底层的开发者,基本都熟悉网卡驱动。即使不熟悉,对他们来说熟悉起来也不难。

沿着linux网卡驱动,以netif_rx()为入口,向上追踪,历经:

a、软中断层处理函数net_rx_action()

b、网络层处理函数ip_rcv()

c、传输层处理函数tcp_v4_rcv()

d、socket层处理函数inet_recvmsg()

e、虚拟文件系统层处理函数sock_read_iter()

经过上面这几步,也就把linux网络协议栈的主要流程梳理清楚了。

最后我们来总结一下,学习linux内核网络子模块的思路是:从系统调用出发,从上往下梳理一遍;再从linux网卡驱动入手,从下往上梳理一遍。

这一上一下,上下其手,何愁享受不到技术通透的快感呢?

#程序员# #C语言# #linux# #Linux# #嵌入式# #操作系统# #单片机# #运维# #IT# #我们一起上头条# #c语言# #java#

本文来自网络,不代表本站立场。转载请注明出处: https://tj.jiuquan.cc/a-2137582/
1
上一篇linux操作系统实验
下一篇 linux操作系统怎么安装(Linux系统怎么安装)

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: alzn66@foxmail.com

关注微信

微信扫一扫关注我们

返回顶部