![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
linux内核学习笔记
文章平均质量分 74
书籍学习笔记
《Linux内核实际与实现》
weixin_45090728
这个作者很懒,什么都没留下…
展开
-
第12章 内存管理
内核的内存管理原创 2023-06-28 00:15:16 · 150 阅读 · 0 评论 -
第11章 定时器和时间管理
linux 定时器和时间管理原创 2023-06-26 00:06:22 · 426 阅读 · 0 评论 -
第10章 内核同步方法
内核同步方法原创 2023-04-09 20:27:00 · 264 阅读 · 0 评论 -
ubuntu18.4 本地镜像源搭建(apt-mirror)
搭建本地镜像源原创 2023-03-04 21:45:39 · 1123 阅读 · 0 评论 -
树莓派4B——PWM
树莓派内核驱动使用硬件pwm原创 2022-10-04 00:11:26 · 1887 阅读 · 0 评论 -
Linux下的SPI FLASH驱动
spi flash驱动框架原创 2022-10-03 11:18:01 · 545 阅读 · 0 评论 -
可执行程序文件的修改
gdb修改可执行程序的值原创 2022-10-03 11:16:00 · 460 阅读 · 0 评论 -
linux pinctrl子系统
pinctrl子系统原创 2022-09-03 22:28:07 · 193 阅读 · 0 评论 -
简单内核模块的编写和编译
简单内核模块的编写和编译以及测试内核模块的编写内核模块代码内核模块需要编写初始化和退出两个函数,也需要使用modeule_init和module_exit来通知内核,插入和删除模块的时候,初始化和退出模块时两个函数被分别调用,简单形式如下:static int __init my_init(void){ return 0;}static void __exit my_exit(void){ return;}module_init(my_init);module_exit(my_ex原创 2022-05-21 00:10:22 · 430 阅读 · 0 评论 -
Qemu使用及常见开发板的模拟
Qemu的使用及一些开发板的模拟介绍Qemu可以对许多架构的CPU或开发板进行模拟。在我们没有开发板的时候,可以通过其进行一些开发板的模拟,便于学习。原创 2022-04-29 22:00:53 · 8035 阅读 · 1 评论 -
第9章 内核同步介绍
第9章 内核同步介绍临界区和竞争条件临界区就是访问和操作共享数据的代码段。多个线程并发访问同一个资源通常是不安全的,必须保证这些操作是原子的。如果两个执行线程有可能处于一个临界区中同时执行,那么这就是一个bug,称它是竞争条件(race conditions)。因为竞争引起的错误非常不易重现,所以调试才会非常困难。避免并发和防止竞争条件称为同步(synchronization)。造成并发执行的原因用户空间,用户程序会被调度程序抢占和重新调度。内核空间,类似原因:中断软中断和tasklet内原创 2022-04-19 22:51:55 · 94 阅读 · 0 评论 -
第8章 下半部和推后执行的工作
第8章 下半部和推后执行的工作下半部一般来说:任务对时间非常敏感,放在中断处理程序中执行。任务和硬件相关,放在中断处理程序中执行。任务要保证不被其它中断打断,放在中断处理程序中执行。其它所有任务,考虑放置在下半部执行。下半部的环境下半部可以通过多种机制实现。“下半部”的起源最早linux提供“bottom half”用于实现下半部,简称“BH”。接口简单,提供了一个静态创建、由32个bottom havles 组成的链表。上半部通过一个32位整数中的一位来表示哪个bottom half原创 2022-04-18 21:38:57 · 212 阅读 · 0 评论 -
第7章 中断和中断处理
文章目录第7章 中断和中断处理中断中断处理程序上半部和下半部第7章 中断和中断处理操作系统内核的核心任务,都包含有对连接到计算机上的硬件设备进行管理。轮询(polling)可能会是一种解决办法,但是会做许多无用功。中断机制,让硬件在需要的时候在向内核发出信号。中断中断使得硬件发出通知给处理器,如敲击键盘时,键盘控制器会通知操作系统有键按下。本质是一种电信号,由硬件设备生成,并直接送入中断控制器的输入引脚。中断控制器是个简单的电子芯片,其作用是将多路中断管线,采用复用技术只通过一个和处理器相连接的管原创 2022-03-27 21:47:25 · 2677 阅读 · 0 评论 -
第六章 内核数据结构
文章目录第六章 内核数据结构链表内核实现操作链表遍历链表队列第六章 内核数据结构Linux内核实现的通用数据结构,链表、队列、映射、二叉树等,在开发时进行重用即可。链表包含的元素都是动态创建并插入的,有单向链表、双向链表、环形链表等,使用与需要遍历所用数据或动态加入或者删除数据的情况。linux内核的标准链表采用环形双向链表形式实现的,有着最大的灵活性。内核实现把链表塞入数据结构中。链表头文件存放与<linux/list.h>中:struct list_head{ struct原创 2022-01-23 20:32:28 · 352 阅读 · 0 评论 -
第五章 系统调用
第五章 系统调用文章目录第五章 系统调用与内核通信API、POSIX、C库系统调用系统调用号系统调用的性能系统调用处理程序指定恰当的系统调用参数传递系统调用的实现实现系统调用参数验证系统调用上下文绑定一个系统调用从用户空间访问系统调用不要轻易创建新的系统调用内核提供了用户进程与内核进行交互的一组接口,可以让应用程序受限地访问硬件设备,提供了创建新进程并与已有进程通信的机制,也提供了申请操作系统资源的能力。实际上主要是为了保证系统的稳定可靠。与内核通信系统调用是用户空间进程和硬件设备之间的中间层。作原创 2021-10-10 17:21:14 · 69 阅读 · 0 评论 -
第四章 进程调度
第四章 进程调度文章目录第四章 进程调度多任务Linux的进程调度策略I/O消耗型和处理器消耗型进程优先级时间片调度策略的活动Linux调度算法调度器类Unix系统中的调度公平调度Linux调度的实现时间记账调度程序负责决定将哪一个进程投入运行,何时运行以及运行多长时间,可以看做在可运行态进程之间分配有限的处理器时间资源的内核子系统。多任务多任务操作系统就是能同时并发地交互执行多个进程的操作系统。对单处理器和多处理器来说有微妙的区别。多任务系统分为两类:非抢占式多任务(cooperative mu原创 2021-10-07 17:10:01 · 156 阅读 · 0 评论 -
第三章 进程管理
第三章 进程管理文章目录第三章 进程管理进程进程进程是一个动态的概念,原创 2021-10-04 18:26:48 · 60 阅读 · 0 评论 -
第二章 从内核出发
第二章 从内核出发文章目录第二章 从内核出发获取内核源码安装内核源码二、使用步骤1.引入库2.读入数据总结获取内核源码Linux内核官方网站:http://www.kernel.org可以完整的压缩形式(tar创建的),也可以是增量补丁形式。也可以使用git获取内核源代码,下面只是一个例子:git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git更新分支:git pull安装内核源码原创 2021-10-01 21:45:56 · 51 阅读 · 0 评论