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