6个回答
展开全部
Android 和 MOTO V8 的系统完全是两个概念。
现在各个手机网站的编辑大脑都是严重萎缩的,根本就不能理解 Linux 是什么。
Linux 仅仅是内核,根本就不是一个完整的操作系统。
一个完整的操作系统,包括内核,功能库,用户界面三个主要部分。一个应用程序,主要运行的并不是依靠内核来运行,它主要是借助功能库提供程序功能函数支持,用户界面层提供显示和交互的功能函数支持,内核只是一个硬件驱动交互,任务分配,内存管理,IO 处理的最底层的支持。
也就是说,一个程序能不能运行,主要是看函数库和用户界面的支持情况。
但很明显的,Android 和 MOTO V8 完全是两种实现方法,根本就不能拿来做比较。
Android 是基于叫做 Dalvik 的 java 虚拟机而运行的一个上层系统,所有的 Android 程序其实都是 java 程序,直接运行在这个 java 虚拟机里面,Android 的程序根本就不是一个真实的二进制程序。
MOTO V8 我要没记错,是基于QT 嵌入式开发的一个系统,叫做 EZX Linux 。QT 提供了一个完整的函数库和用户界面支持库。他的程序理论上都是手机上面可以运行的本地二进制程序(记得是 ARMv5 的)。但实际上,MOTO 不允许二进制程序的开发和安装,只能用 java 程序,也就是 j2me 的程序。
虽然两个都是虚拟机,但这两个虚拟机本质完全不同。
Dalvik 的虚拟机是针对 Android 手机的基本要求,也就是要有一个触摸屏,4个物理按键,内存和 CPU 性能都要求很高的硬件进行设计的。j2me 是针对的手机就没有这个要求。不同的 j2me 手机和程序,都有不同的功能和性能。
可以说,Andorid 系统和 MOTO V8 的 EZX ,就算都用 Linux 内核,Linux 内核提供的硬件支持,功能支持等等的东西,在手机这种针对性极强的硬件上,也会出现不同的兼容问题。
他们两个除了都是基于 Linux 内核这个称呼以外,其余的他们根本就完全不同。
Linux 从来就没有说过“二进制兼容”,Linux 遵循 POSIX 标准,Linux 之间还有一个 LSB 兼容标准,但这个不是强制标准,而且在手机上根本就没办法执行的。
现在各个手机网站的编辑大脑都是严重萎缩的,根本就不能理解 Linux 是什么。
Linux 仅仅是内核,根本就不是一个完整的操作系统。
一个完整的操作系统,包括内核,功能库,用户界面三个主要部分。一个应用程序,主要运行的并不是依靠内核来运行,它主要是借助功能库提供程序功能函数支持,用户界面层提供显示和交互的功能函数支持,内核只是一个硬件驱动交互,任务分配,内存管理,IO 处理的最底层的支持。
也就是说,一个程序能不能运行,主要是看函数库和用户界面的支持情况。
但很明显的,Android 和 MOTO V8 完全是两种实现方法,根本就不能拿来做比较。
Android 是基于叫做 Dalvik 的 java 虚拟机而运行的一个上层系统,所有的 Android 程序其实都是 java 程序,直接运行在这个 java 虚拟机里面,Android 的程序根本就不是一个真实的二进制程序。
MOTO V8 我要没记错,是基于QT 嵌入式开发的一个系统,叫做 EZX Linux 。QT 提供了一个完整的函数库和用户界面支持库。他的程序理论上都是手机上面可以运行的本地二进制程序(记得是 ARMv5 的)。但实际上,MOTO 不允许二进制程序的开发和安装,只能用 java 程序,也就是 j2me 的程序。
虽然两个都是虚拟机,但这两个虚拟机本质完全不同。
Dalvik 的虚拟机是针对 Android 手机的基本要求,也就是要有一个触摸屏,4个物理按键,内存和 CPU 性能都要求很高的硬件进行设计的。j2me 是针对的手机就没有这个要求。不同的 j2me 手机和程序,都有不同的功能和性能。
可以说,Andorid 系统和 MOTO V8 的 EZX ,就算都用 Linux 内核,Linux 内核提供的硬件支持,功能支持等等的东西,在手机这种针对性极强的硬件上,也会出现不同的兼容问题。
他们两个除了都是基于 Linux 内核这个称呼以外,其余的他们根本就完全不同。
Linux 从来就没有说过“二进制兼容”,Linux 遵循 POSIX 标准,Linux 之间还有一个 LSB 兼容标准,但这个不是强制标准,而且在手机上根本就没办法执行的。
推荐于2017-09-03 · 知道合伙人互联网行家
关注
展开全部
Linux与Androld的关系
虽然Android基于Linux内核,但是它与Linux之间还是有很大的差别,比如Android在Linux内核的基础上添加了自己所特有的驱动程序。下面我们就来分析一下它们之间究竟有什么千丝万缕关系?
1 安卓为什么会选择Linux
成熟的操作系统有很多,比如Unix系统。但是Android为什么选择采用Linux内核呢?这就与Linux的一些特性有关了,比如:
(1)强大的内存管理和进程管理方案
(2)基于权限的安全模式
(3)支持共享库
(4)经过认证的驱动模型
(5)Linux本身就是开源项目
更多关于上述特性的信息可以参考Linux 2.6版内核的官方文档,这便于我们在后面的学习中更好地理解Android所特有的功能特性。接下来分析Android与Linux真正的关系。
2Android不是Linu×
看到这个标题大家可能会有些迷惑,前面不是一直说Android是基于Linux内核的吗,怎么现在又不是Linux了?迷惑也是正常的,请先看下面几个要点,然后我们将对每一个要点进
行分析,看完后你就会觉得Android不是Linux了。
①它没有本地窗口系统
(1)它没有glibc的支持
(2)它并不包括一整套标准的Linux使用程序
(3)它增强了Linux以支持其特有的驱动
1、它没有本地窗口系统
什么是本地窗口系统呢?本地窗口系统是指GNU/Linux上的X窗口系统,或者Mac OS的Quartz等。不同的操作系统的窗口系统可能不一样,Android并没有使用(也不需要使用)Linux的X窗口系统,这是Android不是Linux的一个基本原因。
2、它没有glibc支持
由于Android最初用于一些便携的移动设备上,所以,可能出于效率等方面的考虑,Android并没有采用glibc作为C库,而是Google自己开发了一套Bionic Libc来代替glibc。
3、它并不包括一整套标准的Linux使用程序
Android并没有完全照搬Linux系统的内核,除了修正部分Linux的Bug之外,还增加了不少内容,比如:它基于ARM构架增加的Gold-Fish平台,以及yaffs2 FLASH文件系统等。
4、Android专有的驱动程序
除了上面这些不同点之外,Android还对Linux设备驱动进行了增强,主要如下所示。
(1) Android Binder基于OpenBinder框架的一个驱动,用于提供Android平台的进程间通信( InterProcess Communication,IPC)功能。源代码位于
drivers/staging/android/binder.c。
(2) Android电源管理(PM) 一个基于标准Linux电源管理系统的轻量级Android电源管理驱动,针对嵌入式设备做了很多优化。源伐码位于:
Ⅰ kerneUpower/earlysuspend.c
Ⅱ kernel/power/consoleearlysuspend.c
Ⅲ kernel/power/fbearlysuspend.c
Ⅳ kemel/power/wakelock.c
Ⅴ kernel/power/userwakelock.c
(3)低内存管理器(Low Memory Killer) 比Linux的标准的OOM(Out Of Memory)机制更加灵活,它可以根据需要杀死进程以释放需要的内存。源代码位于
drivers/staging/android/lowmemorykiller.c.
(4)匿名共享内存(Ashmem) 为进程间提供大块共享内存,同时为内核提供回收和管理这个内存的机制。源代码位于mm/ashmem.c。
(5) Android PMEM (Physical) PMEM用于向用户空间提供连续的物理内存区域,DSP和某些设备只能工作在连续的物理内存上。源代码位于drivers/misc/pmem.c。
(6) Android Logger -个轻量级的日志设备,用于抓取Android系统的各种日志。源代码位于drivers/staging/android/logger.c。
(7) Android Alarm捉供了一个定时器,用于把设备从睡眠状态唤醒,同时它还提供了一个即使在设备睡眠时也会运行的时钟基准。源代码位于drivers/rtc/alarm.c。
(8) USB Gadget驱动一个基于标准Linux USB gadget驱动框架的设备驱动,Android的USB驱动是基于gaeget框架的。源代码位于drivers/usb/gadget/。
(9) Android Ram Console为了提供调试功能,Android允许将调试日志信息写入一个被称为RAM Console的设备里,它是一个基于RAM的Buffer。源代码位于drivers/staging/android/ramL console.c。
(10) Android timed device提供了对设备进行定时控制的功能,目前支持vibrator和LED设备。源代码位于drivers/staging/android /timed_output.c(timed_gpio.c)。
(11) Yaffs2文件系统Android采用Yaffs2作为MTD nand flash文件系统,源代码位于fs/yaffs2/目录下。Yaffs2是一个快速稳定的应用于NAND和NOR Flash的跨平台的嵌入式设备文件系统,同其他Flash文件系统相比,Yaffs2能使用更小的内存来保存其运行状态,因此它占用内存小。Yaffs2的垃圾回收非常简单而且快速,因此能表现出更好的性能。Yaffs2在大容量的NAND Flash上的性能表现尤为突出,非常适合大容量的Flash存储。上面这些要点足以说明Android不是Linux。
虽然Android基于Linux内核,但是它与Linux之间还是有很大的差别,比如Android在Linux内核的基础上添加了自己所特有的驱动程序。下面我们就来分析一下它们之间究竟有什么千丝万缕关系?
1 安卓为什么会选择Linux
成熟的操作系统有很多,比如Unix系统。但是Android为什么选择采用Linux内核呢?这就与Linux的一些特性有关了,比如:
(1)强大的内存管理和进程管理方案
(2)基于权限的安全模式
(3)支持共享库
(4)经过认证的驱动模型
(5)Linux本身就是开源项目
更多关于上述特性的信息可以参考Linux 2.6版内核的官方文档,这便于我们在后面的学习中更好地理解Android所特有的功能特性。接下来分析Android与Linux真正的关系。
2Android不是Linu×
看到这个标题大家可能会有些迷惑,前面不是一直说Android是基于Linux内核的吗,怎么现在又不是Linux了?迷惑也是正常的,请先看下面几个要点,然后我们将对每一个要点进
行分析,看完后你就会觉得Android不是Linux了。
①它没有本地窗口系统
(1)它没有glibc的支持
(2)它并不包括一整套标准的Linux使用程序
(3)它增强了Linux以支持其特有的驱动
1、它没有本地窗口系统
什么是本地窗口系统呢?本地窗口系统是指GNU/Linux上的X窗口系统,或者Mac OS的Quartz等。不同的操作系统的窗口系统可能不一样,Android并没有使用(也不需要使用)Linux的X窗口系统,这是Android不是Linux的一个基本原因。
2、它没有glibc支持
由于Android最初用于一些便携的移动设备上,所以,可能出于效率等方面的考虑,Android并没有采用glibc作为C库,而是Google自己开发了一套Bionic Libc来代替glibc。
3、它并不包括一整套标准的Linux使用程序
Android并没有完全照搬Linux系统的内核,除了修正部分Linux的Bug之外,还增加了不少内容,比如:它基于ARM构架增加的Gold-Fish平台,以及yaffs2 FLASH文件系统等。
4、Android专有的驱动程序
除了上面这些不同点之外,Android还对Linux设备驱动进行了增强,主要如下所示。
(1) Android Binder基于OpenBinder框架的一个驱动,用于提供Android平台的进程间通信( InterProcess Communication,IPC)功能。源代码位于
drivers/staging/android/binder.c。
(2) Android电源管理(PM) 一个基于标准Linux电源管理系统的轻量级Android电源管理驱动,针对嵌入式设备做了很多优化。源伐码位于:
Ⅰ kerneUpower/earlysuspend.c
Ⅱ kernel/power/consoleearlysuspend.c
Ⅲ kernel/power/fbearlysuspend.c
Ⅳ kemel/power/wakelock.c
Ⅴ kernel/power/userwakelock.c
(3)低内存管理器(Low Memory Killer) 比Linux的标准的OOM(Out Of Memory)机制更加灵活,它可以根据需要杀死进程以释放需要的内存。源代码位于
drivers/staging/android/lowmemorykiller.c.
(4)匿名共享内存(Ashmem) 为进程间提供大块共享内存,同时为内核提供回收和管理这个内存的机制。源代码位于mm/ashmem.c。
(5) Android PMEM (Physical) PMEM用于向用户空间提供连续的物理内存区域,DSP和某些设备只能工作在连续的物理内存上。源代码位于drivers/misc/pmem.c。
(6) Android Logger -个轻量级的日志设备,用于抓取Android系统的各种日志。源代码位于drivers/staging/android/logger.c。
(7) Android Alarm捉供了一个定时器,用于把设备从睡眠状态唤醒,同时它还提供了一个即使在设备睡眠时也会运行的时钟基准。源代码位于drivers/rtc/alarm.c。
(8) USB Gadget驱动一个基于标准Linux USB gadget驱动框架的设备驱动,Android的USB驱动是基于gaeget框架的。源代码位于drivers/usb/gadget/。
(9) Android Ram Console为了提供调试功能,Android允许将调试日志信息写入一个被称为RAM Console的设备里,它是一个基于RAM的Buffer。源代码位于drivers/staging/android/ramL console.c。
(10) Android timed device提供了对设备进行定时控制的功能,目前支持vibrator和LED设备。源代码位于drivers/staging/android /timed_output.c(timed_gpio.c)。
(11) Yaffs2文件系统Android采用Yaffs2作为MTD nand flash文件系统,源代码位于fs/yaffs2/目录下。Yaffs2是一个快速稳定的应用于NAND和NOR Flash的跨平台的嵌入式设备文件系统,同其他Flash文件系统相比,Yaffs2能使用更小的内存来保存其运行状态,因此它占用内存小。Yaffs2的垃圾回收非常简单而且快速,因此能表现出更好的性能。Yaffs2在大容量的NAND Flash上的性能表现尤为突出,非常适合大容量的Flash存储。上面这些要点足以说明Android不是Linux。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
安卓是linux的一个分支(不过linux不承认)安卓使用的是linux的内核
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
安卓是基于linux开发的系统,是以linux为内核。。。都是开源系统。。。更加具有发展前景。。。希望我的回答对您有所帮助
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
怎么可能,别天真了;
摩托罗拉的LINUX系统手机基本是移动定制,新机只能装JAVA软件(还有限制),刷机后能装MPKG格式的软件,并且要对应机型开发的软件才可以,(基本上是机油自己开发)所以软件可选择面很窄。热门的机型才会多点的软件,所以V8的软件还是不少的。不过LINUX 的手机可以绝对的DIY,什么东西都能换。对于喜欢深度DIY的用户来说,很有控制感和成就感。
配置高的LINUX手机可以刷安卓的系统,这样就可以装安卓的软件了。V8貌似不行,配置低了。
摩托罗拉的LINUX系统手机基本是移动定制,新机只能装JAVA软件(还有限制),刷机后能装MPKG格式的软件,并且要对应机型开发的软件才可以,(基本上是机油自己开发)所以软件可选择面很窄。热门的机型才会多点的软件,所以V8的软件还是不少的。不过LINUX 的手机可以绝对的DIY,什么东西都能换。对于喜欢深度DIY的用户来说,很有控制感和成就感。
配置高的LINUX手机可以刷安卓的系统,这样就可以装安卓的软件了。V8貌似不行,配置低了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询