计算机原理
文章平均质量分 83
luomuxiaoxiao98
这个作者很懒,什么都没留下…
展开
-
重读《深入理解计算机系统》
欢迎访问我的个人博客: luomuxiaoxiao.com作为一个入行五年多的BSP工程师,越来越感觉深入的理解计算机的原理对于一个底层工程师的重要性了。比如,在面对一些很难调试的crash bug的时候,最终的办法是将发生crash时的内存dump出来,结合log分析当时的函数调用栈和寄存器信息,最终定位导致错误发生的代码。又比如,想深入学习linux时候,发现对于很多基本的计算机概念似懂非...原创 2018-10-19 20:13:21 · 534 阅读 · 0 评论 -
计算机原理系列之八 -------- 可执行文件的PLT和GOT
欢迎访问我的个人博客: luomuxiaoxiao.com文章目录一、什么是PLT和GOT二、PLT和GOT里面有什么2.1 PLT和GOT结构及关系2.2 使用debugger工具演绎PLT和GOT的使用2.2.1 编译2.2.2 printf函数的调用 上篇文章我们提到,为了保证代码复用和节省计算机资源,在链接时,动态链接库的代码段和数据段等是不会被复制到最终生成的可执行文件中的,这些部...原创 2018-12-27 13:35:09 · 2526 阅读 · 1 评论 -
计算机原理系列之七 -------- 链接过程分析
欢迎访问我的个人博客: luomuxiaoxiao.com文章目录一、 静态链接和动态链接二、可执行文件代码段2.1 编译方法 在可执行文件详解详细的介绍了可执行文件的各个section的内容和功能,但是唯独.text section没有被提到。其实.text section的内容,我们在上一篇文章Linux X86 程序启动 – main函数是如何被执行的?中已经分析的很详细了。这篇文章将...原创 2018-12-19 14:42:57 · 296 阅读 · 0 评论 -
计算机原理系列之六 -------- 可执行文件详解
欢迎访问我的个人博客: luomuxiaoxiao.com文章目录一、生成可执行文件二、可执行文件结构2.1 可执行文件的ELF header2.2 可执行文件的section前面的文章我们详细的讲解了.o文件的结构及其编译过程,这篇文章我们从ELF文件的观点来分析可执行文件的结构。一、生成可执行文件我们以下面两个文件为例来研究多个文件生成一个可执行文件的过程。一个文件名为add.c,主...原创 2018-12-19 14:39:32 · 1064 阅读 · 1 评论 -
计算机原理系列之五 -------- 编译过程分析
欢迎访问我的个人博客: luomuxiaoxiao.com文章目录一、 由汇编器生成的汇编代码二、 查看可重定位文件的内容2.1 可重定位文件的实际内容2.2 反汇编可重定位的代码段在如何编译目标文件中我们了解到汇编文件经过编译器之后生成了可重定位文件,并且在可重定位文件详解中我们以一个最简单的'hello, wolrd'程序为例,分析了可重定位文件的详细内容。这篇文章中我们主要分析一下汇编...原创 2018-11-06 10:40:23 · 346 阅读 · 1 评论 -
计算机原理系列之四 ——– 可重定位文件详解
欢迎访问我的个人博客: luomuxiaoxiao.com计算机原理系列之四 -------- 可重定位文件详解@(F.08 Blogs)文章目录计算机原理系列之四 -------- 可重定位文件详解一、生成中间文件二、可重定位文件分析2.1 解析文件头,说明文件构成2.2 分析ELF文件各部分2.2.1 ELF header上篇文章我们从整体上介绍了从C文件到可执行文件的编译过程,并逐...原创 2018-11-06 10:36:33 · 3199 阅读 · 1 评论 -
计算机原理系列之三 ——– 如何编译目标文件
欢迎访问我的个人博客: luomuxiaoxiao.com文章目录一、预处理1.1 预处理命令1.2 生成文件格式二、编译2.1 编译命令2.2 生成文件格式上篇文章我们讲过,我们写出来的C文件属于文本文件,属于高级语言,而计算机只能理解特定的二进制的文件,那么怎么把文本文件翻译成计算机可以理解的二进制文件呢?下面我们以C语言中经典的“hello, world”的编译为例来说明。为了详细观...原创 2018-11-06 10:33:33 · 725 阅读 · 1 评论 -
计算机原理系列之二 -------- 详解ELF文件
欢迎访问我的个人博客: luomuxiaoxiao.com一、ELF文件类型二、ELF文件结构ELF HeaderSectionSection Header TableProgram Header Table三、实践四、总结五、参考阅读下面我们介绍一种文件格式:ELF格式,全名为可执行和可链接格式(Executable and Linkable Format)。维基百科中...原创 2018-10-25 10:05:08 · 1407 阅读 · 1 评论 -
计算机原理系列之一 -------- 初识计算机系统
欢迎访问我的个人博客: luomuxiaoxiao.com这篇文章我们主要从整体上了解一下计算机程序是如何运行的。在此过程中,我们将会引出操作系统中一些很重要的概念,并在后续的文章中对这些概念将强化和深入理解。首先从计算机的硬件开始谈起。在这里我们只考虑和程序运行直接相关的硬件。其基本的硬件如下图所示:图1. 一个典型的计算机系统构成[^source]各硬件及其作用如下:总线 总线...原创 2018-10-19 20:15:07 · 389 阅读 · 1 评论 -
Linux X86 程序启动 – main函数是如何被执行的?
欢迎访问我的个人博客: luomuxiaoxiao.com一、目标读者二、覆盖范围三、调用过程分析3.1 main函数的调用 main函数如何被调用3.2 _start函数分析3.2.1 首先,_start是如何启动的?3.2.2 _start函数就是我们开始的地方3.2.3 调用__libc_start_main之前的设置3.2.4 环境变量哪里去了?3.3 __l...原创 2018-12-11 15:24:06 · 2110 阅读 · 1 评论