CPU内存地址/IO地址-地址转换
国境之南Fantasy
Coder
展开
-
CPU地址空间
转自:http://joe.is-programmer.com/posts/17559.htmlCPU地址空间(一)地址的概念1)物理地址:CPU地址总线传来的地址,由硬件电路控制其具体含义。物理地址中很大一部分是留给内存条中的内存的,但也常被映射到其他存储器上 (如显存、BIOS等)。在程序指令中的虚拟地址经过段映射和页面映射后,就生成了物理地址,这个物理地址被放到CPU的地址线转载 2012-06-05 13:56:47 · 623 阅读 · 0 评论 -
Intel CPU 地址空间总结
一、地址空间映射 这里要说的是Intel构架下的CPU地址空间布局,注意这里没有说是内存地址空间布局。 我们说的内存通常是指DRAM,DRAM相对于CPU也可以算是外部设备,CPU地址空间是CPU访问外部设备过程中的一个概念,CPU除了访问DRAM外还会访问许多其他的设备。可以粗略的认为CPU地址空间包含DRAM地址空间,但两者却是不同的概念。而且转载 2015-12-14 17:55:01 · 2466 阅读 · 0 评论 -
CPU与内存的那些事
下面是网上看到的一些关于内存和CPU方面的一些很不错的文章. 整理如下:转: CPU的等待有多久?原文标题:What Your Computer Does While You Wait原文地址:http://duartes.org/gustavo/blog/[注:本人水平有限,只好挑一些国外高手的精彩文章翻译一下。一来自己复习,二来与大家分享。] 本文以转载 2015-12-14 19:32:59 · 4305 阅读 · 0 评论 -
主板芯片组与内存映射
原文标题:Motherboard Chipsets and the Memory Map原文地址:http://duartes.org/gustavo/blog/ [注:本人水平有限,只好挑一些国外高手的精彩文章翻译一下。一来自己复习,二来与大家分享。] 我打算写一组讲述计算机内幕的文章,旨在揭示现代操作系统内核的工作原理。我希望这些文章能对电脑爱好者和程序员有所帮转载 2015-12-14 19:34:11 · 1975 阅读 · 0 评论 -
80386的分段机制、分页机制和物理地址的形成
注:本分类下文章大多整理自《深入分析linux内核源代码》一书,另有参考其他一些资料如《linux内核完全剖析》、《linux c 编程一站式学习》等,只是为了更好地理清系统编程和网络编程中的一些概念性问题,并没有深入地阅读分析源码,我也是草草翻过这本书,请有兴趣的朋友自己参考相关资料。此书出版较早,分析的版本为2.4.16,故出现的一些概念可能跟最新版本内核不同。此书已经开源,阅读地址转载 2016-01-16 13:27:14 · 726 阅读 · 0 评论 -
GDT、GDTR、LDT、LDTR的学习
GDT的由来:在Protected Mode下,一个重要的必不可少的数据结构就是GDT(Global Descriptor Table)。为什么要有GDT?我们首先考虑一下在Real Mode下的编程模型:在Real Mode下,我们对一个内存地址的访问是通过Segment:Offset的方式来进行的,其中Segment是一个段的Base Address,一个Segme转载 2016-01-10 19:27:54 · 561 阅读 · 0 评论 -
linux 0.11 GDT,LDT,GDTR,LDTR
http://hi.baidu.com/shaobozuo/item/d121efc9892a74c697445266GDT,LDT,GDTR,LDTR买 了本罗老师的琢石成器,才看前3章就感觉晕晕忽忽,总体觉得要看懂这本书前提是必须会DOS汇编,了解32位汇编基础.DOS汇编本人只看了王爽老师的汇 编语言前11章,中断这块还没有看,看来不看还是不行的。转回来说,罗老师转载 2016-01-10 19:35:56 · 1048 阅读 · 0 评论 -
x86 系列 CPU 内存寻址模式总结
by adie June 23, 2013, 6:12 p.m.说明: S16 表示 16 位段寄存器 P16 表示 16 位的普通寄存器, 立即数, 结果为 16 位的表达式等等. P32 同上, 只是扩展到 32 位. 一. CPU 概况 1. 8086: 8 位数据线, 16 位地址线. 8 位数据线和前8位地址线合用. 2.转载 2016-01-10 20:32:38 · 4833 阅读 · 0 评论 -
内存寻址原理
在做网络安全事件分析的时候,都会遇到内存寻址的知识,例如上次跟大家分享的《 空指针漏洞防护技术》,就涉及到非法访问内存地址的问题。如果这个坎儿迈不过去,你就会迷失在代码中,更无从分析了。今天绿盟科技的安全技术专家就讲讲这个内存寻址的原理,文章分为上下两篇《内存寻址原理》及《内存寻址方式》。随着信息化发展和数据处理能力需求的提高,对计算机硬件产品的性能和容量也提出了新的挑战,要求计算机处理能力也转载 2016-01-10 20:25:02 · 11395 阅读 · 0 评论 -
linux内存寻址解析
1.内存地址1.逻辑地址:每一个逻辑地址都有一个段和偏移量组成。2.线性地址:也叫虚拟地址,是一个32位无符号整数,可以用来表示高达4GB的地址,值得范围从0x00000000到0xffffffff。3.物理地址:用于内存芯片级内存单元寻址内存控制单元(MMU)将逻辑地址转化成线性地址,再转化成物理地址。2.硬件中的分段1.段选择符(段寄存器 ) (1.包括:索引、转载 2016-01-10 20:20:43 · 3918 阅读 · 0 评论 -
Linux用户空间与内核空间
Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。于是像linux这样的系统就做了一个约定,不允许没有用户空间上下文的内核线程访问用户空间。不允许内核访问用户空间使内核免去了很多的负担,使内核设计更加简化转载 2014-07-01 18:28:36 · 997 阅读 · 0 评论 -
Linux用户空间与内核空间
Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。于是像linux这样的系统就做了一个约定,不允许没有用户空间上下文的内核线程访问用户空间。不允许内核访问用户空间使内核免去了很多的负担,使内核设计更加简化转载 2014-07-02 10:54:40 · 2824 阅读 · 1 评论 -
[ARM笔记]设备IO端口和IO内存的访问
设备通常会提供一组寄存器来用于控制设备、读写设备和获取设备状态,即控制寄存器、数据寄存器和状态寄存器。这些寄存器可能位于IO空间,也可能位于内存空间。当位于IO空间时,通常被称为IO端口,位于内存空间时,对应的内存空间成为IO内存。1. Linux IO端口和IO内存访问接口1.1 IO端口 在Linux设备驱动中,应使用Linux内核提供的函数来访问定位于IO空间的端转载 2012-06-05 13:59:12 · 1358 阅读 · 0 评论 -
IO端口和IO内存
在驱动程序编写过程中,很少会注意到 IO Port 和 IO Mem 的区别。虽然使用一些不符合规范的代码可以达到最终目的,这是极其不推荐使用的。结合下图,我们彻底讲述 IO 端口和 IO 内存以及内存之间的关系。主存 16M 字节的 SDRAM ,外设是个视频采集卡,上面有 16M 字节的 SDRAM 作为缓冲区。1. CPU 是 i386 架构的情况在 i386转载 2012-06-05 14:00:38 · 688 阅读 · 0 评论 -
iomem—I/O映射方式的I/O端口和内存映射方式的I/O端口
Linux将基于I/O映射方式的I/O端口和基于内存映射方式的I/O端口资源统称为“I/O区域”(I/O Region)。I/O Region仍然是一种I/O资源,因此它仍然可以用resource结构类型来描述。下面我们就来看看Linux是如何管理I/O Region的。3.3.1 I/O Region的分配在函数__request_resource()的基础上,Linux实现了用转载 2012-06-07 15:58:08 · 961 阅读 · 0 评论 -
内存地址空间
《汇编语言(第2版)》第1章基础知识,在本章中,我们对硬件系统结构的问题进行一部分的探讨,以使后续的课程可在一个好的基础上进行。当课程进行到需要补充新的基础知识(关于编程结构或其他的)的时候,再对相关的基础知识进行介绍和探讨。本节为大家介绍的是内存地址空间。AD:1.15 内存地址空间上述的那些存储器,在物理上是独立的器件,但是在以下两点上相同。转载 2012-06-07 14:48:36 · 1116 阅读 · 0 评论 -
Intel CPU 地址空间总结
一、地址空间映射 这里要说的是Intel构架下的CPU地址空间布局,注意这里没有说是内存地址空间布局。 我们说的内存通常是指DRAM,DRAM相对于CPU也可以算是外部设备,CPU地址空间是CPU访问外部设备过程中的一个概念,CPU除了访问DRAM外还会访问许多其他的设备。可以粗略的认为CPU地址空间包含DRAM地址空间,但两者却是不同的概念。而且转载 2012-06-07 15:52:21 · 931 阅读 · 0 评论 -
CPU地址空间,IO端口和IO内存
1)物理地址:CPU地址总线传来的地址,由硬件 电路控制其具体含义。物理地址中很大一部分是留给内存条中的内存的,但也常被映射到其他存储器上(如显存、BIOS等)。在程序指令中的虚拟地址经过段映 射和页面映射后,就生成了物理地址,这个物理地址被放到CPU的地址线上。 物理地址空间,一部分给物理RAM(内存)用,一部分给总线用,这是由硬件设计来决定的,因此在32 bits地址线的x8转载 2012-06-07 17:18:15 · 4201 阅读 · 0 评论 -
Linux内核访问外设I/O资源的方式
Linux内核访问外设I/O资源的方式Author: DongasDate: 08-08-02我们知道默认外设I/O资源是不在Linux内核空间中的(如sram或硬件接口寄存器等),若需要访问该外设I/O资源,必须先将其地址映射到内核空间中来,然后才能在内核空间中访问它。Linux内核访问外设I/O内存资源的方式有两种:动态映射(ioremap)和静态映射(map_desc)。转载 2012-08-03 10:35:02 · 1009 阅读 · 0 评论 -
从 Linux 内核访问用户空间内存
Linux 内存和用户空间 API 简介因为内核和用户空间存在于不同的虚拟地址空间中,在它们之间移动数据需要特别注意。研究虚拟地址空间和内核 API 理念,用于将数据移入或移出用户空间,并学习其他的一些用于映射内存的映射技术。Linux 内存在 Linux 中,用户内存和内核内存是独立的,在各自的地址空间实现。地址空间是虚拟的,就是说地址是从物理内存中抽转载 2014-07-01 15:49:27 · 1043 阅读 · 0 评论 -
在内核窥视用户态
在内核窥视用户态首先,环境:VMware Server上运行的ubuntu10.4,arch为x86_64。先看下面这个程序:#include #include #include int dataA;char bufA[1000];int main(){ int d转载 2014-07-01 15:07:56 · 805 阅读 · 0 评论 -
Linux内存管理图解
Linux内存管理图解作者:wdy一、逻辑地址转线性地址 机器语言指令中出现的内存地址,都是逻辑地址,需要转换成线性地址,再经过MMU(CPU中的内存管理单元)转换成物理地址才能够被访问到。我们写个最简单的hello world程序,用gccs编译,再反编译后会看到以下指令:mov 0x80495b0, %eax这里的内存地转载 2016-01-10 20:55:18 · 1041 阅读 · 2 评论