xv6 想到什么记什么

发布时间 2023-12-09 22:06:10作者: timeMachine331

xv6不同视频里安装了不同版本 两个我都装了

一个是xv6-public 点进去是深大视频里配套的i386 arch

另一个是xv6 risc-V 就是另一个我参考的视频里

 

运行xv6 用的QEMU 是个linux上的模拟器 xv6又是个unix变体简易版系统

所以最终说起来这个系统是一个程序,跑在一个模拟器程序里,模拟器程序跑在虚拟机里,虚拟机跑在我的window系统里,还挺绕

那么准备工作就有:

1.装个18.04以上的ubuntu 我的版本是20.04

2.装QEMU 这里有riscv的跟i386的 我装了俩

https://zhuanlan.zhihu.com/p/267159664

https://blog.csdn.net/icekittenice/article/details/102596537

https://blog.csdn.net/m0_45291976/article/details/109121959

3.拉取xv6 从github 两个都拉取了 一个public 一个riscv

拉取时git https的问题就不说了 最后都容易443,解决办法是在github.com之前加上gitclone.com 比如https://gitclone.com/github.com/xxx/xxx.git

https://blog.csdn.net/weixin_51015707/article/details/121557471

4.安装

拉取完了之后按教程make make qemu就行

当然这部分前提是有编译工具链 也就是riscv那一套 在上面装QEMU的时候有链接里有

risc-v工具链安装如果按照官网教程来安装,可能会因为下载过慢而失败,教程中的安装命令是brew install riscv-tools,但riscv-tools由几个部分组成,我们其实只需要riscv-gnu-toolchain,源码下载方式如下:

git clone --recursive https://github.com/riscv/riscv-gnu-toolchain
下载完成之后输入如下命令测试一下:

riscv64-unknown-elf-gcc -v
如果能显示版本信息则说明安装成功

如果要退出,先按Ctrl+a,松手后再按x

 

最后讲一下QEMU的调试技巧 有个不完全指北的网站可以参考 并且结合b站一个视频去做GDB的调试练习以及vscode

https://www.cnblogs.com/KatyuMarisaBlog/p/13727565.html 不完全指北

这里头有一个找gdbinit的问题 用Ctrl+H查看ubuntu fs中的隐藏文件

另一个问题是gdb的路径问题 不用riscv的gdb 用默认的就好

如何GDB调试QEMU 用到GDBStub

https://blog.csdn.net/Gefangenes/article/details/131193235?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-131193235-blog-83758127.235^v39^pc_relevant_default_base&spm=1001.2101.3001.4242.1&utm_relevant_index=3

重点在vscode 因为现代编辑器嘛

方法是make qemu-gdb 开启gdb

然后vscode里修改launch.json 远程地址选GDB服务器 

"miDebuggerServerAddress"

 

 

 

https://www.cnblogs.com/tocy/p/gnu-binutils-simple-usage.html

https://zhuanlan.zhihu.com/p/645286863          bios MBR boot