2017-07-20 65 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

谢谢你指导我.. –