安卓币 Linux与Linux内核是不一样的,你该怎么选择?

资讯 10个月前 manoon
0

安卓币 
Linux与Linux内核是不一样的,你该怎么选择?

有人说Android就是Linux。还有人说Android就是Android,Linux就是Linux。两者没有任何关系。其他人说Android使用Linux内核。那么他们之间是什么关系呢?要得到这个问题的答案,我们必须先弄清楚几个概念。

Linux 和 Linux 内核

Linux 和 Linux 内核实际上是不同的。关于这个问题,我在之前的一篇文章(《Linux、Unix、GNU的起源是什么?》)中讲过。 Linux 内核由 Linus Torvalds 于 1991 年首次编写,它是操作系统的核心,包括设备驱动程序、文件系统、进程管理、网络通信等。但操作系统只有内核,用户无法操作它。所以很多厂商和Linux社区都在内核上开发了很多工具,比如我们常用的GNome桌面、FireFox浏览器、GIMP图片编辑器等等。 Linux 内核和这些应用程序打包在一起后,就称为 Linux 发行版。 Linux 有许多发行版。上一篇(《这么多Linux版本,你怎么选?》),我比较了不同的版本。

安卓币 
Linux与Linux内核是不一样的,你该怎么选择?

所以我们常说的 Linux 有两个意思:

1) Linux 内核,严格来说应该叫 GNU/Linux,因为它是 GNU 项目的一部分

2) Linux 发行版,如 Debian、Ubuntu、Mint、RedHat 等

安卓币 
Linux与Linux内核是不一样的,你该怎么选择?

Android 与 Linux 内核或 Linux 发行版有什么关系吗?

Android 和 Linux 的关系

Android 实际上使用的是 Linux 内核。由于 Linux 本身是开源的,Google 的工程师选择基于 Linux 内核对其进行裁剪,这样他们就不需要从头开始开发新系统。 BTW,这也是各大厂商的通行做法。例如,Playstation 的操作系统使用的是 FreeBSD 的内核,而 XBox 的内核使用的是 Windows NT。在Android手机上安卓币,您可以在系统信息中看到Linux内核的版本。

安卓币 
Linux与Linux内核是不一样的,你该怎么选择?

Android 既然使用了 Linux 内核,那能不能说它是 Linux 的发行版?我们来看看Android和其他Linux发行版在开发架构上的区别。

安卓币 
Linux与Linux内核是不一样的,你该怎么选择?

大家都知道Linux内核是用C语言开发的,Android在Linux内核之上用C/C++开发了Dalvik,后来改名为Android Run Time,其实就是Android的Java虚拟机本身。我们制作的所有 Android 应用程序都是用 Java 开发并在 ART 上运行的。其他 Linux 发行版也可以使用 Java 开发应用程序,只要它们运行在 Linux 的 Java 虚拟机上即可。此外,我们还可以使用其他框架在Linux内核之上进行开发,比如GTK框架的Gnome和QT框架的LXQT。这些和ART都在一个层次上。所以我认为 Android 和其他 Linux 发行版本质上是一样的,但 Android 对 Linux 内核做了一些削减,并在其上运行了 Dalvik/ART,而其他 Linux 发行版只运行了很多“Dalvik/ART”。

在解释了Android和Linux内核的关系以及与其他Linux发行版的区别之后,我们再来看看朋友们经常问的两个问题:

1) 我可以在 Android 上运行 Linux 桌面应用程序吗?

安卓币 
Linux与Linux内核是不一样的,你该怎么选择?

因为Android中有很多标准的GNU库没有安装,图形X服务器也没有安装,所以答案是否定的。但是安卓币,有一些应用程序试图让我们在Android环境中使用Shell,Android终端模拟器和busybox。有兴趣的同学可以看看。

2) 我可以在 Linux 桌面上运行 Android 应用程序吗?

由于其他 Linux 发行版没有 Dalvik/ART,因此 Android 应用程序无法直接在 Linux 桌面上运行。但是我们只需要将 Dalvik/ART 移植到 Linux 桌面环境即可。正是基于这个原理,市面上出现了很多Android手机模拟器,不仅可以在Linux桌面上使用,还可以在Windows和Mac上使用。

总结

Android操作系统的核心是在Linux内核上进行了一些裁剪和定制,内核上运行了一个Dalvik/ART虚拟机。所有的应用程序都必须运行在这个虚拟机上,所以 Android 应用程序都是用 Java 开发的。在Linux发行版中,我们可以使用Java虚拟机或其他框架,如GTK、QT等,他们编译的二进制代码可以直接在Linux内核上运行,与Dalvik/ART处于同一级别。所以Android和Linux的发行版本质上是一样的。

版权声明:manoon 发表于 2021-08-29 6:00:08。
转载请注明:安卓币 Linux与Linux内核是不一样的,你该怎么选择? | 198区块链导航

暂无评论

暂无评论...