Upstart
Upstart是一个基于事件的init程式 ,用于替代传统的init(多种类Unix计算机操作系统启动时用于执行任务的程序)。它是由Canonical公司前雇员Scott James Remnant所写。
原作者 | Scott James Remnant |
---|---|
開發者 | Canonical公司 |
初始版本 | 2006年8月24日 |
穩定版本 | 1.13.2[1] (2014年9月4日 ) |
源代码库 | |
编程语言 | C |
操作系统 | Linux |
类型 | 初始化常駐程式 (守护 是大陸用語) |
许可协议 | GPLv2 |
网站 | upstart |
解释
传统的init进程原本只负责在开机后将计算机带入正常运行状态,并且在正常关机前关闭服务。因此,它的设计是严格同步的,且会阻塞未来的任务,直到完成当前任务。因为受限于准备或清除函数,它的任务也是事先定义的。这使得它无法简洁地处理现代桌面计算机上的各种非启动任务,其中包括:
Upstart的事件驱动模型允许它以异步方式对生成的事件作出回应。[2]
设计
Upstart是异步工作的;它在系统运行时监督服务,并且在开关机时启动和关闭任务和服务。
对sysvinit简单的过渡和完善的向后兼容是明确的设计目标;[3]因此,Upstart能运行未经修改的sysvinit脚本。因此,与大多数其他的init替代(除了systemd和OpenRC)不同,它们通常假设并要求彻底的过渡,以正常运行,且不支持新旧启动方法混合的环境。[4]
通过使用initctl输入自定义的单一事件,或整合更多更复杂事件的事件桥,Upstart允许扩展其事件模型。[5]默认情况下,Upstart包括接口(socket)、dbus、udev、文件及dconf事件桥;另外,可以有更多种桥(例如Mach端口桥,或devd(FreeBSD系统上)桥)。[6]
采用
使用Upstart作为默认init系统的Linux发行版及其他基于Linux内核的操作系统:
支持或已在一定程度上支持Upstart,但弃用它作为默认init系统的Linux发行版:
- Debian在考虑切换至Upstart后,[8]决定systemd将从jessie版(Debian 8)开始作为默认init系统。[9]
- Ubuntu首次在2006年底6.10 (Edgy Eft)版中包含Upstart,以取代sysvinit。Ubuntu 9.10(Karmic Koala) Alpha 6中推出可原生启动的Upstart。[10]反过来,在2014年Debian项目决定在Debian 8版本中使用systemd后,Ubuntu在15.04起亦改用systemd,以保持与上游一致。[11][12]
- 在Fedora 9中,Upstart替换了sysvinit,然而,systemd在Fedora15版本替代了Upstart。[13][14]
- 红帽在他们的Red Hat Enterprise Linux 6中包含了Upstart。[15]因此,它也被用于RHEL 6的变体,如CentOS、Scientific Linux和Oracle Linux。RHEL 7使用systemd取代upstart。[16][17]
- openSUSE在11.3 Milestone 4版包含了upstart,但未作为默认。[18]在openSUSE 12.1版中,systemd取代Upstart作为默认init系统。[19]
- Upstart被用于惠普Palm Pre、Palm Pixi(在Palm被惠普收购之前)、HP Veer、HP Pre 3智能手机HP TouchPad和平板中的webOS[20]并为N9和N950手机上的MeeGo保留,尽管MeeGo与Moblin合并后正向systemd过渡。
- Kindle 在固件也使用 Upstart 来控制设备的启动及服务。
参考
- . Freecode.com. [2014-09-04].
- Remnant, Scott James. . Netsplit. 2006-08-26 [2009-09-12]. (原始内容存档于2009-09-04).
- , (605007), Ubuntu, [2014-01-27], (原始内容存档于2020-06-12).
- , , Canonical, [2014-01-27], (原始内容存档于2020-05-26).
- . Canonical. [26 January 2014]. (原始内容存档于2014-02-14).
|chapter=
被忽略 (帮助) - . Canonical. [26 January 2014]. (原始内容存档于2014-02-14).
|chapter=
被忽略 (帮助) - , Google, [25 January 2014]
- Petter Reinholdtsen, , Debian.org, 2009-09-05
- , Lwn.net, 2014-02-11 [2014-02-11], (原始内容存档于2014-02-22)
- , About (Ubuntu)
- Shuttleworth, Mark. . [14 February 2014]. (原始内容存档于2014-03-22).
- . [2017-10-17]. (原始内容存档于2015-06-11).
- , 2010-07-13 [2010-07-13]
- . Linux Weekly News. 2010-09-14 [2010-09-17].
- . Red Hat Enterprise Linux 6: Technical Notes. 红帽公司. [2013-12-31].
- Lennart Poettering, , Google Plus, 2013-06-19 [2013-12-31]
- Tim Burke, (PDF), presentation, 2012-06-27 [2014-04-09], (原始内容 (PDF)存档于2013-01-18)
- , The H, 2010-03-26 [2010-04-04], (原始内容存档于2013-12-08)
- Chris von Eitzen, , The H, 2011-11-16 [2011-11-16], (原始内容存档于2012-04-20)
- , Live Journal, [2009-07-09], (原始内容存档于2009-12-23)
外部链接
- 主页
- . Launchpad].
- Upstart Cookbook
- Upstart Cookbook
- 初始化系统比较:part 1 页面存档备份,存于和part 2 页面存档备份,存于 (LWN.net)
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.