@ -29,7 +29,11 @@
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					读者可以采用VMware、VirtualBox等软件, , ( ) ( ( , ) , , 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					**方案三:头歌实验平台**
 
			
		
	
		
			
				
					**方案三: 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					读者可以采用Docker作为开发环境。我们提供的 Docker 镜像中已经预装了完整的实验环境,实验源代码以及必要的辅助软件,读者无需手动安装任何支撑软件,便可轻松运行实验。我们建议读者使用 **x86_64** ( , ) **arm64**  处理器架构(例如,苹果公司新款**采用M系列处理器**的笔记本, ) 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					**方案四:头歌实验平台**
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					我们在EduCoder实验平台( : ) , ( ) , , , ( ) , 
 
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -146,6 +150,119 @@ RISC-V交叉编译器的构建需要一些本地支撑软件包, 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					在以上命令中, , 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					< a  name = "subsec_docker" > < / a >  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					**方案三: 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					* 第一步, 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  * * *Ubuntu**
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  对于 **x86_64**  架构,安装具体的过程可以参考[这篇](https://blog.csdn.net/magic_ll/article/details/139985543?spm=1001.2014.3001.5506)文章。对于 **arm64**  架构,安装具体的过程可以参考[这篇](https://blog.csdn.net/sglin123/article/details/139754107?ops_request_misc=& request_id=& biz_id=102& utm_term=arm64%E5%AE%89%E8%A3%85docker& utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-139754107.142^v100^pc_search_result_base8& spm=1018.2226.3001.4187)文章。
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  * * *Windows**
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  Windows 版本的 Docker 安装可以参考[这篇](https://blog.csdn.net/Liuj666/article/details/126099982?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522EC5F862A-6D9C-439D-96AB-6CB77A783F13%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D& request_id=EC5F862A-6D9C-439D-96AB-6CB77A783F13& biz_id=0& utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-126099982-null-null.142^v100^pc_search_result_base8& utm_term=windows%E5%AE%89%E8%A3%85docker& spm=1018.2226.3001.4187)文章。
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  * * *macOS**
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  macOS 版本的 Docker 安装可以参考[这篇](https://blog.csdn.net/weixin_41860471/article/details/135048312?ops_request_misc=%257B%2522request%255Fid%2522%253A%25220015913A-5C64-4FD0-A192-3686BF8FE2C4%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D& request_id=0015913A-5C64-4FD0-A192-3686BF8FE2C4& biz_id=0& utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-4-135048312-null-null.142^v100^pc_search_result_base8& utm_term=macos%E5%AE%89%E8%A3%85docker& spm=1018.2226.3001.4187)文章。
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					* 第二步,拉取镜像
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  * * *x86_64/amd64 版本镜像**
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  *Dockerhub 镜像源*
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  `$ docker pull docker.io/tjr9098/amd64_pke_mirrors:1.0` 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  *阿里云镜像源*
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  `$ docker pull crpi-vycj2ba2y82yi8d0.cn-hangzhou.personal.cr.aliyuncs.com/pke_mirrors/amd64_pke_mirrors:1.0` 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  * * *arm64 版本镜像**
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  *Dockerhub 镜像源*
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  `$ docker pull docker.io/tjr9098/arm64_pke_mirrors:1.0` 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  *阿里云镜像源*
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  `$ docker pull crpi-vycj2ba2y82yi8d0.cn-hangzhou.personal.cr.aliyuncs.com/pke_mirrors/arm64_pke_mirrors:1.0` 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					* 第三步,运行镜像
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					`$ docker run -it --name pke_mirror IMAGE:1.0`  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					 ** `IMAGE` ** 是镜像名称,名称可通过`$ docker images`查看。 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					 ** `-it` **: 交互式运行容器,分配一个伪终端。 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					 ** `--name` **: 为容器命名,便于后续使用。 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					若出现下图所示则成功进入容器。
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					< img  src = "pictures/image1-docker.png"  alt = "image1-docker"  style = "zoom:80%;"  / >  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					* 第四步,验证环境
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					接下来切换到pke实验代码目录, 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					`# cd riscv-pke`  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					`# make`  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					若得到以下输出则可正常进行实验
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					```bash
 
			
		
	
		
			
				
					# make
 
			
		
	
		
			
				
					compiling util/snprintf.c
 
			
		
	
		
			
				
					compiling util/string.c
 
			
		
	
		
			
				
					linking  obj/util.a ...
 
			
		
	
		
			
				
					Util lib has been build into "obj/util.a"
 
			
		
	
		
			
				
					compiling spike_interface/spike_file.c
 
			
		
	
		
			
				
					compiling spike_interface/spike_htif.c
 
			
		
	
		
			
				
					compiling spike_interface/spike_utils.c
 
			
		
	
		
			
				
					compiling spike_interface/dts_parse.c
 
			
		
	
		
			
				
					compiling spike_interface/spike_memory.c
 
			
		
	
		
			
				
					linking  obj/spike_interface.a ...
 
			
		
	
		
			
				
					Spike lib has been build into "obj/spike_interface.a"
 
			
		
	
		
			
				
					compiling kernel/syscall.c
 
			
		
	
		
			
				
					compiling kernel/kernel.c
 
			
		
	
		
			
				
					compiling kernel/elf.c
 
			
		
	
		
			
				
					compiling kernel/process.c
 
			
		
	
		
			
				
					compiling kernel/strap.c
 
			
		
	
		
			
				
					compiling kernel/machine/minit.c
 
			
		
	
		
			
				
					compiling kernel/strap_vector.S
 
			
		
	
		
			
				
					compiling kernel/machine/mentry.S
 
			
		
	
		
			
				
					linking obj/riscv-pke ...
 
			
		
	
		
			
				
					PKE core has been built into "obj/riscv-pke"
 
			
		
	
		
			
				
					compiling user/app_helloworld.c
 
			
		
	
		
			
				
					compiling user/user_lib.c
 
			
		
	
		
			
				
					linking obj/app_helloworld ...
 
			
		
	
		
			
				
					User app has been built into "obj/app_helloworld"
 
			
		
	
		
			
				
					```
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					* 再次进入容器
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  * 第一步,启动容器
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  `$ docker container start pke_mirror` 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  * 第二步,进入容器
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  `$ docker exec -it pke_mirror /bin/bash` 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  若出现下图所示则成功进入容器。
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  < img  src = "pictures/image2-docker.png"  alt = "image2-docker"  style = "zoom:80%;"  / > 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  ** 注意:以上代码默认容器名称为`pke_mirror`,请读者根据自己的容器名称做修改**。
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					< a  name = "subsec_educoder" > < / a >