{%hackmd @bobchao/slide-style %}
<!-- .slide: data-background-color="#040707" data-background="https://i.imgur.com/Cdod0te.png" data-background-size="contain" data-background-repeat="no-repeat" data-background-opacity="1" data-transition="convex-in" -->
---
<!-- .slide: data-background-color="#040707" data-background="https://i.imgur.com/Cdod0te.png" data-background-size="contain" data-background-repeat="no-repeat" data-background-opacity="0.3" data-transition="slide-in slide-out" -->
|<h1 style="text-shadow: pink 2px 0 5px">CCNS 定期聚</h1>|
|:-:|
|<h3 style="text-shadow: pink 2px 0 5px">Steam 的掌上遊戲機都裝 Linux 了<br>你的電腦也該裝了吧<!-- .element: class="fragment" --></h3>|
---
<!-- .slide: data-background="https://img.wallpapersafari.com/desktop/1366/768/69/66/w1h0xc.png" data-background-size="cover" data-background-opacity="1" -->
## 什麼是 Linux?
Linux kernel 是作業系統核心<br>提供一個作業系統運作所需的基本功能<!-- .element: class="fragment" -->
使用包裝好 Linux kernel 的發行版<!-- .element: class="fragment"--><small>(distro)</small><!-- .element: class="fragment"-->
<font color="#83aec9"> <span>**手機** <!-- .element: class="fragment"--></span></font><font color="#9dd1a4"> <span>**伺服器** <!-- .element: class="fragment"--></span></font> <font color="#e8e2b0"> <span>**嵌入式裝置** <!-- .element: class="fragment"--></span></font>
<font color="#efaa64"> <span>**個人電腦?** <!-- .element: class="fragment"--></span></font>
Note:
Linux kernel 是作業系統核心,提供一個作業系統運作所需的基本功能
普存在於手機與伺服器及嵌入式裝置
一般我們使用的是 Linux kernel 的發行版 (distro)
發行版是 kernel 再加上一些其他軟體(library, GNU tool chain, file manager, window manager, package manager...)的軟體套裝,使其成為一個可以日常使用的作業系統
大家最常聽到的 Ubuntu 就是一種發行版(distro)
還有一些發行版像是 Rocky, Redhat Enterprise 是針對伺服器的發行版,Raspberry Pi OS 則是給樹梅派的發行版
先調查一下現場聽眾的背景再決定要講多少
options - 沒聽過、聽過而已、有用過裝好的、有自己裝過 desktop/server、有動手改過
---
## 什麼是 Linux desktop?
Linux desktop 泛指具備圖形界面
給一般使用者日常使用的發行版
<span>kernel<!-- .element: class="fragment"--></span><br> <span>+<!-- .element: class="fragment"--></span>
<font color="#fff"><span>**library** <!-- .element: class="fragment"--></span></font> <font color="#999"> <span>**GNU tool chain** <!-- .element: class="fragment"--></span></font> <font color="#fff"> <span>**file manager** <!-- .element: class="fragment"--></span></font> <font color="#999"> <span>**windows system** <!-- .element: class="fragment"--></span></font> <font color="#fff"> <span>**package manager** <!-- .element: class="fragment"--></span></font> <font color="#999"> <span>**browser** <!-- .element: class="fragment"--></span></font> <font color="#fff"> <span>**......** <!-- .element: class="fragment"--></span></font>
<font color="#83aec9"> <span>**Debian** <!-- .element: class="fragment"--></span></font><font color="#9dd1a4"> <span>**Fedora** <!-- .element: class="fragment"--></span></font> <font color="#e8e2b0"> <span>**Android** <!-- .element: class="fragment"--></span></font> <font color="#999"> <span>**......** <!-- .element: class="fragment"--></span></font>
---
# GNU GPLv2
Linux kernel 採 GNU GPLv2 授權釋出
是促使 [GNU/Linux](https://en.wikipedia.org/wiki/GNU/Linux_naming_controversy) 遍布全世界的關鍵之一
詳細請看 [啊是多開放?](https://hackmd.io/@bobchao/what-is-open-coscup-2020#/)
Note:
tl;dr - 使用者可以任意的使用、修改、散佈,但是原始碼同時也必須使用 GPLv2 授權釋出
---
<!-- .slide: data-background="https://i.imgur.com/HWDv48Q.png" data-background-size="cover" data-background-opacity="1"-->
## 這麼多發行版怎麼選?
<br><br><br><br><br><br><br>
https://distrowatch.com/ > 1000 種!
---
<!-- .slide: data-transition="slide-down"-->
| | |
|:-------------------------------------------------- |:--------------------------- |
| <span style="color: #f9ab61">知名、新手友善</span> | Ubuntu, elementary, Pop!OS |
| <span style="color: #efef64">老牌</span> | Debian, Fedora, OpenSuSE |
| <span style="color: #f96164">進階使用者</span> | Arch, Gentoo, LFS, Kali |
| <span style="color: #5d89ef">伺服器</span> | RHEL, Rocky, CentOS |
| | |
Note:
每個發行版各有特色
可以基於某個發行版進行改造,變成另一個發行版
Debian 系
Fedora 系
Opensuse
最常見的 Ubuntu 屬於 Debian 的分支版,Ubuntu 又還有 Lubuntu, Kubuntu, Ubuntu bridge,由 Canonical 開發
新手友善發行版:popos, elementary, zorin,以及各基於 Ubuntu 的衍伸版
ArchLinux 社群維護,滾動更新
其他 rolling: Manjaro, Tumbleweed. Artix
Gentoo
LFS
Steam deck 使用基於 Arch Linux 改裝的發行版,據說會有自己的 repository
---
<!-- .slide: data-background-color="#040707" data-background="https://upload.wikimedia.org/wikipedia/commons/thumb/c/cd/HypertextEditingSystemConsoleBrownUniv1969.jpg/1200px-HypertextEditingSystemConsoleBrownUniv1969.jpg" data-background-size="contain" data-background-repeat="repeat" data-background-opacity="0.3" data-transition="slide-in" -->
## 什麼是桌面環境?(DE)
<small>[早期的電腦](https://livingcomputers.org/Online-Resources/Online-Emulators.aspx)沒有圖形界面,僅可透過文字界面與系統互動</small>
桌面環境是在圖形界面上處理使用者輸入與視窗輸出、編排的一整套程式
| 1996 | 1996 | 1997 | 2006 | 2010 |
|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
| <div><img src="https://kde.org/stuff/clipart/logo/kde-logo-blue-transparent-128x128.png" width="128" height="128"><br><small>KDE</small></div> <!-- .element: class="fragment"--> | <div><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/5/5b/Xfce_logo.svg/1200px-Xfce_logo.svg.png" width="128" height="128"><br><small>xfce</small></div><!-- .element: class="fragment"--> | <div><img src="https://upload.wikimedia.org/wikipedia/commons/d/dd/Gnome-about-logo.png" width="128" height="128"><br><small>Gnome</small></div><!-- .element: class="fragment"--> | <div><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/3/3e/LXDE-logo.svg/1200px-LXDE-logo.svg.png" width="128" height="128"><br><small>LXDE</small></div><!-- .element: class="fragment"--> | <div><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/7/79/Unity_logo.svg/1200px-Unity_logo.svg.png" width="128" height="128"><br><small>Unity</small></div><!-- .element: class="fragment"--> |
<small>:bulb: 現在的終端機模擬器所支援的各種 [escape sequence](https://en.wikipedia.org/wiki/Escape_sequence) 還有 vim 的 `h` `j` `k` `l` 方向鍵<br>都是以前終端機的所確實在使用的組合鍵及鍵位</small><!-- .element: class="fragment"-->
Note:
精準講法 - 僅可使用 command line interface(cli) 在終端機上透過 shell 與系統互動
KDE 與 gnome 是最常見的兩種 DE,如果是筆電建議裝 gnome,本身設計上比較面向筆電。Gnome 作為 Ubuntu 的預設桌面(Ubuntu 曾經有一段時間想一統所有裝置而採用 Unity,但是後來失敗就改回 Gnome 了)基本上可以說是有最多的使用者,各式各樣奇怪怪的插件都有,有問題也好解決。Steam deck 是用 KDE 因為比較像 Windows。Gnome 自帶 Js 執行環境,十分方便開發插件,主題也是用 CSS ,如果你是網頁開發者應該會很好上手。KDE 的好東西大部分也都會被搬過來
要簡潔一點可以用 xfce,手不想離開鍵盤 wm 可以換 i3 (r/unixporn 上的炫砲截圖很多是 i3,極度 geek 那種)
真的想要長的像 mac 或 Windows: how to make gnome looks like windows and mac
https://en.wikipedia.org/wiki/IBM_2250
----
<!-- .slide: data-background-color="#040707" data-background="https://i.imgur.com/wMeEkj3.jpg" data-background-size="contain" data-background-repeat="no-repeat" data-background-opacity="1"-->
----
<!-- .slide: data-background-color="#040707" data-background="https://i.imgur.com/xNuO7kK.jpg" data-background-size="contain" data-background-repeat="no-repeat" data-background-opacity="1"-->
----
<!-- .slide: data-background-color="#040707" data-background="https://kde.org/announcements/plasma/5/5.21.0/plasma-dark.webp" data-background-size="contain" data-background-repeat="no-repeat" data-background-opacity="1"-->
----
<!-- .slide: data-background-color="#040707" data-background="https://i.imgur.com/gV5OvNJ.png" data-background-size="contain" data-background-repeat="no-repeat" data-background-opacity="1"-->
----
魔改 Gnome
<iframe height="500" width="120%" src="https://www.youtube-nocookie.com/embed/Z9NeWoDN7wc" allowfullscreen></iframe>
其他 DE 也可以!<small>想改的像 windows 或 mac 也可以</small>
----
| <h3>Gnome demo</h3> | |
| ----------------------------------------- | ---- |
| <br>Shell theme<br>Application theme<br>Icon<br>Cursor <small><span style="color: #aaa">(沒有無名小站那麼花俏)</span></small><br>Tons of extension<br>[Gnome-Look.org](https://www.gnome-look.org/p/1526503) | <iframe src="https://www.youtube-nocookie.com/embed/t-f3rGr03XU" height="350" width="500" allowfullscreen></iframe> |
----
可以改的超浮誇: [r/unixporn](https://www.reddit.com/r/unixporn)
例如 wm 換 i3,變得很 geek
----
* [可 i](https://i.redd.it/ck5cr05hj8a51.png)
* [Windows?!](https://i.redd.it/4mi4wmpiezf71.jpg)
* [KDE Plasma](https://i.redd.it/5mjm5s90e7m41.png)
----
Fedora, Debian, Ubuntu, SUSE Linux Enterprise, Red Hat Enterprise Linux, CentOS, Pop!\_OS, Oracle Linux, Endless OS, Tails, Solaris
預設使用 Gnome
---
<div class="shortlist">
## Linux desktop 優點
* 深度客製化,界面隨心所欲
* 龐大的社群及自製內容,且任何人都可以回饋及協助開發(翻譯!)
* 開發者友善,自帶多種工具以及 <span style="color: #f91713">p</span><span style="color: #f99a13">a</span><span style="color: #fcf802">c</span><span style="color: #23fc02">k</span><span style="color: #02f8fc">a</span><span style="color: #2323fc">g</span><span style="color: #a902fc">e</span> <span style="color: #fc02d6">m</span><span style="color: #fc0206">a</span><span style="color: #fc9402">n</span><span style="color: #fcfc02">a</span><span style="color: #02fc13">g</span><span style="color: #02fcef">e</span><span style="color: #024dfc">r</span>
* 原生的使用 Linux 上的技術: <br>QEMU/KVM, anbox, **docker**...etc.
</div>
---
* Valve 的加持下會有更多使用者及開發者投入
* 不太需要裝防毒軟體
* 不會被強迫更新
* 沒有使用者行為追蹤,沒有強迫登入帳號
* Win11 更新的一大亮點就是大幅改進的 WSL
* <span style="color: #aaa">直接裝 Linux 就好了,幹麻綁手綁腳</span>
Note:
package manager: 這才是安裝軟體的正確姿勢,winodws 簡直自殘
---
<div class="shortlist">
## Linux desktop 缺點
* 耗電量
* 中文輸入法後繼無人
* 還是需要一點門檻,非開箱即用
* 普及率不高而較少預裝和軟體支援
* 應用程式打包的格式不一樣所帶來的碎片化。為什麼不一樣?因為...
* <span style="color: #777">Snap store?</span> <span style="color: #999">Flatpak?</span> <span style="color: #ccc">Appimage?</span><br>[...🗳️...](https://mastodon.social/web/statuses/107070343285736507)
</div>
---
Linus Torvalds on why desktop Linux sucks (2014)
<iframe src="https://www.youtube.com/embed/Pzl1B7nB9Kc" width="120%" height="500" allowfullscreen></iframe>
<small>大多數觀點放到今天仍舊為真 :face_with_head_bandage: </small>
---
<div class="shortlist">
**No** <span style="color: red">**Adobe**</span> **!**
| Creative Software Alternatives |
| :------------------------------ |
| <font color="#fff"><span>**GIMP**</span></font> <font color="#999"> <span>**inkscape**</span></font> <font color="#fff"><span>**blender**</span></font> <font color="#999"> <span>**Darktable/RawThearapy** </span></font> <font color="#fff"> <span>**kdenlive/Olive**</span></font> <font color="#999"> <span>**Ardour/VCVRack**</span></font>|
more [alternatives......](https://twitter.com/XdanielArt/status/1434611199140896772)
</div>
Note:
偷曬作品
Linus: 需要 pre-installed (目前只有 dell 和一些專門賣 Linux 硬體的廠商
no PS on Linux :(
---
# 動手裝起來
如果害怕,可以先用虛擬機試試看!
---
### Ubuntu/Pop!OS/ElementaryOS 安裝
<div class="shortlist">
下載 `.iso` 並製作 Live boot USB
* Windows: use [rufus](https://rufus.ie/en/)
* Linux/Mac: `dd if=/path/to/iso of=/path/to/device`
</div>
----
<div class="shortlist">
### Boot with your flash drive
在開機後有製造商 logo 的時候瘋狂按 delete, F11 或 F12
In UEFI:
* secure boot off
* adjust boot device order
</div>
----

----

----
直接進入暫時的系統使用或真的裝起來

Note: [圖片來源](https://blog.twshop.asia/%E5%9C%A8-virtualbox-%E5%AE%89%E8%A3%9D-ubuntu-20-04/)
----
選擇語言、時區、鍵盤配置

----
第三方可以考慮勾一下,可避免掉一些驅動問題

----
硬碟分割、格式化: 雙系統? 只裝 Linux?

<small>若 Windows 和 Linux 要裝在同一顆硬碟,必須共用 EFI 分割區</small>
----

<small>也可以用 Windows 的分割工具分割<br>同磁碟上有 winodws 的話建議就用 windows 分割工具</small>
----
填寫使用者資料

----
watch it install.....

----
[Add ccns repository](https://mirror.ccns.ncku.edu.tw/howto/)
----
[如何使用](https://itsfoss.com/apt-command-guide/) Ubuntu 的 package manager `apt`
或是使用內建應用程式商店
---
<!-- .slide: data-background="https://i.redd.it/jmy6amhvieg41.jpg" data-background-size="contain" data-background-repeat="no-repeat" data-background-opacity="1"-->
----
<iframe src="https://www.steamdeck.com/en/tech" height="600" width="120%"></iframe>
----
<!-- .slide: data-background-color="#040707" data-background="https://i.imgur.com/Qr0WgsP.png" data-background-size="contain" data-background-repeat="no-repeat" data-background-opacity="1"-->
Note:
https://www.reddit.com/r/linuxmasterrace/comments/b28ug4/i_use_arch/
----
btw I use Arch
---
<div class="shortlist">
## Arch Linux 安裝<small>大致流程</small>
想試試看的話可以先用最新的[官方安裝腳本](https://www.phoronix.com/scan.php?page=news_item&px=Arch-Linux-Does-Archinstall)玩玩看。docker 版不建議,據說問題多
安裝參考文件:
* [official guide](https://wiki.archlinux.org/title/Installation_guide)
* [第三方參考](https://archlinuxstudio.github.io/ArchLinuxTutorial/)
Arch Wiki 是 Linux 知識寶庫,及便是其他發行版使用者也可以參考
</div>
Note:
[The Arch friend](https://www.reddit.com/r/linuxmasterrace/comments/f2jlpi/the_arch_friend/)
----
硬碟分割
* `fdisk -l`
* `fdisk /dev/the_disk_to_be_partitioned`
* 仔細閱讀 official guide 再依據機器狀況決定要怎麼割
* Wiki: [Duel boot with Windows](https://wiki.archlinux.org/title/Dual_boot_with_Windows)
----
格式化
* `mkfs.ext4 /dev/root_partition`
* 或其他格式
----
掛載
* `mount /dev/root_partition /mnt`
----
安裝主要系統
* `pacstrap /mnt base linux linux-firmware`
----
設定系統(包含設定使用者跟密碼)
* 產生 fstab 檔案 `genfstab -U /mnt >> /mnt/etc/fstab`
* 別忘了 `arch-chroot /mnt` 再進行其他設定
----
安裝 Boot Loader
* 如果是用 grub 記得配 `os-prober`,自動偵測讚
----
安裝路連線套件
* wiki 上說可能需要裝但是我覺得一定要裝不然沒有固定 IP 的會不能連網
* [Network Managers](https://wiki.archlinux.org/title/Network_configuration#Network_managers) 選一個裝<small>Gnome 就裝 `NetworkManager`,懶得選就全家桶 `Systemd-Networkd`,不然至少也要有 `dhcpcd` 來索取 IP</small>
----
重開機
----
安裝圖形化界面
* Gnome: `pacman -S gnome gnome-extra`, `systemctl enable gdm`
----
[Add ccns repository](https://mirror.ccns.ncku.edu.tw/howto/)
and
anything else you want
---
## 常見問題
**Display driver:**
wayland + N 卡 = [祝你好運!](https://arewewaylandyet.com/)
如果開機開到螢幕黑不會動可以先加 `nomodeset` 參數,暫時能開機後換成 NVIDIA 的驅動或是直接換成 X11
Windows 升級或是筆電電池沒電都有可能會重製 UEFI 設定
---
<!-- .slide: data-transition="concave-in concave-out" -->
| <h2>CCNS 鏡像站</h2> |
|:-------------------:|
| **Arch Linux** <span style="color: #aaa">**Rocky Linux**</span> **Alpine Linux** <span style="color: #aaa">**CentOS**</span> **Ubuntu/Debian** <br><iframe src="https://mirror.ccns.ncku.edu.tw/" height="400" width="120%"></iframe>|
Note:
解釋鏡像站
---
## Pre-installed linux
### Linux laptop
Dell XPS, framework, Librem 14, pine book, [Musicha musictop](https://www.facebook.com/musichamusictop/), System76 laptops
<span style="color: #aaa">(no msi, no asus, no acer)</span>
---
### Linux phone
distro: Ubuntu touch, Manjaro, Arch, Mobian, postmarketOS
Hardware: pine phone, Librem 5, Fairphone
https://fosstodon.org/@linmob
---
### Linux watch
[Pine Time](https://www.pine64.org/pinetime/)
---
推薦安裝的工具
* 小提醒:建議網路上查到的指令不要就直接複製貼上,先看懂再貼
* [Nyan Cat](https://github.com/klange/nyancat)
* Audio: Carla <br><small>Linux Audio Production 是另一個很有趣的議題</small>
* VirualCam: [v4l2loopback](https://github.com/umlaeute/v4l2loopback) kernel module
* Gconnect/Kconnect: 連接電腦和手機
----
* [PowerTOP](https://chusiang.gitbooks.io/working-on-gnu-linux/content/08.power-management-with-powertop.html)
* Wine/proton: 跑那些 windows only 的東西
* QEMU + KVM: 效率比較接近原生
* EastEffect: 給音訊輸出加點效果
Note:
Wine/proton 有點肥,因為基本上他就是把整個 windows 應用程式所需的 Library 和 runtime 都搬過來了
---
## 偷推廣
* 遊戲引擎請愛用 Godot (MIT),不要用坑一堆又跟不上時代的 Unity
* Linux 上的數位音樂製作資源多又有彈性的工作流程還有超低延遲的 kernel
---
### 進階議題
What are those partitions?
----
[Wayland vs X11](https://arewewaylandyet.com/)
----
[Systemd, Yay?Nay?](https://nosystemd.org/)
----
User 權限, root , sudoer(doas)
----
[目錄結構](https://linuxhandbook.com/linux-directory-structure/)
----
[How a system is booted](https://wiki.archlinux.org/title/Arch_boot_process#Boot_loader)
----
fstab
----
[Swap, zram and OOM killer](https://wiki.archlinux.org/title/improving_performance#zram_or_zswap)
----
r/unixporn
----
COSCUP arch 議程軌
----
audio server - ALSA? Jack? Pipiewire?
----
[Windows System](https://en.wikipedia.org/wiki/Windowing_system#Display_server)
----
Everything is a file
----
換 kernel、kernel module
----
對 Linux kernel 更進階的內容有興趣的話歡迎一起挑戰下學期的 jserv 開的 「Linux 核心設計」「Linux 核心實作和改進」
---
<iframe height="500" width="120%" src="https://www.youtube-nocookie.com/embed/vWwvh3036Fw" allowfullscreen></iframe>
---
Canonical 的春秋大夢 - Unity
---
# Linux 相關笑話
* `sudo rm -rf /`
* r/linuxmasterrace
* [NixCraft](https://twitter.com/nixcraft)
* 可 i
* [Nyarch](https://www.reddit.com/r/linuxmasterrace/comments/lxfg9j/someone_posted_uwuntu_so_i_made_nyarch/)
* [Fedowa](https://www.reddit.com/r/linuxmasterrace/comments/lxjp3s/saw_nyarch_and_had_to_do_fedowa/)
* [uwuntu](https://www.reddit.com/r/linuxmasterrace/comments/lwsnul/uwuntu/)
* [Gentuturu](https://www.youtube.com/watch?v=ImhfIv5NSqY)
---
We've all been there.....
https://twitter.com/nixcraft/status/1383700478547034124
:penguin: 歡迎踏入 Linux 的世界! :penguin:
https://discord.ccns.io
Note:
感謝 CCNS 讓我有機會可以上台和大家分享
有任何疏失歡迎指正
---
## Linux Audio
Distro: Ubuntu Studio, AV Linux, **KX Studio**
{"metaMigratedAt":"2023-06-16T11:58:49.690Z","metaMigratedFrom":"YAML","title":"CCNS 定期聚 — Steam 的掌上遊戲機都裝 Linux 了,你的電腦也該裝了吧","breaks":true,"description":"不再為 Windows 強迫更新而煩惱,一起來把電腦變得又酷又炫吧!本次定期聚將簡單介紹 Linux desktop 的世界,從大家熟悉的 Ubuntu 到輕量、簡潔的 ArchLinux ,Linux desktop 比你想像的酷炫蝦趴!現場也會帶各位親手安裝一份 Linux ,歡迎帶電腦和一根可以被格式化的隨身碟來,活動結束就可以抱著企鵝回家!","image":"https://cdn.discordapp.com/attachments/332559457114521600/894948753474199552/LinuxInside.png","slideOptions":"{\"progress\":true,\"slideNumber\":false,\"preloadIframes\":true,\"viewDistance\":5,\"help\":false,\"showNotes\":false}","contributors":"[{\"id\":\"fc8603a8-fb74-41e4-86f9-f8a28701b0d6\",\"add\":35704,\"del\":15367}]"}