linux操作系統概述
linux操作系統概述
Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基于POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。下面大家與學習啦小編一起來了解一下linux操作系統吧。
linux操作系統概述
一、Linux簡介
Linux可以有狹義和廣義兩種定義。狹義來說,Linux實際上指Linux kernel (內核)。內核負責管理硬件,并為上層應用提供接口。而廣義來說,是指以Linux kernel為基礎的,包括OS和各種應用在內的各個Linux版本(distribution)。盡管看起來版本眼花繚亂,但實際上,各個版本之間也只是大同小異,其差別往往體現在客戶群、升級維護和界面等方面。
Linus Torvalds是Linux之父。他根據Minix系統的代碼,參照UNIX系統的設計,寫出了第一給Linux內核。Linus的創(chuàng)舉在于將Linux內核的代碼開源。后來,Linux內核和一套開源的應用軟件GNU結合,共同采取開源協議,并迅速發(fā)展成熟。我們可以隨意地使用和修改開源代碼,但以此為基礎開發(fā)的程序也要根據開源協議公開。Linux和GNU的開源性吸引了大批優(yōu)秀的程序員參與到Linux相關的開發(fā)中。
從哲學和設計理念上,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環(huán)境中就和在Windows中相似,可以說是一個Linux版的Windows。[4]
支持多種平臺
Linux可以運行在多種硬件平臺上,如具有x86、680x0、SPARC、Alpha等處理器的平臺。此外Linux還是一種嵌入式操作系統,可以運行在掌上電腦、機頂盒或游戲機上。2001年1月份發(fā)布的Linux 2.4版內核已經能夠完全支持Intel 64位芯片架構。同時Linux也支持多處理器技術。多個處理器同時工作,使系統性能大大提高。
文件系統
文件類型
普通文件(regular file):就是一般存取的文件,由ls -al顯示出來的屬性中,第一個屬性為 [-],例如 [-rwxrwxrwx]。另外,依照文件的內容,又大致可以分為:
1、純文本文件(ASCII):這是Unix系統中最多的一種文件類型,之所以稱為純文本文件,是因為內容可以直接讀到的數據,例如數字、字母等等。設 置文件幾乎都屬于這種文件類型。舉例來說,使用命令“cat ~/.bashrc”就可以看到該文件的內容(cat是將文件內容讀出來)。
2、二進制文件(binary):系統其實僅認識且可以執(zhí)行二進制文件(binary file)。Linux中的可執(zhí)行文件(腳本,文本方式的批處理文件不算)就是這種格式的。舉例來說,命令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):這類文件通常用在網絡數據連接。可以啟動一個程序來監(jiān)聽客戶端的要求,客戶端就可以通過套接字來進行數據通信。第一個屬性為 [s],最常在 /var/run目錄中看到這種文件類型。
管道(FIFO,pipe):FIFO也是一種特殊的文件類型,它主要的目的是,解決多個程序同時存取一個文件所造成的錯誤。FIFO是first-in-first-out(先進先出)的縮寫。第一個屬性為 [p]。[5]
文件結構
/:根目錄,所有的目錄、文件、設備都在/之下,/就是Linux文件系統的組織者,也是最上級的領導者。
/bin:bin 就是二進制(binary)英文縮寫。在一般的系統當中,都可以在這個目錄下找到linux常用的命令。系統所需要的那些命令位于此目錄。
/boot:Linux的內核及引導系統程序所需要的文件目錄,比如 vmlinuz initrd.img 文件都位于這個目錄中。在一般情況下,GRUB或LILO系統引導管理器也位于這個目錄。
/cdrom:這個目錄在剛剛安裝系統的時候是空的??梢詫⒐怛屛募到y掛在這個目錄下。例如:mount /dev/cdrom /cdrom
/dev:dev 是設備(device)的英文縮寫。這個目錄對所有的用戶都十分重要。因為在這個目錄中包含了所有l(wèi)inux系統中使用的外部設備。但是這里并不是放的外部設備的驅動程序。這一點和常用的windows,dos操作系統不一樣。它實際上是一個訪問這些外部設備的端口??梢苑浅7奖愕厝ピL問這些外部設備,和訪問一個文件,一個目錄沒有任何區(qū)別。
/etc:etc這個目錄是linux系統中最重要的目錄之一。在這個目錄下存放了系統管理時要用到的各種配置文件和子目錄。要用到的網絡配置文件,文件系統,x系統配置文件,設備配置信息,設置用戶信息等都在這個目錄下。
/home:如果建立一個用戶,用戶名是"xx",那么在/home目錄下就有一個對應的/home/xx路徑,用來存放用戶的主目錄。
/lib:lib是庫(library)英文縮寫。這個目錄是用來存放系統動態(tài)連接共享庫的。幾乎所有的應用程序都會用到這個目錄下的共享庫。因此,千萬不要輕易對這個目錄進行什么操作,一旦發(fā)生問題,系統就不能工作了。
/lost+found:在ext2或ext3文件系統中,當系統意外崩潰或機器意外關機,而產生一些文件碎片放在這里。當系統啟動的過程中fsck工具會檢查這里,并修復已經損壞的文件系統。有時系統發(fā)生問題,有很多的文件被移到這個目錄中,可能會用手工的方式來修復,或移到文件到原來的位置上。
/mnt:這個目錄一般是用于存放掛載儲存設備的掛載目錄的,比如有cdrom等目錄。可以參看/etc/fstab的定義。
/media:有些linux的發(fā)行版使用這個目錄來掛載那些usb接口的移動硬盤(包括U盤)、CD/DVD驅動器等等。
/opt:這里主要存放那些可選的程序。
/proc:可以在這個目錄下獲取系統信息。這些信息是在內存中,由系統自己產生的。
/root:Linux超級權限用戶root的家目錄。
/sbin:這個目錄是用來存放系統管理員的系統管理程序。大多是涉及系統管理的命令的存放,是超級權限用戶root的可執(zhí)行命令存放地,普通用戶無權限執(zhí)行這個目錄下的命令,這個目錄和/usr/sbin; /usr/X11R6/sbin或/usr/local/sbin目錄是相似的,凡是目錄sbin中包含的都是root權限才能執(zhí)行的。
/selinux :對SElinux的一些配置文件目錄,SElinux可以讓linux更加安全。
/srv 服務啟動后,所需訪問的數據目錄,舉個例子來說,www服務啟動讀取的網頁數據就可以放在/srv/www中
/tmp:臨時文件目錄,用來存放不同程序執(zhí)行時產生的臨時文件。有時用戶運行程序的時候,會產生臨時文件。/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內核的基礎上,結合自己開發(fā)的軟件,幫助用戶安裝和使用Linux,并提供技術支持。由于在服務器領域,Linux操作系統遠遠領先于Windows系統,而這些被政府部門、銀行或者大學擁有的服務器往往承擔很重要的信息處理和IO (input/outpt) 工作,所以盡管Linux開源,廠商還是可以根據其提供的商用軟件和技術支持獲得豐厚的利潤。
(IBM是Linux設備最大的供應商,同時它的咨詢業(yè)務很大一部份也來源于提供Linux相關的支持。我們所熟知的Android操作系統,也算是Google提供的一個廠商版本。)
我們這里主要介紹在PC上比較流行的Linux廠商版本:
1. 紅帽系列
Red Hat linux: 大名鼎鼎的紅帽,現在已經完結。以此為基礎有以下分支:
Red Hat Enterprise: 這個是企業(yè)級的linux,主要面向服務器。作為商業(yè)版,有比較好的配套軟件和技術支持。RH的教材也堪稱經典。
Fedora: 由社區(qū)維護,去除了一些商業(yè)軟件。紅帽實際上贊助了這個項目,以便以此作為技術測試平臺。
CentOS: 這個版本不來自紅帽的公司,是收集紅帽公開的源碼組成的免費版本,由社區(qū)維護,和紅帽完全兼容。版本號升級較慢,但有持續(xù)的技術支持,所以適合于不愿意頻繁升級的情形,鳥哥中就推薦以CentOS來建站。
2. SUSE系列
SUSE Linux Enterprise: (和紅帽商業(yè)版類似,是德國公司制作的,據說在歐洲比較流行,但我歐洲的朋友表示沒怎么聽說過。SUSE系列比較有特色的是YAST2,就是用來設置Linux的界面,對初級管理員比較方便。
openSUSE: SUSE的免費版本。以前SUSE不是很推這個免費版本,支持不好?,F在似乎態(tài)度大大轉變。就我個人的使用體驗來說,還是覺得社區(qū)支持不足。
3. Debian系列
Debian:完全免費,社區(qū)維護的Linux版本,有很大的用戶群,所以遇到問題,基本都可以找到社區(qū)用戶的支持。
Ubuntu: 由一個基金提供支持的免費Linux版本。 繼承自Debian。界面很友好。發(fā)郵件過去,還會送你免費安裝CD (不知道現在還有沒有)。現在的版本加載的東西有些多,速度有些慢。寫《大教堂和市集》的Eric Raymond說它是最好的Linux。
Mint , 基于ubuntu。它提供了更加豐富的預裝應用,以減少用戶搜索并安裝應用的麻煩。其使用的應用版本比較新,可能不是很穩(wěn)定。
此外,還有如下一些版本:
Gentoo基于源碼的版本,提供給用戶很大的自由度。為用戶提供大量應用程序的源碼,可以在用戶的系統上重新編譯建造。需要一定的系統配置的知識。
ArchLinux 推崇簡潔,避免不必要和復雜的修改,是一個輕便靈活的版本。其配置文件有良好注釋。
Mandriva 一個很方便用戶使用的版本,其目標是使得新用戶更容易使用linux。
Slackware 穩(wěn)定,基本。它的只包含穩(wěn)定版本的應用程序。對于初級用戶不是很友好。
TurboLinux 在亞洲比較流行。商業(yè)版本,提供技術支持和咨詢服務。
看過“ linux操作系統概述 ”的人還看了:
3.操作系統教程大全