SerenityOS编译步骤

SerenityOS是一套用于x86计算机的图形化类Unix操作系统。为了解决hxp 36C3 CTF的wisdom这道题,首先需要编译出该系统,以下是编译步骤。
title

Environment

1
2
3
ubuntu 20.04
gcc 10.2.0
cmake 3.19.2

安装ubuntu的dependencies

1
sudo apt install build-essential curl libmpfr-dev libmpc-dev libgmp-dev e2fsprogs qemu-system-i386 qemu-utils

保证gcc版本>=10

1
2
3
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt install gcc-10 g++-10
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g++-10

保证cmake版本>=3.16,官网下载3.19.2最新版本编译

1
2
3
./bootstrap
make -j8
sudo make install

Proxy

Build过程需要下载Toolchain,不挂代理实在太慢。apt装上proxychains,一定不能用proxychains-ng,会导致编译出错,就这么神奇~

1
sudo apt install proxychains

sudo gedit /etc/proxychains.conf改下配置
title

需要用到哪个命令就在前面加proxychains
title

Build

cd到源码根目录,打上wisdom的patch

1
git apply /path/to/hxp.patch

cd到源码的Toolchain/目录

1
2
cd Toolchain
proxychains ./BuildIt.sh

cd到Kernel/目录

1
./makeall.sh

运行kernel

1
./run

title

⬆︎TOP