网络设备驱动开发
文章平均质量分 90
自己从事网络驱动开发+固件开发已经接近三年,发现自己的知识未成系统,通过次专栏学习和总结出自己的知识系统,和大家一起学习和进步,有问题和建议及时指出,3ks.
华强笔记
养成输出的好习惯,见证自己慢慢地成长。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
文件系统深度解析:从核心概念到代码实践
本文深入解析了文件系统的核心架构与工作原理。文件系统作为存储设备的逻辑抽象层,通过分层设计(VFS、具体FS、块设备驱动)实现数据持久化、高效存取和安全共享。文章详细拆解了文件读写流程,包括元数据管理、页缓存和日志机制等关键技术,并对比了ext4、XFS等不同文件系统的适用场景。理解这些原理有助于开发人员优化IO性能,构建可靠的存储应用。原创 2025-08-31 11:33:23 · 990 阅读 · 0 评论 -
Linux内存管理系统性总结
本文系统总结了Linux内存管理的核心机制。主要包括:1)页表机制实现虚拟地址到物理地址的转换,支持多级页表和大页映射;2)伙伴系统管理物理内存分配,解决外部碎片问题;3)SLAB分配器高效管理内核小对象;4)VMA机制管理进程虚拟地址空间布局;5)内存回收机制包括kswapd守护进程和LRU算法等。这些组件协同工作,通过页表转换、物理内存分配、虚拟内存管理等机制,构建了Linux高效的内存管理体系。原创 2025-08-18 23:20:13 · 1052 阅读 · 0 评论 -
计算机存储器分类和层次结构详解
存储器层次结构解析:计算机存储系统采用多级层次化设计,从寄存器、高速缓存到主存和辅助存储器,形成速度递减、容量递增的金字塔结构。寄存器(0.3ns)和高速缓存(SRAM实现,1-20ns)为CPU提供快速数据访问;主存(DRAM,50-100ns)作为工作数据区;SSD/HDD(μs-ms级)提供大容量持久存储。核心指标包括访问延迟(寄存器0.3ns vs HDD 10ms)、带宽(寄存器>500GB/s vs HDD 0.2GB/s)和成本($/GB从寄存器$100+到HDD$0.02)。原创 2025-08-16 23:13:17 · 1192 阅读 · 0 评论 -
Linux网络性能调优终极指南:深度解析与实践
本文深入解析Linux网络性能调优的核心原理与实践方法。首先剖析数据包生命周期中的关键瓶颈点(DMA延迟、中断风暴等)及对应解决方案(如DDIO、NAPI、XDP等)。其次详细分析现代CPU架构特性(NUMA、SIMD等)对性能的影响机制。文章提供了基础调优方法的具体实现,包括CPU隔离与中断绑核技术、RSS流量均衡算法(Toeplitz/XOR/CRC32),以及大页内存的TLB优化原理。在协议栈优化方面,重点介绍了零拷贝技术(sendfile/splice)的实现细节与性能优势。原创 2025-08-13 23:20:36 · 748 阅读 · 0 评论 -
Virtio 驱动初始化&数据收发流程详解
本文详细解析了Virtio驱动的核心流程,主要包括:1) 整体架构概览,展示前后端通过virtqueue的交互方式;2) 初始化流程,包括设备发现、特性协商和virtqueues配置;3) 数据收发流程,涵盖TX发送和RX接收的完整处理链;4) 关键数据结构如virtio_device、virtqueue和vring的实现;5) 性能优化机制,包括批处理、NAPI和零拷贝技术;6) 错误处理如队列满时的流量控制。该驱动通过虚拟队列实现高效的前后端通信,结合多项优化技术提升I/O性能。原创 2025-08-10 23:18:38 · 870 阅读 · 0 评论 -
`sk_buff` 结构体详解(包含全生命周期解析)
Linux网络数据包核心结构sk_buff解析与生命周期管理 sk_buff是Linux网络协议栈处理数据包的核心数据结构,包含数据缓冲区、协议信息和设备信息等关键成员。其生命周期分为接收和发送两条路径:接收路径从网卡驱动创建sk_buff开始,经协议栈处理后交付应用层;发送路径则由应用层发起,经协议栈封装后由网卡驱动发送。文中详细解析了sk_buff的内存布局、关键操作函数(如分配/释放、数据操作、分片管理等)以及特殊场景处理(如零拷贝)。最后提供了内存预分配、DMA优化等性能优化技巧。原创 2025-08-10 23:05:15 · 1117 阅读 · 0 评论 -
Virtio 驱动关键结构体与函数详解
本文介绍了Linux virtio-net驱动中的关键结构体和函数实现。核心结构体包括代表设备实例的virtio_device、实现通信队列的virtqueue、驱动上下文结构virtnet_info,以及管理发送/接收队列的专用结构。重点分析了驱动初始化流程,包括设备探测、队列设置和网络设备注册;详细说明了数据发送路径的skb处理、sg列表填充和virtqueue操作;并概述了接收队列的初始化过程。这些组件共同实现了virtio设备的高效数据传输机制。原创 2025-08-10 22:54:52 · 479 阅读 · 0 评论 -
platform总线简介和使用场景说明
摘要: platform总线是Linux内核中一种虚拟总线,用于管理不直接挂载在传统物理总线(如PCI、USB)上的设备,尤其是SoC集成外设(如GPIO、定时器)和内存映射外设。其核心通过platform_device(描述设备资源)和platform_driver(实现驱动逻辑)分离,支持三种匹配机制: 设备树/ACPI(优先通过.compatible字符串匹配); ID表(基于名称匹配); 直接名称匹配。 该总线提供统一框架管理硬件资源(如内存、中断),支持动态绑定,并集成设备树/ACPI,是嵌入式系原创 2025-08-07 23:20:22 · 689 阅读 · 0 评论 -
Linux总线,设备和驱动关系以及匹配机制解析
Linux内核设备模型的核心是总线、设备和驱动的分离与匹配机制。总线作为媒介管理者,维护设备和驱动链表,实现匹配逻辑;设备代表硬件实体,提供标识符和资源信息;驱动包含控制代码,通过ID表或兼容字符串声明支持范围。匹配机制基于总线类型:PCI/USB等采用精确ID匹配,设备树/ACPI采用兼容字符串匹配,简单平台设备则使用名称匹配。当设备或驱动注册时,总线执行匹配流程并调用驱动的probe()函数完成绑定,实现硬件抽象与自动加载。原创 2025-08-07 23:16:30 · 1120 阅读 · 0 评论 -
ethtool,lspci,iperf工具常用命令总结
本文介绍了Linux系统中三个核心网络工具的使用方法及功能:ethtool, lspci,iperf/iperf3.原创 2025-08-04 00:00:57 · 965 阅读 · 0 评论 -
Linux常用命令分类总结
本文介绍了Linux常用命令,包括文件与目录操作、权限管理,文本处理,进程管理等。原创 2025-08-03 11:58:00 · 1443 阅读 · 0 评论 -
Linux内核锁机制详解与C语言实践指南
本文详细介绍了Linux内核中的各种锁机制及其C语言实现。主要内容包括:1) 7种内核锁类型的原理与使用场景(自旋锁、互斥锁、信号量、读写锁、RCU、顺序锁和原子操作);2) C语言中锁的正确使用模式,包括基本用法、嵌套处理、中断上下文处理等实践;3) 常见并发编程错误的识别与解决方法,如死锁、优先级反转等典型问题。文章通过大量代码示例展示了各种锁的具体实现方式,并提供了最佳实践建议,特别强调了在不同场景下选择合适锁类型的重要性,以及避免常见并发陷阱的方法。原创 2025-07-24 23:52:38 · 724 阅读 · 0 评论
分享