Linux源码 | Thermal框架源码剖析

1. 框架结构thermal core:thermal主要的程序,驱动初始化程序,维系thermal zone、governor、cooling device三者的关系。thermal zone device:创建thermal zone节点和连接thermal sensor,在/sys/class/thermal/目录下的thermal_zone*,通过dtsi文件进行配置生成。thermal

- 阅读全文 -

Linux内核 | 内核同步

1. 定义临界区和竞争条件临界区:访问和操作共享数据的代码段 竞争条件:多个执行线程在一个临界区同时执行死锁:每个线程都在互相等待,但它们永远也不会释放占用的资源。自死锁:一个执行线程试图去获取一个自己已经持有的锁,它不得不等待锁释放,但因为它忙于等待这个锁,所以自己永远也不会有机会释放释放锁。2. 设计规则以下简单规则避免死锁按顺序加锁防止发生饥饿不要重复请求一个锁设计简单-复杂加锁机制,越可能

- 阅读全文 -

搞机吧 | 利用Magisk刷LSPosed框架

1.前期准备一部解锁的手机(a/b分区【注意】,如米11)当前机型的线刷包(保持版本一致)梯子(没有梯子,上酷安找@秋时白露提供的通道,Magisk中设置的自定义通道)Magisk下载地址LSPosed下载地址2.步骤1.下载解压,安装Magisk,打开如下图解压线刷包,进入image文件夹下找到boot.img(这个是内核),移动到手机目录。进入Magisk,选择<安装>,选择<

- 阅读全文 -

Linux内核 | 系统调用

1. 系统调用内核提供的用户空间和内核进行交互的一组接口,应用程序受限地访问硬件设备,提供创建新线程并与已有的进程进行通信,也提供了申请操作系统其他资源的能力。1.2 系统调用形式asmlinkage long sys_getpid(void)asmlinkage限定词是一个编译指令,通知编译器仅从栈中提取该函数的参数,每个系统调用都需要这个限定词。为了兼容32位和64位系统,函数返回long。1

- 阅读全文 -

Linux内核 | 进程管理

1. 进程和线程1.1 定义进程是处于运行状态的程序和相关资源的总称,是资源分配的最小单位。线程是进程的内部的一个执行序列,是CPU调度的最小单位。有一段可执行程序代码。有一段进程专用的系统堆栈空间和系统空间堆栈。有进程描述符,用于描述进程的相关信息。有独立的存储空间,也就是专有的用户空间,相应的又会有用户空间堆栈。Linux系统对于线程实现非常特殊,他并不区分线程和进程,线程只是一种特殊的进程罢

- 阅读全文 -

索引 | 博客文章目录

爱技术 | 爱分享 | 爱生活目前研究操作系统内核相关不喜勿喷,欢迎交流Linux源码剖析Linux源码 | Thermal框架源码剖析Linux源码 | PM Qos源码剖析Linux源码 | EM能量模型Linux内核设计Linux内核 | 进程管理Linux内核 | 进程调度Linux内核 | 系统调用Linux内核 | 中断机制Linux内核 | 内核同步Linux设备驱动Linux设备驱

- 阅读全文 -

搞机吧 | 刷rec、线刷、卡刷教程

刷rec(Recovery)资源准备前提先BootLoader解锁小米5一台笔记本一台下载TWRP官网搜索手机型号,如果打不开请翻墙。例如:twrp-3.2.3-0-gemini.img下载adb USB连接工具包 (需翻墙)Google ADB通讯工具包,版本是r25。详细步骤在开发者界面打开USB调试,勾选允许OEM解锁。将adb USB连接工具包解压后得到adb和fastboot,

- 阅读全文 -

嵌入式 | ARM中断异常

<div align=center></div> <div align=center></div> 异常优先级:<div align=center></div> ARM处理器的异常空间:<div align=center></div> 在所有异常的入口,IRQ 中

- 阅读全文 -

嵌入式 | ARM工作模式详解

ARM v4版本的处理器有以下两个工作状态:ARM状态:32位,执行字对准的ARM指令。(性能好,代码密度小Thumb状态:16位,执行半字对准的Thumb指令。(性能差,代码密度大) 进入Thumb状态的方法是:执行BX指令,并设置操作数寄存器的状态(位[0])为1。在Thumb状态进入异常(所有的异常都是ARM状态),当异常处理返回时自动转换Thumb指令。进入ARM状态的方法是:执

- 阅读全文 -