Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Steam Deck, Linux Container and the Arch Community
Search
Young
July 30, 2022
Programming
3
860
Steam Deck, Linux Container and the Arch Community
Coscup 2022, Taiwan
Young
July 30, 2022
Tweet
Share
Other Decks in Programming
See All in Programming
見えないメモリを観測する: PHP 8.4 `pg_result_memory_size()` とSQL結果のメモリ管理
kentaroutakeda
0
160
たのしいparse.y
ydah
3
120
talk-with-local-llm-with-web-streams-api
kbaba1001
0
180
Go の GC の不得意な部分を克服したい
taiyow
2
770
クリエイティブコーディングとRuby学習 / Creative Coding and Learning Ruby
chobishiba
0
3.9k
testcontainers のススメ
sgash708
1
120
CSC305 Lecture 25
javiergs
PRO
0
130
Semantic Kernelのネイティブプラグインで知識拡張をしてみる
tomokusaba
0
180
アクターシステムに頼らずEvent Sourcingする方法について
j5ik2o
4
210
Monixと常駐プログラムの勘どころ / Scalaわいわい勉強会 #4
stoneream
0
270
RWC 2024 DICOM & ISO/IEC 2022
m_seki
0
210
「Chatwork」Android版アプリを 支える単体テストの現在
okuzawats
0
180
Featured
See All Featured
The Cult of Friendly URLs
andyhume
78
6.1k
How to Ace a Technical Interview
jacobian
276
23k
It's Worth the Effort
3n
183
28k
Rails Girls Zürich Keynote
gr2m
94
13k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Six Lessons from altMBA
skipperchong
27
3.5k
Automating Front-end Workflow
addyosmani
1366
200k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.4k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
5
440
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Side Projects
sachag
452
42k
Transcript
從 Steam Deck 看 Arch Linux 與 Container Steam Deck,
Linux container and the Arch Community 2022 Jul 30
Suiong Ng 2
Suiong Ng 3 Steam Deck 與我
Suiong Ng 4 電動與我 • Arch 使用者 • 我的 Arch
有裝 Steam • 有 Windows VM 有設定 GPU pcie passthrough • 休閒玩家、沒有很常打電動 平常“沒有”打電動的習慣 也沒有任何家機掌機,可以說是電動初心者
Suiong Ng 5 我怎麼發現 Steam Deck 這個酷東西的 註:該朋友對 Linux 一竅不通,但熟悉各種數位科技
Suiong Ng 6 訂購囉! 座標:美國 • 負責訂購 Steam Deck •
回台灣時帶主機回來給我玩 座標:新竹 • 提供 Linux 問題問到飽服務
Suiong Ng 7 一波三折的訂購過程
Suiong Ng 8 開箱 結果在沒有任何協助的情況下,非 Linux 使用者也可 以輕鬆容易地安裝通訊軟體 , 看圖程式
, 瀏覽器… 等
Suiong Ng 9 Flatpak 與 Steam Deck SteamOS 改變了 Arch
安裝軟體的方式
Suiong Ng 10 問題:為什麼一次只能看一張圖片? gThumb 僅顯示一張圖 從檔案總管點選圖片
Suiong Ng 11 Steam Deck 是怎麼安裝程式的
Suiong Ng 12 • Pacman (Arch 套件 ) • 軟體會安裝至
/etc/, /usr/lib, /usr/bin/ 等多個目錄下 • Flatpak (container 格式 ) • 軟體會安裝至 /var/lib/flatpak/ • 程式無法讀取 container 外面的檔案 Arch SteamOS 3 安裝軟體的方式和 Arch 不同 Manjaro’s pacman frontend (Pamac) SteamOS’ frontend (KDE Discover)
Suiong Ng 13 剛剛發生了什麼事? ↖ 檔案總管的圖片位置 ↖gThumb 的圖片位置 這裡的 gThumb
是 flatpak 應用程式 所以沒辦法讀取 $HOME/.local/ 目錄 為了讓 gThumb 讀取這張圖片 flatpak 另外把這張圖放入 container 中
Suiong Ng 14 剛剛發生了什麼事? gThumb 預設只能讀取這些目錄 Flatpak 額外允許這張圖片
Suiong Ng 15 • 軟體更新會把整個 rootfs 換掉 也就是用 pacman 裝的軟體會不見
那在 Steam Deck 上 可以用 pacman 來安裝軟體嗎? 可以的,但是 ... △ pacman 安裝的 gpicview flatpak 安裝的 gThumb
Suiong Ng 16 Steam Deck 系統設計 和 Arch 有什麼不一樣
Suiong Ng 17 • Debian Linux • 安裝軟體 apt-get install
firefox • Arch Linux 實際上和 Arch 很不一樣 ( 類 immutable rootfs) • 安裝軟體 pacman -S firefox flatpak install flathub org.mozilla.firefox 3.0 (Steam Deck) Steam OS 3 就是 Arch Linux 嗎 不容易個人化成喜歡的樣子 例如:假如你不喜歡 KDE 2.0
Suiong Ng 18 SteamOS 和 Arch Linux 不一樣 SteamOS 和
Arch Linux 不一樣 SteamOS 和 Arch Linux 不一樣 很重要所以要講三次 !!! 系統 不 能改, 不 容易個人化
Suiong Ng 19 和 Arch 完全不同的更新方式 /home (esp) SD 卡
(A) /efi (A) rootfs (A) /var (B) /efi (B) rootfs (B) /var /home/.steamos/offload/var/lib/flatpak ../var/lib/docker ../var/cache/pacman ../srv ../root ... bind mount 交替更換 (A) / (B) 兩個系統 不更動 使用者的檔案 和 應用程式 應用程式
Suiong Ng 20 這樣子設計有什麼好處? • 穩定好維護,不易壞 • A / B
交替更新,不怕更新失敗 • 重新安裝、重設系統時 可以選擇保留 應用程式 和 資料 系統 獨立分開 且 唯讀 程式、遊戲、檔案都放在 /home 的設計
Suiong Ng 21 唯讀 和 A/B 更新其實很常見 • Android 7+
Seamless A/B update • Chrome OS A/B update • MacOS Catalina read-only system volume Big Sur sealed system volume 更新不需要關機再安裝
Suiong Ng 22 Arch Linux 與 container
Suiong Ng 23 在 Arch Linux 上安裝軟體 • 官方 Repository
pacman -S firefox • AUR yay -S librewolf-bin • Flatpak / Snap / Appimage / docker ... flatpak install flathub org.mozilla.firefox • 直接下載 binary wget https://download-installer.cdn.mozilla.../firefox-91.11.0esr.tar.bz2 tar xvf firefox-91.11.0esr.tar.bz2 ./firefox/firefox ( 我只相信官方 Repo) ( 我想試試社群版本 ) ( 聽說新版有硬體加速 ) ( 我想裝更舊的版本 ) ( 某些特定版本只能手動 下載了 ) Arch Linux 給了使用者很大的彈性、選擇的自由 但是這樣子的自由,對於非 Linux 的 Steam Deck 使用者來說,不太重要 Container→
Suiong Ng 24 Container 已是時下流行 在 Ubuntu 上預設只能透過 Snap (container)
安裝 Firefox
Suiong Ng 25 想像一個麻瓜 (container) 版本的 Linux • 不熟數位產品的人,也能簡單上手 •
唯讀、穩定的系統 • 不怕系統更新失敗 • 系統升級容易、也可以降級 • 可以安裝多個版本的應用程式,不用煩惱相依性 • 非常簡單的就能套用各種安全性設定 • 應用程式各自獨立,隔離在自已的沙盒中 預設使用 container 有什麼好處?
Suiong Ng 26 麻瓜版本的的 Linux Distro. MicroOS (OpenSUSE) SilverBlue (Fedora)
當然, SteamOS 3 (Steam Deck) 也是!
Suiong Ng 27 Arch Linux 與 Container Q1: 如果你有一台 Steam
Deck 你會想用 Steam OS 3 嗎? 還是會想重新安裝 Arch Linux + steam 呢? Q2: 你覺得 Arch 社群,是不是也該有類似 MicroOS 或 SilverBlue 那樣的衍生版?
Suiong Ng 28 Container 有什麼安全性上的好處?
Suiong Ng 29 應用程式隔離在 container 中有什麼好處 範例: Firefox 曾有安全性漏洞,駭客可以讀取任意檔案 例如偷走存在
~/.ssh/ 下的 ssh key 而透過 Flatpak 安裝的 Firefox ,則預設無法讀取家目錄
Suiong Ng 30 XKCD : Authorization 傳統 unix 的權限設計,已不敷使用 各別應用程式需要更細膩的存取控制
https://xkcd.com/1200/
Suiong Ng 31 如果不喜歡 container 但又想要安全性 • namespace, seccomp, capabilities
• Firejail • Bubblejail (Bubblewrap) Container 用了這些技術來隔離應用程式 或者,傳統的 LSM 也很實用 例如用 apparmor 或 selinux 禁止 firefox 讀取 ~/.ssh/ 如果想把用 pacman 安裝的程式,也用上 面的技術隔離起來,可以試試
Suiong Ng 32 Flatpak 和 bubblejail / firejail 一樣安全嗎? 既然
Flatpak 和 bubblewrap (bubblejail) 系出同源 也使用同樣的技術,那安全性上是不是就沒有差別? • 多數程式沒有 firejail / bubblejail 設定檔 必須自行撰寫 • Firejail / bubblejail 設定檔維護問題 例如不同的 Distro. 路徑不同、依賴的涵式庫不同 • “ 容易使用”很重要 理論上是,可是
Suiong Ng 33 Thank You