
读书笔记
xl365t
专注于音视频通话、视频会议、即时通信等
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
第4部分 库与运行库---(10)内存
#################### 10、内存#################### 程序的内存布局在32位操作系统中,内存空间拥有4GB的寻址能力。操作系统会把高地址的空间分配给内核,称为内核空间。默认情况下,Windows将高地址的2GB空间分配给内核,Linux将高地址的1GB空间分配给内核。剩下的2GB或3GB的内存空间称为用户空间。在用户空间里,有许多原创 2017-07-21 10:56:37 · 277 阅读 · 0 评论 -
第2部分 静态链接---(2)编译与链接
################## 2、编译和链接#################编译过程分解为4个步骤:预编译、编译、汇编和链接。// hello.c#include int main(){ printf("Hello World\n"); return 0;}(1)预编译 [gcc -E]源代码文件(hello.c)和相关的头文件(stdi原创 2017-07-21 11:05:20 · 291 阅读 · 0 评论 -
第2部分 静态链接---(3)目标文件里有什么
#################### 3、目标文件里有什么#################### 目标文件的格式可执行文件:Linux下的ELF(Executable Linkable Format)可执行文件动态链接库:DLL(Dynamic Linking Library) , linux的.so静态链接库:.aELF格式的文件可以归为以下4类:(1)原创 2017-07-21 11:19:44 · 498 阅读 · 0 评论 -
第2部分 静态链接---(4)静态链接
################## 4、静态链接#################// a.cextern int shared;int main(){ int a = 100; swap(&a, &shared);}// b.cint shared = 1;void swap(int *a, int *b){ *a ^= *b ^= *a原创 2017-07-21 12:05:21 · 381 阅读 · 0 评论 -
第3部分 装载与动态链接---(7)动态链接
#################### 7、动态链接#################### 为什么要动态链接(1)内存和磁盘空间浪费静态链接对于计算机内存和磁盘空间的浪费非常严重,特别是在多进程操作系统的情况下。比如Program1和Program2分别包含Program1.o和Program2.o两个模块,并且它们还都用到Lib.o模块。当同时运行Prog原创 2017-07-19 15:37:27 · 441 阅读 · 0 评论 -
第3部分 装载与动态链接---(6)可执行文件的装载与进程
######################### 6、可执行文件的装载与进程######################### 进程虚拟地址空间程序(或者狭义上讲可执行文件)是一个静态的概念,它就是一些预先编译好的指令和数据集合的一个文件;进程则是一个动态的概念,它是程序运行时的一个过程。每个程序被运行起来以后,它将拥有自己独立的虚拟地址空间(Virtua原创 2017-07-17 20:54:21 · 458 阅读 · 0 评论