个人认为比较好的计算机书籍
摘要:程序员的自我修养: 全名(程序员的自我修养:链接、装载与库) 知其然,更知其所以然——潘爱民 这本书主要介绍系统软件的运行机制和原理,涉及在Windows和Linux两个系统平台上,一个应用程序在编译、链接和运行时刻所发生的各种事项,包括:代码指令是如何保存的,库文件如何与应用程序代码静态链接,应用程序如何被装载到内存中并开始运行,动态链接如何实现,C/C++运行库的工作原理,以及操作系统提供的...
阅读全文
posted @
2013-09-13 10:04
joseph_伽拉
阅读(594)
推荐(0)
Linux链接脚本学习--lds
摘要:一、概论 ld: GNU的链接器. 用来把一定量的目标文件跟档案文件链接在一起,并重新定位它们的数据,链接符号引用. 一般编译一个程序时,最后一步就是运行ld进行链接 每一个链接都被一个链接脚本所控制,这个脚本是用链接命令语言书写的. 二、链接脚本 链接脚本的一个主要目的是描述输入文件中的各个段(数据段,代码段,堆,栈,bss)如何被映射到输出文件中,并控制输出文件的内存排布. 链接器总是使用...
阅读全文
posted @
2013-09-12 17:27
joseph_伽拉
阅读(7053)
推荐(1)
数据段、代码段、堆栈段、BSS段
摘要:在linux中,进程在内存中一般会分为5个段,用来存放从磁盘载入的程序代码,等. 这五个段分别是: BSS段: 通常用来存放程序中未初始化的全局变量的一块内存区域.属于静态内存分配. 问题:全局变量不都是默认被初始化为0吗? (data)数据段: 通常是指用来存放程序中已初始化的全局变量的一块内存区域.数据段属于静态内存分配. (text)代码段: 通常指用来存放程序执行代码的一块内存区...
阅读全文
posted @
2013-09-12 15:12
joseph_伽拉
阅读(1439)
推荐(0)
Makefile学习
摘要:一直以来对于所学的东西都是会而不精,今天从makefile开始,深入的学习一下一些基础的内容.参考:gunmake.htmMakefilemake 可以自动判断一个大程序中哪些文件需要编译,并编译它们. 如何判断? make程序根据Makefile文件中的数据和每个文件更改的时间戳决定哪些文件需要更新. 使用make 必须要有对应的Makefile文件 它根据makefile文件来决定干什么 makefile的规则: 目标 target : 依赖1 prerequiries ....() 编译的命令1(cmd) .... 以tab开...
阅读全文
posted @
2013-09-11 15:56
joseph_伽拉
阅读(784)
推荐(0)