Linux源码
Linux源码阅读笔记
DrHun
这个作者很懒,什么都没留下…
展开
-
【Linux网络源码4】组件初始化基础架构
组件初始化基础架构(一)引导期间内核选项 引导阶段,会调用parse_args两次,负责引导期间配置输入数据。parse_args是一个函数,用于解析输入字符串,输入的字符串是一些参数,寻找特定关键字并启用适当处理的函数(二)注册关键字 内核组件使用__setup宏,注册关键字和相关联的处理函数: __setup(string,function_handler) string是关键字,function_h原创 2020-09-08 21:37:29 · 91 阅读 · 0 评论 -
【Linux网络源码3】PCI层和网络接口卡
PCI层和网络接口卡一、主要数据结构pci_driverstruct pci_driver { // 表头指针 struct list_head node; // 驱动程序的名称 const char *name; // 一个ID向量,内核用于把一些设备关联到次驱动程序 const struct pci_device_id *id_table; /* must be non-NULL for probe to be called */ // 此函数应开启原创 2020-09-08 10:48:38 · 104 阅读 · 0 评论 -
【Linux网络源码2】通知链
通知链一、为什么要使用通知链 内核的很多子系统之间具有很强的相互依赖性。其中一个子系统侦测到的或者产生的事件,其他子系统可能都有兴趣。为了实现这种交互需求,Linux采用了通知链。 二、概论 通知链就是一份简单的函数列表,当给定的时间发生时予以执行。每个函数都让另一个子系统知道,调用此函数的子系统内发生的一个时或者子系统所侦测到的一个事件。 &nbs原创 2020-09-07 16:40:47 · 129 阅读 · 0 评论 -
【linux网络源码1]】sk_buff结构分析
套接字缓冲区 sk_buff想要了解网络是怎么进行部署和运行的,首先要做的就是对数据结构进行分析。首先我们对最重要的sk_buff这个数据结构的一些内容查看分析。一、布局字段1.表头数据结构skbuff.hstruct sk_buff_head { /* These two members must be first. */ // 双向链表指针 前驱指针和后继指针 struct sk_buff *next; struct sk_buff *prev; // 表中元原创 2020-09-06 15:48:01 · 226 阅读 · 0 评论