小白淺談Linux

1.Linux的起源:
Linux起源於Unix
1969年,MULTICS系統由於進展過慢被叫停
肯·湯普遜(Kenneth Lane Thompson)和丹尼斯·裏奇(Dennis MacAlistair Ritchie)在MULTICS的基礎上進行了改進,開發出了Unix的雛形並被用於教學研究
從1979年發佈的第七版開始,AT&T公司就不再允許Unix在大學教學中使用其源碼了
Tanenbaum教授借鑑Unix的設計思想開發出了一個迷你的類Unix系統Minix,該系統主要用於教學需要,可幫助學生理解Unix的內部工作機制
1991年,荷蘭赫爾辛基大學的學生林納斯·託瓦茲(Linus Benedict Torvalds)開始學習Minix系統,隨後又嘗試開發一套自己的免費操作系統。他把自己的初步成果發佈到相關社區,很快就引起了大量程序員的關注
1991年10月,林納斯·託瓦茲正式宣佈Linux內核的誕生
在Linux內核誕生的過程中,另一個做出巨大貢獻的功臣是GNU計劃(又稱革奴計劃)
由理查德·馬修·斯托曼(Richard Matthew Stallman, RMS)於1983年發起,其目標是開發一套完全自由的操作系統。
爲確保GNU軟件成爲自由軟件(即可以自由的使用、複製、修改和發佈),所有的GNU軟件都遵循GPL協議(GNU General Public License,GNU通用公共許可證)。
Linux內核中大量集成了GNU發佈的軟件,最終形成了如今被稱爲GNU/Linux的一系列操作系統。
2.Linux的發展:
1994年3月,Linux內核的1.0版正式面世,該版本採用GPL協議進行發佈
1995年1月,Red Hat公司創立。同年,Linux內核可以在多種處理器上運行,用戶量也超過了50萬
1996年2月,Linux 2.0內核發佈
1998年,Linux開始進軍商業系統領域
1999年,Linux在多個商業公司的共同努力下成爲了具備高效可靠的文件系統和強大支持服務的開源操作系統,並被作爲服務器操作系統的又一新的選擇
2000年2月,Red Hat發佈其嵌入式Linux操作系統
2001年1月,Linux 2.4版內核發佈
2003年12月,Linux 2.6版內核發佈
2011年7月,Linux 3.0版內核發佈
2014年9月,最新的穩定內核3.16.2發佈
3.Linux的特點
真正的多用戶多任務
高度安全性和穩定性
良好的兼容性
完全免費
支持多平臺
強大的網絡功能
美觀的用戶界面
3.Linux的組成
Linux由內核、shell、X Window和大量的應用程序組成
3.1內核
內核位於操作系統的最底層,中間是shell,最上層是X Window和應用程序
內核是最基礎和最重要的部分
內核(kernel)是操作系統的核心程序,用於管理資源和安排程序執行順序。
內核作爲最基本的系統功能提供者,一旦出現問題將會導致整個系統的崩潰。
Linux的內核主要由五個子系統組成:進程調度、內存管理、虛擬文件系統、網絡接口和進程間通信。
進程調度子系統
控制系統進程對CPU的訪問。Linux系統的多任務特性就是由該子系統完成的。
內存管理子系統
用於合理有效的分配和回收內存空間。Linux還支持虛擬內存swap(對換)區。
虛擬文件系統
使用通用的文件模型模擬各種不同的文件系統,屏蔽了具體的文件系統之間的差異,以便支持不同的文件系統。
該系統由邏輯文件系統和設備驅動程序組成。
網絡接口子系統
提供了對各種網絡標準協議和網絡硬件的支持,主要分爲網絡協議和網絡驅動程序兩部分。
進程通信子系統
用於控制不同進程間的通信過程,協助它們完成用戶空間的同步、數據共享和交換
3.2shell
Linux使用Shell這一交互式命令解釋程序完成與用戶的交互,並實現與內核的通信。
用戶命令通過Shell解釋爲內核可以理解的機器語言後傳達給內核,而內核在完成任務後將返回數據交回Shell,Shell最後將其翻譯爲用戶可理解的方式交還給用戶。
Shell不僅是一種交互式命令解釋器,還是一種程序設計語言,它功能強大,可以協助用戶完成各種系統管理要求。
Linux中的Shell有很多種,這些Shell的基本功能相同,僅有一些細微差異。常用的Shell有:
Bourne Shell(sh):是Unix最初使用的Shell,功能較爲簡單,它在Shell編程領域表現出色,但在與用戶交互方面差強人意。幾乎所有的Unix/Linux都支持Bourne Shell。
C Shell(csh):該Shell的語法與C語音很相近,它易於使用且交互性強。Linux提供了csh的擴展版本Tcsh,它包括命令行編輯、單詞補全、拼寫矯正、歷史命令、作業控制等,是一個很好的適用於編程的Shell。
Korn Shell(ksh):該Shell集成了csh和sh的優點,並與sh完全兼容。
Bourne-Again Shell(bash):它是Bourne Shell的擴展,可完全兼容sh,並在其基礎上添加了更多有修改的特性,可實現命令補全、命令編輯、歷史命令等功能,擁有靈活、強大的編程接口和友好的用戶界面。它也是Linux的默認Shell。
3.3X Window
X Window圖形用戶接口於1984年誕生,是Unix和Linux等操作系統的圖形化用戶界面標準協議。
X Window只負責顯示圖形,並沒有限制顯示和操作的風格,因此不同的X Window使用的圖形界面佈局和風格差異極大。但所有不同“相貌”的X Window都不是直接內置於操作系統中,而是系統中一個獨立的程序元件。
3.4 應用程序
Linux下的應用程序種類繁多,功能全面,幾乎覆蓋了用戶需要的一切工具。
Linux應用程序的數量還在不斷的增加,其中絕大部分遵循GPL協議並向用戶提供程序源碼。
Linux上的應用程序來源很廣泛。這些應用程序通常與Linux的發行版一起發佈,用戶可以選擇是否安裝、安裝哪些。

4Linux的版本
狹義的Linux僅指Linux內核
廣義的Linux指的是以Linux內核爲基礎,再加上Shell和應用程序等系統管理和設置工具之後所形成的操作系統。
Linux的版本可以分爲內核版本和發行版本兩個類型
5.Linux的功能
Linux發行版具有通用操作系統的全部功能,主要包括文件管理、進程管理、內存管理、用戶組管理和設備管理。
5.1文件管理:
Linux對外存上的文件進行管理時採用不同的文件系統形式。
文件系統:操作系統對外存數據的管理方式,它規定了數據的存取方法、定義了文件的屬性格式等。
Linux中,每個分區都要被格式化爲一個特定的文件系統實例,以實現對本分區數據的正確管理和存取。每個分區都要與系統目錄體系中的一個目錄相對應,該目錄被稱爲此分區的掛載點。掛載點目錄下的所有數據均存儲於對應分區,而每個分區中的數據也只能通過該掛載點訪問。
在操作系統層面,Linux將使用虛擬文件系統來映射不同分區上的物理文件系統,這些文件系統的不同點將被屏蔽,以統一格式提交給用戶。
5.2進程管理
核心就是合理分配CPU處理時間,使各個進程(程序)能按照合理順序完成,不會出現某些進程長期等待或無法執行的問題。
Linux作爲多用戶多任務操作系統,採用分時策略管理CPU運行時間。
5.3內存管理
合理利用空間,在確保進程工作的前提下提高內存利用率和響應效率
提供swap管理方式,使得暫時不能執行的進程被換出到外存對換區,當物理內存有空間時再將其換入重新執行。
5.4用戶和組羣管理
在Linux中,用戶被分爲多種類型,所有的合法用戶都記錄在系統配置文件中。
當合法用戶登錄時,系統將自動爲其配置操作環境、分配系統資源,直到該用戶安全退出。
Linux系統管理員賬號強制爲root,其使用的密碼被稱爲根密碼或根口令,需要在系統安裝時設置,某些版本的linux甚至不允許使用root登錄。
組羣(group)指的是對某些文件具有相同操作權限的用戶集合。
每個用戶在創建時都會同時在系統中爲其創建一個同名組羣作爲該用戶的初始組。以後用戶在工作過程中還可以加入多個其他的組羣。通常這些組中,初始組默認被設置爲該用戶的主組羣。
每個用戶和組羣都分別分配一個唯一編號,該編號被稱爲UID(用戶編號)和GID(組羣編號)。
5.5設備管理
在Linux中,所有的設備都被視爲文件,即所謂設備文件形式。Linux中的設備分爲三類:
字符設備
以字符爲單位進行數據交換的設備。這類設備速度較慢,CPU可以直接對字符設備進行讀寫。
塊設備
以數據塊爲單位進行數據交換的設備,用來進行大量數據存儲,一個數據塊可以是一個扇區或幾個扇區組成的簇。CPU不能直接讀寫塊設備。
網絡設備
以數據包爲單位、通過網絡進行數據交換的設備。由於數據在網絡上傳輸時必須嚴格符合網絡協議要求,因此數據在進行網絡傳輸前都要加上數據包頭和包尾。

發佈了33 篇原創文章 · 獲贊 16 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章