Skip to the content.

uml

首先按照这个操作

	# 不知道为什么,无法使用 llvm ,但是也不想调查了
make menuconfig ARCH=um
make ARCH=um

需要额外带上这些 config 来添加网卡:

CONFIG_MAY_HAVE_RUNTIME_DEPS=m
# CONFIG_UML_NET_ETHERTAP is not set
# CONFIG_UML_NET_TUNTAP is not set
# CONFIG_UML_NET_SLIP is not set
# CONFIG_UML_NET_DAEMON is not set
CONFIG_UML_NET_VECTOR=m
# CONFIG_UML_NET_MCAST is not set
# CONFIG_UML_NET_SLIRP is not set

user mode linux

首先让我猜测一下是如何工作的

有趣

问题

  1. 如何使用 vhost-user 来着 ?
    • 原理上不难理解,因为本来就是用户态,使用 vhost-user 来共享,所以 guest os 从原则上来说

运行的时候存在这个报错

epollctl add err fd 15, Operation not permitted
epollctl add err fd 15, Operation not permitted
epollctl add err fd 17, Operation not permitted
epollctl add err fd 17, Operation not permitted
epollctl add err fd 18, Operation not permitted
epollctl add err fd 18, Operation not permitted
winch_thread : TIOCSCTTY failed on fd 1 err = 1
                                               epollctl add err fd 19, Operation not permitted
epollctl add err fd 19, Operation not permitted
epollctl add err fd 21, Operation not permitted
epollctl add err fd 21, Operation not permitted
  1. uml_mconsole 工具没找到
  2. 为什么无法处理多线程的问题? 可能是遇到了什么问题?
    • 如果是 single thread 的,那么 core/sched 中的代码还会使用吗?应该不会用吧
  3. 在 uml 中如何进行地址空间的共享 ?
    • 例如,一个程序使用了 io uring ,如何实现两个
  4. https://docs.kernel.org/virt/uml/user_mode_linux_howto_v2.html 中分析了很多网络,例如 GRO

  5. 为什么进入到系统中,root 分区默认是只读的,是因为没有配置 /etc/fstab 吗?

  6. 测试 io uring 的效果

  7. 如何实现地址空间的保护的?

为什么要实现一个 linux-uml/arch/um/drivers/null.c

如果继续

参考 https://docs.kernel.org/virt/uml/user_mode_linux_howto_v2.html ,解决 tap 设备的 nat 的问题,不然无法在镜像中下载各种工具 无法方便的 ssh ,无法更加方便的做测试。

看看这个,How to user mode linux 也许有点过时了

为什么 um 还支持 vdso ?

uml 和 rust 也是支持的,可怕

https://pen.guru/posts/rust-uml-relocation-error/

本站所有文章转发 CSDN 将按侵权追究法律责任,其它情况随意。