是的,作爲標題,我不知道如何在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