linux操作系統的概述

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 在亞洲比較流行。商業版本,提供技術支持和諮詢服務。