2013年3月10日

KDE Plasma 桌面現在可以更快速啟動

Sessionk 是一個新的元件,可以讓 KDE Plasma 桌面更快地啟動。

Sessionk 已經能夠在三秒內載入 KDE Plasma 桌面:



大約 7 秒可以載入完整的 KDE Plasma 桌面:



此外使用 Sessionk,可以大約 4 秒內載入 Razor-qt 桌面:




作者 Daniel Nicoletti 解釋 KDE 桌面什為麼要花這麼長時間來載入:

1. kdm 啟動 X、DBus、startkde
2. startkde 執行一些 X 調用 (使用命令列工具) 來設定滑鼠指標、RandR
3. startkde 啟動 kdeinit 載入 KCMInit 模組 (大部分與上面所述相同,但是程式碼在 KDE 模組中)— — 需要 2 秒左右
4. kdeinit 還會自動啟動 kded,在載入 KCModules  phase= 0 或 1
5. startkde 接者啟動 ksmserver,但只會在工作階段關閉後回復。所以 startkde 文稿繼續執行並且退出 X session
6. ksmserver 現在會啟動視窗管理器,通常是 KWin。這會使用 4 秒,以確保 KWin 有足夠的時間來啟動。
7. 4 秒後載入後,ksmserver 會啟動 autostart phase 0、1、2 在 phases apps 如 Plasma、 nepomuk、polkit-kde 應用程式
8. 在所有這些 phases 回報完成後,ksmserver 會還原使用者工作階段 (如果這樣設定的話) 啟動使用者關機時開啟的應用程式。


sessionk 改進後的流程:

1. kdm 啟動 X、DBus、sessionk
2. sessionk 會設定一些東西,包括快捷鍵,由於 kglobalaccel 會同時載入 kdeinit
3. kdeinit 自動載入 kded 和 klauncher (載入 kded,但沒有任何模組)
4. 當 klauncher 載入時,sessionk 會同時啟動 KWin 和 Plasma
5. 如果一個桌面視窗建立,sessionk 會監聽 X events。然後會通知 KDED 要載入的所有模組
6. 所有的 kded 模組載入 autostart phase 0、1、2(載入 policykit-kde、nepomuk......)
7. 還原使用者關機時開啟的應用程式 (TODO)



來源:1, 2, 3… Plasma!

沒有留言:

張貼留言