《鳥哥 Linux 私房菜:基礎篇》Chapter 00 - 計算機概論


  • 第一篇: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 記憶體

  1. CPU 所使用的資料都是來自於主記憶體
  2. 個人電腦的主記憶體主要元件為動態隨機存取記憶體(通電使用、斷電消失)
  3. 以伺服器來說,主記憶體容量有時比 CPU 更重要。
  • 多通道設計
    • 所有資料都必須存放在主記憶體,所以寬度越大越好,但傳統的匯流排關僅大約 64 位元,為了加大寬度,將兩個主記憶體彙整再一起,就是雙通道的設計理念。
  • DRAM 與 SRAM
    • 電腦中還有許多其他記憶體存在,最主要的是 第二層快取記憶體 ,如果很常用的放到 CPU 內部就不需要跑到主記憶體重新讀取了。
    • 因第二層快取速度必須與 CPU 時脈相同,DRAM 無法達到這個時脈速度,就需要靜態隨機存取記憶體(SRAM)的幫忙。
  • 唯讀記憶體(ROM)
    • BIOS(Basic Input Output System)是一套寫死在主機板上的程式,沒有通電時也能夠將資料記錄下來,那就是唯讀記憶體(Read Only Memory, ROM)。

0.2.3 顯示卡

  1. 顯示卡又成為 VGA(Video Graphic Array)
  2. 影響螢幕解析度與色彩深度

目前主要連接介面:

  • 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/

#鳥哥的 Linux 私房菜 #linux
鳥哥有句名言:「我沒有錢,所以只能硬著頭皮找其他技巧,不過換個想法,多學點也是好事。」還有什麼比瀟灑的 Linux 更帥呢?話不多說,走起!






Related Posts

[Day 06]: Docker Network-2

[Day 06]: Docker Network-2

Day 00

Day 00

[Week 2] JavaScript - 邏輯運算與位元運算

[Week 2] JavaScript - 邏輯運算與位元運算



Sponsored



Comments