已关闭。此问题需要更多的focused。当前不接受答案。
**想要改进此问题吗?**更新问题,使其仅关注editing this post的一个问题。
12天前关闭。
Improve this question
我一直都有这样的想法,让内核运行java代码,所以后端是用c和汇编语言做的,前端是用java做的?如果是这样的话,我在哪里可以找到Linux内核的源代码?
已关闭。此问题需要更多的focused。当前不接受答案。
**想要改进此问题吗?**更新问题,使其仅关注editing this post的一个问题。
12天前关闭。
Improve this question
我一直都有这样的想法,让内核运行java代码,所以后端是用c和汇编语言做的,前端是用java做的?如果是这样的话,我在哪里可以找到Linux内核的源代码?
1条答案
按热度按时间soat7uwm1#
如果你想在内核中运行Java代码,那么你就不必像模块一样实现一个嵌入式JVM,或者通过让驱动程序依赖于JVM来从驱动程序中启动Java程序。这似乎不是一个好主意,因为它通常会导致一个依赖关系非常脆弱的系统,一个非常沉重的映像,以及内核空间中的混合责任。
你可能搞错了内核空间、init序列和用户空间。从你的描述“所以后端是用c和汇编语言做的,前端是用java做的?”看起来你更可能是想把一些java程序作为SysVInit / systemd服务来运行,这些服务为用户提供了一个操作系统的接口,而不是作为内核的一部分。
当这样做时,init管理器将级联运行发行版中的所有必要服务,在内核初始化自身、文件系统、虚拟内存......和硬件之后,为它们提供适当的资源和权限。
将Java程序作为systemd服务运行非常容易(也可以从SysVInit运行)。
您只需要根据软件的权限设置相应的用户和组,并从
start.sh
启动Java程序和从stop.sh
停止Java程序,您可以在stop.sh
中设置Java命令行、环境变量和检查。请确保使用nohup启动Java程序,以避免干扰systemd及其日志:
您可能会想检查SysVInit,因为它通常比较轻,但我希望这个答案能给您一些启发。