我想将自定义应用程序代码添加并编译到我的内核中。
我应该如何将我的.c
和.o
文件添加到我的内核“bin”目录中并编译它们?
我创建了一个hello.c
andhello.o
文件,我想将它们添加到我的内核中,以便在内核启动时hello.o
运行该文件。我需要编辑一些 makefile 吗?
答案1
我想将这些文件添加到我的内核中,以便当内核启动此 hello.o 文件时执行并运行
您想要实现的目标不应该通过内核版本来实现。在启动时执行程序可以通过更简单的方式来处理,而不需要内核编程经验。你可以:
当 shell 启动时执行它: 写在,或 的/path/to/hello/executable
末尾。每次启动 shell(更具体地说,bash)时都会获取这些文件。这也意味着每次打开终端时,您的可执行文件都会运行。/etc/profile
~/.profile
~/.bashrc
使用init.d系统:编译您的代码并添加初始化脚本到初始化系统。您将找到您可能需要的所有信息在本页, 或者这里了解 Ubuntu 的具体信息。
这是一个简单的例子初始化脚本对于你的 hello 可执行文件:
#!/bin/sh
### BEGIN INIT INFO
# Provides: hello
# Default-Start: 1 2 3 4 5
# Short-Description: Prints Hello World somewhere.
# Description: Some more description...
### END INIT INFO
case "$1" in
start)
/path/to/hello/executable
;;
stop|restart|force-reload)
;;
*)
;;
esac
exit 0
现在您可以使用以下命令执行 hello:
service hello start
假设 init 脚本名为hello
,并且可执行。要使其在启动时运行,请使用:
update-rc.d hello defaults
实际上,内核更多地依赖于库而不是可执行文件。您可能还想看看内核模块开发指南,它可以向您介绍内核模块的基础知识。再说一次,这是一个可怕的矫枉过正为了你想做的事。