
linux
文章平均质量分 64
乘风life
学如逆水行舟,不进则退!
展开
-
Linux 资源互斥(同步)方法 --锁和信号量
为什么要有互斥(同步):多个线程共享资源时,需要确保每个线程看到一致的数据视图,否则可能产生不可预知的结果。常见的互斥机制如表中所示名称 类型 简述 优缺点 使用场景 原子操作 非睡眠锁 原子操作可以保证指令以原子的方式执行--执行过程不被打断,因此以原子操作的共享资源就不存在一致性问题。被操作的资源一般为4字节或者8字节的资源,一般用于对计数器进行保护。 优点:使用简单,指令以原子方式操作。操作资源时,不存在阻塞和自旋的状态。一种非常轻量级的互原创 2022-02-19 15:53:54 · 1335 阅读 · 0 评论 -
fh.h中 buffer_head d_inode m_inode file super_block d_super_block dir_entry 结构体注释
struct buffer_head { char * b_data; /* pointer to data block (1024bytes) */ //指针。 unsigned long b_blocknr; /* block number */ // 块号。 unsigned short b_dev; /* devi原创 2017-02-21 20:12:44 · 755 阅读 · 0 评论 -
有效用户ID与实际用户ID
实际用户ID(实际组ID):标识当前用户(所属组)是谁,当用户登陆时取自口令文件。 有效用户ID(有效组ID):用来决定我们(当前进程)对文件的访问权(即实际该进程的是以那个用户运行的)。 一般情况下,进程的有效用户ID等于进程的实际用户ID,进程的有效用户组ID等于进程的实际用户组ID。 但是当可执行程序文件的文件模式(st_mode)中设置了“设置-用户-ID(s原创 2017-02-17 17:03:11 · 1026 阅读 · 0 评论 -
Linux内核文件系统 inode.c中_bmap函数理解
此段代码是Linux0.11版内核中Linux/fs/inode.c文件中_bmap函数代码首先说一下此函数的主要功能:_bmap()函数用于文件数据块映射到盘块的处理操作。所带的参数inode 是文件的i 节点指针,block是文件中的数据块号,create 是创建标志,表示在对应文件数据块不存在的情况下,是否需要在盘上建立对应的盘块。该函数的返回值是文件数据块对应在设备上的逻辑原创 2017-01-14 11:20:02 · 1971 阅读 · 1 评论 -
Linux内核文件系统 free_inode函数
此函数为Linux 内核 0.11版本中的,目录为Linux/fs/bitmap.c 源代码如下:107 void free_inode(struct m_inode * inode)108 {109 struct super_block * sb;110 struct buffer_head * bh;111 112 if (!inode)原创 2017-01-13 21:19:31 · 1017 阅读 · 0 评论 -
Linux内核文件系统new_block函数理解
这几天在看赵炯的Linux内核完全注释版(修正版v1.9.5一书),其中很多知识较难理解,为加深理解且防止忘记,在这里将已理解部分记载下来,当然我自己理解的并一定就是正确的,甚至还有很多错误,如果有某位大神能看到我这篇博客并能指出其中的错误,我将十分感谢,废话不多说了,先上代码int new_block(int dev) 76 { 77 struct buffer_head *原创 2017-01-13 17:38:39 · 1322 阅读 · 0 评论 -
Makefile相关规则
定义变量的方法(1)变量名=变量值 递归变量展开(几个变量共享一个值) //不常用(2)变量名:=变量值 简单变量展开 //通常采用的形式常用的变量$@ : 当前规则的目标文件$$^ : 当前规则的所有依赖文件,原创 2017-05-17 21:46:11 · 263 阅读 · 0 评论 -
vim常用命令
1 进入插入模式a 从光标后面开始添加文本A 从光标所在行的末尾开始添加文本i 从光标的前面开始插入文本I 从光标所在行的开始处开始插入文本o 在目前光标所在行的下一行处插入新的一行O 在目前光标所在行的上一行处插入新的一行s 删除光标所在的字符原创 2017-05-17 22:22:43 · 383 阅读 · 0 评论