程序编译和链接原理理解

一、本书解决的问题
本书主要介绍系统软件的运行机制和原理,涉及在Windows和Linux两个系统平台下,一个应用程序在编译、链接、和运行时所做的事,具体如下:
1.Windows和Linux操作系统下各自的可执行文件、目标文件格式?
2.普通的C/C++程序代码如何编译成目标文件及程序的目标文件如何存储?
3.目标文件如何被链接器链接到一起,并且形成可执行文件?
4.目标文件在链接时符号处理、重定位和地址分配如何进行?
5.可执行文件如何被装载,装载到哪,并且执行?
6.可执行文件与进程的虚拟地址空间之间如何映射?虚拟地址和物理地址之间的映射由系统完成,怎样完成?
7.什么是静态链接,动态链接,两者的区别,为啥要使用动态链接?
8。Windows和Linux如何进行动态链接及相关问题?
9.堆,栈,代码段,数据段,BSS段的理解?
10.运行库,系统调用与API的理解?

二、相关书籍介绍
1.《Linkers and Loaders》                         --介绍链接和装在方面最为完整和权威的理论著作
2.《Linux内核源代码情景分析》                     --基于Linux2.4内核的,对于内核很多细节描述详细
3.《深入理解计算机系统》                          --对整个计算机硬件体系结构进行了深入浅出的介绍,是理解系统底层不可多得的书籍
4.《深入理解Windows操作系统》                     --深入理解Windons内核最好的书籍
5.《Advanced Programming in the UNIX Environment》--理解UNIX系统内核,运行库和运行环境最好的选择

三、相关知识链接
1.计算机硬件的最为关键的三个部件:CPU,内存,I/O设备
1)CPU及其架构的发展
1>CPU早期的核心频率不高,跟内存的频率一样,故采用了用一个总线(BUS)将两者联系起来。
2>由于很多的I/O设备速度与CPU和内存慢很多,为了协调CPU和I/O设备间的通信,每个设备都会有一个相应的控制器,其相当于解决了不同速度之间的协议问题。
3>其实CPU的发展速度很快,导致内存的速度跟不上,故产生了与内存频率一致的,CPU通过分频和系统总线通信;
4>北桥-满足图形设备,CPU和内存之间的通信,利用北桥芯片实现;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值