Linuxer.
全部博文(199)
发布时间:2014-10-17 11:12:11
一、概述本文针对arm linux的启动过程。为了启动ARM Linux,你需要在内核之前运行一个引导程序(Boot loader).Boot loader的作用是初始化各种设备,调用Linux内核并给内核传递相关的消息。依赖于CPU体系结构的代码(如设备初始化代码等)通常都放在stage1且可以用汇编语言来实现,而stage2则通.........【阅读全文】
发布时间:2014-08-14 11:18:50
使用scatterlist的原因就是系统在运行的时候内存会产生很多碎片,比如4k,100k的,1M的,有时候对应磁盘碎片,总之就是碎片。而在网络和磁盘操作中很多时候需要传送大块的数据,尤其是使用DMA的时候,因为DMA操作的物理地址必须是连续的。假设要1M内存,此时可以分配一个整.........【阅读全文】
发布时间:2014-04-15 19:16:44
内核源码:linux-2.6.38.8.tar.bz2 参考文档:http://gcc.gnu.org/onlinedocs/gcc-4.6.2/gcc/Other-Builtins.html#Other-Builtins 在Linux内核中likely和unlikely函数有两种(只能两者选一)实现方式,它们的实现原理稍有不同,但作用是相同的,下面将结合linux-2.6.38..........【阅读全文】
发布时间:2014-01-02 17:05:28
前言:本文是对早期内核的引导启动过程做的分析笔记,这样可以更好的了解内核的启动过程。而现代大部分PC都是靠grub等引导工具引导启动的。x86架构下linux系统引导启动过程,大致分为以下几个阶段: 一.BIOS启动引导阶段(1)当PC的电源打开后,80x86结构的cpu将自动进入实模式,并从地址0xFFFF0开始自动执行程序代.........【阅读全文】
发布时间:2013-12-27 15:14:51
前言:新版本的内核对于保存在IDTR寄存器中的IDT表地址使用的是内核固定映射线性地址,所以在这里再把内核中固定映射的寻址机制描述一下。一、固定映射概念内核线性地址第四个GB的初始部分映射系统的物理内存。但是至少128M的线性地址总是留作他用,因为内核使用这些线性地址实现非连续内存分配和固定映射的线性地.........【阅读全文】