美文网首页
浅尝辄止74-内存的虚拟地址

浅尝辄止74-内存的虚拟地址

作者: 阿棍儿_Leon | 来源:发表于2019-01-29 23:56 被阅读0次

早期的程序是直接使用物理地址的,现在有操作系统的平台一般都不会这么做,现在ARM平台都用虚拟地址。当然,如果非要拿它当单片机用也是可以的。

虚拟地址

一段程序就是CPU的一个个动作,每个动作就是做一个最简单的数学题,但是题从哪来呢?
我们知道,当给安装一个程序的时候,硬盘空间就会变小,因此可以初步判断,那一道道数学题是存在硬盘里的。
做题的是CPU,题目在硬盘,但问题是CPU不能直接访问硬盘,因为CPU只能记住几个数,现在的硬盘每次至少能给出512个字节,而且还很慢。
不过,CPU可以直接访问(先暂时认为是直接的)内存,我们是有办法把512个字节先放到内存,然后慢慢算的,这个过程先不讨论,先关心CPU怎么做内存里的数学题的。
题目在硬盘里之后,CPU就从某个地址开始,一道道地做题,把结果再放回内存某处,或者是根据结果控制其它硬件的行动。
现在电脑上运行的程序可不止一个哦。比如,我们可以同时开着下载器和播放器两不耽误,哪怕我们不用多核CPU,这也是可以做到的。那么问题来了,程序A可以读取程序B的题目或计算结果吗?换个问法,微信能读取支付宝的用户资料吗?当然是不行的,但是大家都用物理地址的话,只要把地址都读个遍,对方程序的题目就都能获得了,这题目就可能是对方的加解密算法哦。当然,自己也没有隐私可言。
有了虚拟地址就不一样了,每个程序有自己独立的地址空间,32位机一般是4G的空间,每个进程都可以认为这些空间都是属于它自己使用的,这个空间就是虚拟地址空间,没有人可以打扰的空间。

相关文章

  • 浅尝辄止74-内存的虚拟地址

    早期的程序是直接使用物理地址的,现在有操作系统的平台一般都不会这么做,现在ARM平台都用虚拟地址。当然,如果非要拿...

  • linux内存

    1 内存寻址 1.1 物理地址、虚拟地址以及线性地址 物理地址: 物理内存的内存单元地址 虚拟地址: 程序员看到的...

  • Linux kernel之二内存管理之进程虚拟地址空间

    1.背景 虚拟内存的一大优势就是每个进程有自己的虚拟地址空间,OS 负责将其虚拟地址空间映射到物理内存中。内核处理...

  • 3. 内存管理

    内存管理 内存管理包含: 物理内存管理; 虚拟内存管理; 两者的映射 除了内存管理模块, 其他都使用虚拟地址(包括...

  • 操作系统内存

    Linux 内存 一、虚拟内存 这个虚拟内存指的是“进程的虚拟内存”,或者说是虚拟地址空间,注意与” Linux ...

  • 20 内存管理上

    内存管理包括物理地址和虚拟地址 用户态进程使用虚拟地址,内核态大部分也使用虚拟地址。 虚拟空间分为内核空间和用户空...

  • kernel 内存 I/O

    内存 I/O# 内存管理单元## MMU辅助操作系统进行内存管理,提供虚拟地址和物理地址的映射、内存访问权限保护和...

  • 2 字符驱动

    1驱动中分配内存kmalloc 分配连续的虚拟地址,用于小内存分配。在include/linux/slab.h 2...

  • 25用户态内存映射

    mmap 将虚拟地址空间映射到物理内存 匿名映射,即虚拟内存和物理内存直接映射文件映射,将文件映射到虚拟内存ima...

  • Linux 中的 swap

    Swap 介绍 在详细介绍swap之前,需要知道的是计算机内存分为物理内存与虚拟内存(注意虚拟内存和虚拟地址空间的...

网友评论

      本文标题:浅尝辄止74-内存的虚拟地址

      本文链接:https://www.haomeiwen.com/subject/mhtfsqtx.html