【问题标题】:Few Questions regarding Android Kernel关于 Android 内核的几个问题
【发布时间】:2011-04-09 22:30:01
【问题描述】:

我是 android 内核和移动操作系统的新手,我有一些关于 android 内核的问题。

1) Android 操作系统是否有内核模式和普通桌面操作系统一样的用户模式?它还支持虚拟内存之类的东西吗?我也听说过 Dalvik VMM。是否为每个进程创建了 dalvik VMM 的副本?

2) 另一个问题是我听说 android 为每个进程(每个应用程序)创建了一个单独的文件系统。这是真的 ?如果是,操作系统如何维护这些文件系统以及它们安装在哪里。它有像基于 Unix 的系统那样的层次结构吗?

3) 另一个问题是关于 android 中的 IPC。什么是 android 中的活页夹?它与管道、消息队列等普通 IPC 机制有何不同。

4) 另一个与 android 无关的问题,但驱动程序如何解决基于闪存的磁盘,如固态驱动器等。例如:普通 HDD 块可以通过柱面、扇区和磁道来识别。

【问题讨论】:

  • 这是一组非常广泛的与 Android 有关的具体问题,你检查过这个android.com
  • Does it have a hierarchy like Unix based systems? Android 是 linux,所以是的
  • @Falmarri 我必须纠正你。安卓不是linux。 Android 在其 dalvik 虚拟机中的 linux 内核之上运行。非常非常粗略的解释。

标签: c android linux-kernel kernel


【解决方案1】:

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 仅适用于那些穿越到过去 30 年的人。

【讨论】:

  • 旁注:很多磁盘使用基于 CHS 的 MBR(是的,很多丢弃 CHS 数据并使用 LBA 地址,但有些不使用)
【解决方案2】:

Android内核有内核空间和用户空间吗?

Android 设备上使用的内核是 2.6 内核,提供核心系统服务,如内存管理、进程管理、网络堆栈和驱动程序模型。

所以是的,它确实有内核和用户空间。例如,您拥有用于内核/用户空间通信的常规 /proc 文件系统。

确实,每个应用程序都在自己的进程中运行,并带有自己的 DVM 实例。

您可以在What is Android? 页面上阅读更多相关信息。

应用程序文件结构在 Android 上是什么样的?

是的,每个应用程序都有自己的应用程序数据目录结构,例如数据库、共享首选项和其他看起来像这样的应用程序特定文件。

/数据/数据/包名

除了实际的 .apk 文件位于

/数据/应用

我不太确定您的问题是否是基于 UNIX 的层次结构系统。我猜你想知道应用程序是否会放在 /usr/bin/ 等等。那就不要。除非您自己编写一些二进制文件并构建自定义映像,否则您绝对应该将系统二进制文件放在默认的 FSH 位置。

关于问题三。我不太确定你指的是什么。如果您的意思是 UNIX IPC,那么它是一个 2.6 内核,具有上述所有核心功能。如果您指的是 API 的远程过程调用,那么您可以查看 Remote procedure calls

问题四超出了我的知识范围,或者我没有得到您的问题。

一般来说,我会向你推荐一些非常有趣的读物。

希望它有所帮助。

【讨论】:

  • 非常感谢您的解释。我只是在询问android中的活页夹。它们是如何工作的以及为什么它们是新的
  • 还有关于文件系统的。如果每个进程都有自己的文件系统,操作系统应该如何检测它们? (通常通过使用分区表(例如:MBR 或 GUID)检测文件系统。因此,对于使用此类东西的每个文件来说,这是一个开销吗?
  • 我很抱歉这里的措辞不正确。我已经根据霍布斯的回答重新措辞了。它不是文件系统,而是目录结构。
【解决方案3】:

1) 如果您需要各种操作的权限,您需要在清单中启用它们。 2) 是的。每个应用程序都有自己的文件系统,但文件只能通过文件名访问(没有路径)。如果要使用 SD 卡等外部存储器,则需要在清单中启用权限,并使用完全限定的路径/文件名。 3)我不熟悉 android binders(虽然我在调试时看到它们),但是在任务之间传递消息非常简单。 4) 基于闪存的内存块由地址标识。 Flash 不是 RAM,而是随机访问。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 2011-05-12
    • 2011-08-24
    • 2013-01-30
    相关资源
    最近更新 更多