Launchd - launchd - Wikipedia

Launchd
Orijinal yazar (lar)Dave Zarzycki
Geliştirici (ler)Apple Inc.
İlk sürüm29 Nisan 2005; 15 yıl önce (2005-04-29)
YazılmışC
İşletim sistemiMac os işletim sistemi, FreeBSD
Türİçinde arka plan programı
LisansTescilli yazılım (Önceden APSL ve sonra Apache Lisans 2.0 )
İnternet sitesiaçık kaynak.elma.com/ tarballs/ launchd/ Bunu Vikiveri'de düzenleyin

Launchd bir içinde ve işletim sistemi hizmet yönetimi arka plan programı tarafından yaratıldı Apple Inc. bir parçası olarak Mac os işletim sistemi BSD stilini değiştirmek için içinde ve SystemStarter. İçin çabalar oldu Liman başlatmak FreeBSD ve türetilmiş sistemler.

Bileşenler

Launchd sisteminde iki ana program vardır: launchd ve launchctl.

Launchd arka plan yordamlarını hem sistem hem de kullanıcı düzeyinde yönetir. Xinetd'ye benzer şekilde, launchd talep üzerine arka plan programları başlatabilir. Watchdogd'a benzer şekilde launchd, çalışmaya devam ettiklerinden emin olmak için daemonları izleyebilir. launchd ayrıca init'in yerini aldı PID MacOS üzerinde 1 ve sonuç olarak sistemi önyükleme sırasında başlatmaktan sorumludur.

Yapılandırma dosyaları, launchd tarafından çalıştırılan hizmetlerin parametrelerini tanımlar. Kitaplık klasörlerinin LaunchAgents ve LaunchDaemons alt dizinlerinde depolanan, mülkiyet listesi tabanlı dosyalar, ayarlanabilen yaklaşık otuz farklı anahtar içerir. launchd'nin bu yapılandırma dosyaları hakkında hiçbir bilgisi veya bunları okuma yeteneği yoktur - bu "launchctl" nin sorumluluğundadır.

launchctl IPC kullanarak launchd ile konuşan ve nasıl ayrıştırılacağını bilen bir komut satırı uygulamasıdır. mülkiyet listesi launchd işlerini açıklamak için kullanılan dosyalar, launchd'nin anladığı özel bir sözlük protokolü kullanarak bunları serileştirdi. launchctl, arka plan yordamları yüklemek ve boşaltmak, başlatılan kontrollü işleri başlatmak ve durdurmak, launchd ve alt süreçleri için sistem kullanım istatistiklerini almak ve ortam ayarlarını yapmak için kullanılabilir.

Launchd

launchd'nin iki ana görevi vardır. Birincisi çizme sistem ve ikincisi hizmetleri yüklemek ve sürdürmektir.

Aşağıda, Mac OS X Tiger sistem başlangıcının basitleştirilmiş bir görünümü yer almaktadır. PowerPC Mac (bir Intel Mac, EFI yerine geçer Firmware'i Aç ve boot.efi yerine geçer BootX ):

  1. Firmware'i Aç etkinleştirir, donanımı başlatır ve ardından BootX'i yükler.
  2. BootX çekirdeği yükler, fırıldak imlecini döndürür ve gerekli olanları yükler çekirdek uzantıları (kexts).
  3. Çekirdek launchd'yi yükler.
  4. launchd koşusu / etc / rc, tarama yapan çeşitli komut dosyaları / Sistem / Kitaplık / LaunchDaemons ve / Kitaplık / LaunchDaemons, gerektiği gibi plistlerde launchctl çağırılır, ardından launchd oturum açma penceresini başlatır.

4. adımda, başlangıç ​​komut dosyaları, çalışacak işler için birkaç farklı dizini tarar. Taranan iki farklı dizin vardır:

  1. LaunchDaemons dizinleri, genellikle arka plan işlemleri olmak üzere kök olarak çalışacak öğeleri içerir.
  2. LaunchAgents dizinleri, bir kullanıcı olarak veya kullanıcı alanı bağlamında çalışacak, aracı uygulamaları adı verilen işleri içerir. Bunlar komut dosyaları veya diğer ön plan öğeleri olabilir ve hatta bir kullanıcı arabirimi içerebilirler.

Bu dizinlerin tümü, Mac OS X'in tipik Kitaplık dizinlerinde tutulur.

launchd, SystemStarter'dan çok farklıdır çünkü aslında tüm arka plan yordamlarını önyükleme sırasında başlatmayabilir. Launchd'nin anahtarı ve xinetd'ye benzer şekilde, isteğe bağlı artalan süreçleri başlatma fikridir. Launchctl, önyükleme sırasında iş listelerini taradığında, launchd'den bu işler tarafından istenen tüm bağlantı noktalarını ayırmasını ve dinlemesini ister. Plistte "OnDemand" anahtarıyla belirtilirse, arka plan programı o anda gerçekten yüklenmez. Bunun yerine, launchd bağlantı noktasını dinleyecek, gerektiğinde arka plan programını başlatacak ve artık gerekmediğinde kapatacaktır. Bir arka plan programı yüklendikten sonra, launchd onu takip edecek ve gerekirse çalıştığından emin olacaktır. Bu şekilde, watchdogd gibidir ve watchdogd'un, süreçlerin kendi başlarına çatallanma veya daemonize etme girişiminde bulunmaması gereksinimini paylaşır. Bir işlem arka plana girerse, launchd izini kaybedecek ve yeniden başlatmaya çalışacaktır.

Sonuç olarak Mac OS X Tiger, önceki sürümlerden çok daha hızlı önyükleme yapıyor. Sistem yalnızca çalıştırılacak arka plan yordamlarını kaydetmelidir ve ihtiyaç duyulana kadar onları gerçekten başlatmaz. Aslında, önyükleme sırasında görünen ilerleme çubuğu yalnızca bir plasebo uygulamasıdır (WaitingForLoginWindow adlı[1]) bu gerçekten zamanın geçişinden başka bir şey göstermez.

Bir launchd önyüklemesi sırasında yönetilmesi en zor kısım bağımlılıklardır. SystemStarter, bir başlangıç ​​öğesinin plistindeki "Uses", "Requir" ve "Provides" anahtarlarını kullanan çok basit bir bağımlılıklar sistemine sahipti. Tiger üzerinde launchd bağımlılıkları oluştururken iki ana strateji vardır: IPC artalan süreçlerinin bağımlılıkları çözmek için kendi aralarında konuşmalarına izin verir veya arka plan yordamları değişiklikler için dosyaları veya yolları izleyebilir. IPC'yi kullanmak, SystemStarter'ın anahtarlarından çok daha incedir ve geliştiriciden daha fazla çalışma gerektirir, ancak[kaynak belirtilmeli ] daha temiz ve daha hızlı başlangıçlara yol açar. SystemStarter şu tarihe kadar destekleniyordu: OS X Mountain Lion, ancak şuradan kaldırıldı: OS X Yosemite.

launchctl

Launchd'de hizmetlerin kontrolü, launchctl uygulama.

Launchctl kendi başına komut satırından, standart girişten komut alabilir veya etkileşimli modda çalışabilir. İle süper kullanıcı ayrıcalıklar, launchctl küresel ölçekte değişiklik yapmak için kullanılabilir. Bir dizi launchctl komutu, içinde saklandığında kalıcı hale getirilebilir. /etc/launchd.conf. (Kullanıcı başına ~ / .launchd.conf dosya dikkate alınmış gibi görünüyor, ancak mevcut macOS sürümlerinde desteklenmiyor.[2])

launchctl launchd ile bir Mach -özel IPC mekanizması.

Emlak listesi

Bir mülkiyet listesi (plist), launchd'nin program yapılandırması için kullandığı bir dosya türüdür. Launchd bir klasörü taradığında veya launchctl ile bir iş gönderildiğinde, programın nasıl çalıştırılacağını açıklayan bir plist dosyası okur.

Sık kullanılan tuşların bir listesi aşağıda verilmiştir. Aksi belirtilmedikçe tüm tuşlar isteğe bağlıdır. Tam liste için Apple'ın kılavuz sayfasına bakın. launchd.plist.[3]

AnahtarTürAçıklama
EtiketDizeİşin adı. Geleneksel olarak, iş etiketi plist dosyası adıyla aynıdır, .plist uzantı. gereklidir.
ProgramDizeYürütülebilir dosyanın yolu. Basit lansmanlar için kullanışlıdır. En az biri Program veya Program Argümanları dır-dir gereklidir.
Program ArgümanlarıDizeler dizisiBir UNIX komutunu temsil eden dizeler dizisi. İlk dize genellikle bir yürütülebilir dosyaya giden bir yoldur, ikinci dizeler ise seçenekler veya parametreler içerir. En az biri Program veya Program Argümanları dır-dir gereklidir.
Kullanıcı adıDize
(varsayılan olarak kök veya mevcut kullanıcı)
İş, lansmana gönderen kullanıcı olabilecek (veya olmayabilecek) belirtilen kullanıcı olarak çalıştırılacaktır.
Talep üzerine

(10.5'ten beri kullanımdan kaldırıldı)

Boole
(varsayılan olarak EVET)
Daha güçlü olanlarla 10.5 itibarıyla kullanımdan kaldırıldı Hayatta kal seçeneği. Bir Boole bir işin sürekli çalışıp çalışmadığını tanımlayan bayrak.
RunAtLoadBoole
(varsayılan olarak HAYIR)
Bir Boole İş launchd'ye yüklendiğinde görevin hemen başlatılıp başlatılmayacağını tanımlayan bayrak.
StartOnMountBoole
(varsayılan olarak HAYIR)
Bir Boole Yeni bir dosya sistemi bağlandığında bir görevin başlatılıp başlatılmayacağını tanımlayan bayrak.
QueueDirectoriesDizeler dizisiYeni dosyalar için bir dizin izleyin. Dizinin başlaması için boş olması ve öncesinde boş bir duruma döndürülmesi gerekir. QueueDirectories görevini yeniden başlatacak.
WatchPathsDizeler dizisiDeğişiklikler için bir dosya sistemi yolunu izleyin. Bir dosya veya klasör olabilir.
StartIntervalTamsayıİşi, yinelenen bir programda çalışacak şekilde zamanlar. Çalışmalar arasında beklenecek saniye sayısını gösterir.
StartCalendarIntervalTamsayılar sözlüğü
veya
Tamsayılar sözlük dizisi
İş planlaması. sözdizimi benzer cron.
Kök diziniDizeİş olacak chrootlu yürütmeden önce bu dizine.
Çalışma diziniDizeİş olacak chdired yürütmeden önce bu dizine.

StandardInPath,
StandardOutPath,
StandardErrorPath

DizeBaşlatılan işlem için girdi ve çıktı dosyalarını belirleme tuşları.
Düşük ÖncelikliIOBooleÇekirdeğe, dosya sistemi G / Ç işlemi yapılırken bu görevin düşük önceliğe sahip olduğunu söyler.
AbandonProcessGroupBoole
(varsayılan olarak HAYIR)
Bir Boole launchd tarafından başlatılan bir görevden başlatılan alt işlemlerin görev sona erdiğinde öldürülüp öldürülmeyeceğini tanımlayan bayrak. Kısa ömürlü bir görevin uzun ömürlü bir alt görevi başlattığı durumlarda kullanışlıdır, ancak zombi süreçleri.
SessionCreateBoole
(varsayılan olarak HAYIR)
Bir Boole Görev ve alt işlemleri için bir güvenlik oturumunun oluşturulup oluşturulmayacağını tanımlayan bayrak.

Soket aktivasyon protokolü

Sockets altındaki her anahtarın adı çalıştırıldığında iş ortamına yerleştirilecek ve bu soketin dosya tanımlayıcısı bu ortam değişkeninde mevcut olacaktır. Bu, systemd'nin soket etkinleştirmesinden farklıdır, çünkü iş yapılandırmasının içindeki soket tanımının adı uygulamaya kodlanmıştır. Bu protokol daha az esnektir, ancak systemd'nin yaptığı gibi arka plan programının bir başlangıç ​​dosya tanımlayıcısını kodlamasını gerektirmez (2014 itibariyle 3'tür).[4]

Tarih

Yazılım, Dave Zarzycki tarafından tasarlanmış ve kodlanmıştır. elma. Şirket, aşağıdakilerin hepsinin yerine geçmesini planladı OS X ortamlar -

- ve bunların çoğu -di launchd ile tanıtıldığında yerini aldı Mac OS Xv10.4 (Kaplan).

2005 yılında R. Tyler Croy, launchd'yi FreeBSD Google Summer of Code Projesi'nin bir parçası olarak. PID 1 (yalnızca bir oturum başlatma) olarak çalıştırılamadı ve bu platformda yaygın olarak kullanılmadı.[5]

2006 yılında Ubuntu Linux dağıtımı launchd kullanmayı düşündü. Bu seçenek reddedildi çünkü kaynak kodu, Apple Kamu Kaynak Lisansı - "kaçınılmaz lisans sorunu" olarak tanımlanır.[6] Bunun yerine Ubuntu geliştirdi ve kendi servis yönetim aracına geçti, Başlangıç.

Ağustos 2006'da Apple yeniden ruhsatlı altında başlatmak Apache Lisansı, Sürüm 2.0 diğer açık kaynak geliştiricilerinin benimsemesini kolaylaştırmak için.[7] Çoğu Linux dağıtımı, systemd veya Başlangıç veya ile devam edin içinde, ve BSD'ler init ile devam edin.

Aralık 2013'te R. Tyler Croy, FreeBSD'ye fırlatma limanı üzerinde çalışmaya devam etme niyetini açıkladı ve daha sonra "açık lansman" Github deposu faaliyete geçti.[8]

Mac OS Forge alanının son Wayback Machine yakalama işlemi Haziran 2012'de yapıldı.[9] ve Apple'ın en son açık kaynak sürümü 842.92.1 OS X 10.9.5 kodunda.

2014 yılında, OS X 10.10 ve iOS 8 ile Apple, launchd kodunu kapalı kaynak libxpc'ye taşıdı.[10]

Ağustos 2015'te Jordan Hubbard ve Kip Macy, NextBSD, Mach IPC, Libdispatch, notifyd, asld, launchd ve Apple'ın OS X için açık kaynak kodu Darwin'den türetilen diğer bileşenleri eklerken FreeBSD-CURRENT çekirdeğini temel alan.

Apple Açık Kaynak Sürüm geçmişi

SürümLisansDahil Mac os işletim sistemi versiyonlarDahil Apple Geliştirici Araçları versiyonlar
launchd 106Apple Kamu Kaynak Lisansı[11]
launchd 106.3Apple Kamu Kaynak Lisansı[14]
  • Mac OS X 10.4.2[15]
  • Mac OS X 10.4.3[16]
  • Mac OS X 10.4.4.ppc[17]
  • Mac OS X 10.4.5.ppc[18]
launchd 106.10Apple Kamu Kaynak Lisansı[19]
  • Mac OS X 10.4.4.x86[20]
  • Mac OS X 10.4.5.x86[21]
launchd 106.13Apple Kamu Kaynak Lisansı[22]
  • Mac OS X 10.4.6.ppc[23]
  • Mac OS X 10.4.6.x86[24]
launchd 106.14Apple Kamu Kaynak Lisansı[25]
  • Mac OS X 10.4.7.ppc[26]
  • Mac OS X 10.4.7.x86[27]
  • Mac OS X 10.4.8.ppc[28]
  • Mac OS X 10.4.9.ppc[29]
  • Mac OS X 10.4.10.ppc[30]
  • Mac OS X 10.4.11.ppc[31]
launchd 106.20Apple Kamu Kaynak Lisansı[32]
  • Mac OS X 10.4.8.x86[33]
  • Mac OS X 10.4.9.x86[34]
  • Mac OS X 10.4.10.x86[35]
  • Mac OS X 10.4.11.x86[36]
  • Geliştirici Araçları 2.4[37]
launchd 152Apache Lisans 2.0[38]
launchd 257Apache Lisans 2.0[39]
  • Geliştirici Araçları 3.1[42]
  • Geliştirici Araçları 3.1b[43]
  • Geliştirici Araçları 3.1.1[44]
  • Geliştirici Araçları 3.1.2[45]
  • Geliştirici Araçları 3.1.3[46]
  • Geliştirici Araçları 3.1.4[47]
launchd 258.1Apache Lisans 2.0[48]
launchd 258.12Apache Lisans 2.0[50]
launchd 258.18Apache Lisans 2.0[53]
launchd 258.19Apache Lisans 2.0[55]
launchd 258.22Apache Lisans 2.0[57]
launchd 258.25Apache Lisans 2.0[59]
launchd 328Apache Lisans 2.0[61]
  • Geliştirici Araçları 3.2.1[65]
  • Geliştirici Araçları 3.2.2[66]
  • Geliştirici Araçları 3.2.3[67]
  • Geliştirici Araçları 3.2.4[68]
launchd 329.3Apache Lisans 2.0[69]
launchd 329.3.1Apache Lisans 2.0[71]
  • Geliştirici Araçları 3.2.5[73]
  • Geliştirici Araçları 3.2.6[74]
launchd 329.3.2Apache Lisans 2.0[75]
launchd 329.3.3Apache Lisans 2.0[77]
launchd 392.18Apache Lisans 2.0[81]
launchd 392.35Apache Lisans 2.0[84]
launchd 392.36Apache Lisans 2.0[86]
launchd 392.38Apache Lisans 2.0[88]
launchd 392.39Apache Lisans 2.0[90]
launchd 442.21Apache Lisans 2.0[92]
launchd 442.26.2Apache Lisans 2.0[95]
launchd 842.1.4Apache Lisans 2.0[100]
launchd 842.90.1Apache Lisans 2.0[103]
launchd 842.92.1Apache Lisans 2.0[106]

Ayrıca bakınız

Referanslar

  1. ^ "Tiger Ayrıntıları". Cesur Ateş Topu. WaitingForLoginWindow. Alındı 23 Şubat 2020.
  2. ^ Mac OS X Kılavuz Sayfası Launchd.conf için (5)
  3. ^ Mac OS X Kılavuz Sayfası launchd.plist için (5)
  4. ^ küçük-büyük-h. "node-launchd". Alındı 10 Nisan, 2014.
  5. ^ "Launchd". FreeBSD wiki. Alındı 8 Aralık 2013.
  6. ^ "ReplaceInit". UbuntuWiki. Alındı 2 Temmuz, 2007.
  7. ^ Prabhakar, Ernest (7 Ağustos 2006). "Apple Açılıyor: Kernel, Mac OS Forge, iCal Server, Bonjour, Launchd". Alındı 2 Temmuz, 2007.
  8. ^ Croy, R. Tyler. "Thinkpad X200'ümdeki en cızırtılı boyun sakalı veya FreeBSD". etik olmayanblogger.com. Alındı 8 Aralık 2013.
  9. ^ "launchd". Mac OS Forge. Apple Inc. Arşivlenen orijinal 9 Haziran 2012 tarihinde. Alındı 3 Eylül 2016.
  10. ^ Levin, Jonathan (2014). "Launchd - Hizmetinizde!" (PDF). s. 32. Alındı 3 Eylül 2016. … 10.10: libxpc 559'a taşındı (iOS 8'de 560) - Kaynak henüz mevcut değil - ve hiç olmayabilir - Libxpc kapalı kaynaklı bir projedir…
  11. ^ "launchd 106 lisans dosyası".
  12. ^ "Mac OS X 10.4 - Kaynak".
  13. ^ "Mac OS X 10.4.1 - Kaynak".
  14. ^ "launchd 106.3 lisans dosyası".
  15. ^ "Mac OS X 10.4.2 - Kaynak".
  16. ^ "Mac OS X 10.4.3 - Kaynak".
  17. ^ "Mac OS X 10.4.4.ppc - Kaynak".
  18. ^ "Mac OS X 10.4.5.ppc - Kaynak".
  19. ^ "launchd 106.10 lisans dosyası".
  20. ^ "Mac OS X 10.4.4.x86 - Kaynak".
  21. ^ "Mac OS X 10.4.5.x86 - Kaynak".
  22. ^ "launchd 106.13 lisans dosyası".
  23. ^ "Mac OS X 10.4.6.ppc - Kaynak".
  24. ^ "Mac OS X 10.4.6.x86 - Kaynak".
  25. ^ "launchd 106.14 lisans dosyası".
  26. ^ "Mac OS X 10.4.7.ppc - Kaynak".
  27. ^ "Mac OS X 10.4.7.x86 - Kaynak".
  28. ^ "Mac OS X 10.4.8.ppc - Kaynak".
  29. ^ "Mac OS X 10.4.9.ppc - Kaynak".
  30. ^ "Mac OS X 10.4.10.ppc - Kaynak".
  31. ^ "Mac OS X 10.4.11.ppc - Kaynak".
  32. ^ "launchd 106.20 lisans dosyası".
  33. ^ "Mac OS X 10.4.8.x86 - Kaynak".
  34. ^ "Mac OS X 10.4.9.x86 - Kaynak".
  35. ^ "Mac OS X 10.4.10.x86 - Kaynak".
  36. ^ "Mac OS X 10.4.11.x86 - Kaynak".
  37. ^ "Geliştirici Araçları 2.4 - Kaynak".
  38. ^ "launchd 152 lisans dosyası".
  39. ^ "launchd 257 lisans dosyası".
  40. ^ "Mac OS X 10.5 - Kaynak".
  41. ^ "Mac OS X 10.5.1 - Kaynak".
  42. ^ "Geliştirici Araçları 3.1 - Kaynak".
  43. ^ "Geliştirici Araçları 3.1b - Kaynak".
  44. ^ "Geliştirici Araçları 3.1.1 - Kaynak".
  45. ^ "Geliştirici Araçları 3.1.2 - Kaynak".
  46. ^ "Geliştirici Araçları 3.1.3 - Kaynak".
  47. ^ "Geliştirici Araçları 3.1.4 - Kaynak".
  48. ^ "launchd 258.1 lisans dosyası".
  49. ^ "Mac OS X 10.5.2 - Kaynak".
  50. ^ "launchd 258.12 lisans dosyası".
  51. ^ "Mac OS X 10.5.3 - Kaynak".
  52. ^ "Mac OS X 10.5.4 - Kaynak".
  53. ^ "launchd 258.18 lisans dosyası".
  54. ^ "Mac OS X 10.5.5 - Kaynak".
  55. ^ "launchd 258.19 lisans dosyası".
  56. ^ "Mac OS X 10.5.6 - Kaynak".
  57. ^ "launchd 258.22 lisans dosyası".
  58. ^ "Mac OS X 10.5.7 - Kaynak".
  59. ^ "launchd 258.25 lisans dosyası".
  60. ^ "Mac OS X 10.5.8 - Kaynak".
  61. ^ "launchd 328 lisans dosyası".
  62. ^ "Mac OS X 10.6 - Kaynak".
  63. ^ "Mac OS X 10.6.1 - Kaynak".
  64. ^ "Mac OS X 10.6.2 - Kaynak".
  65. ^ "Geliştirici Araçları 3.2.1 - Kaynak".
  66. ^ "Geliştirici Araçları 3.2.2 - Kaynak".
  67. ^ "Geliştirici Araçları 3.2.3 - Kaynak".
  68. ^ "Geliştirici Araçları 3.2.4 - Kaynak".
  69. ^ "launchd 329.3 lisans dosyası".
  70. ^ "Mac OS X 10.6.3 - Kaynak".
  71. ^ "launchd 329.3.1 lisans dosyası".
  72. ^ "Mac OS X 10.6.4 - Kaynak".
  73. ^ "Geliştirici Araçları 3.2.5 - Kaynak".
  74. ^ "Geliştirici Araçları 3.2.6 - Kaynak".
  75. ^ "launchd 329.3.2 lisans dosyası".
  76. ^ "Mac OS X 10.6.5 - Kaynak".
  77. ^ "launchd 329.3.3 lisans dosyası".
  78. ^ "Mac OS X 10.6.6 - Kaynak".
  79. ^ "Mac OS X 10.6.7 - Kaynak".
  80. ^ "Mac OS X 10.6.8 - Kaynak".
  81. ^ "launchd 392.18 lisans dosyası".
  82. ^ "Mac OS X 10.7 - Kaynak".
  83. ^ "Mac OS X 10.7.1 - Kaynak".
  84. ^ "launchd 392.35 lisans dosyası".
  85. ^ "Mac OS X 10.7.2 - Kaynak".
  86. ^ "launchd 392.36 lisans dosyası".
  87. ^ "Mac OS X 10.7.3 - Kaynak".
  88. ^ "launchd 392.38 lisans dosyası".
  89. ^ "Mac OS X 10.7.4 - Kaynak".
  90. ^ "launchd 392.39 lisans dosyası".
  91. ^ "Mac OS X 10.7.5 - Kaynak".
  92. ^ "launchd 442.21 kaynak kodundaki lisans başlığı".
  93. ^ "Mac OS X 10.8 - Kaynak".
  94. ^ "Mac OS X 10.8.1 - Kaynak".
  95. ^ "launchd 442.26.2 kaynak kodundaki lisans başlığı".
  96. ^ "Mac OS X 10.8.2 - Kaynak".
  97. ^ "Mac OS X 10.8.3 - Kaynak".
  98. ^ "Mac OS X 10.8.4 - Kaynak".
  99. ^ "Mac OS X 10.8.5 - Kaynak".
  100. ^ "launchd 842.1.4 kaynak kodundaki lisans başlığı".
  101. ^ "OS X 10.9 - Kaynak".
  102. ^ "OS X 10.9.1 - Kaynak".
  103. ^ "launchd 842.90.1 kaynak kodundaki lisans başlığı".
  104. ^ "OS X 10.9.2 - Kaynak".
  105. ^ "OS X 10.9.3 - Kaynak".
  106. ^ "launchd 842.92.1 kaynak kodundaki lisans başlığı".
  107. ^ "OS X 10.9.4 - Kaynak".
  108. ^ "OS X 10.9.5 - Kaynak".

Dış bağlantılar

Apple Geliştiricisi:

Apple Developer Retired Documents Library:

Diğer bağlantılar: