Linux Kernel中所應用的數據結構及演算法 Basic Data Structures and Algorithms in the Linux kernel Links are to the source code on github. Linked list, doubly linked list, lock-free linked list. B+ Trees with comments telling you what you can't find in the textbooks…
前言          欢迎大家我分享和推荐好用的代码段~~ 声明          欢迎转载,但请保留文章原始出处:          CSDN:http://www.csdn.net          雨季o莫忧离:http://blog.csdn.net/luckkof 正文 [Description] 怎样在linux kernel 中读写文件   [Keyword] linux kernel read write file 读写文件   [Solution] 通常我们仅仅会在linux…
linux kernel中timer的使用 http://blog.csdn.net/njuitjf/article/details/16888821 在kernel中如果想周期性的干些什么事情,或者某个特定时间干些什么事情,可以使用timer. 例如像周期性地dump某段buffer的数据等等. 先来看看使用方法. 先定义一个struct timer_list的对象.eg: struct timer_list dump_t; 这个对象相当于一个闹钟,其中包含了时间点,也就是什么时候激活闹钟:一…
0x00 宏的基本知识 // object-like #define 宏名 替换列表 换行符 //function-like #define 宏名 ([标识符列表]) 替换列表 换行符 替换列表和标识符列表都是将字符串 token 化以后的列表.区别在于标识符列表使用,作为不同参数之间的分割符.每一个参数都是一个 token 化的列表.在宏中空白符只起到分割 token 的作用,空白符的多少对于预处理器是没有意义的. 宏的一些奇技淫巧: https://gaomf.cn/2017/10/06/C…
kernel中使用net_device结构来描述网络设备,这个结构是网络驱动及接口层中最重要的结构.该结构不仅描述了接口方面的信息,还包括硬件信息,致使该结构很大很复杂.通过这个结构,内核在底层的网络驱动和网络层之间构建了一个网络接口核心层(这个叫法引自<TCP迁移报告>),这个中间层类似于文件子系统的VFS.这样底层的驱动程序就不需要过多地关注上层的网络协议,只需要通过内核提供的网络接口核心层就可以很方便将和网络层进行数据的交互.而网络层在向下发送数据时,只需要通过内核提供的这个中间层进行交…
目录 . 引言 . 基于进程内存镜像信息struct mm_struct获取struct path调用d_path()获取当前进程的"绝对路径" . 基于文件描述符(fd).task_struct调用d_path()获取当前进程所打开文件的"绝对路径" . 基于dentry.vfsmount调用d_path()获取当前进程的"当前目录" . 基于jprobe监控load_module()系统调用获取当前正在加载的LKM文件的绝对路径 . 基于ge…
参考文章:Core Alorgithms deployed linux中的priority search tree数据结构研究 虚拟内存: 1.红黑树,管理与进程关联的vm_area_struct实例 2.优先查找树(priority search tree),用于建立文件中的一个区域与该区域映射到所有虚拟地址空间的管理,管理与文件关联的各个vm_area_struct实例.据说这个数据结构式radix tree 和 heap tree的结合 3.基数数(radix tree)…
前阵子在弄缓存的时候,我们需要将qemu对于磁盘镜像文件写请求串成一个链表,最终将这个链表里面的写请求全部刷回到镜像文件里面,那么我们便需要一个强健,可靠的链表的接口,于是我们仿照Linux 2.4.0的内核,来造了这么一个链表的轮子.今天抽抽空来记录一下. 链表,估计学过数据结构这门课程的人都对其印象深刻,因为老师们都喜欢将它放在比较靠前的地方讲,很多人都认为链表是一种非常easy的数据结构.因为链表的逻辑非常地简单,每个节点就是分成指针和数据,一头一尾地通过指针将每个节点串起来,没有树形(二…
http://loda.hala01.com/2011/12/linux-kernel-%E6%8E%92%E7%A8%8B%E6%A9%9F%E5%88%B6%E4%BB%8B%E7%B4%B9/ Linux Kernel 排程機制介紹 Linux Kernel 排程機制介紹 hlchou@mail2000.com.tw by loda. 2011/12/2 多核心架構儼然是目前智慧型手機方案的新趨勢,隨著省電與效能上的考量,多核心的架構各家方案也都有所差異.為能讓同一個Linux Kerne…
一.前言 在linux2.6内核上工作的嵌入式软件工程师在pin control上都会遇到这样的状况: (1)启动一个新的项目后,需要根据硬件平台的设定进行pin control相关的编码.例如:在bootloader中建立一个大的table,描述各个引脚的配置和缺省状态.此外,由于SOC的引脚是可以复用的,因此在各个具体的driver中,也可能会对引脚进行的配置.这些工作都是比较繁琐的工作,需要极大的耐心和细致度. (2)发现某个driver不能正常工作,辛辛苦苦debug后发现仅仅是因为其他…