郑同学的笔记
CSDN官方认证C++领域优质创作者,CSDN博客专家,2023年6月城市(西安)之星TOP35。分享学习、记录成长。
展开
-
【编译、链接、装载十】可执行文件的装载与进程
二、装载的方式1、分页(Paging)2、 页映射三、从操作系统角度看可执行文件的装载1、进程的建立2、页错误四、进程虚存空间分布1、ELF文件链接视图和执行视图2、堆和栈原创 2023-06-22 06:00:00 · 878 阅读 · 0 评论 -
【编译、链接、装载九】静态链接
详解静态链接、虚拟地址空间、重定位、重定位表、符号解析原创 2023-06-21 06:00:00 · 858 阅读 · 0 评论 -
【编译、链接、装载十六】汇编与指针、汇编与new
简介:我们从预处理、编译、汇编、编译、链接、装载一路走到现在,一直在c语言的层面分析,原因还是这些知识太苦涩,理解时需要看下具体的反汇编代码,且c++的反汇编更难理解些,所以,c语言的入手比c++入手更简单和更好理解些。在这个系列的结尾,我们从汇编层面分析下c++ new的过程、c++类的初始化过程、类的成员函数调用过程。另外再从汇编层面看下c语言的指针是怎么工作的。原创 2023-07-11 06:00:00 · 464 阅读 · 0 评论 -
【编译、链接、装载十五】系统调用与API——printf源码分析
什么是系统调用在现代的操作系统里, 程序运行的时候, 本身是没有权利访问多少系统资源的。由于系统有限的资源有可能被多个不同的应用程序同时访问,因此, 如果不加以保护, 那么各个应用程序难免产生冲突。所以现代操作系统都将可能产生冲突的系统资源给保护起来, 阻止应用程序直接访问。这些系统资源包括文件、 网络、 IO、 各种设备等。举个例子, 无论在Windows下还是Linux下, 程序员都没有机会擅自去访问硬盘的某扇区上面的数据, 而必须通过文件系统;原创 2023-07-04 06:00:00 · 299 阅读 · 0 评论 -
【编译、链接、装载十四】堆与内存管理
光有栈对于面向过程的程序设计还远远不够, 因为栈上的数据在函数返回的时候就会被释放掉, 所以无法将数据传递至函数外部。而全局变量没有办法动态地产生, 只能在编译的时候定义, 有很多情况下缺乏表现力。在这种情况下, 堆(Heap) 是唯一的选择。堆是一块巨大的内存空间, 常常占据整个虚拟空间的绝大部分。在这片空间里, 程序可以请求一块连续内存, 并自由地使用, 这块内存在程序主动放弃之前都会一直保持有效。下面是一个申请堆空间最简单的例子。原创 2023-06-26 19:26:09 · 354 阅读 · 0 评论 -
【编译、链接、装载十三】内存中的栈——图解栈的运行过程
【编译、链接、装载十三】内存中的栈——图解栈的运行过程原创 2023-06-25 06:00:00 · 880 阅读 · 0 评论 -
【编译、链接、装载十二】动态链接2
延迟绑定(PLT)、动态链接相关结构、动态链接的步骤和实现、显式运行时链接原创 2023-06-24 06:00:00 · 482 阅读 · 0 评论 -
【编译、链接、装载十一】动态链接1——地址无关代码
动态链接过程、地址无关代码、数据段地址无关性、装载时重定位原创 2023-06-23 06:00:00 · 706 阅读 · 0 评论 -
【编译、链接、装载六】汇编——目标文件
汇编——目标文件,目标文件就是源代码编译后但未进行链接的那些中间文件(Windows的.obj和Linux下的.o)原创 2023-06-14 06:00:00 · 755 阅读 · 0 评论 -
【编译、链接、装载五】编译器后端——gcc生成的汇编代码
编译器后端——gcc生成的汇编代码原创 2023-06-11 06:00:00 · 1642 阅读 · 1 评论 -
【编译、链接、装载四】汇编知识补充——AT&T 汇编语法、寄存器、指令、栈、栈帧
汇编知识补充——AT&T 汇编语法、寄存器、指令、栈、栈帧原创 2023-06-07 06:00:00 · 1475 阅读 · 0 评论 -
【编译、链接、装载八】链接
c++链接原创 2023-06-20 21:49:15 · 596 阅读 · 0 评论 -
【编译、链接、装载七】目标文件里的变量和常量都存储在哪儿?(全局变量、局部变量、static、const、define)
目标文件里的变量和常量都存储在哪儿?(全局变量、局部变量、static、const、define)原创 2023-06-18 06:00:00 · 601 阅读 · 0 评论 -
【编译、链接、装载三】编译器——语法分析、词法分析、语义分析、编译器后端
编译器——语法分析、词法分析、语义分析、编译器后端原创 2023-06-04 06:00:00 · 2281 阅读 · 0 评论 -
【编译、链接、装载二】/lib/ld64.so.1: bad ELF interpreter: 没有那个文件或目录
/lib/ld64.so.1: bad ELF interpreter: 没有那个文件或目录原创 2023-05-31 06:00:00 · 2201 阅读 · 0 评论 -
【编译、链接、装载一】预处理、编译、汇编、链接
预处理、编译、汇编、链接原创 2023-05-28 06:00:00 · 5337 阅读 · 0 评论