linux 編輯Linux是一種自由和開放源碼的類Unix操作系統,存在著許多不同的Linux版本,但它們都使用了Linux內核。Linux可安裝在各種計算機硬件設備中,比如手機、平板電腦、路由器、視頻游戲控制台、台式計算機、大型機和超級計算機。Linux是一個領先的操作系統,世界上運算最快的10台超級計算機運行的都是Linux操作系統。嚴格來講,Linux這個詞本身只表示Linux內核,但實際上人們已經習慣了用Linux來形容整個基於Linux內核,並且使用GNU 工程各種工具和數據庫的操作系統。Linux得名於天才程序員林納斯·托瓦茲。 Linux操作系統是UNIX操作系統的一種克隆系統,它誕生於1991 年的10 月5 日(這是第一次正式向外公布的時間)。以後借助於Internet網絡,並通過全世界各地計算機愛好者的共同努力,已成為今天世界上使用最多的一種UNIX 類操作系統,並且使用人數還在迅猛增長。 Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟件、應用程序和網絡協議。它支持32位和64位硬件。Linux繼承了Unix以網絡為核心的設計思想,是一個性能穩定的多用戶網絡操作系統。它主要用於基於Intel x86系列CPU的計算機上。這個系統是由全世界各地的成千上萬的程序員設計和實現的。其目的是建立不受任何商品化軟件的版權制約的、全世界都能自由使用的Unix兼容產品。
-
1發展簡史
Linux 操作系統的誕生
創始人林納斯·托瓦茲
、發展和成長過程始終依賴著五個重要支柱:UNIX 操作系統、MINIX 操作系統、GNU 計劃、POSIX 標准和Internet 網絡。[1] 1981 年IBM公司推出微型計算機IBM PC。 1991年,GNU計劃已經開發出了許多工具軟件,最受期盼的GNU C編譯器已經出現,GNU的操作系統核心HURD一直處於實驗階段,沒有任何可用性,實質上也沒能開發出完整的GNU操作系統,但是GNU奠定了Linux用戶基礎和開發環境。 1991年初,林納斯·托瓦茲開始在一台386sx兼容微機上學習minix操作系統。1991年4月,林納斯·托瓦茲開始醞釀並著手編制自己的操作系統。 1991 年4 月13 日在comp.os.minix 上發布說自己已經成功地將bash 移植到了minix 上,而且已經愛不釋手、不能離開這個shell 軟件了。[2] 1991年7月3日,第一個與Linux有關的消息是在comp.os.minix上發布的(當然此時還不存在Linux這個名稱,當時林納斯·托瓦茲的腦子裡想的可能是FREAX,FREAX的英文含義是怪誕的、怪物、異想天開等)。 1991年的10月5日,林納斯·托瓦茲在comp.os.minix新聞組上發布消息,正式向外宣布Linux內核的誕生(Freeminix-like kernel sources for 386-AT)。[3] 1993年,大約有100余名程序員參與了Linux內核代碼編寫/修改工作,其中核心組由5人組成,此時Linux 0.99的代碼有大約有十萬行,用戶大約有10萬左右。 1994年3月,Linux1.0發布,代碼量17萬行,當時是按照完全自由免費的協議發布,隨後正式采用GPL協議。 1995年1月,Bob Young創辦了RedHat(小紅帽),以GNU/Linux為核心,集成了400多個源代碼開放的程序模塊,搞出了一種冠以品牌的Linux,即RedHat Linux,稱為Linux"發行版",在市場上出售。這在經營模式上是一種創舉。 1996年6月,Linux 2.0內核發布,此內核有大約40萬行代碼,並可以支持多個處理器。此時的Linux 已經進入了實用階段,全球大約有350萬人使用。 1998年2月,以Eric Raymond為首的一批年輕的"老牛羚骨干分子"終於認識到GNU/Linux體系的產業化道路的本質,並非是什麼自由哲學,而是市場競爭的驅動,創辦了"Open Source Intiative"(開放源代碼促進會)"復興"的大旗,在互聯網世界裡展開了一場歷史性的Linux產業化運動。 2001年1月,Linux 2.4發布,它進一步地提升了SMP系統的擴展性,同時它也集成了很多用於支持桌面系統的特性:USB,PC卡(PCMCIA)的支持,內置的即插即用,等等功能。 2003年12月,Linux 2.6版內核發布,相對於2.4版內核2.6在對系統的支持都有很大的變化。 2004年的第1月,SuSE嫁到了Novell,SCO繼續頂著罵名四處強行"化緣 ", Asianux, MandrakeSoft也在五年中首次宣布季度贏利。3月SGI宣布成功實現了Linux操作系統支持256個Itanium 2處理器。[4-6]
2文件系統
文件類型
普通文件(regular file):就是一般存取的文件,由ls -al顯示出來的屬性中,第一個屬性為 [-],例如 [-rwxrwxrwx]。另外,依照文件的內容,又大致可以分為: 1、純文本文件(ASCII):這是Unix系統中最多的一種文件類型,之所以稱為純文本文件,是因為內容可以直接讀到的數據,例如數字、字母等等。設 置文件幾乎都屬於這種文件類型。舉例來說,使用命令“cat ~/.bashrc”就可以看到該文件的內容(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]。[7]
文件結構
/:根目錄,所有的目錄、文件、設備都在/之下,/就是Linux文件系統的組織者,也是最上級的領導者。 /bin:bin 就是二進制(binary)英文縮寫。在一般的系統當中,都可以在這個目錄下找到linux常用的命令。系統所需要的那些命令位於此目錄。 /boot:Linux的內核及引導系統程序所需要的文件目錄,比如 vmlinuz initrd.img 文件都位於這個目錄中。在一般情況下,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數據庫的的存放地。[8]
3主要特性
基本思想 Linux的基本思想有兩點:第一,一切都是文件;第二,每個軟件都有確定的用途。其中第一條詳細來講就是系統中的所有都歸結為一個文件,包括命令、硬件和軟件設備、操作系統、進程等等對於操作系統內核而言,都被視為擁有各自特性或類型的文件。至於說Linux是基於Unix的,很大程度上也是因為這兩者的基本思想十分相近。[9] 發展領域 職業領域:系統應用類(網管\系統管理和維護人員\安全管理人員中低端行業領域) 待遇屬於中下。系統開發類行業(JAVA軟件開發\C語言軟件開發\WEB開發\嵌入式軟件開發)其中嵌入式軟件開發是linux應用最廣的領域 待遇屬於中等發展方向:UNIX往高端領域和產業發展,例如:AIX、HP-UX、Solaris 等等。 完全免費 Linux是一款免費的操作系統,用戶可以通過網絡或其他途徑免費獲得,並可以任意修改其源代碼。這是其他的操作系統所做不到的。正是由於這一點,來自全世界的無數程序員參與了Linux的修改、編寫工作,程序員可以根據自己的興趣和靈感對其進行改變,這讓Linux吸收了無數程序員的精華,不斷壯大。[10] 完全兼容POSIX 1.0標准 這使得可以在Linux下通過相應的模擬器運行常見的DOS、Windows的程序。這為用戶從Windows轉到Linux奠定了基礎。許多用戶在考慮使用Linux時,就想到以前在Windows下常見的程序是否能正常運行,這一點就消除了他們的疑慮。[10] 多用戶、多任務 Linux支持多用戶,各個用戶對於自己的文件設備有自己特殊的權利,保證了各用戶之間互不影響。多任務則是現在電腦最主要的一個特點,Linux可以使多個程序同時並獨立地運行。[10] 良好的界面 Linux同時具有字符界面和圖形界面。在字符界面用戶可以通過鍵盤輸入相應的指令來進行操作。它同時也提供了類似Windows圖形界面的X-Window系統,用戶可以使用鼠標對其進行操作。在X-Window環境中就和在Windows中相似,可以說是一個Linux版的Windows。[10] 支持多種平台 Linux可以運行在多種硬件平台上,如具有x86、680x0、SPARC、Alpha等處理器的平台。此外Linux還是一種嵌入式操作系統,可以運行在掌上電腦、機頂盒或游戲機上。2001年1月份發布的Linux 2.4版內核已經能夠完全支持Intel 64位芯片架構。同時Linux也支持多處理器技術。多個處理器同時工作,使系統性能大大提高。[10]
4桌面環境
介紹 在圖形計算中,一個桌面環境(Desktop environment,有時稱為桌面管理器)為計算機提供一個圖形用戶界面(GUI)。但嚴格來說窗口管理器和桌面環境是有區別的。桌面環境是最近發展起來的桌面圖形環境,它的主要目標是為Linux/Unix操作系統提供一個更加完備 的界面以及大量各類整合工具和使用 程序,其基本 易用性吸引著大量的新用戶。桌面環境名稱來自桌面比擬,對應於早期的文字命令行界面(CLI)。一個典型的桌面環境提供圖標,視窗,工具欄,文件夾,壁紙以及像拖放這樣的能力。整體而言,桌面環境在設計和功能上的特性,賦予了它與眾不同的外觀和感覺。[11] 種類 現今主流的桌面環境有KDE,gnome,Xfce,LXDE等,除此之外還有Ambient,EDE,IRIX Interactive Desktop,Mezzo,Sugar,CDE等。 gnome:即GNU網絡對象模型環境 (The GNU Network Object Model Environment),GNU計劃的一部分,開放源碼運動的一個重要組成部分。是一種讓使用者容易操作和設定電腦環境的工具。目標是基於自由軟件,為Unix或者類Unix操作系統構造一個功能完善、操作簡單以及界面友好的桌面環境,他是GNU計劃的正式桌面。 Xfce:(XForms Common Environment)創建於2007年7月,類似於商業圖形環境CDE,是一個運行在各類Unix下的輕量級桌面環境。原作者Olivier Fourdan最先設計XFce是基於XForms三維圖形庫。Xfce設計目的是用來提高系統的效率,在節省系統資源的同時,能夠快速加載和執行應用程序。 Fluxbox:是一個基於GNU/Linux的輕量級圖形操作界面,它雖然沒有GNOME和KDE那樣精致 ,但由於它的運行對系統資源和配置要求極低,所以它被安裝到很多較舊的或是對性能要求較高的機器上,其菜單和有關 配置被保存於用戶根目錄下的.fluxbox目錄裡,這樣使得它的配置極為便利。[11] Enlightenment:是一個功能強大的窗口管理器,它的目標是運用 戶輕而易舉地配置所見即所得的桌面圖形界面。現在Enlightenment的界面已經相當豪華,它擁有像AfterStep一樣的可視化時鐘以及其它浮華的界面效果,用戶不僅可以任意選擇邊框和動感的聲音效果,最有吸引力的是由於它開放的設計思想,每一個用戶可以根據自己的愛好,任意地配置窗口的邊框、菜單以及屏幕上其它各個部分,而不須要 接觸源代碼,也不須要 編譯任何程序。 [12]
5使用技巧
日常應用
Linux主要被用作服務器的操作系統,因為它的廉價、靈活性及Unix背景。傳統上,以Linux為基礎的“LAMP(Linux,Apache,MySQL,Perl/PHP/Python的組合)”技術,除了已在開發者群體中廣泛流行,它提供網站服務供應商最常使用的平台。基於其低廉成本與高度可設置性,Linux常常被應用於嵌入式系統,例如機頂盒、移動電話及移動裝置等。在移動電話上,Linux已經成為Symbian OS的主要競爭者;而在移動裝置上,則成為Windows CE與Palm OS外之另一個選擇。TiVo數碼攝影機使用了經過客制化後的Linux。此外,有不少硬件式的網絡防火牆及路由器,例如部份LinkSys的產品,其內部都是使用Linux來驅動、並采用了操作系統提供的防火牆及路由功能。[13] 采用Linux的超級電腦亦愈來愈多,根據2008年11月的TOP500超級電腦列表,現時世上最快速的超級電腦使用Linux作為其操作系統。而在表列的500套系統裡,采用Linux為操作系統的,占了439組(即87.8%)。 2006年開始發售的SONY PlayStation 3亦可使用Linux的操作系統,它有一個能使其成為一個桌面系統的Yellow Dog Linux。之前,Sony亦曾為他們的PlayStation 2推出過一套名為PS2 Linux的DIY組件。Ubuntu自9.04版本,恢復了PPC支持(包括PlayStation 3)。而隨著OLPC的XO-1,華碩的Eee PC等低價電腦的推行,許多人樂觀的認為在低端PC市場,linux的市場占有率正在快速的增長。但在Windows進入此一市場後,Linux的市占率快速下滑。[14-15] 主要用途:虛擬化,數據庫服務器,Web服務器,應用服務器,跳轉盒(Jump box),日志服務器,開發平台,Google搜索設備,入侵檢測系統。[16]
硬盤分區
分區類型 硬盤分區一共有三種:主分區,擴展分區和邏輯分區。[17] 在一塊硬盤上最多只能有四個主分區。您可以另外建立一個擴展分區來代替四個主分區的其中一個,然後在擴展分區下您可以建立更多的邏輯分區。擴展分區只不過是邏輯分區的“容器”。實際上只有主分區和邏輯分區進行數據存儲。[18] 分區規定 設備管理在 Linux 中,每一個硬件設備都映射到一個系統的文件,對於硬盤、光驅等,IDE 或 SCSI 設備也不例外。Linux 把各種 IDE 設備分配了一個由 hd 前綴組成的文件;而對於各種 SCSI 設備,則分配了一個由 sd 前綴組成的文件。例如,第一個 IDE 設備,Linux 就定義為hda;第二個 IDE 設備就定義為 hdb;下面以此類7631p2.推。而 SCSI 設備就應該是 sda、sdb、sdc 等。[19] 分區數量 要進行分區就必須針對每一個硬件設備進行操作,這就有可能是一塊IDE硬盤或是一塊SCSI硬盤。對於每一個硬盤(IDE 或 SCSI)設備,Linux 分配了一個 1 到 16 的序列號碼,這就代表了這塊硬盤上面的分區號碼。例如,第一個 IDE 硬盤的第一個分區,在 Linux 下面映射的就是 hda1,第二個分區就稱作是 hda2。對於 SCSI 硬盤則是 sda1、sda2 等。[20] 分區作用 在 Linux 中規定,每一個硬盤設備最多能有 4 個主分區(其中包含擴展分區)構成,任何一個擴展分區都要占用一個主分區號碼,也就是在一個硬盤中,主分區和擴展分區一共最多是 4 個。對於早期的 DOS 和Windows(Windows 2000 以前的版本),系統只承認一個主分區,可以通過在擴展分區上增加邏輯盤符(邏輯分區)的方法,進一步地細化分區。主分區的作用就是計算機用來進行啟動 操作系統 的,因此每一個 操作系統 的啟動,或者稱作是引導程序,都應該存放在主分區上。這就是主分區和擴展分區及邏輯分區的最大區別。在指定安裝引導 Linux 的 bootloader 的時候,都要指定在主分區上,就是最好的例證。 Linux 規定了主分區(或者擴展分區)占用 1 至 16 號碼中的前 4 個號碼。以第一個 IDE 硬盤為例說明,主分區(或者擴展分區)占用了 hda1、hda2、hda3、hda4,而邏輯分區占用了 hda5 到 hda16 等 12 個號碼。因此,Linux 下面每一個硬盤總共最多有 16 個分區。對於邏輯分區,Linux 規定它們必須建立在擴展分區上(在 DOS 和 Windows 系統上也是如此規定),而不是主分區上。因此,擴展分區能夠提供更加靈活的分區模式,但不能用來作為 操作系統 的引導。 分區指標 對於每一個 Linux 分區來講,分區的大小和分區的類型是最主要的指標。容量的大小讀者很容易理解,但是分區的類型就不是那麼容易接受了。分區的類型規定了這個分區上面的文件系統的格式。 Linux 支持多種的文件系統格式,其中包含FAT32、FAT16、NTFS、HP-UX,以及各種 Linux 特有的 Linux Native和 Linux Swap分區類型。在 Linux 系統中,可以通過分區類型號碼來區別這些不同類型的分區。[21-22]
常用命令
echo 命令舉例:echo $PATH。功能:將命令行中的參數顯示到標准輸出中。 date命令舉例:date。功能:顯示或設置系統時間,沒參數直接顯示系統當前的日期和時間。 passwd命令舉例:passwd。功能:修改密碼。 file命令舉例:file 文件名 【參數】。功能:確定指定文件類型。 ls命令舉例 ls -a 顯示當前目錄下的全部文件(包括隱藏文件)。功能:列出目錄文件。 touch命令舉例:touch 【選項】 文件名。功能:修改指定文件的時間標簽或者創建一個空文件。選項:-a 僅改變指定文件的存取時間。
啟動流程
1、讀取MBR的信息,啟動Boot Manager ,Windows使用NTLDR作為Boot Manager,如果您的系統中安裝多個版本的Windows,您就需要在NTLDR中選擇您要進入的系統。Linux通常使用功能強大,配置靈活的GRUB作為Boot Manager,將在啟動管理章節中向您介紹它的使用方式。 2、加載系統內核,啟動init進程 ,init進程是Linux的根進程,所有的系統進程都是它的子進程。 3、init進程讀取“/etc/inittab”文件中的信息,並進入預設的運行級別,按順序運行該運行級別對應文件夾下的腳本。腳本通常以“start”參數啟動,並指向一個系統中的程序。 通常情況下,“/etc/rcS.d/”目錄下的啟動腳本首先被執行,然後是“/etc/rcN.d/”目錄。例如您設定的運行級別為3,那麼它對應的啟動目錄為“/etc/rc3.d/”。 4、根據“/etc/rcS.d/”文件夾中對應的腳本啟動Xwindow服務器“xorg”,Xwindow為Linux下的圖形用戶界面系統。 5、啟動登錄管理器,等待用戶登錄 ,Ubuntu系統默認使用GDM作為登錄管理器,您在登錄管理器界面中輸入用戶名和密碼後,便可以登錄系統。