1.Plymouth源代码目录介绍
源码包里最重要的就是src这个目录,这是程序的源代码目录。下面将介绍src目录的内容,src目录的主要内容如下所示。这里只列举出了与文本模式启动显示相关的主要文件,并非全部。
./src
├── client
│ ├──plymouth.c # plymouth客户程序
├── libply
│ ├──ply-event-loop.c #plymouth启动过程中的事件处理流程
├──libply-splash-core
│ ├──ply-text-progress-bar.c #文本模式下使用到的画面刷新函数
├──libply-splash-graphics
├── plugins
│ ├── controls
│ ├── renderers
│ └── splash #plymouth的splash插件目录
│ ├── details
│ ├── script #该模块负责解析scripting脚本语言编写的启动代码
│ └── text #文本模式下的启动splash插件
├──upstart-bridge
├── viewer
├──main.c #plymouthd启动的主函数
└──ply-boot-server.c #plymouthd中负责与client通信的代码
Plymouth的主题(theme)使用splash插件(plugins)来完成实际的启动界面显示工作。不同的主题使用到不同的splash插件。例如,红帽6的Ring主题使用的是two-step插件来显示启动画面的,许多主题使用的是script插件,这个插件支持scripting语言,可以更方便地实现我们想要的启动效果。文本模式下的启动界面,则是由text插件负责的。
2. Plymouth启动过程介绍
Plymouth在系统启动的过程中由initramfs中的init启动。Init分别启动Plymouthd守护进程和plymouth客户程序。由plymouth客户程序,通过Socket向Plymouthd守护进程发送show-splash,开始显示启动画面。同时,ply_boot_splash