资源:
环境:Ubuntu20.04,核心数尽量配大一点 比如12
再安装Ubuntu时,尽量将内存分配大一点(如60G),请确保根目录有近50G的大小,否则后续编译时可能因为空间不够而失败。
可以通过df -TH查看虚拟机当前内存使用情况

安装需要的工具
下载源码至虚拟机中(推荐使用git加速)
git clone https://ghproxy.com/https://github.com/google/ghost-kernel.gitgit clone https://ghproxy.com/https://github.com/google/ghost-userspace.git进入ghost-kernel,切换到root用户sudo su
make menuconfig
.config,对它进行如下修改
CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem"修改为CONFIG_SYSTEM_TRUSTED_KEYS="" (vi编辑器下可以通过/进行查找)CONFIG_SCHED_CLASS_GHOST=y编译:make -j $(nproc)
make modules_install
成功之后 /lib/modules中会有刚刚安装好的内核模块 5.11.0+

安装内核:make install
修改gurb
/etc/default/grub文件,将其中的“GRUB_TIMEOUT_STYLE=hidden”注释掉,以显示grub界面;CMDLINE设置为text;并且将GRUB_TIMEOUT修改成“GRUB_TIMEOUT = 30”,以留出30秒时间让用户选择进入哪个内核:
重启之后,选择ghOSt的内核进行启动即可
在Advanced options for Ubuntu中选择5.11.0+


查看内核选项
首先安装Bazel(谷歌常用的代码构建工具,类似于make,但bazel效率更高、更敏捷)

这一步会报错,考虑配置Ubuntu终端代理,然后在此命令前加上proxychains再试一次
编译/构建调度器:比如说:bazel build -c opt fifo_per_cpu_agent #构建每个CPU的FIFO调度器
高亮处可以替换为agent_biff、fifo_centralized_agent、agent_exp、agent_cfs、agent_shinjuku、agent_sol 【可以在ghost-userspace/BUILD中查找】
构建成功后,bazel-bin目录下就可以出现相应的可执行文件

启动代理:bazel-bin/fifo_per_cpu_agent --ghost_cpus 0-1可以启动相应的代理,终止的时候可按ctrl-c

同理,编译simple_exp之后,该文件也会出现在bazel-bin文件夹中,运行它可以测试相应ghOSt调度器
bazel-bin/simple_exp或者./bazel-bin/simple_exp也可以bazel-bin文件夹中,运行它可以测试相应ghOSt调度器
bazel-bin/simple_exp或者./bazel-bin/simple_exp也可以
