摘要:
PFN相关宏说明: 打印结果记录: initrd_start = 0x81a0000, initrd_end = 0x81b2e720 我们继续看 start_kernel—>setup_arch—>arch_mem_init—>bootmem_init。 2. init_initrd 在 kern 阅读全文
摘要:
源码声明:基于Linux kernel 3.08 1. 在kernel/arch/mips/kernel/head.S中会做一些特定硬件相关的初始化,然后会调用内核启动函数:start_kernel; 2. start_kernel是通用的内核启动函数,但是在初始化内核过程中,必然有一些参数是特定于 阅读全文
摘要:
GNU C的一大特色就是__attribute__机制。__attribute__机制可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。 __attribute__语法格式为:__attribute_ 阅读全文
摘要:
git仓库创建:1. mkdir project-repertory2. cd project-repertory3. git init --bare 此时,git仓库已成功创建。 本地要提交的代码在./project目录下:1. cd ./project2. git init ; 创建本地git库 阅读全文
摘要:
基本思想: 当插入第 i (i >= 1)个数据元素时,前面的 V[0], V[1], ..., V[i-1] 已经排好序。这时,用 V[i] 的关键字与 V[i-1], V[i-2], ... 的关键字进行比较,找到插入位置即将 V[i] 插入,原来位置上的对象向后顺移。 直接看代码,仔细想想,其 阅读全文
摘要:
基本思想: 每一趟(例如第i趟,i=0,1,2,...,n-2)在后面 n-i 个待排序的数据元素中选出关键字最小的元素,作为有序元素序列的第 i 个元素。 阅读全文
摘要:
一般定义:将一组“无序”的数据元素调整为“有序”的数据元素。数学定义:假设含n个数据元素的序列为{R1,R2,...,Rn},其相应的关键字序列为{K1,K2,...,Kn},这些关键字相互之间可以进行比较,即在它们之间存在这样的关系: 按此固有关系将上式记录序列重新排序为: 的操作称为排序。 排序 阅读全文
摘要:
页表:用于建立用户进程空间的虚拟地址空间和系统物理内存(内存、页帧)之间的关联。 向每个进程提供一致的虚拟地址空间。 将虚拟内存页映射到物理内存,因而支持共享内存的实现。 可以在不增加物理内存的情况下,将页换出到块设备来增加有效的可用内存空间。 内核内存管理总是假定使用四级页表。 3.3.1 数据结 阅读全文
摘要:
汇编:assembly 猜测:所以这个宏跟汇编有关?! 引用:某些常量宏会同时被C和asm引用,而C与asm在对立即数符号的处理上是不同的。asm中通过指令来区分其操作数是有符号还是无符号的,而不是通过操作数。而C中是通过变量的属性,而不是通过操作符。C中如果要指明常量有无符号,必须为常量添加后缀, 阅读全文
摘要:
内核对一致和非一致内存访问系统使用相同的数据结构。在UMA系统上,只使用一个NUMA结点来管理整个系统内存。而内存管理的其他部分则相信他们是在处理一个伪NUMA系统。 3.2.1 概述 内存划分为结点。每个结点关联系统中的一个处理器,在内核中,使用pg_data_t的实例。 各个结点又划分为内存域, 阅读全文