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
910
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
Android 16 × Jetpack Composeで縦書きテキストエディタを作ろう / Vertical Text Editor with Compose on Android 16
cc4966
2
260
Azure SRE Agentで運用は楽になるのか?
kkamegawa
0
2.4k
testingを眺める
matumoto
1
140
ぬるぬる動かせ! Riveでアニメーション実装🐾
kno3a87
1
230
機能追加とリーダー業務の類似性
rinchoku
2
1.3k
さようなら Date。 ようこそTemporal! 3年間先行利用して得られた知見の共有
8beeeaaat
3
1.5k
go test -json そして testing.T.Attr / Kyoto.go #63
utgwkk
3
310
Rancher と Terraform
fufuhu
2
550
Testing Trophyは叫ばない
toms74209200
0
890
速いWebフレームワークを作る
yusukebe
5
1.7k
Kiroで始めるAI-DLC
kaonash
2
610
アルテニア コンサル/ITエンジニア向け 採用ピッチ資料
altenir
0
110
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
696
190k
Producing Creativity
orderedlist
PRO
347
40k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
Scaling GitHub
holman
463
140k
GraphQLとの向き合い方2022年版
quramy
49
14k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.7k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
188
55k
Done Done
chrislema
185
16k
Statistics for Hackers
jakevdp
799
220k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Rails Girls Zürich Keynote
gr2m
95
14k
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