Dis*_*ser 6 linux standard android lsb
从 Stack Overflow 搬过来,我意识到它是题外话,因为它要求来源 - 据我所知,规则禁止在那里但不是在这里。
我知道 Android 中的内核现在主要是 Linux 内核,但有一些例外,例如唤醒锁(如John Stultz 所述)。但是它是否足够接近以符合 Linux 标准库?(或者对于 POSIX 和/或单一 Unix 规范?)
我正在一篇学术学期论文中写到这个,所以除了答案本身,如果有一个相对可靠的来源我可以引用它会很棒:同行评审的文章或书籍将是理想的,但一些来自谷歌的开发人员文档或有信誉的人(Torvalds、Andrew Josey 等)都可以。
该LSB,POSIX和单一UNIX规范所有显著涉及用户态。仅仅使用一个内核,该内核也被用作“类unix”、“主要符合 POSIX 标准”的操作系统——GNU/Linux——并不足以让 Android 也如此。然而,有一些 *nix-ish 元素,例如shell,它是一个“高度兼容”的 Korn shell 实现(在 4.0 之前,它实际上可能是 ash shell,用于嵌入式 GNU/Linux 系统通过busybox)和各种POSIX-y命令行实用程序来配合它。然而,大多数人不会从“类unix”世界中认出完整的集合。
它是否足够接近以符合 Linux 标准库?
LSB 的核心是文件系统层次结构,Android 不使用它。LSB 确实为 POSIX 增加了一些东西,而且由于 Android 还远不及 LSB,所以它离 LSB 兼容还很远。我相信,这显然不是该平台的目标。linux内核是为了它自己的特性,而不是因为它可以用作POSIX系统的核心;出于两个原因,它最初被 GNU 采纳。
为了澄清与面向用户空间的规范(例如 POSIX、Unix 或 LSB 扩展)的区别,请考虑POSIX对本机 C 库所说的一些事情。这就是我们遇到平台特定事物的地方,例如网络和大多数系统调用,例如read()
--read()
实际上不是标准 C。从历史上看,它是 Unix 的东西。POSIX 确实将这些定义为接口,但它们是在 userland C 库中实现的,然后其他一切都使用这个库作为其基础。GNU/Linux 上的 C 库是 GNU C 库,它与内核完全分开。虽然这两个东西作为操作系统的核心一起工作,但这里讨论的标准都没有说任何说明关于这必须如何发生,因此实际上,他们没有说明内核是什么或必须做什么。他们说了很多关于 C 库是什么以及必须做什么的事情,这意味着,如果您编写了一个 C 库来使用给定的内核——任何内核,无论形式或特征如何——并且该库提供了一个用户空间 API满足 POSIX 规范,您就有了一个兼容 POSIX 的操作系统。
我认为 LSB 确实有一些关于/proc
linux 提供的内核接口的事情要说。然而,这(例如)由内核直接提供的事实并不意味着 LSB 说它必须是——它只是说这应该/可能可用,如果是的话,信息的性质是什么。
归档时间: |
|
查看次数: |
2348 次 |
最近记录: |