首页
›
Linux内核与驱动
›
158-网卡NIC驱动开发
›
《从零完成网卡NIC驱动DMA环形缓冲区设计与实现》
VIP10
本课程属于:158-网卡NIC驱动开发
Linux内核与驱动 · 共 10 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
从零完成网卡NIC驱动DMA环形缓冲区设计与实现
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
课程导论
什么是NIC · DMA · 环形缓冲区?为什么需要它们?课程目标…
课程导论
NIC
02
计算机总线与DMA基础
PCIe总线简介 · DMA控制器工作原理 · DMA传输类型(内存到设备
DMA
计算机总线
03
网卡硬件架构概览
MAC层 · PHY层 · DMA引擎
网卡硬件架构概览
MAC
04
环形缓冲区(Ring Buffer)原理
生产者-消费者模型 · 头指针与尾指针 · 缓冲区空/满判断条件
Ring
Buffer
05
DMA描述符(Descriptor)设计
描述符结构体定义(地址 · 长度 · 状态
DMA
Descriptor
06
Linux内核驱动框架入门
模块初始化/退出 · file_operations结构体 · 设备号注册
Linux
内核驱动框架入门
07
PCI设备探测与初始化
pci_driver结构体 · probe函数 · pci_enable_device
PCI
设备探测
08
MMIO与BAR空间映射
ioremap · readl/writel · 访问网卡寄存器
MMIO
BAR
09
中断处理基础
注册中断(request_irq) · 中断处理函数上半部与下半部(task…
断处理基础
request
10
NAPI机制简介
NAPI轮询模式 vs 传统中断模式 · netif_napi_add · napi_schedule
NAPI
机制简介
11
DMA内存分配与一致性
dma_alloc_coherent · dma_map_single · 流式DMA映射与一致性DMA映射
DMA
内存分配
12
接收环形缓冲区初始化(RX Ring)
分配描述符数组 · 分配DMA缓冲区 · 初始化硬件寄存器
RX
Ring
13
发送环形缓冲区初始化(TX Ring)
分配描述符数组 · 分配DMA缓冲区 · 初始化硬件寄存器
TX
Ring
14
描述符环的硬件寄存器接口
基地址寄存器 · 头/尾指针寄存器 · 控制/状态寄存器
描述符环的硬件寄…
基地址寄存器
15
接收数据路径(RX Path)
硬件写入描述符 · 中断触发 · NAPI轮询读取描述符
RX
Path
16
发送数据路径(TX Path)
驱动填充描述符 · 写尾指针通知硬件 · 硬件发送完成中断
TX
Path
17
sk_buff结构体详解
sk_buff布局 · 数据指针操作(head/data/t… · skb_reserve/skb_pu…
sk
buff
18
环形缓冲区的同步与并发
自旋锁(spinlock)保护环 · 多队列(RSS)场景下的锁设计
环形缓冲区的同步
并发
19
错误处理与超时机制
描述符超时检测 · DMA传输错误处理 · 重置环形缓冲区
错误处理
超时机制
20
性能优化
缓存行对齐 · 预取(prefetch) · 批量处理描述符
性能优化
缓存行对齐
21
多队列(Multi-Queue)支持
每个队列独立Ring · 中断亲和性(IRQ affinity… · RSS哈希
Multi-Queue
多队列
22
调试与日志
使用printk/dynamic_d… · 查看/proc/interrupts · 使用perf/tracepoint分…
调试
日志
23
用户态测试工具
编写简单的ioctl接口 · 使用ethtool查看Ring参数 · 使用netperf/pktgen测试
用户态测试工具
ioctl
24
虚拟化环境下的DMA
IOMMU/VT-d简介 · 直通设备(PCI Passthrou… · SR-IOV与VF
DMA
虚拟化环境下的
25
与Linux网络协议栈的集成
net_device结构体 · 注册net_device_ops · open/stop/start_xm…
Linux
网络协议栈的集成
26
电源管理
网卡休眠与唤醒 · DMA暂停与恢复 · WoLAN(Wake-on-LAN)…
电源管理
网卡休眠
27
硬件卸载(Offload)特性
TSO/GSO · LRO/GRO · 校验和卸载(Checksum Off…
Offload
硬件卸载
28
常见网卡芯片案例分析
Intel I350 · Realtek RTL8169 · Mellanox ConnectX-…
常见网卡芯片案例…
Intel
29
完整驱动代码架构回顾
从probe到数据路径的代码流程总览 · 关键数据结构关系图
完整驱动代码架构…
probe
30
课程总结与进阶方向
DPDK · XDP · io_uring与零拷贝
课程总结
进阶方向
所属VIP或分类
同VIP:PCIe设备枚举进阶:ACPI中断路由与多网卡资源分配
同VIP:QEMU-PCIe网卡模型开发与Linux驱动联合调试
同VIP:中断处理函数优化:MSI-X多向量中断与CPU亲缘性配置