是的,作为标题,我不知道如何在linux的内核模式下编写和编译“Hello World”代码,请帮助我以最简单易懂的方式。谢谢 ! (任何相关的文件也表示欢迎,我只是新来这个)在linux的内核模式下如何编译和编译“Hello World”代码?
4
A
回答
7
可以启动Here:
/*
* hello-1.c - The simplest kernel module.
*/
#include <linux/module.h> /* Needed by all modules */
#include <linux/kernel.h> /* Needed for KERN_INFO */
int init_module(void)
{
printk(KERN_INFO "Hello world 1.\n");
/*
* A non 0 return means init_module failed; module can't be loaded.
*/
return 0;
}
void cleanup_module(void)
{
printk(KERN_INFO "Goodbye world 1.\n");
}
3
哇,这是一个问题!
首先想到Linux内核没有终端,没有与用户的直接交互。 Hello World不能像命令行上的其他用户程序那样被调用。我能想到的最适合的是一个字符设备驱动程序,作为内核模块实现,例如在设备/ dev/helloworld上读取“Hello World”。
我可以指着你读Rubini的书:Linux Device Drivers。它解释并创建了简单的Hello World类型的内核模块。
+0
谢谢大家,我刚刚在内核模式下完成了我的第一个“Hello World”。在这个“编程深度”上玩得很开心:) – 2010-09-17 14:52:38
1
附加信息:printk函数由内核提供,并打印到诸如/ var/log/messages之类的文件。在Ubuntu中,这是/ var/log/syslog文件。你可以在这个文件中看到hello模块的输出。 另外,感谢fseto指出Linux内核模块编程指南。太棒了。
相关问题
- 1. 在4.3.0-sabayon linux中编译'hello world'内核模块的问题
- 2. 编译Hello World
- 3. 如何在Windows下编译hello world?
- 4. Linux内核模块编译
- 5. Linux内核模块编译
- 6. 如何编译Linux内核模块
- 7. 编译linux内核
- 8. 编译Linux内核
- 9. 编译MPI/VTK Hello World
- 10. 编译jruby“Hello world”问题
- 11. 如何编译这个hello world OS?
- 12. 使用Visual Studio在Linux中创建和编译“hello world”应用程序代码
- 13. 编译V8的Hello World在Netbeans的
- 14. 如何在编译Linux内核
- 15. 如何在Windows上编译Linux内核代码?
- 16. 交叉编译Linux内核模块
- 17. 在linux内核中添加和编译新代码
- 18. Linux内核编译器FriendlyARM
- 19. 无法在Netbeans上编译Android hello world
- 20. 无法在Netbeans中编译Hello World
- 21. 运行并编译'Hello,World!'在Haskell
- 22. 在Angström上编译Hello World(Beagleboard)
- 23. 运行Linux内核模块(Hello World)
- 24. 编译linux内核模块时出错
- 25. 编译Linux内核模块(lincan)
- 26. 编译简单的hello world ZeroMQ C例子,编译标志?
- 27. C Hello world:代码块IDE,Windows上的MinGW C编译器
- 28. 如何在Linux Ubuntu中编译驱动程序/内核模块?
- 29. 的Hello World Java中不会编译
- 30. Java中的Hello World编译错误
但你是怎么做到的?你遵循的步骤是什么?你运行了一台虚拟机,然后分配了iso来测试它,或者步骤如何? – YumYumYum 2011-04-08 13:46:42
哦不,我只是在Linux Kernel模式下测试它,而不是从启动。所以Iso和虚拟机是不需要的。对不起,我没有发布我的答案,也许是来自其他在线教学。 – 2011-04-11 17:13:26