![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux Kernel
文章平均质量分 76
cha_echo
这个作者很懒,什么都没留下…
展开
-
bootmem
如有问题,欢迎一起讨论:-) 为了对页面管理机制作初步准备,Linux使用了一种叫bootmem分配器的机制,它仅仅用在系统引导时,为整个物理内存建立一个页面位图,位图建立开始于start_pfn,即内核映像终点_end,结束是max_low_pfn,主要用来管理0-896MB的范围。目的:在这个范围有的页面可能保留,有些页面可能是空洞,要搞清楚哪些物理页面是可以动态分配的。原创 2010-05-16 18:00:00 · 1039 阅读 · 0 评论 -
临时地址映射
如有问题,欢迎一起讨论:-) 临时地址映射了建立了compile-time特殊的虚地址,分配的虚地址是从0xfffff000向后使用 和永久地址映射不同,它可以在中断或可延迟的上下文中使用而不会睡眠,在高端内存任一页框都可以通过窗口映射到次内核地址空间 首先看一些重要的数据结构和宏定义#define __FIXADDR_TOP 0xfffff000原创 2010-05-19 21:47:00 · 805 阅读 · 0 评论 -
永久地址映射
首先要看几个重要的数据结构和概念: #ifdef CONFIG_X86_PAE#define LAST_PKMAP 512#else#define LAST_PKMAP 1024 #define LAST_PKMAP_MASK (LAST_PKMAP - 1)#endif定义了永久地址映射的,页表的数量,从这里我们也可以知道,原创 2010-05-19 21:49:00 · 7436 阅读 · 0 评论 -
ubuntu--qemu调试linux内核环境搭建
<br />下载qemu源码:http://wiki.qemu.org/Download<br />我下的是qemu-0.12.4.tar.gz<br /> <br /> <br />zecho@zecho-laptop:~$ tar zxvf qemu-0.12.4.tar.gzzecho@zecho-laptop:~$ cd qemu-0.12.4 <br /> <br /> <br />需要在configure之前安装几个组件<br />zecho@zecho-laptop:~$ sudo原创 2010-06-13 12:37:00 · 4177 阅读 · 0 评论 -
内核模块
模块的作用不多说,它消除了宏内核的限制,通过使用模块可以预先编译大量的驱动程序,不会使内核膨胀。同时也可以使试验性的代码打包到模块中。 初始化和清理函数 模块的初始化函数和清理函数,保存在.gnu.linkonce.module段中的module实中。根据.gnu.linkonce.module段,内核来判断二进制文件是否为模块。定义如下: struct module __this_module __attribute__((section(".gnu.lin原创 2010-09-25 00:49:00 · 820 阅读 · 0 评论