
计算机组成原理
Antaresz
这个作者很懒,什么都没留下…
展开
-
系统级I/O入门
本文内容是csapp一书第十章的笔记和代码讲解 10.1Unix I/O 首先来讲一讲一句经典的语录:一切皆文件 在 Linux 中,这是一句很经典的话,自然我们所有的I/O设备也都是文件,而所有的输入和输出都被当作对相应的文件的读和写,不得说这是真是很优雅的方式。 而Unix I/O是什么呢? 我们都知道printf和scanf,他们是ANSI C提供的标准I/O库,可以这么说他们是比较高层的...原创 2019-12-04 19:46:27 · 172 阅读 · 0 评论 -
fork习题补充
这篇博客为之前的哪篇18题补充一些fork题型 1.和缓存结合 #include "csapp.h" /* $begin waitprob3 */ int main() { if (fork() == 0) { printf("a"); exit(0); } else { printf("b"); waitpid(-1, NULL, 0); } ...原创 2019-11-22 16:38:24 · 243 阅读 · 0 评论 -
从易到难fork18题
本文旨在给大家分享一些稍有难度的fork练习题,篇幅有限所以对基础知识介绍较少且略过了一些简单题,大家可以先看别的了解概念和基础知识。 /* * forks.c - Examples of Unix process control */ #include <stdlib.h> #include <stdio.h> #include <unistd.h> #i...原创 2019-11-09 16:48:16 · 337 阅读 · 0 评论 -
链接之符号解析
之前写过一篇博客讲述了链接的来由:https://mp.youkuaiyun.com/mdeditor/102058918# 这篇博客则打算讲讲链接的核心工作:符号解析和重定位。看这篇博客之前可能需要一点基础,大家可以先看看我上面的链接的文章,再来看这篇。 1.符号解析 ...原创 2019-11-02 20:10:54 · 840 阅读 · 0 评论 -
链接之从盘古开天辟地说起
学习链接,我们应先思考链接起源,才能知其所以然。 我们回到最古老的时代,程序员使用01编写程序,跳转指令的例子如下 0010代表jmp指令 0101代表跳转位置 所以1跳转到5 我们做一个假设 要是要在5的前面加一条指令程序(这就像我们在一行代码前加一行代码,太常见了)会怎么样呢?我们发现程序需要重定位(即jmp指令跳转位置重定位),因为5的位置改变了。这实在是太麻烦了,那时程序还是打字带,这样的...原创 2019-10-04 11:30:45 · 374 阅读 · 0 评论 -
可重定位目标文件解析
本文章旨在解析ELF文件类型中的可重定位文件,ELF类型还有剩余的两个可执行文件和共享目标文件日后更新。 文章使用的例程如下,最简单的hello.c #include <stdio.h> int main() { printf("hello, world\n"); return 0; } 首先我们先生成可重定位目标文件 gcc -c hello.c...原创 2019-10-04 17:44:43 · 899 阅读 · 0 评论