人人车的网站找谁做的,建设部网站 测绘规章,原创软文,网站诊断来源 原git仓库 xv6-x86(xv6-public) 文档 mit 6.828/2023/ 文档 MIT 6.828/2018/xv6/book-rev11.pdf 原readme 注#xff1a; xv6-x86(xv6-public) 已经被放弃了, 原作者转向了xv6-riscvxv6-x86文档来源:mit-pdos/xv6-book.git, 它需要 heirloom-doctools 来编译成pdf#x… 来源 原git仓库 xv6-x86(xv6-public) 文档 mit 6.828/2023/ 文档 MIT 6.828/2018/xv6/book-rev11.pdf 原readme 注 xv6-x86(xv6-public) 已经被放弃了, 原作者转向了xv6-riscvxv6-x86文档来源:mit-pdos/xv6-book.git, 它需要 heirloom-doctools 来编译成pdf但 heirloom-doctools太旧了 估计要ubuntu16或14能编译此pdf猜测 编译出来的pdf就是 MIT 6.828/2018/xv6/book-rev11.pdf因此不需要自己编译pdf了
环境
uname -a
#Linux xx 5.15.0-56-generic #62-Ubuntu SMP Tue Nov 22 19:54:14 UTC 2022 x86_64 x86_64 x86_64 GNU/Linuxcat /etc/issue
#Linux Mint 21.1 Vera \n \lcat /etc/debian_version
#bookworm/sid准备
sudo apt install qemu-system-x86 make -nB qemumake_-nB_qemu.log 展开的Makefile比对: xv6-x86 和 xv6-riscv 仅kernel部分 在ubuntu23.04 x64下编译 xv6-x86代码, make时各种报错. 需要转移到老版本ubuntu14.04 i386下编译xv6-x86 比如 zmm:/crk/xv6-x86$ make qemugcc -fno-pic -static -fno-builtin -fno-strict-aliasing -O2 -Wall -MD -ggdb -m32 -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie -no-pie -c -o sh.o sh.c
sh.c: In function ‘runcmd’:
sh.c:58:1: error: infinite recursion detected [-Werrorinfinite-recursion]gcc -fno-pic -static -fno-builtin -fno-strict-aliasing -O2 -Wall -MD -ggdb -m32 -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie -no-pie -c -o sh.o sh.c
sh.c:57:1: error: attributes should be specified before the declarator in a function definition57 | void| ^~~~
sh.c: In function ‘main’:
sh.c:168:7: error: implicit declaration of function ‘runcmd’ [-Werrorimplicit-function-declaration]168 | runcmd(parsecmd(buf));gcc -fno-pic -static -fno-builtin -fno-strict-aliasing -O2 -Wall -MD -ggdb -m32 -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie -no-pie -c -o mp.o mp.c
In function ‘mpconfig’,inlined from ‘mpinit’ at mp.c:101:14:
mp.c:83:10: error: array subscript -48806446 is outside array bounds of ‘void[2147483647]’ [-Werrorarray-bounds]83 | if(conf-version ! 1 conf-version ! 4)
ubuntu14.04 i386 docker
docker安装 省略 docker镜像加速
cat /etc/docker/daemon.json
{
registry-mirrors:https://xxxx.mirror.aliyuncs.com
}#登陆阿里云官网 --- docker镜像加速 --- https://xxxx.mirror.aliyuncs.com xxxx是每个个人阿里云账户不同xxx
ubuntu 14.04 docker镜像 在这里找到了 ubuntu 14.04 docker镜像名 hub.docker sudo docker pull i386/ubuntu:14.04
sudo docker run --name ubuntu-1404-i386-a -itd -v /crk:/crk i386/ubuntu:14.04ubuntu 14.04 docker实例 内 编译 xv6-x86
进入docker实例终端 进入docker该实例终端sudo docker exec -it ubuntu-1404-i386-a bash apt国内源配置 apt国内源: # https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
echo 清华ubunt14.04 apt源 /etc/apt/sources.list
apt update安装 gcc、gdb、qemu
apt install build-essential gdb
apt install qemu-system-x86编译、运行
cd /crk/xv6-x86/
make clean
make qemu-nox
#正常编译, 正常启动qemu#备注: qemu-nox: 即 -nographic 调试
准备
echo add-auto-load-safe-path /crk/xv6-x86/.gdbinit /root/.gdbinitgdb调试 详见两窗口调试gdb-server、gdb 以下简单描述 ‘两窗口调试gdb-server、gdb’ gdb-server窗口
cd /crk/xv6-x86/
make qemu-nox-gdb
#gdb-server在25000端口等待gdb窗口 cd /crk/xv6-x86/
gdb
#即连接到25000端口的gdb-server可以开始正常调试#备注: /crk/xv6-x86/.gdbinit 中配置了 连接25000端口