我是Android内核和移动操作系统的新手,我有一些关于android内核的问题。
1)Android操作系统是否具有内核模式和普通桌面操作系统等用户模式?它还支持像虚拟内存这样的东西吗?我也听说过Dalvik VMM。是否为每个进程创建了dalvik VMM的副本?
2)另一个问题是我听说android为每个进程(每个应用程序)创建一个单独的文件系统。这是真的 ?如果是这样,OS如何维护这些文件系统以及它们的安装位置。它是否具有基于Unix的系统的层次结构?
3)另一个问题是关于android中的IPC。什么是android中的绑定器?它与普通的IPC机制如管道,消息队列等有何不同。
4)另一个与android没有关系的问题,但驱动程序如何解决基于闪存的磁盘,如固态硬盘等。例如:普通硬盘块可以通过柱面,扇区和轨道识别。
答案 0 :(得分:6)
1。 “Android内核”是Linux内核。
1a上。不,你没有听说过“Dalvik VMM”,你听说过“Dalvik VM”,它只是一种新型的Java VM。它运行Java应用程序。没有魔法。不,不存在与“每个进程”相关联的Dalvik VM,但是,是的,每个应用程序都在一个独立的进程中运行。
2。没有。有一个目录结构,而不是不同的文件系统。
3。 Why Binder?
4。 Android使用通常的Linux MTD和MTD-Block设备。无论是闪存还是硬盘,世界都是LBA。 CHS仅适用于过去三十年的旅行时间。
答案 1 :(得分:4)
Android内核是否有内核空间和用户空间?
Android驱动设备上使用的内核是2.6内核,提供内存管理,进程管理,网络堆栈和驱动程序模型等核心系统服务。
所以它确实有内核和用户空间。例如,您有用于内核/用户空间通信的常规/ proc文件系统。
确实,每个应用程序都在自己的进程中运行自己的DVM实例。
您可以在What is Android?页面上阅读更多相关信息。
Android上的应用程序文件结构如何?
是的,每个应用程序都有自己的应用程序数据目录结构,如数据库,共享首选项和其他特定于应用程序的文件。
/数据/数据/包
除此之外,实际的.apk文件位于
中/数据/应用
如果它是基于UNIX的层次结构系统,我不太确定你的问题。我想你想知道应用程序是否会放在/ usr / bin /等等。那就不要。除非您自己编写一些二进制文件并构建自定义映像,否则您应该将系统二进制文件放在默认的FSH位置。
问题三。我不太清楚你指的是什么。如果你的意思是UNIX IPC,那么它就是2.6内核,它具有上述状态的所有核心功能。如果您指的是API的远程过程调用,那么您可以查看Remote procedure calls。
问题四是我所知道的,或者我没有得到你的问题。
一般来说,我会向你推荐一些非常有趣的读物。
希望它有所帮助。
答案 2 :(得分:0)
1)如果您需要各种操作的权限,则需要在清单中启用它们。 2)是的。每个应用程序都有自己的文件系统,但文件只能通过文件名访问(无路径)。如果要使用外部存储器(如SD卡),则需要在清单中启用权限,并使用完全限定的路径/文件名。 3)我不熟悉android绑定器(虽然我在调试时看到它们),但在任务之间传递消息非常简单。 4)基于闪存的存储器块由地址标识。 Flash不是RAM,但它是随机访问。