2017-07-20 64 views
-2

我有興趣爲Android手機開發內核。我在互聯網上搜索有關android內核開發,我得到如何在Linux機器上構建內核意味着如何使用工具創建自定義內核,但我想知道如何編寫代碼來製作android內核。如何從C編程和ALP開始。請指導我。使用linux進行Android內核開發

回答

1

Android使用Linux內核,這就是爲什麼你應該先熟悉Linux。

從你的帖子我猜你對C編程語言知之甚少。在開始進行任何內核工作之前,您應該可以使用C編寫應用程序,因爲如果您無法編寫應用程序,則可能無法理解內核。

要開始學習C,到處都有很多資源,我會推薦Brian W. Kernighan編寫的「C編程語言」一書。和Denis M. Ritchie(C的發明人)。

應用程序以所謂的「用戶模式」運行,並且只能訪問由內核提供給他們的虛擬內存。如果應用程序嘗試訪問不在其虛擬空間中的內存,則內核會發送中止信號。這可以防止系統崩潰。在內核中,情況並非如此,因爲內核在「內核模式」下運行,因此當您執行某些錯誤時可以訪問整個地址空間,其結果可能包括從停止系統到擦除永久存儲等等。因此,首先要學習如何編寫應用程序,也許本機應用程序,通過學習「系統調用」來嘗試使用內核提供的功能。爲此,我會推薦Mark Mitchel編寫的「高級Linux編程」一書,它可以在其網站http://advancedlinuxprogramming.com/上免費託管。你可以在這裏找到一些參考https://en.wikibooks.org/wiki/The_Linux_Kernel

如果您對Linux內核提供的C和服務都很滿意。比你可以開始考慮進入內核。非常受歡迎的書是羅伯特·洛夫的「Linux內核開發」。儘管我不認爲它是最新的,但它應該涵蓋與該主題相關的主要議題,可能有更多的資源更新。

這是一段漫長的旅程,您應該首先考慮它,具體取決於您想要做什麼,實際上可以在「用戶空間」中進行。

+0

謝謝你的回覆。我知道c編程直到指針結構數據處理內存管理文件操作等。但我不知道服務,因爲你告訴。這足以啓動linux內核開發 –

+0

如果我是你,我會掌握C並查看我向你展示的鏈接。寫幾個應用程序,當你感覺到它的時候,得到一本關於內核的書,並且總是查找你不瞭解的東西。您還應該選擇內核的特定部分,例如,是否要編寫設備驅動程序或文件系統?這很難引導你,因爲有很多因素。 –

+0

謝謝你指導我.. –