自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

转载 内存知识梳理 4. 内存管理

前言Linux利用x86的分段和分页机制将逻辑地址转换为物理地址。除了内核保留一部分空间存放代码和数据以外,剩余空间需要动态管理,给内核和进程使用。本讲讲述内存管理方法。本讲包含三个方面的内容: 首先物理内存是内存管理的基础,要解决如何对其有效管理的问题,因此第一部分讲述页框管理。包括页框的概念、节点和管理区的概念、内核如何申请若干个页框、CPU内如何保障快速申请一个页框、如何用伙伴系

2017-12-14 22:04:04 2518

原创 内存知识梳理2. 不同架构页表建立入口比较

前面分别梳理了ARM 和 X86架构内存页表的建立过程, 先简单回顾下初始化的过程:ARM32:setup_arch -->paging_init -->map_lowmem -->create_mapping -->alloc_init_pud -->alloc_init_pmd -->alloc_ini

2017-12-11 21:42:13 336

转载 内存知识梳理 3. Bootmem机制

10. Bootmem机制10.1. 简介Bootmem机制是内核在启动时对内存的一种简单的页面管理方式。 它为建立页表管理代码中的数据结构提供动态分配内存的支持,为了对页面管理机制作准备,Linux使用了一种叫bootmem分配器(bootmem allocator)的机制,这种机制仅仅用在系统引导时,它为整个物理内存建立起一个页面位图。这个位图建立在内核代码映象终点_e

2017-12-11 21:40:11 931

转载 内存知识梳理2. Linux 页表的建立过程-ARM

厘清了什么是分段, 什么是分页,搞清楚了linux的三种地址,即逻辑地址、线性地址、物理地址, 也梳理了x86 linux的启动过程以及至关重要的页表建立的过程,现在再来看一看ARM linux页表的建立过程,毕竟X86 和ARM 是最为流行的两种架构。12. 页表机制12.1. 引言早期的Linux采用的是三级页表模型,在2.6.11以后采用的

2017-12-05 10:25:07 1897

转载 内存知识梳理2. Linux 页表的建立过程-x86

Linux的寻址机制的正常运行机制的正常运行,有赖于在启动过程中足部建立的内核页和页表。本节讲述内核页表的建立过程。bootloader加载内核镜像操作系统启动前时启动bootloader,并用bootloader加载和解压内核镜像到内存中。实模式下bootloader(示例中是grub)不能访问1MB以上的内存,需要暂时开启保护模式,将保护模式内核放入1MB以上的地址空间。加载完成后的内

2017-11-29 19:40:28 1633

原创 源码升级centos 内核

在基于CentOS平台的上,难免有需要升级或者,调试或者更新系统内核的需求。下面记录下centos下源码编译内核的步骤:1. 查看自己centos 的版本号, 查看方法:# cat /etc/redhat-releaseCentOS Linux release 7.3.1611 (Core)# uname -r3.10.0-514.el7.x86_64 2. 拿到版本号

2017-11-29 11:19:26 1190 2

转载 内存梳理1. linux 内存寻址

引子一段代码:#include int foo;void main(){ foo = 100; printf("%d\n",foo);}问题:变量foo存放在内存的什么位置,printf又在什么位置,CPU如何访问(修改)它们? 答:在不同操作系统上、不同的编译器编译结果、不同硬件平台上、不同时间运行它、同一时间运行的不同进程中……变量的位置

2017-11-28 20:42:03 831

转载 内存梳理0. 实模式和保护模式区别及寻址方式

在上一篇中提到了x86 保护模式,那么什么是保护模式, 本文很好的梳理了保护模式和实模式。实模式与保护模式的来历    我们先来说一下为什么有实模式和保护模式的区别。最早期的8086 CPU只有一种工作方式,那就是实模式,而且数据总线为 16位,地址总线为20位,实模式下所有寄存器都是16位。而从80286开始就有了保护模式,从80386开始CPU数据总线和地址总线均为32位,而且寄存器都

2017-11-25 19:27:11 741

转载 内存梳理0. Linux下逻辑地址-线性地址-物理地址图解

一、逻辑地址转线性地址机器语言指令中出现的内存地址,都是逻辑地址,需要转换成线性地址,再经过MMU(Memory Management Unit,CPU中的内存管理单元)转换成物理地址才能够被访问到。我们写个最简单的hello world程序,用gcc编译,再反汇编后会看到以下指令:mov    0x80495b0, %eax这里的内存地址0x80495b0 就是一个逻辑地址,

2017-11-25 14:48:20 407

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除