Update chapter2.md

pull/1/head
Zhiyuan Shao 4 years ago
parent 5e6c4365aa
commit d4fbad5e44

@ -2,7 +2,7 @@
### 2.1 实验环境搭建
实验环境我们推荐采用Ubuntu 16.04LTS或18.04LTSx86_64操作系统我们未在其他系统如archRHEL等上做过测试但理论上只要将实验中所涉及到的安装包替换成其他系统中的等效软件包就可完成同样效果。另外我们在EduCoder实验平台网址https://www.educoder.net上创建了本书的同步课程课程的终端环境中已完成实验所需软件工具的安装所以如果读者是在EduCoder平台上选择的本课程则可跳过本节的实验环境搭建过程直接进入通过终端命令行进入实验环境。
实验环境我们推荐采用Ubuntu 16.04LTS或18.04LTSx86_64操作系统我们未在其他系统如archRHEL等上做过测试但理论上只要将实验中所涉及到的安装包替换成其他系统中的等效软件包就可完成同样效果。另外我们在EduCoder实验平台网址https://www.educoder.net 上创建了本书的同步课程课程的终端环境中已完成实验所需软件工具的安装所以如果读者是在EduCoder平台上选择的本课程则可跳过本节的实验环境搭建过程直接进入通过终端命令行进入实验环境。
PKE实验涉及到的软件工具有RISC-V交叉编译器、spike模拟器以及PKE源代码三个部分。假设读者拥有了Ubuntu 16.04LTS或18.04LTSx86_64操作系统的环境以下分别介绍这三个部分的安装以及安装后的检验过程。需要说明的是为了避免耗时耗资源的构建build过程一个可能的方案是将RISC-V交叉编译器以及spike模拟器的安装目录打包拷贝到新的环境中使用。然而不幸的是RISC-V交叉编译器的版本与host上的GCC版本有一定的关联关系。例如以我们的经验如果host上的GCC的版本是7.5.0它支持的RISC-V交叉编译器版本就是9.2.0但是如果host上的GCC版本是较低版本如5.4.0则其对应的RISC-V交叉编译器版本就会是8.1.0。在采用高版本的GCC例如7.5.0环境下使用低版本的RISC-V交叉编译器如8.1.0),会导致一些未知问题,如程序执行时的挂起等。所以,**我们强烈建议读者在新装环境中完整构建buildRISC-V交叉编译器以及spike模拟器**。如果强调环境的可移植性,可以考虑在虚拟机中安装完整系统和环境,之后将虚拟机进行克隆和迁移。
@ -302,7 +302,7 @@ ELF的全称为Executable and Linkable Format是一种可执行二进制文
在这里我们仅仅之需要简单的了解一下ELF文件的基本组成原理以便之后能够很好的理解内核可执行文件以及其它的一些ELF文件加载到内存的过程。首先ELF文件可以分为这样几个部分ELF文件头、程序头表program header table、节头表section header table和文件内容。而其中文件内容部分又可以分为这样的几个节.text节、.rodata节、.stab节、.stabstr节、.data节、.bss节、.comment节。如果我们把ELF文件看做是一个连续顺序存放的数据块则下图可以表明这样的一个文件的结构。
<img src="pictures/fig2_1.png" alt="fig2_1" style="zoom:67%;" />
<img src="pictures/fig2_1.png" alt="fig2_1" style="zoom:50%;" />
图2.1 ELF文件结构

Loading…
Cancel
Save