Jump to content

Upstart (software): Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Fabiwanne (talk | contribs)
Revert. See discussion. We can add this maybe later .
Undid revision 594896452 by Fabiwanne (talk) Too much reverted, I'll handpick it in a few minutes
Line 39: Line 39:
Upstart operates asynchronously — as well as handling the starting of tasks and services during boot and stopping them during shutdown, it supervises them while the system is running.
Upstart operates asynchronously — as well as handling the starting of tasks and services during boot and stopping them during shutdown, it supervises them while the system is running.


Easy transition and perfect [[backwards compatibility]] with [[sysvinit]] were explicit design goals.<ref>{{citation | url = https://bugs.launchpad.net/ubuntu/+source/upstart/+bug/605007 | publisher = Ubuntu | title = Launch Pad | section = Upstart | number = 605007}}.</ref> As such, Upstart is able to run sysvinit scripts unmodified. In this way it differs from most other init replacements (besides systemd and OpenRC), which usually assume and require complete transition to run properly, and don't support a mixed environment of traditional and new startup methods.<ref>{{citation | url = https://wiki.ubuntu.com/ReplacementInit | chapter = Discussion of design and implementation of Upstart | publisher = Canonical | title = Ubuntu Wiki}}.</ref>
Easy transition and perfect [[backwards compatibility]] with [[sysvinit]] were explicit design goals.<ref>{{citation | url = https://bugs.launchpad.net/ubuntu/+source/upstart/+bug/605007 | publisher = Ubuntu | title = Launch Pad | section = Upstart | number = 605007}}</ref> As such, Upstart is able to run sysvinit scripts unmodified. In this way it differs from most other init replacements (besides [[systemd]] and [[OpenRC]]), which usually assume and require complete transition to run properly, and don't support a mixed environment of traditional and new startup methods.<ref>{{citation | url = https://wiki.ubuntu.com/ReplacementInit | chapter = Discussion of design and implementation of Upstart | publisher = Canonical | title = Ubuntu Wiki}}</ref>


Upstart allows for extensions to its event model through the use of initctl to input custom, single events, or event bridges to integrate many or more complicated events.<ref>{{cite web|title=The Upstart Cookbook|chapter=initctl emit|url=http://upstart.ubuntu.com/cookbook/#initctl-emit|publisher=Canonical|accessdate=26 January 2014}}</ref> By default, Upstart includes bridges for: socket, dbus, udev, file, and dconf events, but more (e.g. a [[Mach (kernel) | Mach]] ports bridge, or a devd (found on [[FreeBSD]] systems) bridge) are possible.<ref>{{cite web|title=The Upstart Cookbook|chapter=Bridges|publisher=Canonical|url=http://upstart.ubuntu.com/cookbook/#bridges|accessdate=26 January 2014}}</ref>
Upstart allows for extensions to its event model through the use of initctl to input custom, single events, or event bridges to integrate many or more complicated events.<ref>{{cite web|title=The Upstart Cookbook|chapter=initctl emit|url=http://upstart.ubuntu.com/cookbook/#initctl-emit|publisher=Canonical|accessdate=26 January 2014}}</ref> By default, Upstart includes bridges for: socket, dbus, udev, file, and dconf events, but more (e.g. a [[Mach (kernel) | Mach]] ports bridge, or a devd (found on [[FreeBSD]] systems) bridge) are possible.<ref>{{cite web|title=The Upstart Cookbook|chapter=Bridges|publisher=Canonical|url=http://upstart.ubuntu.com/cookbook/#bridges|accessdate=26 January 2014}}</ref>


== Adoption ==
== Adoption ==

As Upstart matures, it is intended that its role will expand to the duties currently handled by [[cron]], [[anacron]], the [[at (Unix)|at]] command's daemon (atd), and possibly (but much less likely) [[inetd]].
As Upstart matures, it is intended that its role will expand to the duties currently handled by [[cron]], [[anacron]], the [[at (Unix)|at]] command's daemon (atd), and possibly (but much less likely) [[inetd]].


Line 53: Line 52:
* Upstart is used in [[Google]]'s [[Chrome OS]].<ref name = "chrome-os">{{citation |url=https://sites.google.com/a/chromium.org/dev/chromium-os/chromiumos-design-docs/software-architecture |title=Software Architecture: Chromium OS design documents |publisher=Google |accessdate=25 January 2014}}</ref>
* Upstart is used in [[Google]]'s [[Chrome OS]].<ref name = "chrome-os">{{citation |url=https://sites.google.com/a/chromium.org/dev/chromium-os/chromiumos-design-docs/software-architecture |title=Software Architecture: Chromium OS design documents |publisher=Google |accessdate=25 January 2014}}</ref>


Distributions that used Upstart in some versions but moved to [[systemd]] in later versions:
Distributions that used Upstart in some versions but moved to systemd in later versions:
* Upstart replaced [[sysvinit]] in [[Fedora (operating system)|Fedora]] 9, and functioned in the same manner as it did in Ubuntu, i.e. it replaces sysvinit, while retaining the existing scripts. However, Upstart has been replaced by [[systemd]] in [[Fedora (operating system)|Fedora]] 15 release.<ref>{{citation |url=https://fedoraproject.org/wiki/Releases/14/FeatureList |title=Fedora 14 Accepted Features |date=2010-07-13 |accessdate=2010-07-13}}</ref><ref>{{cite web | url = http://lwn.net/Articles/405100/ | title= Fedora defers systemd to F15 | date = 2010-09-14| accessdate = 2010-09-17 | publisher = Linux Weekly News}}</ref>
* Upstart replaced [[sysvinit]] in [[Fedora (operating system)|Fedora]] 9, and functioned in the same manner as it did in Ubuntu, i.e. it replaces sysvinit, while retaining the existing scripts. However, Upstart has been replaced by systemd in [[Fedora (operating system)|Fedora]] 15 release.<ref>{{citation |url=https://fedoraproject.org/wiki/Releases/14/FeatureList |title=Fedora 14 Accepted Features |date=2010-07-13 |accessdate=2010-07-13}}</ref><ref>{{cite web | url = http://lwn.net/Articles/405100/ | title= Fedora defers systemd to F15 | date = 2010-09-14| accessdate = 2010-09-17 | publisher = Linux Weekly News}}</ref>
* Red Hat includes Upstart in their [[Red Hat Enterprise Linux]] 6 release.<ref>{{cite web |url=https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Technical_Notes/deployment.html |publisher=[[Red Hat]] |title=Deployment |work =Red Hat Enterprise Linux 6: Technical Notes |accessdate=2013-12-31}}</ref> As a result, it is also used by RHEL 6 variants such as [[CentOS]], [[Scientific Linux]], and [[Oracle Linux]].
* Red Hat includes Upstart in their [[Red Hat Enterprise Linux]] 6 release.<ref>{{cite web |url=https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Technical_Notes/deployment.html |publisher=[[Red Hat]] |title=Deployment |work =Red Hat Enterprise Linux 6: Technical Notes |accessdate=2013-12-31}}</ref> As a result, it is also used by RHEL 6 variants such as [[CentOS]], [[Scientific Linux]], and [[Oracle Linux]].


Other:
Other:
* [[Debian]] considered switching for the squeeze release,<ref>{{citation |author=Petter Reinholdtsen |url=http://lists.debian.org/debian-devel-announce/2009/09/msg00003.html |title=The future of the boot system in Debian |publisher=Debian |date=2009-09-05 |accessdate=2009-10-12}}</ref> and is discussing it again for the jessie release.<ref>{{citation |author=Marco d'Itri |url=http://lists.debian.org/debian-devel/2013/10/msg00651.html |title=Proposal: switch init system to systemd or upstart |publisher=Debian |date=2013-10-25 |accessdate=2013-10-29}}</ref>
* [[Debian]] considered switching to Upstart for the ''squeeze'' release.<ref>{{citation |author=Petter Reinholdtsen |url=http://lists.debian.org/debian-devel-announce/2009/09/msg00003.html |title=The future of the boot system in Debian |publisher=Debian |date=2009-09-05 |accessdate=2009-10-12}}</ref> After discussing between Upstart and systemd for the ''jessie'' release,<ref>{{citation |author=Marco d'Itri |url=http://lists.debian.org/debian-devel/2013/10/msg00651.html |title=Proposal: switch init system to systemd or upstart |publisher=Debian |date=2013-10-25 |accessdate=2013-10-29}}</ref><ref>{{cite web|url=http://www.phoronix.com/scan.php?page=news_item&px=MTU4Mzk |title=Voting Proposed For Debian Jessie's Init System |publisher=Phoronix.com |date=2014-01-25 |accessdate=2014-02-09}}</ref> systemd was voted as the default.<ref>{{citation |author=Michael Gilbert |url=https://lists.debian.org/debian-ctte/2014/02/msg00338.html |title=Bug#727708: call for votes on default Linux init system for jessie |publisher=Debian |date=2014-02-09 |accessdate=2014-02-09}}</ref>
* [[openSUSE]] included upstart in version 11.3 Milestone 4, but not as default.<ref>{{citation |url=http://www.h-online.com/open/news/item/OpenSUSE-gets-an-Upstart-964636.html |archiveurl=http://web.archive.org/web/20131208184815/http://www.h-online.com/open/news/item/OpenSUSE-gets-an-Upstart-964636.html|archivedate=8 December 2013|title=OpenSUSE gets an Upstart |publisher=The H |date=2010-03-26 |accessdate=2010-04-04}}</ref> systemd replaced Upstart, as the default init system in openSUSE 12.1.<ref>{{citation |url=http://h-online.com/-1380033 | archiveurl=http://web.archive.org/web/20120420063250/http://www.h-online.com/open/news/item/openSUSE-12-1-arrives-with-systemd-and-Btrfs-1380033.html | archivedate=20 April 2012|title=openSUSE 12.1 arrives with systemd and Btrfs |author=Chris von Eitzen |publisher=The H |date=2011-11-16 |accessdate=2011-11-16}}</ref>
* [[openSUSE]] included Upstart in version 11.3 Milestone 4, but not as default.<ref>{{citation |url=http://www.h-online.com/open/news/item/OpenSUSE-gets-an-Upstart-964636.html |archiveurl=http://web.archive.org/web/20131208184815/http://www.h-online.com/open/news/item/OpenSUSE-gets-an-Upstart-964636.html|archivedate=8 December 2013|title=OpenSUSE gets an Upstart |publisher=The H |date=2010-03-26 |accessdate=2010-04-04}}</ref> systemd replaced Upstart, as the default init system in openSUSE 12.1.<ref>{{citation |url=http://h-online.com/-1380033 | archiveurl=http://web.archive.org/web/20120420063250/http://www.h-online.com/open/news/item/openSUSE-12-1-arrives-with-systemd-and-Btrfs-1380033.html | archivedate=20 April 2012|title=openSUSE 12.1 arrives with systemd and Btrfs |author=Chris von Eitzen |publisher=The H |date=2011-11-16 |accessdate=2011-11-16}}</ref>


== See also ==
== See also ==
{{Portal|Free software}}
{{Portal|Free software}}
* [[Service Management Facility]]
* [[Service Management Facility]]
* [[OpenRC]]
* [[systemd]]


== References ==
== References ==

Revision as of 23:12, 10 February 2014

Upstart
Original author(s)Scott James Remnant
Developer(s)Canonical Ltd.
Initial releaseAugust 24, 2006; 18 years ago (2006-08-24)
Stable release
1.11 / November 14, 2013; 10 years ago (2013-11-14)
Repository
Written inC
Operating systemLinux
TypeInit daemon
LicenseGPLv2
Websiteupstart.ubuntu.com

Upstart is an event-based replacement for the traditional init daemon — the method by which several Unix-like computer operating systems perform tasks when the computer is started. It was written by Scott James Remnant, a former employee of Canonical Ltd.

Rationale

The traditional init process was originally only responsible for bringing the computer into a normal running state after power-on, or gracefully shutting down services prior to shutdown. As a result, the design is strictly synchronous, blocking future tasks until the current one has completed. Its tasks must also be defined in advance, as they are limited to this prep or cleanup function. This leaves it unable to handle various non-startup-tasks on a modern desktop computer elegantly, including:

  • The addition or removal of USB pen drives and other portable storage / network devices while the machine is running
  • The discovery and scanning of new storage devices, without locking the system, especially when a disk may not even power on until it is scanned
  • The loading of firmware for a device, which may need to occur after it is detected but before it is usable

Upstart's event-driven model allows it to respond to events asynchronously as they are generated.[1]

Design

Upstart operates asynchronously — as well as handling the starting of tasks and services during boot and stopping them during shutdown, it supervises them while the system is running.

Easy transition and perfect backwards compatibility with sysvinit were explicit design goals.[2] As such, Upstart is able to run sysvinit scripts unmodified. In this way it differs from most other init replacements (besides systemd and OpenRC), which usually assume and require complete transition to run properly, and don't support a mixed environment of traditional and new startup methods.[3]

Upstart allows for extensions to its event model through the use of initctl to input custom, single events, or event bridges to integrate many or more complicated events.[4] By default, Upstart includes bridges for: socket, dbus, udev, file, and dconf events, but more (e.g. a Mach ports bridge, or a devd (found on FreeBSD systems) bridge) are possible.[5]

Adoption

As Upstart matures, it is intended that its role will expand to the duties currently handled by cron, anacron, the at command's daemon (atd), and possibly (but much less likely) inetd.

Distributions in which Upstart is enabled by default:

Distributions that used Upstart in some versions but moved to systemd in later versions:

Other:

  • Debian considered switching to Upstart for the squeeze release.[13] After discussing between Upstart and systemd for the jessie release,[14][15] systemd was voted as the default.[16]
  • openSUSE included Upstart in version 11.3 Milestone 4, but not as default.[17] systemd replaced Upstart, as the default init system in openSUSE 12.1.[18]

See also

References

  1. ^ Remnant, Scott James (2006-08-26). "Upstart in Universe". Netsplit. Retrieved 2009-09-12.
  2. ^ "Upstart", Launch Pad, Ubuntu
  3. ^ "Discussion of design and implementation of Upstart", Ubuntu Wiki, Canonical
  4. ^ "The Upstart Cookbook". Canonical. Retrieved 26 January 2014. {{cite web}}: |chapter= ignored (help)
  5. ^ "The Upstart Cookbook". Canonical. Retrieved 26 January 2014. {{cite web}}: |chapter= ignored (help)
  6. ^ "Upstart", About, Ubuntu
  7. ^ Fremantle, Maemo, retrieved 2009-08-24
  8. ^ Palm Pre, Live Journal, retrieved 2009-07-09
  9. ^ Software Architecture: Chromium OS design documents, Google, retrieved 25 January 2014
  10. ^ Fedora 14 Accepted Features, 2010-07-13, retrieved 2010-07-13
  11. ^ "Fedora defers systemd to F15". Linux Weekly News. 2010-09-14. Retrieved 2010-09-17.
  12. ^ "Deployment". Red Hat Enterprise Linux 6: Technical Notes. Red Hat. Retrieved 2013-12-31.
  13. ^ Petter Reinholdtsen (2009-09-05), The future of the boot system in Debian, Debian, retrieved 2009-10-12
  14. ^ Marco d'Itri (2013-10-25), Proposal: switch init system to systemd or upstart, Debian, retrieved 2013-10-29
  15. ^ "Voting Proposed For Debian Jessie's Init System". Phoronix.com. 2014-01-25. Retrieved 2014-02-09.
  16. ^ Michael Gilbert (2014-02-09), Bug#727708: call for votes on default Linux init system for jessie, Debian, retrieved 2014-02-09
  17. ^ OpenSUSE gets an Upstart, The H, 2010-03-26, archived from the original on 8 December 2013, retrieved 2010-04-04
  18. ^ Chris von Eitzen (2011-11-16), openSUSE 12.1 arrives with systemd and Btrfs, The H, archived from the original on 20 April 2012, retrieved 2011-11-16