linux内核
文章平均质量分 71
@seven@
加油,未来可期
展开
-
linux内存屏障
它的开销是四种屏障中最大的。在大多数处理器的实现中,这个屏障是个万能屏障,兼具其它三种内存屏障的功能。在每个volatile写操作前插入StoreStore屏障,在写操作后插入StoreLoad屏障;在每个volatile读操作前插入LoadLoad屏障,在读操作后插入LoadStore屏障;原创 2023-01-25 20:29:57 · 666 阅读 · 0 评论 -
linux并发控制详解
对于arm来说,单条汇编指令都是原子的,多核smp也是,因为有总线仲裁所以cpu可以单独占用总线直到指令结束,多核系统中的原子操作通常使用内存栅障(memory barrier)来实现,即一个CPU核在执行原子操作时,其他CPU核必须停止对内存操作或者不对指定的内存进行操作,这样才能避免数据竞争问题。这样, 在CPU0上, 无论是进程上下文, 还是中断上下文获得了自旋锁, 此后, 如果CPU1无论是进程上下文, 还是中断上下文, 想获得同一自旋锁, 都必须忙等待, 这避免一切核间并发的可能性。原创 2023-01-25 12:03:34 · 1865 阅读 · 0 评论 -
linux 内存管理
1.了解Linux内存的管理机制(分段分页)2.了解虚拟内存和物理内存的映射方式3.了解操作系统内存与磁盘的交互(分页机制---》缺页重读机制,用时拷贝机制)4.应用程序如何高效使用内存和高级程序的设计方法。原创 2023-01-24 21:44:09 · 1436 阅读 · 0 评论 -
linux inode详解
操作系统的文件数据除了实际内容之外,通常含有非常多的属性,例如Linux操作系统的文件权限与文件属性。文件系统通常会将这两部分内容分别存放在inode和block中。文件是存储在硬盘上的,硬盘的最小存储单位叫做扇区sector,每个扇区存储512字节。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个块block。这种由多个扇区组成的块,是文件存取的最小单位。块的大小,最常见的是4KB,即连续八个sector组成一个block。原创 2023-01-23 21:28:05 · 1946 阅读 · 0 评论 -
linux内核信号
用户产生信号,sys_call收到是系统调用,根据eax设置的值,去sys_calll_table里面查找到相应的系统调用函数(sys_signal),然后去调用do_signal函数去处理信号,do_signal函数比较有意思,这个函数是运行在内核态,将信号处理函数放到用户态的栈里面,当do_signal返回的时候,就会返回到用户态,用户态进行弹栈,就会执行信号处理函数。内核态设置栈 , 用户态执行。原创 2023-01-23 12:47:57 · 65 阅读 · 0 评论 -
linux内核怎么认识开发板
结构体machine desc,uboot会在启动的时候传递一个cpu版本id给内核,内核会检索该内核版本支不支持该板子。machine desc结构体,用于Linux做设备板子的识别结构体,这些结构体被限定在了内存的某一片区域。1.通过UBoot传过来的参数进行该结构体的配置(通过检索taglist的方式来设置)3.并且在之后的启动或其他函数中对该结构体的变量进行调用。结构体的变量进行赋值,进行适配,让内核可以知道这个板子。所以该结构体的变量需要修改,不然有可能内核驱动不起来。原创 2023-01-22 09:54:07 · 114 阅读 · 0 评论 -
linux引导和启动程序
一上电,硬件强制让cpu的cs:ip寄存器指向bios程序的位置,从bios程序开始执行,由pc机的BIOS (0xFFFFO是BIOs存储的总线地址)把bootsect从某个固定的地址拿到了内存中的某个固定地址(0x90000),并且进行了一系列的硬件初始化和参数设置----bois可以存储着大量的硬件参数。原创 2023-01-18 13:05:39 · 733 阅读 · 0 评论 -
linux进程管理
在init进程创建之前,就会先切换到用户态,进程创建,进程切换都是通过系统调用完成的。init进程是1号进程,一开始的程序没有进程编号,0号进程是所有进程的父进程。在init进程里面,创建2号进程,会运行shell程序。其他:信号以及信号位图,阻塞状态,运行时间,打开文件数量,以及进程会话,父进程等等信息。(3)如果当前要销毁的进程有子进程(销毁父进程),那么就让1号进程作为新的父进程(init进程)进程在操作系统里面就是一个结构体task_struct,这个结构体就是进程的身份证id,存储着进程的信息。原创 2023-01-16 23:19:17 · 405 阅读 · 0 评论 -
进程调度模块
在进程模块里面,我们知道了进程就是一个task_struct的结构体,里面含有进程的各种信息。进程存放在进程数组task_struct的数组里面。原创 2023-01-16 22:22:06 · 500 阅读 · 0 评论 -
linux中断机制
中断程序处理就是三步走,现场保存,中断程序处理,现场恢复。在汇编中主要负责现场保存以及恢复,中断程序的实现在.c文件里面。原创 2023-01-14 20:25:53 · 628 阅读 · 0 评论 -
硬件中断 ,软件中断 &中断,异常的区别
所以对于两种不同叫法的区别就出来了,中断名词很多,弄清楚就可以了,资料只是简单阐述一下中断里面一些名词的区别,如果想对这些名词有更加深的理解,可以看看下面两个博客。(5条消息) linux 0.11内核源码之中断_linux 0.11中断解析_@seven@的博客-CSDN博客(5条消息) x86 - 操作系统:中断、陷阱、异常、故障、终止_嗷大墨的博客-CSDN博客_操作系统 陷阱。原创 2023-01-14 16:45:35 · 1244 阅读 · 0 评论 -
linux系统结构
本专栏,是记录内核学习的,参考b站linux内核源码分析,以及linux内核艺术图解。原创 2023-01-14 11:04:41 · 719 阅读 · 0 评论