发布时间: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(); _......【阅读全文】
发布时间:2012-12-30 17:30:42
ARM Linux系统调用的原理 操作系统为在用户态运行的进程与硬件设备进行交互提供了一组接口。在应用程序和硬件之间设置一个额外层具有很多优点。首先,这使得编程更加容易,把用户从学习硬件设备的低级编程特性中解放出来。其次,这极大地提高了系统的安全性,因为内核在试图满足某个请求之前在接口级就可以检查这种请求的正确性。最后,更重要的是这些接口使得程序具有可移植性,因为只要内核所提供的一组接口相同,那么在任一内核之上就可以正确地编译和执行程序。 Unix系统通过向内核发出系统调用(system call)实现了用户态进程和硬件设备之间的大部分......【阅读全文】
发布时间:2012-12-25 22:04:20
http://blog.chinaunix.net/uid-24774106-id-3404192.html systemtap是一个很有用的工具,熟悉我博客的可以看出我以前用过这个工具,这个工具的有点就在于高度的可定制,只要你对内核足够的熟悉,你可以观 测很多参数或者数据,得到Linux很多的信息。在这方面,淘宝的霸爷是大师级的高手。我最早接触systemtap就是从霸爷的博客里面接触的。 今天主要分享下systemtap安装的一些内容。Ubuntu是我在家用的linux发行版,一直以来用Ubuntu 10.04L......【阅读全文】