标题: 如何构建用户态 Linux [打印本页] 作者: 3AAA 时间: 2022-3-27 15:24 标题: 如何构建用户态 Linux
“用户态 Linux” 是什么?它是一种可以在用户态运行的 Linux 内核。(用户态是什么,这里就不解释了)
它有什么用?它用于内核隔离、替代 QEMU/Bochs 来调试 Linux 内核,也可以在低性能设备上代替 KVM 进行虚拟化。
但它也存在一些缺陷,比如不支持 ARM 架构以及多核系统。
编译 Linux 内核
首先通过 git下载 Linux 内核源代码:
git clone --depth 1 https://mirrors.tuna.tsinghua.edu.cn/git/linux.git
(这里使用了清华大学的镜像站,kernel.org也是可以的。)
然后采用如下步骤编译它:
$ cd linux$ export ARCH=um # 非常重要 设置架构为用户态$ make defconfig$ make -j8 LD .tmp_vmlinux.kallsyms1 KSYMS .tmp_vmlinux.kallsyms1.S AS .tmp_vmlinux.kallsyms1.S LD .tmp_vmlinux.kallsyms2 KSYMS .tmp_vmlinux.kallsyms2.S AS .tmp_vmlinux.kallsyms2.S LD vmlinux SYSMAP System.map LINK linux MODPOST modules-only.symvers GEN Module.symvers
经过漫长的编译之后,你获得了一个 vmlinux文件。它和正常的 Linux 内核的区别是,这个vmlinux可以在用户态运行。