Windows驅動可以用Python編寫嗎?Windows驅動程序可以用Python編寫嗎?
回答
是的。您無法創建「經典」內核模式驅動程序。但是,從XP開始,Windows提供User-Mode Driver Framework。顯然,他們不能做任何事情 - 任何用於啓動操作系統的驅動程序顯然都必須是內核模式。但是對於UMDF,您只需要實現COM組件。
除了啓動時的驅動程序,你也可以不寫UMDF驅動程序:
- 處理中斷
- 直接訪問硬件,如直接存儲器存取(DMA)
- 有嚴格的定時循環
- 使用非分頁池或者被
Python在虛擬機中運行,因此不會。
但是:
您可以編寫一個將Python代碼轉換爲機器語言的編譯器。一旦你完成了,你可以做到。
我猜想不可能。 :(比你... – Armageddon 2009-06-11 14:00:15
或者你可以在驅動程序中嵌入一個Python解釋器,或者讓Microsoft在內核中包含一個Python解釋器,從技術上說,沒有理由不能完成它。你有很多的支持:); – jalf 2009-06-11 14:03:39
永不永不說,但誒..沒有
你也許可以破解的東西一起在Python運行驅動程序的用戶模式部分。但內核模式的東西只能用C或彙編完成。
booh :( 謝謝你:) 我想我必須學習C或彙編..;) – Armageddon 2009-06-11 14:01:06
如何將解釋器(用C寫成)然後執行Python腳本作爲數據存儲在驅動程序中? – 2009-06-11 14:03:06
@Judge Maygarden:這可能在用戶模式下工作,但內核模式對於可以進行的調用是非常嚴格的。機會是你的翻譯不會在那裏跑。內核模式開發是一種黑色藝術。 – Mendelt 2009-06-11 14:49:27
不,他們不能。的Windows驅動程序必須寫在可
- 接口與基於C API
- 向下編譯成機器碼
話又說回來語言,沒有什麼阻止你寫一個編譯器,它把Python到機器代碼;)
我不知道在Windows上的驅動程序的限制(內存分配方案,動態加載庫和所有),但你可能能夠在你的驅動程序中嵌入一個Python解釋器,在這一點上你可以做wha你想要的東西。不是我認爲這是一個好主意:)
明確的答案不是沒有在您的C/assembly驅動程序中嵌入解釋器。除非有人有可用的框架,否則答案是否定的。一旦你有了解釋器和綁定,那麼其餘的邏輯就可以用Python來完成。
但是,編寫驅動程序是C最適合的事情之一。我想象得到的Python代碼看起來很像C代碼,並且打破瞭解釋器開銷的目的。
獲得洞察力的一個好辦法就是通過閱讀Microsoft's advice關於在驅動程序中使用C++的方法。作爲C的衍生物,C++的使用似乎很簡單。在實踐中,並非如此。例如,您必須爲每個函數(以及實際上每個彙編指令)決定它是否在可分頁或不可分頁的內存中。這需要對C進行擴展,謹慎使用新的C++特性,或者在這種情況下對Python語言和VM進行特殊擴展。另外,與驅動程序兼容的虛擬機也必須處理不同的IRQL - 有一個層次的「層次」,它限制了你可以做什麼和不可以做什麼。
- 1. 編寫windows類驅動程序
- 2. Windows驅動程序可以訪問進程的頁表嗎?
- 3. 我可以使用Python編寫原生iPhone,Android,Windows,Blackberry應用程序嗎?
- 4. 學習編程Windows驅動程序
- 5. 編寫API以使用Windows設備驅動程序的某些功能
- 6. 如何編寫可以控制設備驅動程序的程序?
- 7. 我可以通過編程方式使用OneNote打印機驅動程序嗎?
- 8. 用Python編寫的程序是AppleScripted嗎?
- 9. Windows Logo(TM)認證應用程序難以用Java編寫嗎?
- 10. 將Windows驅動程序轉換爲64位 - 我可以使用32位DLL嗎?
- 11. Windows XP:我可以查找通用驅動程序的名稱嗎?
- 12. 編寫鍵盤設備驅動程序
- 13. 爲ActiveRecord編寫驅動程序(Rails 3)
- 14. 如何爲Android編寫驅動程序?
- 15. 以編程方式在Windows中切換音頻驅動程序?
- 16. 以編程方式安裝Windows NDIS中級(IM)驅動程序
- 17. 你可以在非Windows平臺上編寫C#應用程序嗎?
- 18. 我可以爲Windows 8「People」應用程序編寫一個插件嗎?
- 19. Linux /內核模塊:兩個用戶程序可以使用驅動程序嗎?
- 20. Scala可以用來編寫GWT應用程序嗎?
- 21. 你可以用HTML/CSS和Javascript編寫Cocoa應用程序嗎?
- 22. 我可以只使用NOSQL編寫整個應用程序嗎?
- 23. 我可以使用RealBasic編寫Mac App Store應用程序嗎?
- 24. ios應用程序可以用Xcode 2.4編寫嗎?
- 25. Windows驅動程序可以在沒有客戶端的情況下運行嗎?
- 26. 以Java編寫的ODBC接口/驅動程序
- 27. 我可以用Python打開Windows任務調度程序嗎?
- 28. Windows驅動程序創建
- 29. 我可以以編程方式啓動Windows Management Instrumentation服務嗎?
- 30. Windows:是否可以創建(虛擬)視頻卡驅動程序?
感謝保留內核模式全方位爲您很好的答案等資源:) – Armageddon 2009-06-11 14:16:00