❶ linux和centos的区别
虽然Android基于Linux内核,但是它与Linux之间还是有很大的差别,比如Android在Linux内核的基础上添加了自己所特有的驱动程序。下面我们就来分析一下它们之间究竟有什么关系?
android是否能称为一种新的操作系统呢?至少我自己认为不算是,它最多算作一个新的应用程序罢了。
一、Android为什么会选择Linux
成熟的操作系统有很多,但是Android为什么选择采用Linux内核呢?这就与Linux的一些特性有关了,比如:
1、强大的内存管理和进程管理方案
2、基于权限的安全模式
3、支持共享库
4、经过认证的驱动模型
5、Linux本身就是开源项目
更多关于上述特性的信息可以参考Linux 2.6版内核的官方文档,这便于我们在后面的学习中更好地理解Android所特有的功能特性。接下来分析Android与Linux的关系。
二、Android不是Linux
看到这个标题大家可能会有些迷惑,前面不是一直说Android是基于Linux内核的吗,怎么现在又不是Linux了?迷惑也是正常的,请先看下面几个要点,然后我们将对每一个要点进行分析,看完后你就会觉得Android不是Linux了。
因为它没有本地窗口系统,没有glibc的支持,而且并不包括一整套标准的Linux使用程序,同时增强了Linux以支持其特有的驱动。
1.它没有本地窗口系统
什么是本地窗口系统呢?本地窗口系统是指GNU/Linux上的X窗口系统,或者Mac OX X的Quartz等。不同的操作系统的窗口系统可能不一样,Android并没有使用(也不需要使用)Linux的X窗口系统,这是Android不是Linux的一个基本原因。
我很奇怪的是linux的Xwindow并不是其核心程序,你可以看到很多嵌入式linux根本不会用到这个图形界面系统,而手机上的android不使用Xwindow不是很正常吗?我们学习的时候用QT难道就不叫做linux系统了么?
2.它没有glibc支持
由于Android最初用于一些便携的移动设备上,所以,可能出于效率等方面的考虑,Android并没有采用glibc作为C库,而是Google自己开发了一套Bionic Libc来代替glibc。
库文件不同,好吧,因为移植显然是要修改库文件和头文件的吧,求指教
3.它并不包括一整套标准的Linux使用程序
Android并没有完全照搬Liunx系统的内核,除了修正部分Liunx的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电源管理驱动,针对嵌入式设备做了很多优化。源代码位于:
kernel/power/earlysuspend.c
kernel/power/consoleearlysuspend.c
kernel/power/fbearlysuspend.c
kernel/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 / ram_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存储。
❷ 如何查看centos系统版本
1.cat /etc/issue 查看版本
cat 缩写concatenate cat命橡好乎令可以用来显示、合并文件。
CentOS release 6.6 (Final)
CentOS 发行版6.6
etc 初期etc的英文名字缩写为etcetera ,后来大家更习惯称为 Editable Text Configuration。ETC为系统配置文件目录,该目录包含系统启动脚本、启动配置文件、用户登录配置文件、网络配置文梁悉件、httpd 配置文件、IPSec 配置文件和其他文件等。
2. cat /etc/redhat-release 查看CentOS版本
3. cat /proc/version
proc 为process的缩写,里面存放与内核相关的文件。
显示结果:
Linux version 2.6.32-504.12.2.el6.x86_64 ([email protected]) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) ) #1 SMP Wed Mar 11 22:03:14 UTC 2015
我们可以看到该系统使用的是Linux 2.6.32 内核的64为操作系统。GCC 为GUN 编译器集合,采袜手用4.4.5版本。
4.uname -a 显示如下
Linux 主机192-168-14-166
Linux 版本2.6.32-504.12.2.el6.x86_64 64位
❸ Linux发行版和Linux内核的区别
首先解释一下什么是Linux发行版(英文名称是Linux Distribution)。Linux实际上是一种开放源代码的操作系统内核,通常我们说的Linux指的是基于Linux内核的操作系统。Linux操作系统包括Linux内核和Linux用户态程序,Linux内核和Linux用户态程序都是开放源代码的,绝大多数软件代码遵循GPL协议,任何人拿到这些代码都可以对这些代码进行修改和分发。由于Linux上代码的高度自由,很多公司和组织都推出了自己的Linux操作系统,这些Linux操作系统我们就叫做Linux发行版。
各种不同的Linux发行版的共同点就是都使用了Linux内核,不同的Linux发行版的内核可能有一些小的修改。
Linux内核版本与linux发行版本的区别 LINUX内核版本 是指系统内核的版本号。LINUX的内核具有两种不同的版本号,实验版本和产品化版本。要确定 LINUX版本 的类型,只要查看一下版本号:每一个版本号由三位数字组成,第二位数字说明版本类型。如果第二位数字是偶数则说明这种版本是产品化版本,如果是奇数说明是实验版本。如2.4.18是产品化版本,2.5.21是实验版本。查看 linux内核版本 命令:uname -r Linux发行版本 是指一些 Linux厂商 将 LINUX系统内核 与应用软件及文档包装在一起,并提供一些安装界面和系统设定与管理工具,这就构成了一个发行套件。
相对于内核版本,发行套件的版本号是随着发布者的不同而不同,与系统内核的版本号是相对独立的。比如 RedHat AS4.0 UP4 的 内核版本 是2.6.9-42。Linux是GNU/Linux的缩写,通常指各种Linux发行版的通称。 常见的Linux厂家主要有Redhat/Novell等。 Redhat有两大Linux产品系列,其一是免费的Fedora Core系列 主要用于桌面版本,提供了较多新特性的支持。 另外一个产品系列是收费的Enterprise系列,这个系列分成:AS/ES/WS等分支。 Advanced Server,缩写即AS。AS在标准Linux内核的基础上, 做了性能上的增强,并提高了可靠性,集成了众多常见服务器的驱动程序。 可轻松识别IBM/DELL/HP等常见机架式服务器的磁盘阵列卡等设备。 AS主要版本2.x/3.x/4.x,也就是我们所说的AS3/AS4 每一个版本还有若干个升级,例如最早推出的AS4后,遇到了一些更新 此时就会发布AS4 Update1,以后还会陆续有AS4 Update2/Update3等出现 简称AS4u1/AS4u2/AS4u3等。这和微软的发布形式也是非常类似的, 微软的Windows NT4 从SP1出到SP6,Windows2000从SP1出到AS这些Update版本所包含的主要程序包版本都有一定差别,最好不要混用 否则很容易出现问题。Prima和Plesk的安装包,对于各种发行版都有了针对性的设计 在下载页面上,通常都会标识出来,支持哪些版本和哪些update的系统。
ES,是AS的精简版本。他与常见的AS系列的区别是,AS支持到4路以上CPU, 而ES只能支持两路CPU。AS和ES在大多数程序包上并无区别, 只在内核等少数软件包上有差异。 AS和ES的售价差别比较大,通常ES用在随服务器一同购买的OEM版本中 例如购买DELL服务器,搭配的Linux会是ES系列。 如果要搭配AS系列,则需要多花数千元。 WS,是ES的进一步简化版,主要针对企业内部的桌面办公市场,国内较少采用。 Redhat的Fedora Core Linux和Enterprise Linux,都需要遵循GNU协议 即需要发布自己的源代码。 所以,对于免费的Fedora Core Linux,从Redhat网站上可以直接下载ISO刻盘, 还能下载到SRPM的ISO,即程序包源码光盘。
对于收费的Enterprise Linux系列,是一款商业产品,所以网站上不能下载到ISO文件, 需要购买正式授权方可。 由于Enterprise Linux也需要遵循GNU协议,故必须发布源代码。 所以在Redhat的网站上,可以获得AS/ES/WS系列的SRPM源码ISO文件。 这些文件可以被自由的下载,修改代码,重新编译使用。 一个名为Community Enterprise Operating System的项目诞生了。 他的缩写既是CentOS。CentOS社区将Redhat的网站上的所有源代码下载下来, 进行重新编译。重新编译后,由于AS/ES/WS是商业产品, 必须将所有Redhat的Logo和标识改成自己的CentOS标识。 比如将AS4原版的SRPM源码编译后,就成为了CentOS 4.0。 AS4Update1的源码编译后,就成为了CentOS4.1。 AS4Update2的源码编译后,就成为了CentOS4.2。 同理,CentOS的3.x/4.x都对应着相应的版本。
所以我们说,CentOS就是Redhat的AS/ES/WS的免费版本。 使用CentOS,可以获得和AS/ES相同的性能和感受。 CentOS除了提供标准的编号1~4或者1~5的若干张ISO以外, 还提供了最小化1CD的Server光盘。用Server光盘安装好的系统, 就是一个最小化的Linux内核加上常用的httpd/mysql等包 不包含Xwindows桌面等对于服务器无用的软件。 Prima、Plesk、Virtuozzo和都可以安装在CentOS上。
❹ 如何查看linux系统的版本号
一、查看Linux内核版本命令(两种方法):
1、cat /proc/version
[root@localhost ~]# cat /proc/version
Linux version 2.6.18-194.8.1.el5.centos.plus ([email protected]) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Wed Jul 7 11:50:45 EDT 2010
2、uname -a
[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.18-194.8.1.el5.centos.plus #1 SMP Wed Jul 7 11:50:45 EDT 2010 i686 i686 i386 GNU/Linux
二、查看Linux系统版本的命令(3种方法):
1、lsb_release -a,即可列出所有版本信息:
[root@localhost ~]# lsb_release -a
LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: CentOS
Description: CentOS release 5.5 (Final)
Release: 5.5
Codename: Final
这个命令适用于所有的Linux发行版,包括Redhat、SuSE、Debian…等发行版。
2、cat /etc/redhat-release,这种方法只适合Redhat系的Linux:
[root@localhost ~]# cat /etc/redhat-release
CentOS release 5.5 (Final)
3、cat /etc/issue,此命令也适用于所有的Linux发行版。
[root@localhost ~]# cat /etc/issue
CentOS release 5.5 (Final)
Kernel \r on an \m
❺ 常见Linux版本有哪些
根据用途不同可以做如下划分:
1、家庭用途版本有:Linux Mint、Ubuntu、OpenSUSE、Fedora、PC-BSD。
2、商业用途版本有:Debian、RHEL、CentOS。
3、挑战用途版本有:Gentoo、LFS。
4、理想用途版本有:FreeBSD、OpenBSD、Solaris、OpenSolaris。
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。
它除了在服务器操作系统方面保持着强劲的发展势头以外,在个人电脑、嵌入式系统上都有着长足的进步。使用者不仅可以直观地获取该操作系统的实现机制,而且可以根据自身的需要来修改完善这个操作系统,使其最大化地适应用户的需要。
(5)centos511内核版本是扩展阅读:
优点:
1、Linux由众多微内核组成,其源代码完全开源。
2、Linux继承了Unix的特性,具有非常强大的网络功能,其支持所有的因特网协议,包括TCP/IPv4、TCP/IPv6和链路层拓扑程序等,且可以利用Unix的网络特性开发出新的协议栈。
3、Linux系统工具链完整,简单操作就可以配置出合适的开发环境,可以简化开发过程,减少开发中仿真工具的障碍,使系统具有较强的移植性。