當前位置:才華齋>計算機>作業系統>

linux作業系統的概述

作業系統 閱讀(3.97K)

Linux是一套免費使用和自由傳播的類Unix作業系統,是一個基於POSIX和UNIX的多使用者、多工、支援多執行緒和多CPU的作業系統。關於該作業系統你瞭解多少呢?下面是相關的知識,歡迎閱讀。

linux作業系統的概述
  一、Linux簡介

Linux可以有狹義和廣義兩種定義。狹義來說,Linux實際上指Linux kernel (核心)。核心負責管理硬體,併為上層應用提供介面。而廣義來說,是指以Linux kernel為基礎的,包括OS和各種應用在內的各個Linux版本(distribution)。儘管看起來版本眼花繚亂,但實際上,各個版本之間也只是大同小異,其差別往往體現在客戶群、升級維護和介面等方面。

Linus Torvalds是Linux之父。他根據Minix系統的程式碼,參照UNIX系統的設計,寫出了第一給Linux核心。Linus的創舉在於將Linux核心的程式碼開源。後來,Linux核心和一套開源的應用軟體GNU結合,共同採取開源協議,並迅速發展成熟。我們可以隨意地使用和修改開原始碼,但以此為基礎開發的程式也要根據開源協議公開。Linux和GNU的開源性吸引了大批優秀的程式設計師參與到Linux相關的開發中。

從哲學和設計理念上,Linux與其他的UNIX版本相類似,並使用類似的介面。我們可以通過學習Linux的基本概念和機制來了解其它UNIX系統,比如Solaris, FreeBSD,還有基於FreeBSD的蘋果公司的Mac OS。曾經Windows的興起曾經讓許多人認為UNIX將最終被Windows取代,但如今看到Linux和蘋果產品的興盛,我很感慨於UNIX體系的力量。

Linux的有如下比較重要的機制: 用於儲存資料以及管理許可權的檔案系統,用於IO的文字操作API,用於管理操作的程序,用於實現多工執行的多執行緒,以及程序間通訊(我將訊號和網路也都歸入這一類中)。

特別推薦下面的一些文章,以便你對Linux有一個概觀:

大教堂和市集(The Cathedral and the Bazaar),作者Eric Raymond

可以說是為Linux正名的一篇文章,深入分析Linux成功的原因。你也可以通過名字來搜尋中文翻譯版本。

該作者的其他文章也非常值得一讀。

  主要特性

  基本思想

Linux的基本思想有兩點:第一,一切都是檔案;第二,每個軟體都有確定的用途。其中第一條詳細來講就是系統中的所有都歸結為一個檔案,包括命令、硬體和軟體裝置、作業系統、程序等等對於作業系統核心而言,都被視為擁有各自特性或型別的檔案。至於說Linux是基於Unix的,很大程度上也是因為這兩者的基本思想十分相近。[3]

  完全免費

Linux是一款免費的作業系統,使用者可以通過網路或其他途徑免費獲得,並可以任意修改其原始碼。這是其他的作業系統所做不到的。正是由於這一點,來自全世界的無數程式設計師參與了Linux的修改、編寫工作,程式設計師可以根據自己的興趣和靈感對其進行改變,這讓Linux吸收了無數程式設計師的精華,不斷壯大。[4]

  完全相容POSIX1.0標準

這使得可以在Linux下通過相應的模擬器執行常見的DOS、Windows的程式。這為使用者從Windows轉到Linux奠定了基礎。許多使用者在考慮使用Linux時,就想到以前在Windows下常見的程式是否能正常執行,這一點就消除了他們的疑慮。[4]

  多使用者、多工

Linux支援多使用者,各個使用者對於自己的檔案裝置有自己特殊的權利,保證了各使用者之間互不影響。多工則是現在電腦最主要的一個特點,Linux可以使多個程式同時並獨立地執行。[4]

  良好的介面

Linux同時具有字元介面和圖形介面。在字元介面使用者可以通過鍵盤輸入相應的指令來進行操作。它同時也提供了類似Windows圖形介面的X-Window系統,使用者可以使用滑鼠對其進行操作。在X-Window環境中就和在Windows中相似,可以說是一個Linux版的Windows。[4]

  支援多種平臺

Linux可以執行在多種硬體平臺上,如具有x86、680x0、SPARC、Alpha等處理器的平臺。此外Linux還是一種嵌入式作業系統,可以執行在掌上電腦、機頂盒或遊戲機上。2001年1月份釋出的Linux 2.4版核心已經能夠完全支援Intel 64位晶片架構。同時Linux也支援多處理器技術。多個處理器同時工作,使系統性能大大提高。

  檔案系統

  檔案型別

普通檔案(regular file):就是一般存取的檔案,由ls -al顯示出來的屬性中,第一個屬性為 [-],例如 [-rwxrwxrwx]。另外,依照檔案的內容,又大致可以分為:

1、純文字檔案(ASCII):這是Unix系統中最多的一種檔案型別,之所以稱為純文字檔案,是因為內容可以直接讀到的資料,例如數字、字母等等。設 置檔案幾乎都屬於這種檔案型別。舉例來說,使用命令“cat ~/rc”就可以看到該檔案的內容(cat是將檔案內容讀出來)。

2、二進位制檔案(binary):系統其實僅認識且可以執行二進位制檔案(binary file)。Linux中的可執行檔案(指令碼,文字方式的批處理檔案不算)就是這種格式的。舉例來說,命令cat就是一個二進位制檔案。

3、資料格式的檔案(data):有些程式在執行過程中,會讀取某些特定格式的檔案,那些特定格式的檔案可以稱為資料檔案(data file)。舉例來說,Linux在使用者登入時,都會將登入資料記錄在 /var/log/wtmp檔案內,該檔案是一個數據檔案,它能通過last命令讀出來。但使用cat時,會讀出亂碼。因為它是屬於一種特殊格式的檔案。

目錄檔案(directory):就是目錄,第一個屬性為 [d],例如 [drwxrwxrwx]。

連線檔案(link):類似Windows下面的快捷方式。第一個屬性為 [l],例如 [lrwxrwxrwx]。

裝置與裝置檔案(device):與系統外設及儲存等相關的一些檔案,通常都集中在 /dev目錄。通常又分為兩種:

塊裝置檔案:就是儲存資料以供系統存取的介面裝置,簡單而言就是硬碟。例如一號硬碟的程式碼是 /dev/hda1等檔案。第一個屬性為 [b]。

字元裝置檔案:即串列埠的介面裝置,例如鍵盤、滑鼠等等。第一個屬性為 [c]。

套接字(sockets):這類檔案通常用在網路資料連線。可以啟動一個程式來監聽客戶端的要求,客戶端就可以通過套接字來進行資料通訊。第一個屬性為 [s],最常在 /var/run目錄中看到這種檔案型別。

管道(FIFO,pipe):FIFO也是一種特殊的檔案型別,它主要的目的是,解決多個程式同時存取一個檔案所造成的錯誤。FIFO是first-in-first-out(先進先出)的縮寫。第一個屬性為 [p]。[5]

  檔案結構

/:根目錄,所有的目錄、檔案、裝置都在/之下,/就是Linux檔案系統的組織者,也是最上級的領導者。

/bin:bin 就是二進位制(binary)英文縮寫。在一般的系統當中,都可以在這個目錄下找到linux常用的命令。系統所需要的那些命令位於此目錄。

/boot:Linux的核心及引導系統程式所需要的檔案目錄,比如 vmlinuz 檔案都位於這個目錄中。在一般情況下,GRUB或LILO系統引導管理器也位於這個目錄。

/cdrom:這個目錄在剛剛安裝系統的時候是空的。可以將光碟機檔案系統掛在這個目錄下。例如:mount /dev/cdrom /cdrom

/dev:dev 是裝置(device)的英文縮寫。這個目錄對所有的使用者都十分重要。因為在這個目錄中包含了所有linux系統中使用的外部裝置。但是這裡並不是放的外部裝置的驅動程式。這一點和常用的windows,dos作業系統不一樣。它實際上是一個訪問這些外部裝置的埠。可以非常方便地去訪問這些外部裝置,和訪問一個檔案,一個目錄沒有任何區別。

/etc:etc這個目錄是linux系統中最重要的'目錄之一。在這個目錄下存放了系統管理時要用到的各種配置檔案和子目錄。要用到的網路配置檔案,檔案系統,x系統配置檔案,裝置配置資訊,設定使用者資訊等都在這個目錄下。

/home:如果建立一個使用者,使用者名稱是"xx",那麼在/home目錄下就有一個對應的/home/xx路徑,用來存放使用者的主目錄。

/lib:lib是庫(library)英文縮寫。這個目錄是用來存放系統動態連線共享庫的。幾乎所有的應用程式都會用到這個目錄下的共享庫。因此,千萬不要輕易對這個目錄進行什麼操作,一旦發生問題,系統就不能工作了。

/lost+found:在ext2或ext3檔案系統中,當系統意外崩潰或機器意外關機,而產生一些檔案碎片放在這裡。當系統啟動的過程中fsck工具會檢查這裡,並修復已經損壞的檔案系統。有時系統發生問題,有很多的檔案被移到這個目錄中,可能會用手工的方式來修復,或移到檔案到原來的位置上。

/mnt:這個目錄一般是用於存放掛載儲存裝置的掛載目錄的,比如有cdrom等目錄。可以參看/etc/fstab的定義。

/media:有些linux的發行版使用這個目錄來掛載那些usb介面的行動硬碟(包括U盤)、CD/DVD驅動器等等。

/opt:這裡主要存放那些可選的程式。

/proc:可以在這個目錄下獲取系統資訊。這些資訊是在記憶體中,由系統自己產生的。

/root:Linux超級許可權使用者root的家目錄。

/sbin:這個目錄是用來存放系統管理員的系統管理程式。大多是涉及系統管理的命令的存放,是超級許可權使用者root的可執行命令存放地,普通使用者無許可權執行這個目錄下的命令,這個目錄和/usr/sbin; /usr/X11R6/sbin或/usr/local/sbin目錄是相似的,凡是目錄sbin中包含的都是root許可權才能執行的。

/selinux :對SElinux的一些配置檔案目錄,SElinux可以讓linux更加安全。

/srv 服務啟動後,所需訪問的資料目錄,舉個例子來說,www服務啟動讀取的網頁資料就可以放在/srv/www中

/tmp:臨時檔案目錄,用來存放不同程式執行時產生的臨時檔案。有時使用者執行程式的時候,會產生臨時檔案。/tmp就用來存放臨時檔案的。/var/tmp目錄和這個目錄相似。

/usr

這是linux系統中佔用硬碟空間最大的目錄。使用者的很多應用程式和檔案都存放在這個目錄下。在這個目錄下,可以找到那些不適合放在/bin或/etc目錄下的額外的工具

/usr/local:這裡主要存放那些手動安裝的軟體,即不是通過“新立得”或apt-get安裝的軟體。它和/usr目錄具有相類似的目錄結構。讓軟體包管理器來管理/usr目錄,而把自定義的指令碼(scripts)放到/usr/local目錄下面、。

/usr/share :系統共用的東西存放地,比如 /usr/share/fonts 是字型目錄,/usr/share/doc和/usr/share/man幫助檔案。

/var:這個目錄的內容是經常變動的,看名字就知道,可以理解為vary的縮寫,/var下有/var/log 這是用來存放系統日誌的目錄。/var/ www目錄是定義Apache伺服器站點存放目錄;/var/lib 用來存放一些庫檔案,比如MySQL的,以及MySQL資料庫的的存放地。

  二、Linux的廠商版本

在Linux核心基礎上,我們還有許多廠商版本。即使有了核心和GNU軟體,Linux的安裝和編譯並不是簡單的工作,Linux廠商就是瞄準了這個市場。這些廠商會在Linux核心的基礎上,結合自己開發的軟體,幫助使用者安裝和使用Linux,並提供技術支援。由於在伺服器領域,Linux作業系統遠遠領先於Windows系統,而這些被政府部門、銀行或者大學擁有的伺服器往往承擔很重要的資訊處理和IO (input/outpt) 工作,所以儘管Linux開源,廠商還是可以根據其提供的商用軟體和技術支援獲得豐厚的利潤。

(IBM是Linux裝置最大的供應商,同時它的諮詢業務很大一部份也來源於提供Linux相關的支援。我們所熟知的Android作業系統,也算是Google提供的一個廠商版本。)

我們這裡主要介紹在PC上比較流行的Linux廠商版本:

  1. 紅帽系列

Red Hat linux: 大名鼎鼎的紅帽,現在已經完結。以此為基礎有以下分支:

Red Hat Enterprise: 這個是企業級的linux,主要面向伺服器。作為商業版,有比較好的配套軟體和技術支援。RH的教材也堪稱經典。

Fedora: 由社群維護,去除了一些商業軟體。紅帽實際上贊助了這個專案,以便以此作為技術測試平臺。

CentOS: 這個版本不來自紅帽的公司,是收集紅帽公開的原始碼組成的免費版本,由社群維護,和紅帽完全相容。版本號升級較慢,但有持續的技術支援,所以適合於不願意頻繁升級的情形,鳥哥中就推薦以CentOS來建站。

  2. SUSE系列

SUSE Linux Enterprise: (和紅帽商業版類似,是德國公司製作的,據說在歐洲比較流行,但我歐洲的朋友表示沒怎麼聽說過。SUSE系列比較有特色的是YAST2,就是用來設定Linux的介面,對初級管理員比較方便。

openSUSE: SUSE的免費版本。以前SUSE不是很推這個免費版本,支援不好。現在似乎態度大大轉變。就我個人的使用體驗來說,還是覺得社群支援不足。

  3. Debian系列

Debian:完全免費,社群維護的Linux版本,有很大的使用者群,所以遇到問題,基本都可以找到社群使用者的支援。

Ubuntu: 由一個基金提供支援的免費Linux版本。 繼承自Debian。介面很友好。發郵件過去,還會送你免費安裝CD (不知道現在還有沒有)。現在的版本載入的東西有些多,速度有些慢。寫《大教堂和市集》的Eric Raymond說它是最好的Linux。

Mint , 基於ubuntu。它提供了更加豐富的預裝應用,以減少使用者搜尋並安裝應用的麻煩。其使用的應用版本比較新,可能不是很穩定。

  此外,還有如下一些版本:

Gentoo基於原始碼的版本,提供給使用者很大的自由度。為使用者提供大量應用程式的原始碼,可以在使用者的系統上重新編譯建造。需要一定的系統配置的知識。

ArchLinux 推崇簡潔,避免不必要和複雜的修改,是一個輕便靈活的版本。其配置檔案有良好註釋。

Mandriva 一個很方便使用者使用的版本,其目標是使得新使用者更容易使用linux。

Slackware 穩定,基本。它的只包含穩定版本的應用程式。對於初級使用者不是很友好。

TurboLinux 在亞洲比較流行。商業版本,提供技術支援和諮詢服務。