Android 使用 linux 进行内核开发

Android Kernel Development using linux

我有兴趣为 android 手机开发内核。我在互联网上搜索了 android 内核开发,我知道了如何在 linux 机器上构建内核意味着如何使用工具来创建自定义内核,但我想知道如何编写代码来制作 android内核。如何从 C 编程和 ALP 开始。请指导我。

Android 使用 Linux 内核,这就是为什么您应该首先熟悉 Linux。

来自您post 我猜您不太了解 C 编程语言。在你开始做任何内核工作之前,你应该能够用 C 编写应用程序,因为如果你不能编写应用程序,你可能不会理解内核。

要开始学习 C,到处都有许多资源,我会推荐 Brian W. Kernighan 的书 "C programming language"。和 Denis M. Ritchie(C 的发明者)。

应用程序在所谓的 "User mode" 中运行,并且只能访问内核提供给它们的虚拟内存。如果应用程序试图访问不在其 Virtual Space 中的内存,内核将发送一个中止信号。这样可以防止系统崩溃。在内核中,情况并非如此,因为内核在 "Kernel mode" 中运行,因此可以访问整个地址 space 当您做错事情时,后果可能从停止系统到擦除永久存储等等。

所以首先学习如何编写应用程序,也许是本机应用程序,通过学习"System calls"尝试使用内核提供的功能。为此,我推荐 Mark Mitchel 的书籍 "Advanced Linux Programming",它在其网站 http://advancedlinuxprogramming.com/. You can find some reference here https://en.wikibooks.org/wiki/The_Linux_Kernel 上免费提供。

如果您对 C 和 Linux 内核提供的服务感到满意。然后你就可以开始考虑深入内核了。非常受欢迎的书是 Robert Love 的 "Linux kernel development"。虽然我认为它不是最新的它应该涵盖与该主题相关的主要主题,但那里可能有更新的资源。

这是一段漫长的旅程,你真的应该首先考虑一下,这取决于你想做什么,你实际上可以在 "User Space" 中完成。