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
850
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
Arm移行タイムアタック
qnighy
0
310
エンジニアとして関わる要件と仕様(公開用)
murabayashi
0
280
シェーダーで魅せるMapLibreの動的ラスタータイル
satoshi7190
1
480
みんなでプロポーザルを書いてみた
yuriko1211
0
260
Jakarta EE meets AI
ivargrimstad
0
600
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
0
110
レガシーシステムにどう立ち向かうか 複雑さと理想と現実/vs-legacy
suzukihoge
14
2.2k
ヤプリ新卒SREの オンボーディング
masaki12
0
130
受け取る人から提供する人になるということ
little_rubyist
0
230
as(型アサーション)を書く前にできること
marokanatani
9
2.6k
Nurturing OpenJDK distribution: Eclipse Temurin Success History and plan
ivargrimstad
0
880
Compose 1.7のTextFieldはPOBox Plusで日本語変換できない
tomoya0x00
0
190
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
654
59k
Producing Creativity
orderedlist
PRO
341
39k
How GitHub (no longer) Works
holman
310
140k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
109
49k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
720
Raft: Consensus for Rubyists
vanstee
136
6.6k
How to Ace a Technical Interview
jacobian
276
23k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
A Tale of Four Properties
chriscoyier
156
23k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
We Have a Design System, Now What?
morganepeng
50
7.2k
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