計算機基本組成
計算機基本組成
最底層為硬件--CPU,硬盤,顯示器等,中間層為操作系統(內核,OS也是軟件),通過API接口,最外層通過高級語言即可編程開發應用程序。
shell為人機交互接口,即OS的外殼,負責接收,理解用戶的指令,傳輸給內核。sheel分為圖形化界面接口和命令行接口
內核功能
進程管理
內存管理
文件系統管理
網絡管理
硬件驅動
安全機制等等
CPU:主要由運算器,寄存器,控制器組成,當然,還有緩存,比如一級緩存,二級緩存等
內存:存放數據,命令行等,
硬盤
顯示器
一些設備和概念
- ROM:ROM是只讀存儲器(Read-Only Memory)的簡稱,是一種只能讀出事先所存數據的固態半導體存儲器。其特性是一旦儲存資料就無法再將之改變或刪除。通常用在不需經常變更資料的電子或電腦系統中,并且資料不會因為電源關閉而消失。
- RAM:隨機存取存儲器(random access memory,RAM)又稱作"隨機存儲器",是與CPU直接交換數據的內部存儲器,也叫主存(內存)。它可以隨時讀寫,而且速度很快,通常作為操作系統或其他正在運行中的程序的臨時數據存儲媒介。
- 中斷控制(中斷(interrupt):鍵盤輸入,通知CPU,硬盤通知機制)
- 南橋:低速總線,連接大量I/O設備,硬盤,鍵盤
- 北橋:離CPU最近,高速總線控制器,高頻下工作
- 南橋將各設備匯總到一條線,連接到北橋,北橋轉給CPU
- 不過現在,多將內存,CPU直接連接,速度更快,北橋只負責連接南橋了
- 現在很多服務器,通過在北橋上接SSD(固態硬盤),即CPU--北橋--SSD,更快
內存與CPU,內存運行慢,CPU快,為了讓CPU持續運轉,于是有了緩存
緩存:緩存就是數據交換的緩沖區(稱作Cache),當某一硬件要讀取數據時,會首先從緩存中查找需要的數據,如果找到了則直接執行,找不到的話則從內存中找。由于緩存的運行速度比內存快得多,故緩存的作用就是幫助硬件更快地運行。
緩存級數越小,說明離CPU越近,速度越快,造價越高
一級緩存:一級緩存都內置在CPU內部并與CPU同速運行,可以有效的提高CPU的運行效率。一級緩存越大,CPU的運行效率越高,但受到CPU內部結構的限制,一級緩存的容量都很小。
二級緩存:CPU高速緩存(CPU Cache,在本文中簡稱緩存)是用于減少處理器訪問內存所需平均時間的部件。在金字塔式存儲體系中它位于自頂向下的第二層,僅次于CPU寄存器。其容量遠小于內存,但速度卻可以接近處理器的頻率。最初緩存只有一級,二級緩存(L2 CACHE)出現是為了協調一級緩存與內存之間的速度。二級緩存比一級緩存速度更慢,容量更大,主要就是做一級緩存和內存之間數據臨時交換的地方用。
三級緩存:三級緩存是為讀取二級緩存后未命中的數據設計的-種緩存,在擁有三級緩存的CPU中,只有約5%的數據需要從內存中調用,這進一步提高了CPU的效率。其運作原理在于使用較快速的儲存裝置保留一份從慢速儲存裝置中所讀取數據且進行拷貝,當有需要再從較慢的儲存體中讀寫數據時,緩存(cache)能夠使得讀寫的動作先在快速的裝置上完成,如此會使系統的響應較為快速。
所以計算機主頻大不說明性能優,還要看緩存,緩存大,性能好。
內存的數據,先到二級緩存,再到一級緩存
局部性原理
局部性原理是指CPU訪問存儲器時,無論是存取指令還是存取數據,所訪問的存儲單元都趨于聚集在一個較小的連續區域中。
- 時間局部性(Temporal Locality):如果一個信息項正在被訪問,那么在近期它很可能還會被再次訪問。
- 空間局部性(Spatial Locality):在最近的將來將用到的信息很可能與現在正在使用的信息在空間地址上是臨近的。
程序的局部性原理
程序的局部性原理:是指程序在執行時呈現出局部性規律,即在一段時間內,整個程序的執行僅限于程序中的某一部分。相應地,執行所訪問的存儲空間也局限于某個內存區域。局部性原理又表現為:時間局部性和空間局部性。時間局部性是指如果程序中的某條指令一旦執行,則不久之后該指令可能再次被執行;如果某數據被訪問,則不久之后該數據可能再次被訪問。空間局部性是指一旦程序訪問了某個存儲單元,則不久之后。其附近的存儲單元也將被訪問。
另外,根據程序的局部性理論,Denning提出了工作集理論。所謂工作集是指進程運行時被頻繁訪問的頁面集合。顯然我們知道只要使程序的工作集全部集中在內存中,就可以大大減少進程的缺頁次數;否則會使進程在運行過程中頻繁出現缺頁中斷,從而出現頻繁的頁面調入/調出現象,造成系統性能的下降,甚至出現“抖動”。
劃分工作集可以按定長時間或定長頁面兩種方法進行劃分。當顛簸現象發生時,說明系統的負荷過大,通常采用處理器均衡調度。另一種是控制缺頁率,當缺頁率達到上限時,則增加內存分配量;當缺頁率達到下限時,就減少內存的分配量。
程序的移植
- 機器語言:機器語言是最初級且依賴于硬件的計算機語言。機器語言可直接在計算機上執行(即為二進制形式),運算速度快。
- 匯編語言:用有助于記憶的符號和地址符號來表示指令,便是匯編語言,也稱為符號語言。一般稱匯編語言為低級語言(當然初級語言也屬于低級語言)。
- 高級語言:是一種人工設計的語言,它對具體的算法進行描述,所以又稱為算法語言。高級語言獨立于計算機的硬件(即與具體的硬件無關)。
- 由于每一個廠家的芯片都有自己的一套機器語言,因此需要結合一種額外的機制來彌合不同芯片之間語言的不用,這套機制就是API(Application Programming Interface應用程序接口)
- API :API就是操作系統留給應用程序的一個調用接口,應用程序通過調用操作系統的 API 而使操作系統去執行應用程序的命令(動作)。
為了提高計算機運行速度,有了多任務
(1)劃分CPU(slice),例如先運行任務一5ms,然后運行任務二5ms...即任務的交叉運行
(2)內存分段,(32位最多只能用4G內存,64位可用4G個4G,超級大)
內存中最前面這段即 加電自檢 部分
加電自檢:在加電之后,智能設備所運行的內部存儲的一系列檢測程序集合。縮寫為POST。這些檢測程序在軟件加載到硬件上運行之前對硬件的基本完整性加以驗證。
(3)那么由誰來實現以上對內存和CPU的分配劃分呢,即操作系統OS(一個運行在硬件上的管理硬件資源的軟件),同時OS還負責進程的啟動,切換等工作
Linux的基本原則
- 由目的單一的小程序組成,通過組合小程序,完成復雜功能
- 一切皆文件
- 盡量避免捕獲用戶接口(即不跟用戶進行交互)
- 配置文件保存為純文本格式(即配置一個服務器,一個文本編輯器足以完成所有工作)
CLI接口(command-line interface,命令行界面)
- 命令格式
- 命令 選項 參數(命令的作用對象)
- 虛擬終端(terminal):--Ctrl-- + Alt + F1 - F6
- 用戶切換(root,studengt,visitor)
- su:switch user
- #su [-l] 用戶名 [ ]表示可以省略
- exit 退出
- 修改密碼
- #password —————— 輸入兩次新密碼即可
- 修改密碼的時候,root則可以改成任意密碼,普通用戶密碼需要滿足 * 密碼復雜性規則 *
1.使用4種類型字符中的至少3中(大小寫,字符,數字)
2.足夠長,大于7位