# 程式設計一 作業系統安裝指南
本課程將使用 **Ubuntu 24.04** 作為主要批改環境。請同學務必確保自己的程式能在該作業系統中正常運行,以避免因系統差異造成的問題。
[TOC]
## 虛擬機安裝
:::success
什麼是虛擬機器 (VM)?
虛擬機器 (VM) 可視為「由軟體組成的電腦」,就像實體機器一樣,虛擬機器也有自己的作業系統 (Windows、Linux 等) 而且與在該主機上完全(或部分)隔離,較不影響主機使用。
https://zh.wikipedia.org/zh-tw/%E8%99%9B%E6%93%AC%E5%8C%96
:::
請選擇最適合您的虛擬化安裝方式:
- VirtualBox (大部分平台都適用)
- https://www.virtualbox.org/wiki/Downloads
- VMware (基本適用於 MacOS)
- https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion
- Orbstack (適用於 arm64 Mac,如 M1/M2/M3)
- https://orbstack.dev/
- WSL2 (適用於 Windows 10 以上,內建且方便)
- https://learn.microsoft.com/zh-tw/windows/wsl/install
- https://learn.microsoft.com/zh-tw/windows/wsl/setup/environment
- Docker (輕量,熟悉容器操作可以試試看)
- https://www.docker.com/
- https://hub.docker.com/_/ubuntu
## 直接安裝
或者如果你想直接安裝 Ubuntu 系統,請參考以下指南:
:::warning
此行為可能會清除你目前電腦內的任何資料,請異地備份好後再來進行。
:::
- Ubuntu 安裝指南
- https://ubuntu.com/tutorials/install-ubuntu-desktop#1-overview
- 雙系統安裝指南
- https://www.youtube.com/watch?v=alFosqQ1ang&t=7s
## 除此之外 ?
如果你有其他的安裝方式 QEMU KVM/Bhyve...etc 也可以自行嘗試,鼓勵大家多研究和利用不同的技術。
此外,如果你想使用其他的 Linux 發行版(如 [Arch](https://archlinux.org/)、[Debian](https://www.debian.org/)、[Fedora](https://getfedora.org/) 甚至是 [FreeBSD](https://www.freebsd.org/)),也完全歡迎!作業系統家族非常龐大,我們非常期待你能分享你的問題或心得給助教
# step by step install
## Ubuntu24.04 on virtual box
### 下載 Ubuntu images

[Ubuntu ISO images](https://releases.ubuntu.com/)
依據需求選擇要下載版本,我們下載LTS 24.04 LTS

* 選擇 Desktop image (會有像是windows 的圖形介面)
* 或是 Server install images (只有終端機命令行)
### 下載 virtual box
* 選擇 windows host
* 或是 MacOS/intel hosts(intal mac 限定)
* https://www.virtualbox.org/wiki/Downloads

M1/M2 mac 請安裝這個版本
https://www.virtualbox.org/wiki/Download_Old_Builds_7_0

基本上都點下一步就可以了

### 建立虛擬機
下載並安裝完畢後,進入 VirtualBox
點選機器>新增(右邊藍色刺刺圈也可以)

設定虛擬機
* 名稱:Ubuntu2404
* 資料夾:請選擇你有足夠空間的硬碟上的資料夾
* (推薦 30GB 以上)
* ISO:選擇剛剛下載好的 ISO
* 版本跟類型應該會自動偵測出來

設定使用者名稱與密碼


### 設定硬體
* 推薦記憶體到 2-8GB
* 但是不建議超過電腦的一半
* 如果是Ubuntu server可以低一點 1-8GB 都可以
* cpu 推薦 1-4 顆,取決於你的 cpu 負載
* 一樣不建議超過電腦的一半

### 建立虛擬硬碟
大約 30GB
不用預先配置完整大小,VB會根據你用多少動態分配

最後確認,你可以檢查一下有沒有任何設定錯誤的

選擇完成就會開始安裝了,需要一段時間

圖形介面安裝的話會是這個樣子,按照指示一步步安裝就行了
可以在這裡設定英文或是中文介面

安裝需要一段時間,可以喝杯咖啡休息一下
系統會提示要重新開機,重開機就會進入系統了


## Ubuntu24.04 on WSL2
參考[wsl 安裝說明](https://learn.microsoft.com/zh-tw/windows/wsl/install)
以下是安裝教學
請開啟 powershell 或是 CMD (助教使用的是 windows Terminal)


根據預設,已安裝的 Linux 散發套件(發行版)會是 Ubuntu22.04
以下指令會預設安裝Ubuntu22.04
```
wsl --install
```
但是我們要安裝的是ubuntu 24.04
```
wsl --list --online
wsl --install -d Ubuntu-24.04
```


使用 exit 回到 windows powershell
```
wsl --set-default Ubuntu-24.04
```

wsl 啟動會預設你在 windows 目錄下

你可以使用 `cd `回到 家目錄
或是在啟動的時候使用 `wsl ~` 直接進入家目錄
可以透過 `wsl` 與 `exit` 在 兩個系統中反覆切換

## apt 安裝命令
更新本機可用套件庫
```
sudo apt update
```
升級本機可用套件
```
sudo apt upgrade
```
安裝開發工具包
```
sudo apt-get install build-essential
```
neofetch 一個酷東西
```
sudo apt-get install neofetch
```

### 使用 VS code 在 wsl 寫程式
在 windows 下載並安裝 [VS code](https://code.visualstudio.com/)
在 wsl 中輸入以下指令 (. 是目前目錄的意思,第一堂課有教)
```
code .
```
如果是第一次使用他會開始安裝

我們就可以在 VScode 中寫程式了

### 基本 WSL 命令
請參考 [基本 WSL 命令](https://learn.microsoft.com/zh-tw/windows/wsl/basic-commands) (在windows的時候打的)
查看所有已安裝的 wsl
```
wsl -l -v
```

wsl 關機
```
wsl --shutdown
```

設定預設要用的發行版(如果你安裝很多版本的話)
星號就是預設的
```
wsl --set-default <Distribution Name>
```

剩下的命令就請打這個吧
```
wsl --help
```

## 影片 updating...