摘要: Glusterfs基于内核的fuse模块,fuse模块除了创建fuse文件系统外,还提供了一个字符设备(/dev/fuse),通过这个字符设备,Glusterfs可以读取请求,并发送响应,并且可以发送notify消息。 下面是在Glusterfs下的一个读/写请求的完整流程: 蓝实线表示一个请求通过 阅读全文
posted @ 2017-02-15 16:27 penghan 阅读(1858) 评论(0) 推荐(0) 编辑
摘要: 进程的内存布局在结构上是有规律的,具体来说对于 linux 系统上的进程,其内存空间一般可以粗略地分为以下几大段【1】,从高内存到低内存排列: 1、内核态内存空间,其大小一般比较固定(可以编译时调整),但 32 位系统和 64 位系统的值不一样。 2、用户态的堆栈,大小不固定,可以用 ulimit 阅读全文
posted @ 2017-02-08 11:39 penghan 阅读(8166) 评论(0) 推荐(2) 编辑
摘要: 我们经常用free查看服务器的内存使用情况,而free中的输出却有些让人困惑,如下: 先看看各个数字的意义以及如何计算得到: free命令输出的第二行(Mem):这行分别显示了物理内存的总量(total)、已使用的 (used)、空闲的(free)、共享的(shared)、buffer(buffer 阅读全文
posted @ 2017-01-25 09:54 penghan 阅读(1480) 评论(0) 推荐(0) 编辑
摘要: 每个task的栈分成用户栈和内核栈两部分。每个task的内核栈是8k。内核栈与current宏紧密相关,栈低地址是thread_info,栈高地址是task可以实际使用的栈空间。这样设计的目的在于屏蔽栈指针esp的低13位就可以得到thread_info,从而得到thread_info->task, 阅读全文
posted @ 2017-01-13 17:18 penghan 阅读(3006) 评论(0) 推荐(2) 编辑
摘要: 作为Linux 下的程序开发人员,大家一定都遇到过Makefile ,用make 命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile ,如果要想写出一个符合自由软件惯例的Makefile 就不那么容易了。在本文中,将给大家介绍如何使用autoconf 和autom 阅读全文
posted @ 2017-01-11 14:38 penghan 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 实际文档位置:Documentation/kbuild/makefiles.txt,此为翻译稿。 ******************************************************************************* Linux内核的Makefile 目录 1 阅读全文
posted @ 2017-01-10 14:20 penghan 阅读(2056) 评论(0) 推荐(0) 编辑
摘要: 简介 RCU(Read-Copy Update)是数据同步的一种方式,在当前的Linux内核中发挥着重要的作用。RCU主要针对的数据对象是链表,目的是提高遍历读取数据的效率,为了达到目的使用RCU机制读取数据的时候不对链表进行耗时的加锁操作。这样在同一时间可以有多个线程同时读取该链表,并且允许一个线 阅读全文
posted @ 2017-01-09 16:34 penghan 阅读(7292) 评论(0) 推荐(0) 编辑
摘要: .h文件 .c文件 Makefile文件 阅读全文
posted @ 2017-01-03 15:31 penghan 阅读(834) 评论(0) 推荐(0) 编辑
摘要: 转载:http://www.ibm.com/developerworks/cn/linux/l-inotifynew/index.html 一、 引言 众所周知,Linux 桌面系统与 MAC 或 Windows 相比有许多不如人意的地方,为了改善这种状况,开源社区提出用户态需要内核提供一些机制,以 阅读全文
posted @ 2016-12-23 14:15 penghan 阅读(4228) 评论(0) 推荐(1) 编辑
摘要: 注:本文并非原创,我只是在原来的基础上稍微修改了点东西,原网址:http://decimal.blog.51cto.com/1484476/410673,但是想让更多的朋友们看到这篇文章,所以用了原创,很不错的! 转载:http://blog.csdn.net/jk110333/article/de 阅读全文
posted @ 2016-12-15 15:46 penghan 阅读(5551) 评论(0) 推荐(0) 编辑