# Let's to go Linux ## 大綱 * 前言 * 概念 * Liunx發行版選擇 * 安裝 ## 前言 這次的教學是面對想在新電腦上面嘗試Linux卻不知道如何下手的人,想保留住同一個硬碟上面保留windows or Mac OS的人。我會介紹一些屬於作業系統的知識,還有介紹一些持續接觸的方式。希望可以啟發你未來道路的方向。 ## 概念 * 作業系統 * 檔案系統 * BIOS * 分散式計算 * 文件系統的層次標準 一個簡單的系統概念會分成, 用戶、內核和硬體。而內核的區域由提供軟體和系統互動的API(應用程式介面)、提供資源分配的系統、管理I/O(輸入與輸出)的系統構成與不同的硬件溝通的驅動。那邊就是我們統一稱的作業系統程式。 ### [檔案系統](https://zh.wikipedia.org/zh-tw/%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F) 檔案系統是讓使用者可以管理儲存資源的方式。不同的檔案系統有不同的目的,像在記憶體運行的檔案系統是為了快速的讀寫資源,而這磁碟內的檔案系統要兼顧系統運行的穩定與處理不同區域的掛載分配。其本身也只是一種管理方式,可以用各種方法實現。 ### [BIOS](https://zh.wikipedia.org/zh-tw/BIOS) 全名是Basic Input/Output System,提供作業系統運行前的初始化和硬件測試。目前新一代的BIOS是UEFI。 [UEFI](https://zh.wikipedia.org/wiki/%E7%B5%B1%E4%B8%80%E5%8F%AF%E5%BB%B6%E4%BC%B8%E9%9F%8C%E9%AB%94%E4%BB%8B%E9%9D%A2)(統一可延伸韌體介面),其中對我們最重要的就是[GUID](https://zh.wikipedia.org/wiki/GUID%E7%A3%81%E7%A2%9F%E5%88%86%E5%89%B2%E8%A1%A8)磁碟分割表(GUID Partition Table,縮寫:GPT)讓我們跳脫了傳統上對於主分區與邏輯分區的限制。我們現在是在磁碟上面構建自己的群組,透過分區掛載來實現。 ### [分散式運算](https://en.wikipedia.org/wiki/Client%E2%80%93server_model)(Distributed computing) 透過各種通訊協議和概念,將一個任務拆分成很多個步驟,讓不同的計算機彼此合作完成。目前主流的架構是主從式架構(Client–server model)。主要是講求一台電腦控制其他電腦的運算。而因為去中心化的需求,最近點對點還有小型的節點架構也在逐漸被再次應用。 ### [文件系統的層次標準](https://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.pdf)(Filesystem Hierarchy Standar) 文件系統有自己的格式與層級,我們可以以此為基礎進行各種的掛載和操作。例如:透過更改執行緒的認為的根目錄達成[chroot "jail"](https://wiki.ircnow.org/index.php?n=Chroot.Intro),使得該程式被孤立、或者進行準確的目錄備份安排與風險隔離。 以下是這次初步介紹的幾個主要目錄,需要注意分區和文件格式的。 | 目錄 | 推薦格式 | 意義 | | -------- | -------- | -------- | | \ | ext4 | 所有文件的來源,即使物理位置不同 | \root | fat32 | 系統內核和加載程序 | \home | ext4 | 用戶資料區域 | \root\efi | fat32 | UEFI的區域,格式要fat32確保不同系統都可以讀取 對格式推薦有興趣的可以看[Manjaro-User-Guide](https://mirrors.gigenet.com/OSDN//storage/g/m/ma/manjaro/Manjaro-User-Guide.pdf) P39的Some useful definitions。ext4是Linux的主要文件系統格式,快速、容量支援最大。fat32主要是不同系統都可以讀取,常用在隨身碟的上面,但容量小。 ## Linux發行版選擇 * 什麼是Liunx * 兩大陣營的風格和特色 * 知名的桌面衍生版 * 如何持續學習 ### 什麼是Linux Linux就是採用Linux內核的系統。Linux內核決定了計算機內外的通訊方式,還有文件系統與各種API的交流。而為什麼我們聽到有各種的Linux呢?因為那是不同的發行版,Linux本身只有內核是沒有辦法提供服務的,要用戶自己搭配各種的套件。而把這些套件組合並且管理的,就是[發行版](https://zh.wikipedia.org/zh-tw/Linux%E5%8F%91%E8%A1%8C%E7%89%88%E5%88%97%E8%A1%A8)。這次主要推薦的是桌面發行版! ### 兩個源頭發行版的風格和特色 #### [Arch Linux](https://archlinux.org/) 以滾動式更新為主,方便自己操作升級和更新。也因此需要對自己的系統有掌控的能力且願意自己動手操作。堅持KISS原則(Keep It Simple, Stupid),主要提供x86-64計算機的優化。其論壇上的文件有的時候不是為了單純的解決問題,也會提出一個想法,讓大家一起討論解決。 #### [Debian Linux](https://www.debian.org/) Debian比較像Android一樣,有分隔不同版本的庫與管理。自用升級系統比較麻煩,但因為其穩定性,所以很適合當作客製化設備的系統。 ### 發行版的桌面衍生版 #### [Manjaro](https://manjaro.org/)(Arch) 幫你整理好桌面工具與安裝過程的Arch,有3種不同的桌面工具組合可以選擇。Manjaro有自己的[包裹庫](https://gitlab.manjaro.org/packages),與arch的庫大致相符,但時間會有一些的延誤。 #### [Ubuntu](https://launchpad.net/ubuntu)(Debian) Ubuntu算在台灣蠻受到歡迎的,特點就是對新手很友善。並且多語言的支持算最好的。但主持的是商業公司,所以其決策考慮會比較『商業』。也可以在windows上用WSL部署。 ## 安裝 * UEFI的磁碟分區介紹 * 準備步驟 ### UEFI的磁碟分區介紹 因為BIOS被UEFI取代,所以一切的操作都與以前有很大的不同。先說一個最大的不同好了,我們不再被一張主機板上只有四個主分區限制。我們可以在透過不同中主分區的掛載。來實現硬性的數據維護和資源分配。現在的磁碟分區叫法是UEFI/GPT(就是GPT),2011年前的BOIS磁碟分區叫法可能是BIOS/MBR/Legacy(就是MBR)。 ### 準備步驟 * 製作安裝媒介 * 磁碟壓縮 #### 安裝媒介 1. 下載你選用的Linux發行版的.image or .iso檔 2. 準備一個大小8GB以上(含)的USB Flash Drive(隨身碟) 3. 使用[Rufus](https://rufus.ie/zh_TW/)將安裝檔灌入你的隨身碟 注意:隨身碟內的儲存內容會被格式化,在灌入前要確認無重要資料。 #### 磁碟壓縮