发布时间:2013-01-04 11:31:19
linux paging init 分析 谨以此文纪念过往岁月 一. 前言 Linux中内存管理机制是一个很大的内容,在本文中,主要是来关注linux启动时,对于页表项的建立。其主要来关注paging_init这个函数,同时在其中掺杂cache,tlb等内容。 二.paging_init详解 这个函数看上去很简单,但是他却一点也不简单,在其中遍布了杀机,一步不慎就将陷入那不可自拔的深潭,咱们还是步步为营,一步一步来理解其中的种种。 void __init paging_init(struct meminfo *mi, s......【阅读全文】
发布时间:2013-01-03 20:34:34
挂载根文件系统 挂载根文件系统是一个相当复杂的过程,因为Linux内核允许根文件系统存放在很多不同的地方,比如硬盘分区、软盘、通过NFS共享的远程文件系统,甚至保存在ramdisk中(RAM中的虚拟块设备)。 为了使叙述变得简单,在此假定根文件系统存放在硬盘分区(毕竟这是最常见的情行)。当系统启动时,内核就要在变量ROOT_DEV中寻找包含根文件系统的磁盘主设备号: --------------------------------------------------------------------- init/do_mount......【阅读全文】
发布时间:2013-01-03 16:06:37
本文分析基于linux2.4.19 source,pxa 270 cpu. ARM linux内核启动时,通过start_kernel()->trap_init()的调用关系,初始化内核的中断异常向量表. /* arch/arm/kernel/traps.c */ void __init trap_init(void) { extern void __trap_init(unsigned long); unsigned long base = vectors_base(); _......【阅读全文】