linux
文章平均质量分 73
mingchan
这个作者很懒,什么都没留下…
展开
-
进程创建的页表初始化
进程创建使用do_fork函数,其中重要的部分如子进程的地址空间的建立,进程空间的建立主要包括线性地址空间和物理地址空间两个方面。其中线性地址空间使用VMA的方式管理,在dup_mmap函数中进行复制和初始化,而物理地址空间使用页目录,页表来管理。下面分析进程物理地址空间的初始化过程。整个调用流程:do_fork -> copy_process -> copy_mm -> dup_mm原创 2011-10-26 15:58:05 · 3899 阅读 · 1 评论 -
linux vmalloc的page_fault分析
vmalloc是内核中非连续内存分配接口,返回高端的线性地址,而且处于VMALLOC_START ---VMALLOC_END之间。物理地址通过伙伴算法来获取,利用page_alloc来获取每个page,这样在线性地址上看是连续的,但是实际上物理地址是离散分布的,通过页表来实现连续的线性地址到非连续的物理地址的映射。下面分析整个vmalloc的流程:__vmalloc->vmallc_node原创 2011-10-27 13:08:06 · 3037 阅读 · 0 评论 -
Linux: /usr/bin/ld: cannot find -lc Error and Solution
这个简单的问题折腾我近2个小时的时间,下载新gcc,libc,再编译Libc时一路曲折,居然说ld older。我郁闷的不行 其实早就想到是Libc.so的路径问题,但是自己当时把找到usr/lib/i386-linux-gnu/ libc.so 和 libc.a,复制 /usr/local/lib/目录中,发现还是不行,当时认为跟这个路径无关了,结果应该将这个原创 2011-11-03 17:08:05 · 5146 阅读 · 0 评论 -
linux 根文件系统挂载
使用rootfs_fs接口讲cpio格式的rootfs解压缩到内存的/目录下,这时就形成一个根文件系统。分析的非常好,再次引用下:http://bbs.chinaunix.net/thread-1951077-1-1.htmlhttp://www.ibm.com/developerworks/cn/linux/l-k26initrd/整个文件系统挂在分成三种情况:原创 2011-10-27 18:58:02 · 639 阅读 · 0 评论 -
linux 启动顺序
1.BIOS阶段 有关BIOS就不在这里进行叙述,BIOS用于将启动设备中第一个扇区拷贝到RAM中,而这个扇区可能是存放MBR,后者直接是GRUB等引导程序。引导程序存放在RAM中的0x7C00地址上,2.引导程序执行阶段 在BIOS阶段中引导程序已经被拷贝到0x00007C00地址上,现在PC指针跳转到该地址上,即执行引导程序指令。这里假设引导程序是GRUB,在linux旧的原创 2011-12-15 13:08:50 · 546 阅读 · 0 评论 -
mmap的优缺点:
引用:http://lkml.indiana.edu/hypermail/linux/kernel/0004.0/0728.htmlPeople love mmap() and other ways to play with the page tables to optimize away a copy operation, and sometimes it is worth原创 2012-09-16 22:44:24 · 2492 阅读 · 0 评论