现行的Linux distributions中主流的有两种init方式:一种是广为流传的System V initialization,它来源于Unix并且至今仍被各种Linux distributions所采用;另一种是近几年提出的Upstart方式,基于事件机制,系统的所有服务,任务都是由事件驱动的。据我所知,采用后一种方式的目前有Ubuntu(6.10 and later),Fedora(9.10 and later),Debian(optional)。虽然采用Upstart的发行版并不多,但它旨在取代旧式的System V initialization。
两种启动方式的不同,导致了系统中启动时读取的配置文件是不同的。如System V initialization这种方式下有inittab这个文件,但upstart下是没有的。upstart方式下部分版本用的配置文件目录有event.d,还有一些版本配置文件目录是init.d。但upstart为了能和System V initialization兼容,两者启动过程要读取的配置文件差不多的(自我觉得~),只是说一种是串行方式顺序执行的,而另一种则是事件驱动型的。
System V initialization启动流程可参考
Upstart启动流程可参考:
ubuntu为什么没有/etc/inittab文件? 深究ubuntu的启动流程分析
最后,上面的一些启动流程,还未涉及到xwindow的启动,到用户GUI的登录中间还有很多启动流程,当然选择不启动wm除外。