用户态linux是什么?
一种可以在用户态运行的linux内核
有什么用?
进行内核隔离,替代qemu/bochs调试linux内核,在低性能设备上代替kvm进行虚拟化
怎么做?
编译linux内核
git下载源代码
git clone --depth 1 https://mirrors.tuna.tsinghua.edu.cn/git/linux.git 编译
cd linux
export ARCH=um
make defcongig
make 现在 你获得了一个文件 这个vmlinux和正常内核的区别就是这个vmlinux可以在用户态运行
先别着急启动,先来准备rootfs
以下内容以debian为例
先安装debootstrap
sudo apt install debootstrap 然后构建rootfs
sudo su
dd if=/dev/zero of=rootfs seek=2G#创建一个2GB的空rootfs文件
mkfs.ext4 rootfs#格式化为ext4格式
mount rootfs /mnt
cd /mnt
debootstrap sid ./ https://mirrors.tuna.tsinghua.edu.cn/debian#创建debian rootfs
umount /mnt
exit
启动
sudo chown `whomi` rootfs
screen ./vmlinux mem=1G root=/dev/udba udb0=rootfs con=null con0=null,fd:2 con1=fd:0,fd:1 #启动一个拥有1gb内存的用户态linux