Chinaunix首页 | 论坛 | 博客
  • 博客访问: 294157
  • 博文数量: 44
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 1354
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-08 15:38
个人简介

人生像是在跑马拉松,能够完赛的都是不断地坚持向前迈进;人生就是像在跑马拉松,不断调整步伐,把握好分分秒秒;人生还是像在跑马拉松,能力决定了能跑短程、半程还是全程。人生其实就是一场马拉松,坚持不懈,珍惜时间。

文章分类

发布时间:2014-12-10 22:17:17

前面已经分析了内核页表的准备工作以及内核低端内存页表的建立,接着回到init_mem_mapping()中,低端内存页表建立后紧随着还有一个函数early_ioremap_page_table_range_init():【file:/arch/x86/mm/init.c】/* * Build a proper pagetable for the kernel.........【阅读全文】

阅读(3055) | 评论(0) | 转发(2)

发布时间:2014-11-02 16:26:19

前面的前奏已经分析介绍了建立内核页表相关变量的设置准备,接下来转入正题分析内核页表的建立。 建立内核页表的关键函数init_mem_mapping():【file:/arch/x86/mm/init.c】void __init init_mem_mapping(void){  &nbs.........【阅读全文】

阅读(3904) | 评论(2) | 转发(2)

发布时间:2014-11-02 16:23:40

前面已经分析过了Intel的内存映射和linux的基本使用情况,已知head_32.S仅是建立临时页表,内核还是要建立内核页表,做到全面映射的。下面就基于RAM大于896MB,而小于4GB ,切CONFIG_HIGHMEM配置了高端内存的环境情况进行分析。 建立内核页表前奏,了解两个很关键的变量:max_pfn:最大物理内存页面帧号.........【阅读全文】

阅读(4632) | 评论(0) | 转发(2)

发布时间:2014-10-03 16:57:21

结束完memblock算法初始化前的准备工作,回到memblock算法初始化及其算法实现上面。memblock是一个很简单的算法。memblock算法的实现是,它将所有状态都保存在一个全局变量__initdata_memblock中,算法的初始化以及内存的申请释放都是在将内存块的状态做变更。那么从数据结构入手,__initdata_memblock是一个.........【阅读全文】

阅读(2611) | 评论(0) | 转发(2)

发布时间:2014-09-24 21:56:26

memblock算法是linux内核初始化阶段的一个内存分配器(它取代了原来的bootmem算法),实现较为简单。负责page allocator初始化之前的内存管理和分配请求。分析memblock算法,可以从几点入手:1、 memblock算法初始化;2、 memblock算法管理内存的申请和释放; memblock算法前的准备:前.........【阅读全文】

阅读(4670) | 评论(0) | 转发(3)

发布时间:2014-09-14 12:13:45

前面分析了linux内核如何开启保护模式和启用段页映射模式,也都分析了段式映射和段页式映射的一个概况。不过前面的分析只是侧重地讲解了x86 32位环境4Kbytes页面大小的情况,但是实际上x86可支持的分页映射模式远不止于此。所以特地总结一下。 这里先基于保护模式下IntelIA-32架构处理器非PAE下4kbytes页面.........【阅读全文】

阅读(3449) | 评论(0) | 转发(3)

发布时间:2014-08-11 01:56:14

至此linux首次进入保护模式所需的准备工作已经基本完成,段描述符表准备好了,而且GDTR也设置完毕了。 那么接下来看一下go_to_protected_mode()最后的调用:protected_mode_jump(boot_params.hdr.code32_start,(u32)&boot_params + (ds() ......【阅读全文】

阅读(2687) | 评论(0) | 转发(2)

发布时间:2014-08-11 01:48:49

接下来,我们看看linux首次进入的保护模式的内存映射方式,然后再看一下linux是如何实现保护模式的进入,进入前做了什么准备和设置。 还是借用Intel文档中的图来说明这个保护模式的保护功能:根据不同的段寄存器内容查找到对应的段描述符,描述符指明了此时的环境的可以通过段访问到内存基地址、空.........【阅读全文】

阅读(2864) | 评论(1) | 转发(2)

发布时间:2014-08-03 14:08:15

近期不小心把系统弄崩了,重装了系统,使用了ubuntu 14.04,顺便准备研究Grub 2.0引导linux的方式,发现制作bochs引导镜像着实不容易,倒也不是操作困难,而是grub命令变更比较大,一时半会还不熟,折腾了好久才算是弄好。特此留下笔记以备后忘。环境信息:Ubuntu 14.04Grub 2.021、创建img镜像文件root@Jean-vm:/ho.........【阅读全文】

阅读(3089) | 评论(0) | 转发(0)

发布时间:2014-06-02 15:35:17

    此文主要是记录了一下,基于grub 0.97等老版本做Bochs镜像的操作流程,以备后用。该文与前一篇博文总体上面就细节上稍微有些许差异,制作镜像的整体步骤相同。原本有前一篇博文就已经够了,但是个人在研究Linux内核启动的过程中,有部分细节不太清晰,后来发现是GRUB发生了变化的缘故。grub 0.97及之前.........【阅读全文】

阅读(3270) | 评论(0) | 转发(0)
给主人留下些什么吧!~~

剑魂箫心2018-07-03 23:07

博主真是神人,我正在看4.9内核代码,每当遇到理解不了的地方总能搜到博主的文章。

回复  |  举报

Jean_Leo2016-02-19 00:52

xlzheng:后面没有更新了吗,很期待啊

谢谢关注。后面会更新的,最近工作较忙,还抽不出时间来整理,下一篇是关于kmemcheck的内容

回复  |  举报

xlzheng2016-02-18 14:57

后面没有更新了吗,很期待啊

回复  |  举报
留言热议
请登录后留言。

登录 注册