编译SerenityOS操作系统
SerenityOS编译步骤
SerenityOS是一套用于x86计算机的图形化类Unix操作系统。为了解决hxp 36C3 CTF的wisdom这道题,首先需要编译出该系统,以下是编译步骤。
Environment
1 | ubuntu 20.04 |
安装ubuntu的dependencies
1 | sudo apt install build-essential curl libmpfr-dev libmpc-dev libgmp-dev e2fsprogs qemu-system-i386 qemu-utils |
保证gcc版本>=10
1 | sudo add-apt-repository ppa:ubuntu-toolchain-r/test |
保证cmake版本>=3.16,官网下载3.19.2
最新版本编译
1 | ./bootstrap |
Proxy
Build过程需要下载Toolchain,不挂代理实在太慢。apt装上proxychains
,一定不能用proxychains-ng
,会导致编译出错,就这么神奇~
1 | sudo apt install proxychains |
sudo gedit /etc/proxychains.conf
改下配置
需要用到哪个命令就在前面加proxychains
Build
cd到源码根目录,打上wisdom的patch
1 | git apply /path/to/hxp.patch |
cd到源码的Toolchain/
目录
1 | cd Toolchain |
cd到Kernel/
目录
1 | ./makeall.sh |
运行kernel
1 | ./run |