Linux
文章平均质量分 62
Linux随记
wmail-yh
ing
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
使用python完成一个定时从版本库下载daily版本
【代码】使用python完成一个定时从版本库下载daily版本。原创 2024-06-13 14:42:00 · 301 阅读 · 0 评论 -
git&repo配置
###服务器编译需要软件sudo apt-get install libfile-copy-recursive-perl libswitch-perl libssl-dev libswitch-perl libxml-simple-perl git gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev原创 2022-03-05 11:12:13 · 614 阅读 · 0 评论 -
内核学习——0、内核各类机制
定义interrupt-controller节点一般是bsp dts写好的要用哪个IO作为 irq,在自己设备节点中使用 interrupt-parent = <&外设>引用即可,然后interrupt = <信号脚 RISING/BOTH>,声明这个外设的具体哪个信号线和是什么电平触发。原创 2024-06-19 17:21:41 · 909 阅读 · 0 评论 -
内核学习——6、timer的学习和使用
/定时的时间点,当前时间的20ms之后。因为内核定时器是一个单次的定时器,所以如果想要多次重复定时时需要在定时器绑定的函数结尾重新装载时间,并启动定时。//绑定定时时间到后的执行函数。//添加并启动定时器。参数是timer中的变量data。原创 2024-06-19 17:07:30 · 481 阅读 · 0 评论 -
内核学习——5、中断
处理方式:硬中断是由CPU直接中断正在运行的程序,去处理中断源的请求;软中断需要将CPU的控制权转移到中断处理程序或其他特定的指令,待其处理完毕之后,再继续被打断的程序。软中断不会直接中断CPU,只有当前运行的进程才会产生软中断,软中断是一种需要内核为正在运行的进程去做一些事情(通常为IO)的请求。处理中断的驱动需要运行在CPU上的,中断产生时,CPU停止当前程序去处理中断请求,一个IRQ中断一个CPU。硬中断的中断号是由中断控制器提供,软中断的中断号是由指令直接指出,无需中断控制器。原创 2024-06-19 17:04:16 · 453 阅读 · 0 评论 -
内核学习——4、并发、竞争、同步与互斥
S加1,相加之后大于0,进程继续执行,若相加之后小于等于0,从信号等待队列中唤醒一个等待进程,然后再返回原进程继续执行或转入进程调度。信号允许多个线程同时使用共享资源,和操作系统中PV操作相同,它有同时访问共享资源线程的最大数目,可以使等待资源进程进入休眠状态。S减1,若减1之后仍大于等于0,则进程继续执行,若减1之后小于0,该进程被阻塞到信号对应的队列中,然后转入进程调度。保护共享资源,实现线程同步。只有拥有互斥对象(即互斥量)的线程才具有访问共享资源的权限,互斥量只有一个,所以不能被多个线程同时访问。原创 2024-06-19 16:22:17 · 389 阅读 · 0 评论 -
内核学习——3、自旋锁的作用及其实现
作用:保护一段临界区的操作时独占的,不能由其他cpu或者线程同时访问破坏数据结构多核系统SMP:主要考虑一个cpu进入临界区之后,其他CPU不能再去进入这个临界代码区单核系统:不能被其他进程抢占单核系统自旋锁实现:两种情况打断:抢占、中断preempt_disable():关闭抢占preempt_enable():打开抢占普通自旋锁接口:spin_lock、spin_unlock:主要就是关闭和打开抢占风险是关闭抢占只是组织了其他进程对CPU的抢占,但不能阻止中断程序对CPU的抢占原创 2024-06-19 16:10:05 · 304 阅读 · 0 评论 -
内核学习——2、linux页高速缓存中脏页的概念
当进程修改了告诉缓存中的数据时,该页就被内核标记为脏页,内核将会在合适时间将脏页数据写到磁盘中,以保持高速缓存 中的数据和磁盘中的数据是一致的。硬盘的读写速度远不如内存速度,系统把读写比较频繁的数据事先放到内存中,以提高读写速度,这就叫高速缓存。llinux是以页为高速缓存的单位。脏页是linux内核中的概念。原创 2024-06-19 15:20:13 · 176 阅读 · 0 评论 -
内核学习——1、list_head
通过结构体成员地址来求得结构体地址:ptr是所求结构体中的list_head成员指针,type是所求结构体类型,member是结构体list_head成员名。此时,list_head就作为它父结构体中的一个成员了,我们知道list_head的地址(指针)时,就可以通过list_entry来获得它的父结构的地址。结构体中没有数据域,所以一般把list_head嵌入到其他结构中使用。LIST_HEAD():生成双向链表头节点。list_for_each:遍历双向链表。双向循环链表:list_head。原创 2024-06-19 15:18:52 · 484 阅读 · 0 评论 -
Linux的dev/ 和 sys/ 和 proc/ 目录
dev 目录存放的是应用与内核交互的设备文件,而/sys/dev目录存放的是系统的所有设备,这些设备由文件系统管理应用层操控底层两种方式:1、/dev 目录下的设备文件(设备节点) :复杂点的设备, LCD,摄像头等2、/sys 目录下设备的属性文件 :简单点的设备, led、gpio等。原创 2024-06-19 14:32:36 · 1412 阅读 · 0 评论 -
mtk镜像签名
执行完img_key_deploy.py之后,检查env.cfg下的配置是否更新。有了cert1和cert2 key后,就可以执行签名脚本。Step4: 下如下command 进行完成签名操作。env.cfg可以配置路径。原创 2024-06-13 15:33:10 · 1326 阅读 · 0 评论 -
内核存储框架了解
原创 2024-06-13 15:18:57 · 153 阅读 · 0 评论 -
类android设备reset过程
模式解析流程frameworks/base/core/java/android/os/PowerManager.javaframeworks/base/services/core/java/com/android/server/power/PowerManagerService.java把reason存储到SystemProperties,最后调用ShutdownThread带着reason传参frameworks/base/services/core/java/com/android/serve原创 2024-06-13 15:17:17 · 860 阅读 · 0 评论 -
linux driver并发和竞态--随记
并发、原子操作、锁、信号量并发和竞态原子操作互斥锁自旋锁信号量并发和竞态并发是指多个执行单元程序同时、并行的执行,这时并发的执行单元对一些共享资源如硬件资源、cpu资源、全局变量等的访问就会容易造成竞争使用并发多发生的环境:1、SMP多核处理器,系统总线的抢占等2、单CPU抢占式内核中,进程和抢占它的进程之间,抢占式内核操作系统是实时操作系统:vxworks、ucos3、中断(硬中断、...原创 2022-03-05 11:14:50 · 154 阅读 · 0 评论 -
设备树DTS
设备树DTSDTS引入DTS语法DTS在内核中的处理内核开始head.s对dtb文件的处理dts中的信息处理dtb转换device_nodedevice_node转换成platform_deviceDTS引入一个设备驱动程序的几种写法:1、最开始一般传统方法:直接在程序中写死硬件资源,代码简单,不易扩展,裸机小项目可以使用2、总线设备驱动模型:是将驱动程序分为platform_device和platform_driver,在平台设备中指定硬件资源,在平台驱动中做驱动程序的核心:分配、设置、注册fil原创 2020-11-30 19:25:35 · 460 阅读 · 0 评论 -
linux中断处理机制--随记
linux中断处理机制linux中断处理简介中断和异常的区别jiffies和timertasket(小任务机制)work_queuelinux中断处理简介中断源:引起中断的原因或者说发出中断请求的来源叫做中断源**中断类型:**外部中断,内部中断。 外部中断一般指外设发出的中断请求,可以屏蔽;内部中断是指因硬件出错或者运算逻辑出错引起的中断,也叫异常,不可屏蔽。中断处理:linux把...原创 2020-05-03 19:53:37 · 1180 阅读 · 0 评论 -
内核IO 阻塞/非阻塞、等待队列、同步/异步--随记
内核几种IO模型阻塞/非阻塞IO等待队列轮询、多路复用同步/异步阻塞/非阻塞IO**阻塞IO:**执行IO操作时,如果有数据返回数据,没有数据就休眠等待数据然后返回。这里的执行IO操作是用户态去对内核态做IO操作,数据返回是指用户态使用系统调用函数去访问内核时的数据拷贝,休眠是指内核中利用等待队列实现的进程休眠**非阻塞IO:**执行IO操作时,如果有数据返回数据,没有数据返回0。就是用户态...原创 2020-05-03 16:15:37 · 770 阅读 · 0 评论 -
char device driver--随记
字符设备驱动了解简介字符设备驱动操作简介linux驱动层次图:用户程序和内核驱动、硬件数据交互方法:1、利用/dev设备节点去读、写和ioctl操作2、利用/proc和/sys伪文件系统驱动程序分类:1、字符设备驱动:按字节流访问操作,如鼠标、键盘2、块设备驱动:按block访问操作,带有缓冲,如磁盘、U盘3、网络设备驱动:如网卡字符设备驱动操作1、设备号:设备编号是设备...原创 2020-05-02 17:08:48 · 348 阅读 · 0 评论 -
内核模块--随记
内核模块 kernel module简介module加载卸载模块加载:modprobe 模块名模块卸载:modpeobe -r 模块名 或者 rmmod 模块名module编写框架模块的入口和退出模块的编译编写makefileLicense模块参数简介内核模块,可以根据需要去加载进内核或者从内核中卸载的代码块,这操作期间可以不用重启系统。这样使得内核镜像可以按要求裁剪,不用全部功能都去加载进去...原创 2020-05-02 12:44:51 · 438 阅读 · 0 评论 -
Linux设备模型简介--随记
linux driver设备模型简介linux设备模型介绍总线设备驱动类sysfskobjectkset、kobj_typeplatform bus一个platform驱动设计步骤总结linux设备模型介绍linux内核代码有80%都是driver,越来越多的设备,就会需要越来越多的驱动,这样会使内核代码越来越庞大臃肿,为降低设备多样性带来的驱动开发的复杂度,以及设备热插拔、电源管理等 ,内核...原创 2020-04-25 21:19:52 · 932 阅读 · 0 评论 -
进程间通信IPC-随记
IPCIPC介绍管道信号system_vIPC介绍原理 :在内核中指定一块进程双方都知道的内存空间去做数据交互的通信进程间通信的几种方式:管道: 无名管道pipe , 有名管道fifio信号: signalsocket:system_v_IPC:消息队列共享内存信号量管道利用文件系统调用的接口(read/write),在内核缓冲区创建一中用于进程间通信的...原创 2020-04-05 23:08:07 · 287 阅读 · 0 评论 -
文件强制删除-随记
有一些文件遗留在windows上怎么都删除不了,使用下面命令,写一个dos脚本,然后使用bat脚本可以将其删除:DEL /F /A/Q \?%1RD /S /Q \?%1原创 2020-03-22 17:24:34 · 413 阅读 · 0 评论 -
进程-随记
进程介绍进程简介fork流程进程简介1、进程进程是具有独立功能的程序(数据和指令的集合)关于某个数据集合上的一次运行活动2、与程序的区别程序是数据和指令的一个集合,是静态的,而进程就是程序运行之后就是进程了;进程是一个有独立功能的活动单位,是系统资源调度的基本单位,一个程序可以有多个进程,一个进程只对应一个程序3、进程状态并发执行 cpu利用率高4、linux进程地址空间分布:...原创 2020-04-05 16:27:10 · 166 阅读 · 0 评论
分享