作者头像
Madman

GitLab 是用 Ruby 和 Go 开发的开源版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面进行访问公开的或者私人项目。它拥有与 Github 类似的功能,方便团队协作开发、管理,同时还可以实现完整的 CI(持续集成)、CD(持续发布)流程

systemd-min.jpg

systemd 是一个 Linux 系统基础组件的集合,提供了一个系统和服务管理器,运行为 PID 1 并负责启动其它程序。功能包括:支持并行化任务;同时采用 socket 式与 D-Bus 总线式激活服务;按需启动守护进程(daemon);利用 Linux 的 cgroups 监视进程;支持快照和系统恢复;维护挂载点和自动挂载点;各服务间基于依赖关系进行精密控制。systemd 支持 SysV 和 LSB 初始脚本,可以替代 SysVinit。除此之外,功能还包括日志进程、控制基础系统配置,维护登陆用户列表以及系统账户、运行时目录和设置,可以运行容器和虚拟机,可以简单的管理网络配置、网络时间同步、日志转发和名称解析等

Upstart-min.jpg

Upstart 由 Ubuntu 所开发,它基于事件驱动模型(event-based),能够在监听到事件发生后以异步的方式响应事件,从而实现并行启动服务进程(引导过程更快)。同时可以按需启动服务,比如在系统运行期间插入 USB 设备后,会触发相应的事件,此时 Upstart 才启动对应的服务

SysVinit-min.jpg

SysVinit 是 System V 风格的 init 系统,它源于 System V 系列的 UNIX,比 BSD 风格的 init 更灵活,CentOS 5 的初始化程序就采用了它。SysVinit 采用脚本的方式来串行启动服务(速度较慢),一般设置了 6 个运行级别(runlevel),它的默认配置文件 /etc/inittab 中指明了系统启动的默认运行级别,通常是 3 或者 5,以及每个运行级别需要到哪些目录下执行哪些脚本,比如切换到 runlevel 3 时,就会到 /etc/rc3.d/ 目录下先依次停止以 K 开头的服务脚本,再依次启动以 S 开头的服务脚本