
链接装载与库
桀溺。
这个作者很懒,什么都没留下…
展开
-
内存之栈堆
首先看看进程的地址空间是如何分布的现代的应用程序都运行在一个内存空间里,在32的系统里,这个内存空间拥有4GB的寻址能力,Linux默认情况下将高地址的1GB空间分配给内核,用户使用剩下的3GB的内存空间称为“用户空间”,一般来讲,应用程序使用的内存空间有如下的“默认权限”:栈:栈用于维护函数系统调用的上下文,离开了栈函数调用就没法实现。堆:堆是用来容纳应用程序动态分配的内存区域,当程序...原创 2019-10-20 12:26:52 · 282 阅读 · 0 评论 -
为什么执行同一个程序每次输出的变量地址是不一样的
首先看一下下面的代码#include<stdio.h>int main(){ int a = 1; printf("%p\n", &a); return 0;}然后我就很疑惑,为什么每次的地址都是不一样的。为什么会有这样的疑问呢,编译完成后得到的文件叫做可重定位目标文件,链接的过程就是主要就是地址空间分配,符号决议和重定位。那么,按照这...原创 2019-09-20 09:45:47 · 3876 阅读 · 0 评论 -
虚拟内存--内存不够怎么办
你听说过虚拟内存的概念吗???这是百度百科上的描述,说的很精辟,但是想必如果是一个新手,就会完全不知道所云。那虚拟内存到底是怎样一种技术呢?他的用处是什么呢?它为何而出现呢????物理内存假如我们没有虚拟内存的概念,只有物理内存。那你想象一下,我们现在使用计算机都是多核处理,多并发的,也就是说在同一时刻可能会有多个进程在同时运行,也就是说有限的物理内存需要分配给正在跑的所有进程。这会带来什么...原创 2019-10-06 14:09:25 · 414 阅读 · 0 评论 -
系统软件体系架构
计算机系统软件体系结构采用一种层的结构,有人说过一句名言:"Any problem in computer science can be solved by another layer of indirection."计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决。这句话几乎概括了计算机系统软件体系结构的设计要点,整个体系结构从上到下都是按照严格的层次结构设计的。不仅是计算机系...原创 2019-10-07 18:22:47 · 569 阅读 · 0 评论