- 第一篇:Linux 的規劃與安裝
- Chapter 00 計算機概論
- Chapter 01 Linux 是什麼與如何學習
- Chapter 02 主機規劃與磁碟分割
- Chapter 03 安裝 CentOS7.x
- Chapter 04 首次登入與線上求助
- 第二篇:Linux 檔案、目錄與磁碟格式
- 第三篇:學習 Shell 與 Shell Scripts
- 第四篇:Linux 使用者管理
- 第五篇:Linux 系統管理員
0.1 電腦:輔助人腦的好工具
電腦其實是一種計算機,而計算機的即是:「接受使用者輸入指令與資料,經由中央處理器的數學與邏輯單元運算處理後,以產生或儲存成有用的資訊。」
0.1.1 電腦硬體的五大單元
依外觀來分類,有三大類:
- 輸入單元:鍵盤、滑鼠、觸控螢幕等。
- 主機部分:這個就是系統單元,被主集殼保護住了,裡面包含一堆板子、CPU 與主記憶體。
- 輸出單元:螢幕、印表機等。
整部主機的重點:中央處理器(Central Processing Unit, CPU)。
CPU 為一個具有特定功能的晶片,裡面含有 微指令集。如果想要主機進行什麼功能,要先確認微指令集中是否有內建。CPU 的主要工作是管理與計算,因此 CPU 又可以分成兩個重要單元:算數邏輯單元 與 控制單元。前者負責運算與邏輯判斷,後者負責協調元件間與單元間的工作。
綜合以上所說,可以分成五大單元:
- 輸入單元
- 輸出單元
- CPU 內部的控制單元
- CPU 內部的算數邏輯單元
- 主記憶體
0.1.2 一切設計的起點:CPU 的架構
目前常見的 CPU 架構:
- 精簡指令集(Reduced Instruction Set Computer, RISC)
- 精簡
- 指令時間短,完成事件單純
- 執行效能佳
- 若要做複雜的事需要多個指令完成
- 目前使用範圍最廣的事 ARM 架構
- 複雜指令集(Complex Instruction Set Computer, CISC)
- 每個小指令可以執行一些較低階的軟體操作
- 指令數目多、複雜
- 花費時間較長
- 一個指令中可以處理的工作較為豐富
0.1.3 其他單元的設備
- 系統單元:如上圖,包括 CPU 與記憶體及主機板相關元件。
- 記憶單元:包括主記憶體(main memory, RAM)與輔助記憶體(硬碟、光碟等)。
- 輸入、輸出單元:螢幕、喇叭 etc。
0.1.4 運作流程
0.1.5 電腦用途的分類
- 超級電腦
- 大型電腦
- 迷你電腦
- 工作站
- 微電腦:個人電腦屬於這一分類
0.1.6 電腦上面常用的計算單位(容量、速度等)
- 容量單位
- 電腦只認識 0 與 1,這個二進位的單位稱為 bit。
- 1 Byte = 8 bits
- 接續由小至大:Kilo, Mega, Giga, Tera, Peta, Exa, Zetta
- 一般來說,檔案容量是二進位制
- 速度單位
- CPU: MHz, GHz
- 網路:Mbps (Mbits per second)
- 一般來說,速度單位是十進位制
0.2 個人電腦架構與相關設備元件
早期的晶片溝通:
- 南僑:負責連接較快的 CPU、主記憶體與顯示卡介面等。
- 北橋:負責連接速度較慢的裝置介面,包括硬碟、USB等。
目前大多將北橋記憶控制整合到 CPU 的封裝中囉!
Asus 主機版:
0.2.1 執行腦袋運算與判斷的 CPU
時脈:CPU 每秒鐘可以進行的工作次數
- 外頻與倍頻
- 外頻:CPU 外部元件進行資料傳輸時的速度
- 倍頻:CPU 內部用來加速工作效能一個倍數
- 兩者相乘才是 CPU 的時脈速度
- 32 位元與 64 位元的 CPU 匯流排「寬度」
- CPU 的各項資料都得通過主記憶體才能進行,因此主記憶體能提供給 CPU 的資料量越大,效能就會比較快
- CPU 每次能處理的資料量,稱為字組大小(32 位元、64 位元)
- 32 位元 MAX: 4 GBytes
- 64 位元 MAX: 12.8 GBytes(1600 MHz 64 bit = 1600 MHz 8 bytes = 12.8 GBytes)
- CPU 等級
- 依據不同的腳為設計有 i386, i586, i686
- 超執行緒(Hyper-Threading, HT)
- 目前 CPU 都至少雙核心以上,因此運算常處閒置狀態,若 CPU 可以假象的同時執行兩個程序,可以讓系統效能增加
0.2.2 記憶體
- CPU 所使用的資料都是來自於主記憶體
- 個人電腦的主記憶體主要元件為動態隨機存取記憶體(通電使用、斷電消失)
- 以伺服器來說,主記憶體容量有時比 CPU 更重要。
- 多通道設計
- 所有資料都必須存放在主記憶體,所以寬度越大越好,但傳統的匯流排關僅大約 64 位元,為了加大寬度,將兩個主記憶體彙整再一起,就是雙通道的設計理念。
- DRAM 與 SRAM
- 電腦中還有許多其他記憶體存在,最主要的是 第二層快取記憶體 ,如果很常用的放到 CPU 內部就不需要跑到主記憶體重新讀取了。
- 因第二層快取速度必須與 CPU 時脈相同,DRAM 無法達到這個時脈速度,就需要靜態隨機存取記憶體(SRAM)的幫忙。
- 唯讀記憶體(ROM)
- BIOS(Basic Input Output System)是一套寫死在主機板上的程式,沒有通電時也能夠將資料記錄下來,那就是唯讀記憶體(Read Only Memory, ROM)。
0.2.3 顯示卡
- 顯示卡又成為 VGA(Video Graphic Array)
- 影響螢幕解析度與色彩深度
目前主要連接介面:
- D-Sub(VGA 端子)
- DVI
- HDMI
- Display port
0.2.4 硬碟與儲存設備
- 硬碟的物理組成
- 許多圓型磁碟盤、機械手臂、磁碟讀取頭與主軸馬達組成。
- 磁碟盤上的資料
- 傳輸介面
- SATA 介面
- SAS 介面
- USB 介面
- 固態硬碟(Solid State Disk, SSD)
0.2.5 擴充卡與介面
- 多通道卡(例如 x8 的卡)安裝在少通道插槽(例如 x4 的插槽)的可用性
0.2.6 主機板
- 發揮擴充卡效能須考慮插槽位置
- 設備 I/O 位址與 IRQ 中斷通道
- I/O 位置類似門牌號碼,獨立唯一
- IRQ 類似各個門牌號碼連接到郵件中心(CPU)的專門路徑
- CMOS 與 BIOS
- CMOS:紀錄主機板重要參數,如系統時間、CPU 電壓與頻率等等
- BIOS 為寫入主機板的程式,可以在開機時執行
- 連接周遭設備的介面
0.2.7 電源供應器
- 能源轉換率:輸出功率/輸入功率
0.2.8 選購須知
- 伺服器建議購買,不要自己組裝
- 速度的快慢與「整體系統的最慢那個有關」
0.3 資料表示方式
- 電腦: 0 跟 1。
- 人類
- 數值通常是十進位
- 文字方面則有上百種語言
探討數值與文字的編碼系統,建立與電腦溝通的橋樑!
0.3.1 數字系統
- 二進位轉十進位【乘法】
1101010 = 1x26 + 1x25 + 0x24 + 1x23 + 0x22 + 1x21 + 0x20 = 64 + 32 + 0x16 + 8 + 0x4 + 2 + 0x1 = 106
- 十進位轉二進位【除法】
0.3.2 文字編碼系統
- 英文:ASCII
- 中文:原為 Big5,後為 Unicode 編碼系統(又稱 UTF8 或萬國碼)
0.4 軟體程式運作
「硬體之於身體,軟體之於靈魂。」
軟體分成兩大類:
- 系統軟體
- 應用程式
0.4.1 機器程式與編譯程式
為了讓人類更容易與電腦溝通,電腦科學家發明了「編譯器」,將程式語言轉譯成機器語言。目前常見的編譯器有 C, C++, Java, Fortran 等。
0.4.2 作業系統
在早期,如果想要讓電腦執行程式,要參考硬體功能函數,並使用機器語言溝通。同時,每次寫程式都必須要重新改寫,因為硬體與軟體功能不見得一致。
那倘若能將所有硬體都驅動,並使用一個參考介面來讓工程師開發軟體... 於是,作業系統就誕生了!
- 作業系統核心(Kernel)
- 作業系統(Operating System, OS),是一組程式,管理電腦的所有活動以及驅動系統中的硬體。
- 作業系統的功能:讓 CPU 判斷邏輯與運算、讓主記憶體載入/讀出資料與程式碼、讓硬碟被存取、讓網路卡傳輸資料、讓周邊運轉等等。
- 以上這些功能就是作業系統的核心(Kernel)
- 核心程式所放置到記憶體當中的區塊是受保護的,並且開機後就常駐在記憶體當中。
- 系統呼叫(System Call)
- 作業系統通常會提供一整組開發介面給工程師開發軟體。
- 硬體不同,如 X86 與 RISC 架構的 CPU,核心就需進行修改。
- 統整:
- 作業系統核心參考硬體規格寫成的,同一個作業系統不能在不同硬體架構下運作。
- 作業系統只是在「管理」整個硬體資源。
- 應用程式的開發是參考「作業系統」提供的開發介面,因此應用程式只能在該作業系統運作。
- 核心功能
- 系統呼叫介面(System Call Interface)
- 程序管理(Process Control)
- 記憶體管理(Memory Management)
- 檔案系統管理(Filesystem Management)
- 裝置的驅動(Device Drivers)
- 作業系統與驅動程式
- 驅動程式是作業系統中相當重要的一環,因為硬體也在持續進步當中,較新推出的硬體我們的作業系統也不認識,要驅動新硬體(如顯示卡),作業系統會提供開發介面給硬體開發商,讓他們藉此驅動他們硬體的驅動程式。
0.4.3 應用程式
應用程式是參考作業系統提供的開發介面,所開發出來的軟體,讓使用者操作以進行特別的利用,如 Office 是給使用者辦公使用、影像處理軟體用來處理影音資料等。
資料來源
鳥哥的 Linux 私房菜: http://linux.vbird.org/linux_basic/