![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
qingyaoli
Linux
展开
-
系统V共享内存
系统V共享内存指的是把所有共享数据放在共享内存区域(IPC shared memory region),任何想要访问该数据的进程都必须在本进程的地址空间新增一块内存区域,用来映射存放共享数据的物理内存页面。系统调用mmap()通过映射一个普通文件实现共享内存。系统V则是通过映射特殊文件系统shm中的文件实现进程间的共享内存通信。也就是说,每个共享内存区域对应特殊文件系统shm中的一个文件(转载 2009-07-28 14:53:00 · 672 阅读 · 0 评论 -
vim & cscope[zz]
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://bigwhite.blogbus.com/logs/35619026.html拥有了某种工具,往往不等于就能使用好这种工具。拥有工具简单,用好工具、发挥出最大作用则较难。CSCOPE让VIM的使用者有了与SourceInsight"平起平坐“的机会,但是能否将CSCOPE的功能发挥出来还要看你是如何使用它了。自转载 2009-07-28 14:23:00 · 1699 阅读 · 0 评论 -
内存屏障(memory barrier)
内存屏障(memory barrier)[zz] 首先看看__set_current_state()和set_current_state()函数的区别#define __set_current_state(state_value) /do { current->state = (state_value); } w转载 2009-08-19 15:50:00 · 1357 阅读 · 0 评论 -
HIGH MEM
原先一直都对Linux高端内存的管理认识模模糊糊的,可能主要是初次接触Linux kernel 是0.11版吧,当初的内存设计是16M,Linus对拥有32M的内存都是觊觎万分,1G内存恐怕是天方夜谭了。16M内存哪里还顾得上高端内存,脑子就一直没有这种概念。先我们还是来看看为什么要有高端内存?80386的线性寻址空间是4G,内核空间从3G开始,如果全部采用"线性映射"(物理地址和逻转载 2009-09-09 22:21:00 · 3315 阅读 · 0 评论 -
图解高端内存[zz]
高端内存是指物理地址大于 896M 的内存。对于这样的内存,无法在“内核直接映射空间”进行映射。为什么?因为“内核直接映射空间”最多只能从 3G 到 4G,只能直接映射 1G 物理内存,对于大于 1G 的物理内存,无能为力。实际上,“内核直接映射空间”也达不到 1G, 还得留点线性空间给“内核动态映射空间” 呢。因此,Linux 规定“内核直接映射空间” 最多映射 896M 物理内存。对于高端内存转载 2009-09-09 22:52:00 · 1006 阅读 · 0 评论 -
Linux内核用到的GCC扩展
GNC CC是一个功能非常强大的跨平台C编译器,它对C 语言提供了很多扩展,这些扩展对优化、目标代码布局、更安全的检查等方面提供了很强的支持。本文把支持GNU 扩展的C 语言称为GNU C。 Linux 内核代码使用了大量的 GNU C 扩展,以至于能够编译 Linux 内核的唯一编译器是 GNU CC,以前甚至出现过编译 Linux 内核要使用特殊的 GNU CC 版本的情况。本文是对 L转载 2009-09-09 22:21:00 · 1930 阅读 · 0 评论