除shell和系統調用之外,還有其他方式可以使用內核來執行程序嗎?內核編程
Q
內核編程
2
A
回答
3
它總是以前只有一種方式來執行Unix及其派生程序上的程序,並且這是通過exec()
系統調用。第一個(內核)進程是由引導加載程序創建的;所有後續流程均由fork()
和exec()
創建。當然,fork()
只創建了原始程序的副本;它是exec()
系統調用 - 以C源代碼中的多種形式之一,但最終相當於execve()
- 這是做了用新圖像替換當前進程的驢工作。
這些天,有像posix_spawn()
這樣的機制可能會或可能不會使用單獨的系統調用來實現大致相同的機制。
0
是的,你可以用你的程序編譯你的內核,但它不會是最聰明的事情。
1
很多內核支持在運行時添加kernel modules
或drivers
。如果你想從內核空間執行一些代碼(可能是因爲你需要更高的權限),你可以編寫你自己的內核模塊/驅動程序並加載它來執行你的代碼。但是,僅插入驅動程序並不能確保您的代碼將被執行。根據您的驅動程序實現,您必須具有一些在內核空間中執行代碼的觸發機制。
0
每個程序都由內核在內部執行。如果您正在尋找正在運行的內核模塊,則必須使用系統調用來訪問該模塊,並在內核模式下爲您執行一些工作。內核是事件驅動的,只有系統調用觸發其模塊的執行(除了一些系統事件,如網絡數據包收到)
相關問題
- 1. NT內核編程
- 2. Linux內核編程
- 3. Linux內核模塊編程
- 4. Android內核模塊編程
- 5. 內核編程含義
- 6. 編譯舊內核程序
- 7. OSX內核編程入門
- 8. Linux內核編程:「無法處理內核NULL指針引用」
- 9. Mac內核編程通用內核擴展prinf()不起作用
- 10. 編譯android內核
- 11. 編譯linux內核
- 12. 編譯Linux內核
- 13. 內核編程的仿真環境
- 14. Linux內核模塊編程:makefile
- 15. 從哪裏開始linux內核編程?
- 16. 編程cuda內核時整數大小
- 17. Linux內核模塊編程Makefile錯誤
- 18. 如何開始Windows內核編程?
- 19. Linux內核模塊編程Makefile
- 20. 關於內核版本3.x的線程上的Linux內核編程
- 21. 程序如何通信 - 微內核單片內核exo內核
- 22. 編譯內核 - 3.9.4 - 問題
- 23. Linux內核編譯器FriendlyARM
- 24. !編譯內核模塊
- 25. FTDI編譯內核模塊
- 26. Android的內核編譯
- 27. Linux內核模塊編譯
- 28. 編譯XNU內核2050
- 29. 內核編譯錯誤
- 30. 編譯內核時出錯
這是非常模糊的......「使用內核」意味着*從內核模式*?或通過*從用戶模式調用內核例程*?是關於Windows,Linux還是Mac?更加詳細一些。 – Mehrdad 2011-01-05 07:08:31