参考文档 Release v5.4 · torvalds/linux 概述 常规写法的经典链表每个链表的节点包含指针部分和数据部分,每个节点的指针是一个指针指向下一个节点。每一个链表的节点的内容都是不一样的,每一个链表都需要定义一次,包括对于链表的操作的API也需要重新开发 Linux中的侵入式链表与普通的链表不同的,Linux提供了一个公共的链表…
参考文档: 【原创】Linux select/poll机制原理分析 - LoyenWang - 博客园 (cnblogs.com) 源码解读poll/select内核机制 - Gityuan博客 | 袁辉辉的技术博客 Linux 5.4源码 发展历史 API 发布的时间线 下文中列出了网络 IO 中,各个 api 的发布时间线 1983,socke…
参考文档: Release v5.4 · torvalds/linux struct cfg80211_ops源码 这里列出Linux 5.4版本struct cfg80211_ops的源码 struct cfg80211_ops { int (*suspend)(struct wiphy *wiphy, s…
参考文档 Release v5.4 · torvalds/linux 概述 cfg80211模块与驱动模块的交互是通过一系列API来进行交互的,这些API是由内核定义在include/net/cfg80211.h中的struct cfg80211_ops结构体中 这些接口由驱动模块定义并在驱动初始化阶段注册在内核中 整体流程 这个函数通过几个关键步…
参考文档: Linux 802.11 Driver Developer’s Guide — The Linux Kernel documentation Netlink - 维基百科,自由的百科全书 Emulating WLAN in Linux - part I: the 802.11 stack | Linux Embedded 笔者注:关于L…
文件描述符,句柄,标准输入,标准输出,标准错误这些其实是相同的东西 句柄是文件描述符的一个别名,标准输入、输出、错误是三个特殊的文件描述符 文件描述符 文件描述符是计算机操作系统中用于标识和访问打开的文件或设备的整数值。它是操作系统为每个进程维护的一种表格数据结构的索引,用于跟踪文件或设备的状态和属性 在Linux系列的操作系统上,由于Linux的…
1. 进程的定义 PCB 是进程实体的一部分,是操作系统中最重要的记录型数据结构。作用是使一个在 多道程序环境下不能独立运行的程序,成为一个能独立运行的基本单位,成为能与其它进程 并发执行的进程。OS是根据PCB对并发执行的进程进行控制和管理的 Linux的进程控制块为一个由结构task_struct所定义的数据结构,其中包括管理进程所需的各种信息…
参考文档: 【Linux深入】epoll源码剖析_epoll剖析-CSDN博客 epoll源码深度剖析 - 坚持,每天进步一点点 - 博客园 (cnblogs.com) 图解 | 深入揭秘 epoll 是如何实现 IO 多路复用的!-腾讯云开发者社区-腾讯云 (tencent.com) Linux eventpoll解析 - aspirs - 博客…
内核线程 概述 内核线程(thread)或叫守护进程(daemon),在操作系统中占据相当大的比例,当 Linux操作系统启动以后,尤其是 Xwindow 也启动以后,你可以用“ps”命令查看系统中的进程,这时会发现很多以“d”结尾的进程名,这些进程就是内核线程。 内核线程也可以叫内核任务,它们周期性地执行,例如,磁盘高速缓存的刷新,网络连接的维护…