c - 关于Android内核的几个问题

标签 c android linux-kernel kernel

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

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

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

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

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

最佳答案

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 只适合那些穿越到过去三十年的人。

关于c - 关于Android内核的几个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3671332/

相关文章:

linux-kernel - 如何开始Linux内核开发

c - 为什么Linux kernel 3.0+取消super_operations.read_inode?求新的引用~

android - IntelliJ IDEA 是否可以一键发布 Android 应用?

c - qsort 在输出中给出奇怪的字符

c - dlopen 找不到 ldconfig -p 找到的库

c - 用矩阵实现函数 - 差异

java - 来自字符串数组列表的随机字符串

android - Unity项目导出到android项目异常(多个dex文件定义Lcom/qualcomm/QCARUnityPlayer/BuildConfig)

linux - 如何通过 drm (Linux) 创建 opengl 上下文

c - 为什么内核头不想将 irq 暴露给模块?