问题标签 [user-mode-linux]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
204 浏览

networking - 在用户模式 ​​Linux 中无法获得网络

我正在使用 User-Mode-Linux 开发内核功能。我从源代码编译了 3.12.38 并下载了一个 Debian fs。
但是,我无法在此处使用以下选项建立网络。
是否有任何好的来源或信息可以与此相关。
我在 wlan0 上有互联网。

编辑:
我从eth0=tuntap,,,192.168.0.254

然后在 UMLUML# ifconfig eth0 192.168.0.253 up 中我只得到输出:
modprobe tun
ifconfig tap0 192.168.0.252 netmask 255.255.255.255 up
route add -host 192.168.0.253 dev tap0

如前所述,在ping192.168.0.254时,输出有点少,而且 100% 丢包似乎不起作用。

0 投票
1 回答
309 浏览

c - UML 中的用户模式内核如何与主机上的底层内核接口

在用户模式 ​​linux (UML) 中,跟踪线程取消用户空间进程进行的系统调用,并将它们重定向到在用户空间中运行的内核。现在在某个时候,这个用户空间内核将需要主机操作系统的帮助。用户态内核如何调用底层主机内核,是否只是普通的系统调用?还是它使用某种 IOCTL 机制或其他什么?

0 投票
1 回答
956 浏览

linux-kernel - 在 Linux IRQ 中调用 schedule()

我正在制作一个仿真驱动程序,它需要我调用schedule()ATOMIC 上下文才能使仿真部分工作。现在我有这个 hack 允许我schedule()在 ATOMIC(例如自旋锁)上下文中调用:

但这在 IRQ 中不起作用,系统只是在调用后停止schedule()

有什么办法可以让我这样做来破解内核吗?我正在使用带有用户模式 ​​Linux 的 Linux 内核 4.2.1

0 投票
0 回答
298 浏览

linux-kernel - 内核 call_usermodehelper 无法打开 GUI 应用程序

我用call_usermodehelper打开qt为什么打不开?如何解决这个问题呢?或者其他方式使用内核打开用户空间应用程序?

图片显示错误图片: 错误图片

0 投票
2 回答
1546 浏览

virtualization - 用户模式 ​​linux (UML) 项目是否已停止?

对于一些教育项目,我需要使用 user-mode-linux (UML)。

根据UML的主页,该项目似乎在2004年就停止了。然而,项目的作者于2004年被英特尔聘用,全职从事UML工作。英特尔(或开源社区)以新名称终止或继续该项目?

0 投票
1 回答
2175 浏览

linux - 为什么 call_usermodehelper 大多数时候都会失败?

从一个内核模块,我试图使用 call_usermodehelper 函数来执行一个可执行的 sha1,它以一个文件作为参数并将文件的 SHA1 哈希和写入另一个文件(命名为输出)。可执行文件完美运行。

但大多数时候 call_usermodehelper 返回 -14 并且无法执行可执行文件。可能是什么原因?

有时它可以工作,但随后创建的输出文件被锁定(与直接运行 sha1 时发生的情况不同),我必须先运行 chown 才能正确使用它。如何防止这种情况?

没有 call_usermodehelper 有没有办法做这个操作?

0 投票
0 回答
207 浏览

python - 用户模式下的 Python linux

所以我设法在 helloworld C 程序中使用了 Python。

我也必须sudo apt-get install python-dev和 python3-dev 一样。以防万一。

为了编译和运行它,我使用了以下命令:

到目前为止一切正常。现在我有来自git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git的 user-mode-linux

我需要能够从arch/um/drivers/ubd_kern.c. 但是,当我什至插入#include <Python.h>并尝试用它编译所有内容时,make V=1 ARCH=um它会失败。

看来用户模式 ​​linux 有一个-nostdinc标志。所以我尝试链接 Python.h 文件并添加CFLAGS_ubd_kern.o := -DTEST77 -I/home/alli/pyhack $(shell python2.7-config --cflags)到,arch/um/drivers/Makefile但随后编译导致多个冲突。

如何从 user-mode-linux 的驱动程序中使用 Python?提前致谢。

0 投票
0 回答
1522 浏览

c - 以 root 身份从用户模式直接访问结构 task_struct

我知道它应该在内核模块中使用。

但是,如果我想传递一个指向 struct task_struct 的指针并在具有 root 权限的用户模式下从中读取数据(例如进程名称),这可能吗?

我想访问原始虚拟地址,如果不是,希望它是一个 struct task_struct 结构,走得更远。这将是 task_structs 的一种暴力强制虚拟地址。

我是否必须通过内核标头并手动导入结构定义才能读取每个字节?

谢谢,

开始通过内核破解我的方式,但似乎需要使用很多结构:

更新1:

开始写这段代码,基于此:

https://github.com/jonoberheide/stackjacking/blob/master/stackjack.c

看来这是可能的。

我想通过输入一个内存访问(通过 Meltdown):

read_struct_task.c

更新 2:

我在这方面没有那么有经验。

  1. task_struct 总是 512 字节吗?内核 3.2.x、4.4.x?我是否必须为每个内核手动计算它?如何?
  2. 如何在这个结构中找到进程名称?更新 1 中的代码段:用于 cred 结构。
  3. 我应该更好地使用 memcpy() 而不是 strncpy() 吗?

一个代码示例会很棒。

我想调试它我需要编写内核模块来显示指向 task_struct 的指针,然后使用我的用户模式程序验证它,如果值被正确读取。

谢谢!

更新 3:

我想我犯了一个错误。Long 是 4 或 8 个字节。那么 task_struck 将是 512*4 字节?

更新 4:

或者结构似乎是

内核 4.3.5 上 5760 字节

以及偏移量+996的进程名称

想知道这在内核之间是否一致。

更新 5:

这应该读取 processname 和 pid:

0 投票
1 回答
268 浏览

operating-system - 所有的陷阱都需要从用户模式切换到内核模式吗?

我知道内核代码负责处理陷阱,但都是内核处理的陷阱。是否有任何在用户模式下处理的陷阱?如果是这样,请提供一个例子。

0 投票
1 回答
243 浏览

linux - 一种在受保护的环境中运行汇编代码的方法(x86-64)

我正在尝试用 C++ 创建一个 Linux 软件,该软件需要在 x86 和 x86-64 处理器上的受保护环境中运行代码。

我的问题是找到一种在受保护的环境中运行代码的方法,首先,仅在 x86-64 上(它是处理器工作方式的技术部分),我看到了本地描述符表,但我发现它不再适用于 x86- 64. 我也听说过 Intel VT 技术,但是文档看起来很复杂。

您是否知道在进程内的 linux 和 x86-64 上的受保护环境中运行代码的方法?

我的目标是在 linux 进程中创建类似于操作系统的东西。

像 Windows 或 Linux 一样,我希望在受保护的环境中运行的程序不会访问我的软件的一部分,并在需要时进行系统调用。我相信我已经找到了一种方法,我在下面解释它。