摘要: # 内核线程工作队列 内核线程工作队列和普通工作队列看着十分相似,很多抽象概念如work和worker等都很相同并且执行对象也都是内核线程。不同的是内核线程工作队列没有普通工作队列的线程池概念一个 worker(工作者(工作组))对应到一个实际的内核线程,这个内核线程会按顺序依次执行worker上的 阅读全文
posted @ 2021-02-15 14:06 Little_Village 阅读(830) 评论(0) 推荐(0) 编辑
摘要: 获取系统导出的符号 常常使用Linux模块增加设备驱动,开发过程编译时就会出现未定义符号警告,这常常是因为不同版本的内核导出的内核API接口修改了导致的,所以这里记录下如何查看当前系统导出的内核符号。 cat /proc/kallsyms 阅读全文
posted @ 2021-02-15 14:05 Little_Village 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 临界区 访问临界资源的代码区被成为临界区,每次仅允许一个执行块进入临界区。一个线程进入了临界区然后因为系统调度而被打断,但此时他还是在临界区中的,所以此时其他执行线程还是不被允许进入临界区 临界数据 特定的共享数据区在一次访问过程中,不允许其他的访问穿插访问的情景。比如修改一个共享数据的时候不能允许 阅读全文
posted @ 2021-02-15 14:01 Little_Village 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 设备文件系统 Linux引入了虚拟文件系统,从而使设备的访问可以像访问普通文件系统一样。因此在内核中描述打开文件的数据inode中的rdev成员用来记录设备文件对应到的设备号。设备文件也由一个对应的file_operations 数据对象,用来描述设备的操作接口。设备文件系统最早是采用devfs实现 阅读全文
posted @ 2021-01-24 20:16 Little_Village 阅读(408) 评论(0) 推荐(0) 编辑
摘要: Linux 模块的参数 通过在内核模块中定义模块参数从而可以在安装模块时通过insmod module_name paramname=param形式给模块传递参数。如果安装模块是传参数则将使用模块内定义的缺省值。并且最后的/sys/module/目录下会呈现出来进行读写(当读写权限为0时不会出现在目 阅读全文
posted @ 2021-01-24 20:15 Little_Village 阅读(150) 评论(0) 推荐(0) 编辑
摘要: Linux socket编程 套接字定义描述 套接字的域 AF_INET >IPv4 AF_INET6 >IPv6 AF_UNIX >unix 域 AF_UPSPEC >未使用 套接字的类型 SOCK_DGRAM >固定长度,无链接的,不可靠的报文传递 SOCK_RAM >IP协议数据报接口 SOC 阅读全文
posted @ 2021-01-23 15:42 Little_Village 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 临界区 定义 访问临界资源的代码区被成为临界区,每次进允许一个执行块进入临界区。比如一个线程进入了临界区然后因为系统调度而被打断,但此时他还是在临界区中的,所以此时其他执行线程还是不被允许进入临界区 即执行访问共享资源的代码 分类 数据临界 特定的共享数据区在一次访问过程中,不允许其他的不受控制访问 阅读全文
posted @ 2021-01-23 15:21 Little_Village 阅读(783) 评论(0) 推荐(0) 编辑
摘要: 链接脚本简单描述 连接脚本的描述都是以节(section)的单位的,网上也有很多描述链接脚本语法的好文章,再不济还有官方的说明文档可以用来学习,其实主要就是对编译构建的整个过程有了深入的理解后就能对链接脚本的理解更加容易了,我这里只是简单的记录一下链接脚本最基础核心的内容。链接脚本描述一个输出节的方 阅读全文
posted @ 2021-01-10 14:54 Little_Village 阅读(1375) 评论(0) 推荐(0) 编辑
摘要: 通过前面的调试了解到s5pv210这个芯片的启动流程是需要将u-boot分为两部分的分别为SPL和u-boot。这里我使用网上的方式不直接使用u-boot的SPL连接脚本单独生成SPL的image而是用前面介绍的方法 [https://www.cnblogs.com/w-smile/p/131246 阅读全文
posted @ 2021-01-02 12:12 Little_Village 阅读(338) 评论(0) 推荐(0) 编辑
摘要: ARM架构中MMU的作用主要就是将CPU发出的虚拟地址转换成为物理地址,从实现内核和用户程序和用户程序之间的虚拟地址空间隔离。MMU的主要组成为两部分,其一是内部的TLBs缓存;还有就是转换表装换单元。CPU发出虚拟地址会被MMU拦截从而进行地址转换,地址装换过程优先查询MMU内部的Cacha是否有 阅读全文
posted @ 2020-12-23 22:22 Little_Village 阅读(964) 评论(0) 推荐(0) 编辑