Linux内核 | 内核同步

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

- 阅读全文 -

Linux内核 | 中断机制

1. 中断中断是一种硬件信号,由具体的硬件设备产生的。不同的硬件设备对应唯一的中断号,处理器是通过中断号(IRQ n)识别不同的硬件设备,并执行对应的中断处理程序或中断服务例程(ISR)。2. 中断处理机制中断处理系统在Linux中是非常依赖体系结构的,硬件设备产生中断,通过总线把电信号发送到中断控制器,如果中断线是激活状态(中断线是允许被屏蔽的),中断处理器会将中断信号发往处理器,处理器会立即停

- 阅读全文 -

搞机吧 | 利用Magisk刷LSPosed框架

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

- 阅读全文 -

Linux内核 | 进程调度

1. 进程调度原理最大限度地利用处理器时间,只要有可以执行的进程,那么就总会有进程正在执行。按多任务系统分类抢占式多任务非抢占式多任务按进程分类IO消耗型:进程的大部分时间用来提交I/O请求或是等待I/O请求。处理器消耗型:进程的大部分时间在执行代码1.1 进程优先级根据进程的价值和其对处理器的时间需求对进程进行分级。Linux采用了两种优先级范围nice值,范围[-20,19],nice值越大,

- 阅读全文 -

Linux内核 | 进程管理

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

- 阅读全文 -

搞机吧 | 利用magisk安装Xposed框架

<center>后起之秀Magisk和江湖老大哥Xposed</center>Magisk原理:在系统boot时,将其img挂载到自己的分区下,构建一个虚拟文件系统,和system分区没有半毛钱关系。magisk可在不修改系统文件的前提下,从而达到修改系统文件的效果。通过这种方式绕过Google SafetyNet,系统OTA升级,部分"被禁"软件都可以正常使用。Xpos

- 阅读全文 -

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

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

- 阅读全文 -

嵌入式 | 嵌入式系统概论

嵌入式系统的硬件是以嵌入式微处理器为核心,主要由嵌入式微处理器、总线、存储器、输入/输出接口和设备组成。嵌入式系统的软件是由初始化代码及驱动、嵌入式操作系统和应用程序等软件有机地结合在一起形成系统特定的一体化软件。 总线是CPU与存储器和设备通信的机制,是计算机各部件之间传送数据、地址和控制信息的公共通道。 <div align=center></div>&nbs

- 阅读全文 -

嵌入式 | U-Boot的源码stm_flash.c详细剖析

FLASH存储器FLASH存储器又称为闪存,它也是可重复擦写的储器,部分书籍会把FLASH存储器称为FLASH ROM,但它的容量一般比EEPROM大得多,且在擦除时,一般以多个字节为单位。根据存储单元电路的不同,FLASH存储器又分为NOR FLASH和NAND FLASH。<div align=center></div>支持XIP,才能直接运行代码,SD卡,硬盘,U盘其

- 阅读全文 -