linux kernel
文章平均质量分 82
penyunwudong
这个作者很懒,什么都没留下…
展开
-
解惑-Linux内核空间
<br />解惑-Linux内核空间<br />解惑-Linux内核空间(一)<br />有这么一系列的问题,是否在困扰着你:用户程序编译连接形成的地址空间在什么范围内?内核编译后地址空间在什么范围内?要对外设进行访问,I/O的地址空间又是什么样的?<br />先回答第一个问题。Linux最常见的可执行文件格式为elf(Executable and Linkable Format)。在elf格式的可执行代码中,ld总是从0x8000000开始安排程序的“代码段”,对每个程序都是这样。至于程序执行时在物理内存转载 2011-02-20 10:01:00 · 1404 阅读 · 0 评论 -
page_cache和buffer_cache的直观理解
在这篇博客上http://blog.csdn.net/cheungjustin/archive/2010/08/31/5853399.aspx看到关于page cache,buffer cache的解释。 针对博客里面一开始提出的问题:一个程序,需要读入文件,它第一次执行时间和第二次执行时间一样吗?将文件改名后呢,umount文件系统后再mount上呢? 这篇原创 2011-06-29 20:32:00 · 1135 阅读 · 0 评论 -
mmap映射空间与内存和磁盘的IO性能对比
mmap:功能描述:mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。munmap执行相反的操作,删除特定地址区域的对象映射。 基于文件的映射,在mmap和munmap执行过程的任何时刻,被映射文件的st_atime可能被更新。如果st_atime字段在前述的情况下没有得到更新,首次对映射区的第一个页索引时会更原创 2011-06-29 20:36:00 · 7860 阅读 · 1 评论 -
内核驱动单独编译(如mdraid)而不依赖编译内核
在学习使用内核中的驱动模块时,可能需要修改一些源代码,跟踪调试等,这就需要重新编译该模块,一种方式是直接重新编译内核,但是这样耗时较多,而且每次修改的时候都需要这样做就太麻烦了。所以这里介绍另一中方式,不用重新编译内核,只用修改该驱动模块的Makefile,使得该驱动模块能够不依赖编译内核而单独编译,下面以软raid模块为例来进行说明。 首先需要确保当前内核版本与系统中的linux-he原创 2014-01-13 19:10:29 · 4148 阅读 · 0 评论 -
ubuntu编译内核
1.先下载需要编译的内核版本的源代码并解压(以linux-3.2.39为例);2.进入内核源码目录,把系统中原来的config配置拷贝到源码目录下,这样做是为了重新编译内核时仍然能够把原有系统中的驱动等编译进去;#~/linux-3.2.39# cp /boot/config-3.2.39 .config3.然后使用make menuconfig再选择需要编译的选项;#~/linu原创 2014-01-13 18:51:57 · 879 阅读 · 0 评论