內核編程
『壹』 怎麼學習windows內核編程
內核編程,要用到wdk,主要還是c語言,也可以用C++,但是C++中還是要用C開發,主要的文檔還是查看微軟的文檔,主要的工具是vc(或是vs)+ 虛擬機 + windbg..數據,《Windows驅動詳解》```
『貳』 linux內核編程
有點暈,總是看錯……
你什麼系統?編譯什麼源代碼?
幹嘛用?
linux改版過很多次,經常修改內核頭文件。
------------
http://dirac.org/linux/writing/lkmpg/2.6/chinese/lkmpg_chs/#AEN148
這里的 hello-1.c 我編譯通過了,也能載入內核,你參考一下吧,這個是基於 2.6.x 的。你編譯出問題,可能是編譯的方法有錯誤。需要引用內核才能正確編譯,內核好像至少要安裝上 linux-header 部分,最好能自己先編一個內核裝上。(發行版自帶的 config + 自帶的源代碼就行,為的是盡可能的全)
『叄』 Linux 內核編程
慢慢來,內核這東西不是一下能搞定的,先在LINUX環境下熟悉熟悉各種命令和編譯方式,然後看看APUE,UNP之類的書,大致了解一下咯。再接下來就可以看LINUX內核分析類的書籍了
『肆』 linux 系統編程, 驅動編程 , 內核編程 有什麼區別《UNIX高級編程》的內容是哪一類的
系統編程,注重性能,比如伺服器端的編程,一般最底層使用c,自己對內存管理文件系統管理進行優化
驅動編程,主要是為了把linux一直到嵌入式設備,linux內核是一個龐大的系統,但不是所有設備都用上這些,而且對於兼容性問題,還要做一些修改。比如在iphone出來之前,都是使用嵌入式設計一些PDA和山寨手機系統
至於內核編程,其實也是對性能的追求,但內核編程調用的API級別更高,相對來說系統編程,是標準的API
《U高級編程》一般沒太多說明,都是系統編程
『伍』 linux內核編程是什麼意思啊
含義和Windows的SDK編程差不多,就是直接調用其API編程,甚至直接重寫內核的部分功能。
學好了這個可以從事比較高級和底層的開發。
『陸』 關於內核編程
完全不會匯編沒有可能學習內核!
要學習的知識很多
intel80x86匯編編程(針對ia32體系結構)
c語言
gcc、gas使用
有關內核的知識:處理機管理、內存管理、文件管理、設備管理、文件系統、網路管理等等
書籍自己找吧,搜索引擎中有很多!
『柒』 內核編程與應用程序開發的主要區別
內核編程既不能訪問C庫也不能訪問標準的C頭文件。
內核編程時必須使用GNU C。
內核編程缺乏像用戶空間那樣的內存保護機制。
內核編程時難以執行浮點數運算。
內核給每個進程只有一個很小的定長堆棧。
由於內核支持非同步中斷、搶占和SMR,因此必須時刻注意同步和並發。
要考慮可移植性的重要性。
『捌』 請簡要敘述內核編程的注意點即和普通應用程序編程的不同之處
1.linux內核編程和用戶應用程序編程最大的不同是,前者是在內核態下運行的,而後者主要在用戶態下運行,有時通過一些系統調用切換到內核態下運行,但這時間不會太長。
2.內核編程引進的頭文件都在內核源碼的include文件夾下,比如我的debian linux 2.6環境下是:/usr/src/linux/include下,而用戶應用程序編程引進的頭文件都是從開發環境頭文件的include文件夾下,比如我的環境下是:/usr/include下。也就是凡是要include的頭文件在內核源碼include底下沒有的都不能用。
3.要查詢一個函數能否在內核編程中用,可以通過http://lxr-itec.uni-klu.ac.at/linux-2.6.4/ident查(這是針對linux2.6內核,也有針對2.4內核的),如果能查到Defined as a function,那就可以用,否則就不行。
4.舉個簡單的例子:當socket編程時,用戶在應用程序編程時,基本上都用到socket()函數創建一個socket描述符,include的頭文件主要是,和,這幾個頭文件在內核源碼include下都沒有,所有不能用,但內核編程有它自己的一套。內核socket編程時,需要用sock_create()得到一個socket結構體,如果想跟用戶應用程序一樣用socket描述符來操作socket,可以再用sock_map_fd()新建一個對應的描述符,而且需要時可以通過sockfd_lookup(),實現通過描述符查找對應的socket結構體。其實socket函數內核實現時就是先有sock_create(),再有sock_map_fd()。
『玖』 什麼叫windows內核編程linux編程,有什麼應用
windows內核編程,多數用c,還有匯編和C++,win32有32為操作系統的意思還有win32API的應用編程介面,mfc是c++的類庫,可以調用很多的組件的內容,像軟體有各種開發語言,c佔多數在殺毒,在應用軟體上qq其他語言也可以開發,開發語言不止c/c++,還有N多
linux編程,c用的多數,也可以用其他語言,c++,java,puty等很多
linuc下c編程最簡單就是gcc,vim組合
linux下也是用不同的軟體,最簡單的就是終端,可以直接編譯運行
『拾』 什麼是LINUX內核編程
真佩服樓上的2位對「內核編程」的理解力!
簡單說,Linux內核編程就是開發Linux驅動程序,學會內核編程後,將會對操作系統的內部機制和工作原理有充分了解,可以從事硬體驅動開發、嵌入式系統開發等。內核編程的語言仍是傳統的C語言,但其編寫方法和調用介面與傳統應用程序的差別較大,你必須了解如何處理中斷、如何在內核態和用戶態之間轉換、PCI、DMA、內核地址映射、內核I/O等,這不是《UNIX高級編程》所涉及的內容,可以找一本專門講Linux驅動編程的書看看,或在網上搜尋相關資料(關鍵詞:Linux DDK)。不過先提醒一句,學習內核編程的難度很大,必須做好長期心理准備