Linux kernel 在Linux内核空间中执行程序

Linux kernel 在Linux内核空间中执行程序,linux-kernel,kernel,embedded-linux,Linux Kernel,Kernel,Embedded Linux,如果我想在Linux内核空间中执行用户程序(而不是内核模块),我有什么选择 我看过KML(内核模式linux),但这是IA-32体系结构特有的。我想要一个跨平台的解决方案,可以在嵌入式linux系统上工作。内核编程基本上是特定于平台的,因为不同平台的内核都是不同的。用户程序不在内核空间中执行,这就是它们成为用户程序的原因 如果您想在内核空间中执行代码,您有两个选择:将代码构建到内核中,或者使用内核模块加载代码。您在另一个问题中写道,您是内核编程的新手。使用KML是非常不传统的,而且比以标准方式做

如果我想在Linux内核空间中执行用户程序(而不是内核模块),我有什么选择


我看过KML(内核模式linux),但这是IA-32体系结构特有的。我想要一个跨平台的解决方案,可以在嵌入式linux系统上工作。

内核编程基本上是特定于平台的,因为不同平台的内核都是不同的。

用户程序不在内核空间中执行,这就是它们成为用户程序的原因


如果您想在内核空间中执行代码,您有两个选择:将代码构建到内核中,或者使用内核模块加载代码。

您在另一个问题中写道,您是内核编程的新手。使用KML是非常不传统的,而且比以标准方式做事要复杂得多。这将使你的学习变得更加困难。我建议您最好的选择是重新评估为什么要在内核空间中运行用户空间应用程序,并找到不这样做的方法

也许有一个很好的理由去做这样的事情,但我不清楚这个理由是什么。对于内核开发,您应该了解的一点是,仅仅因为某些事情是可能的,就不一定是应该做的事情


如果你真的想要一个跨平台的解决方案,你必须自己编写。KML支持的唯一体系结构是IA32和AMD64。

看看。基本上,它是用于嵌入式系统和嵌入式处理器(如ARM和MIPS)的KML。如果您想从内核空间启动用户程序,请参阅
运行_init_进程()。这是内核运行init程序的方式。

用户程序指编译后在用户空间运行的程序,即通过exec*系统调用或任何其他方式。内核模型Linux或KML使我们能够在Linux内核空间中运行这些程序,而无需任何修改,但它特定于IA32体系结构。我正在寻找可以在多种架构上工作的。为什么这个程序需要在内核模式下运行?我在哪里可以得到femtolinux。他们那里没有下载链接。我玩游戏有点晚了,但我只是在查同样的东西,这将是正确的答案。准确地说,这就是如何使用户空间程序从内核空间开始的,这就是我相信OP的初衷。