编译链接
copbint
种一棵树,最好的时间是十年前,其次是现在!!<br>
有问题交流与讨论可以直接加我微信"copbint",CSDN回复非常不及时。
很多东西记了只是方便自己复习的,如果觉得没啥帮助请轻喷。
展开
-
链接装载与库 第4章 静态链接
静态链接/* a.c */extern int shared;int main(){ int a = 100; swap( &a, &shared);}/* b.c */int shared = 1;void swap(int* a, int* b){ *a ^= *b ^= *a ^= *b;}4.1 空间与地址分配对于多个输入...原创 2018-11-09 08:38:24 · 349 阅读 · 0 评论 -
链接装载与库 第3章 目标文件里有什么
PC平台流行的可执行文件格式: linux ELF(executable linkable format) windows PE(portable executable)它们都是coff格式的变种。ELF文件可分为如下4类可重定位文件 包含了代码和数据块,可以被用来链接成可执行文件或共享目标文件。静态库也可以归为这一类(为什么?)可执行文件 windows下的exe linux下无...原创 2018-11-04 23:04:56 · 240 阅读 · 0 评论 -
链接装载与库 第6章 可执行文件的装载与进程
可执行文件的装载与进程在第一章中讲到,程序直接使用物理内存地址有以下缺点:地址空间不隔离。恶意程序可以很容易的改写其他程序的数据。内存使用效率低。一个程序需要执行时,需要将整个程序装入内存之中。程序运行地址的不确定。因为无法保证每次都将程序加载到相同的地址,会涉及到程序重定位的问题。解决方法是使用分页的方式:操作系统将内存分成大小固定的页(最常用的页大小为4kb)。进程使用虚拟地址...原创 2018-11-24 08:14:50 · 361 阅读 · 0 评论 -
链接装载与库 第7章 动态链接
7.1 为什么要动态链接静态链接的缺点:浪费磁盘和内存空间更新困难。如果某个模块发生更新,就需要重新打包整个程序,用户需要下载整个程序。动态链接能够解决以上两个问题,动态链接的思想即是将程序和模块分隔开来,等到运行时才进行链接。所以在内存中,多个程序可以共享一个模块,共享内存不仅节约内存,也能够减少物理页面的换入换出,增加CPU缓存命中率。程序可扩展性和兼容性程序在运行时可以动态的...原创 2018-12-09 18:30:50 · 532 阅读 · 1 评论 -
链接装载与库 第8章 linux共享库的组织
由于动态链接的优点,大量的程序使用动态链接机制,导致系统里面存在数量极为庞大的共享对象。必须得有很好的机制来管理这些共享库,否则这些共享对象散落在各个目录下,长期的维护,升级,都有会很大的问题。8.1 共享库版本8.1.1 共享库的兼容性共享库的版本会不断的更新,以修正原有的bug,增加新的功能,或改进性能。共享库的更新可以分为兼容更新和不兼容更新。版本之间的兼容性是共享库面临的一个大...原创 2018-12-11 01:19:39 · 192 阅读 · 0 评论 -
链接装载与库 第10章 内存
10.1 程序的内存布局现代的应用程序都运行在一个内存空间里,在32位系统里,这个内存空间拥有4GB的寻址能力。一般来讲,应用程序的内存空间里有如下默认的区域:栈 用于维护函数调用的上下文堆 用来容纳应用程序动态分配的内存区域可执行文件映像保留区 并不是一个单一的内存区域,而对受到保护而禁止访问的内存区域的总称。如地址为0的内存。动态链接库映射区 在linux下,如果可执行文...原创 2018-12-18 08:49:38 · 178 阅读 · 0 评论 -
内核编译杂记
make澄清:make oldconfig里面说到make oldconfig是将.config文件进行一个备份。在实际测试的过程中,发现可能不是简单的备份.config文件。当缺少构建工具的时候,比如bison,flex时,命令执行失败。而且测试发现,make oldconfig会直接改变.config文件。难道说,就是编辑.config文件之前,会备份.config文件到.conf...原创 2019-01-18 08:49:32 · 109 阅读 · 0 评论 -
单独编译内核模块
最近在学习ipvs的内核源码,便想对源码加入一些注释,来帮助理解。由于编译整个内核的时候过长,故研究了一番怎么编译单个内核模块。1 编译一个最简单的内核模块参考:https://blog.csdn.net/zhangyifei216/article/details/49703435/*helloworld.c*/#include <linux/module.h> //...原创 2019-04-27 16:53:52 · 2827 阅读 · 0 评论