Upstart

{{Infobox software
| name = Upstart
| logo =
| screenshot =
| caption =
| collapsible =
| author = Scott James Remnant
| developer = Canonical公司
| released =
| latest release version = 1.13.2
| latest release date =
| latest preview version =
| latest preview date =
| frequently updated =
| programming language = C
| operating system = Linux
| platform =
| size =
| language =
| status =
| genre = 初始化-{zh:守护进程;zh-hans:守护进程;zh-hant:常驻程式;zh-cn:守护进程;zh-tw:常驻程式;zh-hk:常驻程式;zh-sg:守护进程;zh-mo:常驻程式;}-
| license = GPLv2
| website =
}}

Upstart是一个基于事件的init程式 ,用于替代传统的init(多种类Unix计算机操作系统启动时用于执行任务的程序)。它是由Canonical公司前雇员Scott James Remnant所写。

解释
传统的init进程原本只负责在开机后将计算机带入正常运行状态,并且在正常关机前关闭服务。因此,它的设计是严格同步的,且会阻塞未来的任务,直到完成当前任务。因为受限于准备或清除函数,它的任务也是事先定义的。这使得它无法简洁地处理现代桌面计算机上的各种非启动任务,其中包括:

  • 机器运行时添加或删除U盘和其他便携式存储/网络设备
  • 发现并扫描新存储设备而不锁定系统,尤其是当磁盘没被扫描就不运行时
  • 固件需要在检测设备之后、在它可用之前加载

Upstart的事件驱动模型允许它以异步方式对生成的事件作出回应。

设计
Upstart是异步工作的;它在系统运行时监督服务,并且在开关机时启动和关闭任务和服务。

对sysvinit简单的过渡和完善的向后兼容是明确的设计目标;因此,Upstart能运行未经修改的sysvinit脚本。因此,与大多数其他的init替代(除了systemd和OpenRC)不同,它们通常假设并要求彻底的过渡,以正常运行,且不支持新旧启动方法混合的环境。

通过使用initctl输入自定义的单一事件,或整合更多更复杂事件的事件桥,Upstart允许扩展其事件模型。默认情况下,Upstart包括接口(socket)、dbus、udev、文件及dconf事件桥;另外,可以有更多种桥(例如Mach端口桥,或devd(FreeBSD系统上)桥)。

采用
使用Upstart作为默认init系统的Linux发行版及其他基于Linux内核的操作系统:

  • Upstart被用于谷歌的Chrome OS。

支持或已在一定程度上支持Upstart,但弃用它作为默认init系统的Linux发行版:

  • Debian在考虑切换至Upstart后,决定systemd将从jessie版(Debian 8)开始作为默认init系统。
  • Ubuntu首次在2006年底6.10 (Edgy Eft)版中包含Upstart,以取代sysvinit。Ubuntu 9.10(Karmic Koala) Alpha 6中推出可原生启动的Upstart。反过来,在2014年Debian项目决定在Debian 8版本中使用systemd后,Ubuntu在15.04起亦改用systemd,以保持与上游一致。
  • 在Fedora 9中,Upstart替换了sysvinit,然而,systemd在Fedora15版本替代了Upstart。
  • 红帽在他们的Red Hat Enterprise Linux 6中包含了Upstart。因此,它也被用于RHEL 6的变体,如CentOS、Scientific Linux和Oracle Linux。RHEL 7使用systemd取代upstart。
  • openSUSE在11.3 Milestone 4版包含了upstart,但未作为默认。在openSUSE 12.1版中,systemd取代Upstart作为默认init系统。
  • Upstart被用于惠普Palm Pre、Palm Pixi(在Palm被惠普收购之前)、HP Veer、HP Pre 3智能手机HP TouchPad和平板中的webOS并为N9和N950手机上的MeeGo保留,尽管MeeGo与Moblin合并后正向systemd过渡。

*

参见

  • 服务管理工具
  • OpenRC
  • systemd

参考
外部链接

*

评论 (0)

  • 还没有评论,来抢沙发吧。