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
870
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
盆栽転じて家具となる / Bonsai and Furnitures
aereal
0
1.8k
週次リリースを実現するための グローバルアプリ開発
tera_ny
1
1.2k
ある日突然あなたが管理しているサーバーにDDoSが来たらどうなるでしょう?知ってるようで何も知らなかったDDoS攻撃と対策 #phpcon.2024
akase244
2
7.7k
毎日13時間もかかるバッチ処理をたった3日で60%短縮するためにやったこと
sho_ssk_
1
540
『改訂新版 良いコード/悪いコードで学ぶ設計入門』活用方法−爆速でスキルアップする!効果的な学習アプローチ / effective-learning-of-good-code
minodriven
28
4.1k
ASP.NET Core の OpenAPIサポート
h455h1
0
110
chibiccをCILに移植した結果 (NGK2025S版)
kekyo
PRO
0
130
Amazon Nova Reelの可能性
hideg
0
190
QA環境で誰でも自由自在に現在時刻を操って検証できるようにした話
kalibora
1
140
PHPカンファレンス 2024|共創を加速するための若手の技術挑戦
weddingpark
0
140
PHPで作るWebSocketサーバー ~リアクティブなアプリケーションを知るために~ / WebSocket Server in PHP - To know reactive applications
seike460
PRO
2
770
DevinとCursorから学ぶAIエージェントメモリーの設計とMoatの考え方
itarutomy
0
130
Featured
See All Featured
Bash Introduction
62gerente
610
210k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Designing on Purpose - Digital PM Summit 2013
jponch
116
7.1k
A better future with KSS
kneath
238
17k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
173
51k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
230
52k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Building an army of robots
kneath
302
45k
Typedesign – Prime Four
hannesfritz
40
2.5k
Embracing the Ebb and Flow
colly
84
4.5k
4 Signs Your Business is Dying
shpigford
182
22k
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