标签: user-mode-linux

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

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

根据UML 的主页,该项目似乎在2004年停止了。但是,该项目的作者于2004年被英特尔聘用,专职从事UML。这个项目是由英特尔(或开放源代码社区)以新名称终止还是继续?

virtualization user-mode-linux

5
推荐指数
1
解决办法
731
查看次数

为什么call_usermodehelper在大多数情况下会失败?

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

int result=-1;
name = "/home/file"
char *hargv[] = {"/home/sha1", name,NULL };
char *henvp[] = {"HOME=/", "PATH=/sbin:/usr/sbin:/bin:/usr/bin", NULL };
result = call_usermodehelper("/home/sha1", hargv, henvp, 1);
Run Code Online (Sandbox Code Playgroud)

但是大多数情况下,call_usermodehelper返回-14并无法执行可执行文件。可能是什么原因?

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

无论如何,没有call_usermodehelper可以执行此操作吗?

linux kernel-module linux-kernel user-mode-linux kernel-mode

2
推荐指数
1
解决办法
857
查看次数

在 Linux 用户模式下退出 init 的正确方法

我使用自定义 initrd 在用户模式下编译了 Linux 内核 5.6,使用以下方法创建:

mkdir initrd
cd initrd
mkdir bin dev etc home mnt proc sys usr
mknod dev/console c 5 1
Run Code Online (Sandbox Code Playgroud)

initrd/init.c初始化文件

#include <stdio.h>
#include <stdlib.h>
#include <sys/mount.h>
#include <unistd.h>

int main(int argc, char *argv[]) {
    printf("init\n");

    mount("none", "/proc", "proc", MS_MGC_VAL, "");
    mount("none", "/sys", "sysfs", MS_MGC_VAL, "");
    mount("none", "/dev", "devtmpfs", MS_MGC_VAL, "");

    if (access("/dev/ubda", F_OK) != -1) {
        printf("/dev/ubda exists\n");
    } else {
        printf("/dev/ubda not exists\n");
    }

    return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)

该程序检查通过ubd0=...选项传递的磁盘。

gcc …

c linux init linux-kernel user-mode-linux

2
推荐指数
1
解决办法
378
查看次数

在Linux IRQ中调用schedule()

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

int p_count = current_thread_info()->preempt_count;

current_thread_info()->preempt_count = 0;
schedule();
current_thread_info()->preempt_count = p_count;
Run Code Online (Sandbox Code Playgroud)

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

有没有办法以某种方式破解内核以允许我这样做?我正在使用Linux内核4.2.1和用户模式Linux

linux-device-driver linux-kernel user-mode-linux

1
推荐指数
1
解决办法
655
查看次数