Upstart, geleneksel init daemon için bir olay tabanlı bir alternatiftir - bilgisayar başlatıldığında çeşitli Unix benzeri bilgisayar işletim sistemlerinin görevleri gerçekleştirdiği yöntem. Canonical Ltd.’in eski bir çalışanı olan Scott James Remnant tarafından yazılmıştır.

Gerekçe

Geleneksel başlatma işlemi, yalnızca bilgisayarı açtıktan ya da kapatılmadan önce hizmetlerin kapatılmasından sonra bilgisayarı normal çalışma durumuna getirmekten sorumludur. Sonuç olarak tasarım mevcut olana kadar gelecekteki görevleri engelleyen tam olarak senkronize olur. Görevleri bu hazırlık veya temizleme işleviyle sınırlı olduğu için önceden tanımlanmalıdır. Bu, modern bir masaüstü bilgisayardaki çeşitli başlatma dışı görevleri zarif bir şekilde ele almayı başaramaz:

  • Makine çalışırken USB bellek ve diğer taşınabilir depolama veya ağ aygıtlarının eklenmesi veya çıkarılması…
  • Yeni depolama cihazlarının, özellikle de bir disk taranana kadar sistem açılmayacaksa sistemi kilitlemeden keşif ve tarama…
  • Tespit edildikten sonra ancak kullanılmadan önce oluşması gerekebilecek bir cihaz için ürün yazılımı (firmware) yüklenmesi…

Upstart’ın olay odaklı modeli, olaylar oluşturulduğu sırada eş zamansız olarak yanıtlamasına izin verir.

Tasarım

Upstart eş zamansız olarak çalışır: Önyükleme sırasında görevlerin ve hizmetlerin başlatılmasını ve kapatılırken durdurulmasını ve ayrıca sistem çalışırken görevlerin ve hizmetlerin denetlenmesini sağlar.

Sysvinit ile kolay geçiş ve mükemmel geriye dönük uyumluluk, açık tasarım hedefleriydi: Buna göre Upstart modifiye edilmemiş sysvinit komut dosyalarını çalıştırabilir. Bu şekilde genellikle düzgün çalışabilmesi için tam olarak geçişi gerektiren ve geleneksel ve yeni başlangıç yöntemlerinin karma bir ortamını desteklemeyen çoğu diğer init değiştirmelerinden (systemd ve OpenRC yanında) farklıdır.

Upstart; birçok veya daha karmaşık olayları entegre etmek için özel, tekli olayları veya olay köprülerini girmek için initctl kullanımı yoluyla olay modeline uzantıları için izin verir. Varsayılan olarak Upstart; socket, dbus, udev, file ve dconf olayları için köprüler içerir: Ek olarak daha fazla köprü mümkündür.

Benimseme

Upstart’ı varsayılan init sistemi olarak kullanan Linux çekirdeğine dayalı Linux dağıtımları ve diğer işletim sistemleri:

  • Upstart, Google’nin Chrome OS ve Chromium OS’unda kullanılır.

Upstart’ı bir dereceye kadar destekleyen veya destekleyen Linux dağıtımları ancak bunları varsayılan init sistemi olarak kullandıklarından ya da artık kullanmaya devam etmedikleri için:

  • Debian, Upstart’a geçiş yapmayı düşündükten sonra systemd’in jessie sürümü ile başlayan varsayılan init sistemi olacağını kararlaştırdı. Aralık 2015’te en sonunda Debian arşivlerinden kaldırıldı.
  • Ubuntu, Ubuntu Touch haricinde 15.04 (Vivid Vervet) sürümündeki varsayılan init sistemi olarak systemd için geçiş tamamlandı.
  • Fedora 9’da Upstart, sysvinit’i değiştirdi ancak Fedora 15 sürümünde Upstart’ın yerini değiştirdi.
  • Red Hat, Red Hat Enterprise Linux 6 sürümlerinde Upstart’ı içeriyor. Sonuç olarak, aynı zamanda CentOS, Scientific Linux ve Oracle Linux gibi RHEL 6 varyantları tarafından da kullanılır. RHEL 7 için bunun yerine systemd kullanılır.
  • openSUSE 11.3 Milestone 4 sürümüne Upstart dâhil ancak varsayılan olarak değil. Systemd, Upstart’ı openSUSE 12.1’deki varsayılan init sistemi olarak değiştirdi.
  • Upstart; HP’nin Palm Pre, Palm Pixi (HP tarafından Palm satın alınmadan önce), HP Veer ve HP Pre 3 akıllı telefonlar için HP TouchPad tabletiyle birlikte kullanılan webOS’unda kullanılır.
  • Upstart, Nokia İnternet tabletleri için Maemo 5’teki sysvinit’i değiştirdi.

References