linux操作系統(tǒng)概述
linux操作系統(tǒng)概述
Linux是一套免費(fèi)使用和自由傳播的類Unix操作系統(tǒng),是一個基于POSIX和UNIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)。下面大家與學(xué)習(xí)啦小編一起來了解一下linux操作系統(tǒng)吧。
linux操作系統(tǒng)概述
一、Linux簡介
Linux可以有狹義和廣義兩種定義。狹義來說,Linux實(shí)際上指Linux kernel (內(nèi)核)。內(nèi)核負(fù)責(zé)管理硬件,并為上層應(yīng)用提供接口。而廣義來說,是指以Linux kernel為基礎(chǔ)的,包括OS和各種應(yīng)用在內(nèi)的各個Linux版本(distribution)。盡管看起來版本眼花繚亂,但實(shí)際上,各個版本之間也只是大同小異,其差別往往體現(xiàn)在客戶群、升級維護(hù)和界面等方面。
Linus Torvalds是Linux之父。他根據(jù)Minix系統(tǒng)的代碼,參照UNIX系統(tǒng)的設(shè)計,寫出了第一給Linux內(nèi)核。Linus的創(chuàng)舉在于將Linux內(nèi)核的代碼開源。后來,Linux內(nèi)核和一套開源的應(yīng)用軟件GNU結(jié)合,共同采取開源協(xié)議,并迅速發(fā)展成熟。我們可以隨意地使用和修改開源代碼,但以此為基礎(chǔ)開發(fā)的程序也要根據(jù)開源協(xié)議公開。Linux和GNU的開源性吸引了大批優(yōu)秀的程序員參與到Linux相關(guān)的開發(fā)中。
從哲學(xué)和設(shè)計理念上,Linux與其他的UNIX版本相類似,并使用類似的接口。我們可以通過學(xué)習(xí)Linux的基本概念和機(jī)制來了解其它UNIX系統(tǒng),比如Solaris, FreeBSD,還有基于FreeBSD的蘋果公司的Mac OS。曾經(jīng)Windows的興起曾經(jīng)讓許多人認(rèn)為UNIX將最終被Windows取代,但如今看到Linux和蘋果產(chǎn)品的興盛,我很感慨于UNIX體系的力量。
Linux的有如下比較重要的機(jī)制: 用于儲存數(shù)據(jù)以及管理權(quán)限的文件系統(tǒng),用于IO的文本操作API,用于管理操作的進(jìn)程,用于實(shí)現(xiàn)多任務(wù)運(yùn)行的多線程,以及進(jìn)程間通信(我將信號和網(wǎng)絡(luò)也都?xì)w入這一類中)。
特別推薦下面的一些文章,以便你對Linux有一個概觀:
大教堂和市集(The Cathedral and the Bazaar),作者Eric Raymond
可以說是為Linux正名的一篇文章,深入分析Linux成功的原因。你也可以通過名字來搜索中文翻譯版本。
該作者的其他文章也非常值得一讀。
主要特性
基本思想
Linux的基本思想有兩點(diǎn):第一,一切都是文件;第二,每個軟件都有確定的用途。其中第一條詳細(xì)來講就是系統(tǒng)中的所有都?xì)w結(jié)為一個文件,包括命令、硬件和軟件設(shè)備、操作系統(tǒng)、進(jìn)程等等對于操作系統(tǒng)內(nèi)核而言,都被視為擁有各自特性或類型的文件。至于說Linux是基于Unix的,很大程度上也是因?yàn)檫@兩者的基本思想十分相近。[3]
完全免費(fèi)
Linux是一款免費(fèi)的操作系統(tǒng),用戶可以通過網(wǎng)絡(luò)或其他途徑免費(fèi)獲得,并可以任意修改其源代碼。這是其他的操作系統(tǒng)所做不到的。正是由于這一點(diǎn),來自全世界的無數(shù)程序員參與了Linux的修改、編寫工作,程序員可以根據(jù)自己的興趣和靈感對其進(jìn)行改變,這讓Linux吸收了無數(shù)程序員的精華,不斷壯大。[4]
完全兼容POSIX1.0標(biāo)準(zhǔn)
這使得可以在Linux下通過相應(yīng)的模擬器運(yùn)行常見的DOS、Windows的程序。這為用戶從Windows轉(zhuǎn)到Linux奠定了基礎(chǔ)。許多用戶在考慮使用Linux時,就想到以前在Windows下常見的程序是否能正常運(yùn)行,這一點(diǎn)就消除了他們的疑慮。[4]
多用戶、多任務(wù)
Linux支持多用戶,各個用戶對于自己的文件設(shè)備有自己特殊的權(quán)利,保證了各用戶之間互不影響。多任務(wù)則是現(xiàn)在電腦最主要的一個特點(diǎn),Linux可以使多個程序同時并獨(dú)立地運(yùn)行。[4]
良好的界面
Linux同時具有字符界面和圖形界面。在字符界面用戶可以通過鍵盤輸入相應(yīng)的指令來進(jìn)行操作。它同時也提供了類似Windows圖形界面的X-Window系統(tǒng),用戶可以使用鼠標(biāo)對其進(jìn)行操作。在X-Window環(huán)境中就和在Windows中相似,可以說是一個Linux版的Windows。[4]
支持多種平臺
Linux可以運(yùn)行在多種硬件平臺上,如具有x86、680x0、SPARC、Alpha等處理器的平臺。此外Linux還是一種嵌入式操作系統(tǒng),可以運(yùn)行在掌上電腦、機(jī)頂盒或游戲機(jī)上。2001年1月份發(fā)布的Linux 2.4版內(nèi)核已經(jīng)能夠完全支持Intel 64位芯片架構(gòu)。同時Linux也支持多處理器技術(shù)。多個處理器同時工作,使系統(tǒng)性能大大提高。
文件系統(tǒng)
文件類型
普通文件(regular file):就是一般存取的文件,由ls -al顯示出來的屬性中,第一個屬性為 [-],例如 [-rwxrwxrwx]。另外,依照文件的內(nèi)容,又大致可以分為:
1、純文本文件(ASCII):這是Unix系統(tǒng)中最多的一種文件類型,之所以稱為純文本文件,是因?yàn)閮?nèi)容可以直接讀到的數(shù)據(jù),例如數(shù)字、字母等等。設(shè) 置文件幾乎都屬于這種文件類型。舉例來說,使用命令“cat ~/.bashrc”就可以看到該文件的內(nèi)容(cat是將文件內(nèi)容讀出來)。
2、二進(jìn)制文件(binary):系統(tǒng)其實(shí)僅認(rèn)識且可以執(zhí)行二進(jìn)制文件(binary file)。Linux中的可執(zhí)行文件(腳本,文本方式的批處理文件不算)就是這種格式的。舉例來說,命令cat就是一個二進(jìn)制文件。
3、數(shù)據(jù)格式的文件(data):有些程序在運(yùn)行過程中,會讀取某些特定格式的文件,那些特定格式的文件可以稱為數(shù)據(jù)文件(data file)。舉例來說,Linux在用戶登入時,都會將登錄數(shù)據(jù)記錄在 /var/log/wtmp文件內(nèi),該文件是一個數(shù)據(jù)文件,它能通過last命令讀出來。但使用cat時,會讀出亂碼。因?yàn)樗菍儆谝环N特殊格式的文件。
目錄文件(directory):就是目錄,第一個屬性為 [d],例如 [drwxrwxrwx]。
連接文件(link):類似Windows下面的快捷方式。第一個屬性為 [l],例如 [lrwxrwxrwx]。
設(shè)備與設(shè)備文件(device):與系統(tǒng)外設(shè)及存儲等相關(guān)的一些文件,通常都集中在 /dev目錄。通常又分為兩種:
塊設(shè)備文件:就是存儲數(shù)據(jù)以供系統(tǒng)存取的接口設(shè)備,簡單而言就是硬盤。例如一號硬盤的代碼是 /dev/hda1等文件。第一個屬性為 [b]。
字符設(shè)備文件:即串行端口的接口設(shè)備,例如鍵盤、鼠標(biāo)等等。第一個屬性為 [c]。
套接字(sockets):這類文件通常用在網(wǎng)絡(luò)數(shù)據(jù)連接。可以啟動一個程序來監(jiān)聽客戶端的要求,客戶端就可以通過套接字來進(jìn)行數(shù)據(jù)通信。第一個屬性為 [s],最常在 /var/run目錄中看到這種文件類型。
管道(FIFO,pipe):FIFO也是一種特殊的文件類型,它主要的目的是,解決多個程序同時存取一個文件所造成的錯誤。FIFO是first-in-first-out(先進(jìn)先出)的縮寫。第一個屬性為 [p]。[5]
文件結(jié)構(gòu)
/:根目錄,所有的目錄、文件、設(shè)備都在/之下,/就是Linux文件系統(tǒng)的組織者,也是最上級的領(lǐng)導(dǎo)者。
/bin:bin 就是二進(jìn)制(binary)英文縮寫。在一般的系統(tǒng)當(dāng)中,都可以在這個目錄下找到linux常用的命令。系統(tǒng)所需要的那些命令位于此目錄。
/boot:Linux的內(nèi)核及引導(dǎo)系統(tǒng)程序所需要的文件目錄,比如 vmlinuz initrd.img 文件都位于這個目錄中。在一般情況下,GRUB或LILO系統(tǒng)引導(dǎo)管理器也位于這個目錄。
/cdrom:這個目錄在剛剛安裝系統(tǒng)的時候是空的??梢詫⒐怛?qū)文件系統(tǒng)掛在這個目錄下。例如:mount /dev/cdrom /cdrom
/dev:dev 是設(shè)備(device)的英文縮寫。這個目錄對所有的用戶都十分重要。因?yàn)樵谶@個目錄中包含了所有l(wèi)inux系統(tǒng)中使用的外部設(shè)備。但是這里并不是放的外部設(shè)備的驅(qū)動程序。這一點(diǎn)和常用的windows,dos操作系統(tǒng)不一樣。它實(shí)際上是一個訪問這些外部設(shè)備的端口。可以非常方便地去訪問這些外部設(shè)備,和訪問一個文件,一個目錄沒有任何區(qū)別。
/etc:etc這個目錄是linux系統(tǒng)中最重要的目錄之一。在這個目錄下存放了系統(tǒng)管理時要用到的各種配置文件和子目錄。要用到的網(wǎng)絡(luò)配置文件,文件系統(tǒng),x系統(tǒng)配置文件,設(shè)備配置信息,設(shè)置用戶信息等都在這個目錄下。
/home:如果建立一個用戶,用戶名是"xx",那么在/home目錄下就有一個對應(yīng)的/home/xx路徑,用來存放用戶的主目錄。
/lib:lib是庫(library)英文縮寫。這個目錄是用來存放系統(tǒng)動態(tài)連接共享庫的。幾乎所有的應(yīng)用程序都會用到這個目錄下的共享庫。因此,千萬不要輕易對這個目錄進(jìn)行什么操作,一旦發(fā)生問題,系統(tǒng)就不能工作了。
/lost+found:在ext2或ext3文件系統(tǒng)中,當(dāng)系統(tǒng)意外崩潰或機(jī)器意外關(guān)機(jī),而產(chǎn)生一些文件碎片放在這里。當(dāng)系統(tǒng)啟動的過程中fsck工具會檢查這里,并修復(fù)已經(jīng)損壞的文件系統(tǒng)。有時系統(tǒng)發(fā)生問題,有很多的文件被移到這個目錄中,可能會用手工的方式來修復(fù),或移到文件到原來的位置上。
/mnt:這個目錄一般是用于存放掛載儲存設(shè)備的掛載目錄的,比如有cdrom等目錄??梢詤⒖?etc/fstab的定義。
/media:有些linux的發(fā)行版使用這個目錄來掛載那些usb接口的移動硬盤(包括U盤)、CD/DVD驅(qū)動器等等。
/opt:這里主要存放那些可選的程序。
/proc:可以在這個目錄下獲取系統(tǒng)信息。這些信息是在內(nèi)存中,由系統(tǒng)自己產(chǎn)生的。
/root:Linux超級權(quán)限用戶root的家目錄。
/sbin:這個目錄是用來存放系統(tǒng)管理員的系統(tǒng)管理程序。大多是涉及系統(tǒng)管理的命令的存放,是超級權(quán)限用戶root的可執(zhí)行命令存放地,普通用戶無權(quán)限執(zhí)行這個目錄下的命令,這個目錄和/usr/sbin; /usr/X11R6/sbin或/usr/local/sbin目錄是相似的,凡是目錄sbin中包含的都是root權(quán)限才能執(zhí)行的。
/selinux :對SElinux的一些配置文件目錄,SElinux可以讓linux更加安全。
/srv 服務(wù)啟動后,所需訪問的數(shù)據(jù)目錄,舉個例子來說,www服務(wù)啟動讀取的網(wǎng)頁數(shù)據(jù)就可以放在/srv/www中
/tmp:臨時文件目錄,用來存放不同程序執(zhí)行時產(chǎn)生的臨時文件。有時用戶運(yùn)行程序的時候,會產(chǎn)生臨時文件。/tmp就用來存放臨時文件的。/var/tmp目錄和這個目錄相似。
/usr
這是linux系統(tǒng)中占用硬盤空間最大的目錄。用戶的很多應(yīng)用程序和文件都存放在這個目錄下。在這個目錄下,可以找到那些不適合放在/bin或/etc目錄下的額外的工具
/usr/local:這里主要存放那些手動安裝的軟件,即不是通過“新立得”或apt-get安裝的軟件。它和/usr目錄具有相類似的目錄結(jié)構(gòu)。讓軟件包管理器來管理/usr目錄,而把自定義的腳本(scripts)放到/usr/local目錄下面、。
/usr/share :系統(tǒng)共用的東西存放地,比如 /usr/share/fonts 是字體目錄,/usr/share/doc和/usr/share/man幫助文件。
/var:這個目錄的內(nèi)容是經(jīng)常變動的,看名字就知道,可以理解為vary的縮寫,/var下有/var/log 這是用來存放系統(tǒng)日志的目錄。/var/ www目錄是定義Apache服務(wù)器站點(diǎn)存放目錄;/var/lib 用來存放一些庫文件,比如MySQL的,以及MySQL數(shù)據(jù)庫的的存放地。
二、Linux的廠商版本
在Linux內(nèi)核基礎(chǔ)上,我們還有許多廠商版本。即使有了內(nèi)核和GNU軟件,Linux的安裝和編譯并不是簡單的工作,Linux廠商就是瞄準(zhǔn)了這個市場。這些廠商會在Linux內(nèi)核的基礎(chǔ)上,結(jié)合自己開發(fā)的軟件,幫助用戶安裝和使用Linux,并提供技術(shù)支持。由于在服務(wù)器領(lǐng)域,Linux操作系統(tǒng)遠(yuǎn)遠(yuǎn)領(lǐng)先于Windows系統(tǒng),而這些被政府部門、銀行或者大學(xué)擁有的服務(wù)器往往承擔(dān)很重要的信息處理和IO (input/outpt) 工作,所以盡管Linux開源,廠商還是可以根據(jù)其提供的商用軟件和技術(shù)支持獲得豐厚的利潤。
(IBM是Linux設(shè)備最大的供應(yīng)商,同時它的咨詢業(yè)務(wù)很大一部份也來源于提供Linux相關(guān)的支持。我們所熟知的Android操作系統(tǒng),也算是Google提供的一個廠商版本。)
我們這里主要介紹在PC上比較流行的Linux廠商版本:
1. 紅帽系列
Red Hat linux: 大名鼎鼎的紅帽,現(xiàn)在已經(jīng)完結(jié)。以此為基礎(chǔ)有以下分支:
Red Hat Enterprise: 這個是企業(yè)級的linux,主要面向服務(wù)器。作為商業(yè)版,有比較好的配套軟件和技術(shù)支持。RH的教材也堪稱經(jīng)典。
Fedora: 由社區(qū)維護(hù),去除了一些商業(yè)軟件。紅帽實(shí)際上贊助了這個項(xiàng)目,以便以此作為技術(shù)測試平臺。
CentOS: 這個版本不來自紅帽的公司,是收集紅帽公開的源碼組成的免費(fèi)版本,由社區(qū)維護(hù),和紅帽完全兼容。版本號升級較慢,但有持續(xù)的技術(shù)支持,所以適合于不愿意頻繁升級的情形,鳥哥中就推薦以CentOS來建站。
2. SUSE系列
SUSE Linux Enterprise: (和紅帽商業(yè)版類似,是德國公司制作的,據(jù)說在歐洲比較流行,但我歐洲的朋友表示沒怎么聽說過。SUSE系列比較有特色的是YAST2,就是用來設(shè)置Linux的界面,對初級管理員比較方便。
openSUSE: SUSE的免費(fèi)版本。以前SUSE不是很推這個免費(fèi)版本,支持不好。現(xiàn)在似乎態(tài)度大大轉(zhuǎn)變。就我個人的使用體驗(yàn)來說,還是覺得社區(qū)支持不足。
3. Debian系列
Debian:完全免費(fèi),社區(qū)維護(hù)的Linux版本,有很大的用戶群,所以遇到問題,基本都可以找到社區(qū)用戶的支持。
Ubuntu: 由一個基金提供支持的免費(fèi)Linux版本。 繼承自Debian。界面很友好。發(fā)郵件過去,還會送你免費(fèi)安裝CD (不知道現(xiàn)在還有沒有)?,F(xiàn)在的版本加載的東西有些多,速度有些慢。寫《大教堂和市集》的Eric Raymond說它是最好的Linux。
Mint , 基于ubuntu。它提供了更加豐富的預(yù)裝應(yīng)用,以減少用戶搜索并安裝應(yīng)用的麻煩。其使用的應(yīng)用版本比較新,可能不是很穩(wěn)定。
此外,還有如下一些版本:
Gentoo基于源碼的版本,提供給用戶很大的自由度。為用戶提供大量應(yīng)用程序的源碼,可以在用戶的系統(tǒng)上重新編譯建造。需要一定的系統(tǒng)配置的知識。
ArchLinux 推崇簡潔,避免不必要和復(fù)雜的修改,是一個輕便靈活的版本。其配置文件有良好注釋。
Mandriva 一個很方便用戶使用的版本,其目標(biāo)是使得新用戶更容易使用linux。
Slackware 穩(wěn)定,基本。它的只包含穩(wěn)定版本的應(yīng)用程序。對于初級用戶不是很友好。
TurboLinux 在亞洲比較流行。商業(yè)版本,提供技術(shù)支持和咨詢服務(wù)。
看過“ linux操作系統(tǒng)概述 ”的人還看了: