Linux驱动如何使用链表?
2025-03-18
链表是一种常用的数据结构,在开发中经常会使用到。在Linux内核中同样也是一个很常用的数据结构,而且内核对链表实现了很多相关函数,极大方便了链表的使用。内核中的链表和一般的链表使用方法是不一样的...
2025-03-18
链表是一种常用的数据结构,在开发中经常会使用到。在Linux内核中同样也是一个很常用的数据结构,而且内核对链表实现了很多相关函数,极大方便了链表的使用。内核中的链表和一般的链表使用方法是不一样的...
2025-03-15
在Linux驱动中,信号量是很常用的工具,可以保证数据安全。下面的例子实现使用信号量模拟自旋锁,保证不同线程安全的访问临界空间数据...
2025-03-15
在Linux驱动中,可以使用completion
进行同步。下面的例子就使用完成量等待定时器回调函数返回...
2025-03-14
在Linux驱动中,自旋锁是很常用的工具,可以保证数据安全。因为自旋锁会一直占用CPU,所以一般用于保护能够快速完成的临界区...
2025-03-14
在Linux驱动中,定时器是很常用的工具,可以让延时执行一些函数。下面的例子实现了延时一秒钟执行一次定时器回调函数...
2025-03-14
在Linux驱动中,原子操作是很常用的工具,可以保证数据安全。一般为了保护数据安全会使用锁机制,不过锁的开销比较大。如果是简单的整数运算...
2025-03-14
在Linux驱动中,互斥锁是很常用的工具,可以保证数据安全。下面的例子实现不同线程安全的访问临界空间数据...
2025-03-10
格式化磁盘后,会将磁盘分割成一个个大小相同的块。这些块就是磁盘管理的最小单位。那么是如何找到空闲位置存储一个文件的呢?下面先来了解几个常用的概念...
2025-03-08
动态内存分配是一个很重要的功能,如果没有动态内存分配,所有的变量都分配到堆上,堆栈很容易就会溢出。动态内存分配一般都是用来分配需要长期使用的内存或大块的内存...
2025-02-23
在Linux
内核中,一般使用ioremap
将物理地址映射到内核虚拟地址空间,使内核能够通过指针访问设备的内存或寄存器。主要用于访问设备的内存映射I/O
区域...
2025-02-20
在Linux
内核中,likely
和unlikely
是用于优化条件分支预测的宏,定义在compiler.h
头文件中。它们通过提示编译器某个条件更可能为真或假,帮助生成更高效的代码...
2025-02-19
access_ok
函数用于验证用户空间指针在内核空间中是否有效且可访问。这是一项重要的安全检查,确保内核不会无意中访问无效或恶意的用户空间内存,否则可能导致安全漏洞、崩溃或未定义行为...