1. 程式人生 > 實用技巧 >1.計算機基礎

1.計算機基礎

計算機基礎

計算機,俗稱電腦,是一種能接收和儲存資訊,並按照儲存在其內部的程式對海量資料進行自動,高效地處理,然後把處理結果輸出的現代化智慧電子裝置.

一個完整的計算機系統由硬體系統和軟體系統兩大部分組成

計算機硬體

  1. 世界上第一臺計算機:ENIAC

  2. 現代計算機都遵循馮諾依曼體系.

    • 採用二進位制,1byte=8bit
    • 計算機按照程式順序執行
    • 計算機硬體由運算器,控制器,儲存器,輸入裝置,輸出裝置五大部分組成.
  3. 摩爾定律:當價格不變時,積體電路上可容納的元器件的數目,約每隔18-24個月便會增加一倍,效能也會提升一倍.

  4. 計算機分類

    • 按規模劃分
      • 超級計算機
      • 大型計算機
      • 小型計算機
      • 微型計算機
    • 按功能和角色劃分
      • 伺服器
      • 客戶機
    • 按外形劃分
      • 塔式伺服器
      • 刀鋒伺服器
      • 機架式伺服器
      • 整機櫃伺服器
  5. 相關硬體

    1. CPU
    • CPU,即中央處理器,由控制器和運算器組成,是計算機系統最重要的部分.
    • CPU指令集架構主流有x86和arm兩種,此外還有power架構,RISC-V,MIPS等.
    • CPU晶片市場主流廠商是AMD和Intel.
    • CPU指令集主要有複雜指令集(CISC)和精簡指令集(RISC).x86使用的是複雜指令集,arm使用的是精簡指令集.
    1. 主機板
    • 重要組成部分,包括BIOS晶片,鍵盤和麵板控制開關介面,輸入輸出裝置介面,主儲存器和輔助儲存器介面,電源供電模組等.
    1. 記憶體
    • 主儲存器,介於CPU和輔助儲存器之間.用於快取資料,對計算機效能影響較大.
    • 記憶體斷電後資料丟失.
    • 記憶體頻寬,指的是記憶體和北橋晶片之間的資料傳輸速率,計算公式是:記憶體頻寬=記憶體匯流排頻率(如2666,2933,3200)*資料匯流排位數(一般計算機都已經是64位了)/8,如果雙通道記憶體需要再乘以2.
    1. 硬碟
    • 按介面劃分:
      1. IDE
      2. SCSI
      3. SATA
      4. SAS
      5. 光纖通道
      6. M.2
    • 按結構分類:
      1. 機械硬碟:機械結構,價效比高.
      2. 固態硬碟: 沒有機械結構,以區塊寫入和擦除方式作讀寫功能,效能高,價格高,故障後難以恢復.
    1. 網絡卡
    • 計算機的網路裝置,一般主機板上會整合1-2個千兆網絡卡.
    • 高階網絡卡也會有光纖網絡卡等,傳輸速率達到10Gbps以上.
    1. 遠端管理卡
    • BMC
    • IPMI介面,用於伺服器的遠端管理.
    1. 陣列卡raid
    • 用於做硬碟冗餘備份
    • 支援級別包括RAID0,1,5,6等.
    • 還可以提供快取和電池,用於斷電保護的情況.
    1. 電源

    一般都會冗餘備份,防止伺服器斷電.

    1. 顯示卡/GPU
    • 一般伺服器不會專門配置顯示卡裝置.
    • 專用GPU伺服器會專門配置相關GPU卡,用於推理和訓練等.
  6. 各種硬體處理器速率和效能對比:

CPU處理速率(L1>L2>L3)>記憶體(主儲存器)>硬碟(輔助儲存器)>網路裝置
處理速率越快,容量空間越小,價格越貴.

  1. 其他技術
  • 併發和多執行緒
  • 單執行緒
  • 快取
  • 非同步

計算機軟體

  1. 作業系統

    1. operating system,通用目的的軟體程式.

    2. 主要功能

    • 硬體驅動
    • 程序管理
    • 記憶體管理
    • 網路管理
    • 安全管理
    • 檔案管理
    1. OS分類
    • 伺服器OS:CentOS,Ubuntu,Windows Server,AIX
    • 桌面OS:Windows 10,Mac OS
    • 移動裝置:Android,IOS,HarmonyOS
    1. 作業系統相關概念
    • interface,介面
    • ABI,應用程式二進位制介面
    • API,應用程式開發介面
    • 使用者態
    • 核心態
    • 系統呼叫
    • 函式呼叫
    • 使用者和核心空間
    • 程式語言:低階語言,高階語言
  2. GNU

  • 目的是編寫大量兼容於Unix的自由軟體.
  • GPL:GNU General Public License
  • 自由軟體基金會
  • 允許使用者任意複製,傳遞,修改和再發布
  • 基於GPL修改再發布的軟體,仍須遵守GPL,具有傳染性,過於嚴格,也一定程度上制約了其發展.
  1. 開源
  • 開源不等於免費,free的意思是自由不是免費.
  • 世界上開源協議有上百種.
  1. Linux
  • 遵循GPL編寫的一個核心.
  • 完整的Linux發行版=Linux核心+GNU工具套件
  • Linux核心版本
  • 目前較常見的Linux發行版本主要有:
    1. redhat
    2. debian
    3. slackware
    4. LFS
  1. Linux哲學
    • 一切都是檔案(包括硬體裝置,/dev/sda)
    • 小型,單一用途的程式(ls,cat等)
    • 連結程式,共同完成複雜的任務(通過管道,重定向等方式實現)
    • 避免令人困惑的使用者節目(可以沒有GUI)
    • 配置資料儲存在文字中(/etc)