❶ 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系統工具鏈完整,簡單操作就可以配置出合適的開發環境,可以簡化開發過程,減少開發中模擬工具的障礙,使系統具有較強的移植性。