Käynnistetty

käynnistetty
Tyyppi Järjestelmän alustusjärjestelmä
Tekijä Apple Inc.
Kehittäjä Omena
Sisään kirjoitettu C
Käyttöjärjestelmä Mac käyttöjärjestelmä
Ensimmäinen painos 29. huhtikuuta 2005
Osavaltio Tuettu
Lisenssi Apache-lisenssi 2.0
Verkkosivusto opensource.apple.com/tar...

launchd on avoimen lähdekoodin macOS -  init-järjestelmä , joka on luotu korvaamaan SysVinit ja SystemStarter . Käynnistettävän prosessin PID on 1 ja se on vastuussa muiden prosessien käynnistämisestä ja niiden uudelleenkäynnistämisestä, jos se epäonnistuu, eli se suorittaa init -toimintoja (uudemmissa Linux systemd -versioissa ). Se myös korvaa cronin . Prosessit, jotka suoritetaan järjestelmän käynnistyksen jälkeen ennen kirjautumista, kirjoitetaan /Library/LaunchDaemons-hakemistoon. Kirjautumisen jälkeen suoritettavat prosessit sijaitsevat /Library/LaunchAgents-hakemistossa. Näissä hakemistoissa luodaan xml-sisältöisiä tiedostoja, jotka ohjaavat prosessien käynnistämistä. Porttia on yritetty lanseerattiin FreeBSD :lle ja johdannaisille.

Komponentit

Launnuksessa on kaksi pääohjelmaa: launchd ja launchctl.

launchd hallitsee demoneja sekä järjestelmä- että käyttäjätasolla. Kuten xinetd, launchd voi käynnistää demoneja pyynnöstä. Kuten watchdogd, launchd voi valvoa demoneita varmistaakseen, että ne ovat edelleen käynnissä.

launchctl on komentorivisovellus, joka käyttää launchd:ta IPC:n avulla ja osaa jäsentää suoritettavien töiden kuvaamiseen käytetyt tiedostot ja sarjoittaa ne käyttämällä erityistä sanakirjaprotokollaa, jonka launchd ymmärtää. launchctl:llä voidaan ladata ja purkaa demoneita, käynnistää ja pysäyttää valvottuja töitä, saada järjestelmän käyttötilastoja launchdille ja sen aliprosesseille sekä määrittää ympäristöasetuksia.

käynnistetty

launchdilla on kaksi päätehtävää. Ensimmäinen on käynnistää järjestelmä, ja toinen on ladata ja ylläpitää palveluita. Tässä on yksinkertaistettu näkymä Mac OS X Tiger -järjestelmän käyttämisestä PowerPC :ssä .

  1. Open Firmware aktivoi, alustaa laitteiston ja lataa sitten BootX:n.
  2. BootX käynnistää ytimen ja lataa kaikki tarvittavat ytimen laajennukset (kexts).
  3. Ytimen lataukset käynnistettiin. launchd suorittaa erilaisia ​​komentosarjoja, jotka tarkistavat LaunchDaemons-kansion kutsumalla launchctl:ää alustaakseen demonit. Sitten launchd käynnistää kirjautumisikkunan.
  4. Käynnistysskriptit etsivät useista eri hakemistoista suorittaakseen töitä. Kaksi erilaista hakemistoa tarkistetaan: LaunchDaemons-hakemistot sisältävät kohteita, jotka ajetaan pääkäyttäjänä, yleensä taustaprosesseja. LaunchAgents-hakemistot sisältävät töitä, joita kutsutaan agenttisovelluksiksi ja jotka suoritetaan käyttäjänä tai käyttäjätilan kontekstissa. Nämä voivat olla skriptejä tai muita etualan elementtejä, ja ne voivat sisältää jopa käyttöliittymän. Kaikki nämä hakemistot on tallennettu tyypillisiin macOS-kirjastohakemistoihin.

launchd eroaa suuresti SystemStarterista siinä mielessä, että se ei välttämättä käynnistä kaikkia demoneja käynnistyksen yhteydessä. Avain käynnistämiseen, kuten xinetd, on käynnistää demonit pyynnöstä. Kun launchctl luettelee työt käynnistyksen yhteydessä, se pyytää launchd:ia varaamaan ja kuuntelemaan kaikkia näiden töiden pyytämiä portteja. Jos tämä on määritetty taulukossa "OnDemand"-näppäimellä, demonia ei ole ladattu tällä hetkellä. Pikemminkin launchd kuuntelee porttia, käynnistää demonin tarvittaessa ja sammuttaa sen, kun sitä ei enää tarvita. Kun demoni on ladattu, launchd tarkkailee sitä ja varmistaa, että se toimii tarvittaessa. Tällä tavalla se on samanlainen kuin watchdogd ja jakaa vahtikoiran vaatimuksen, että prosessit eivät yritä haaroittaa tai demonisoida itseään. Jos prosessi menee taustalle, launchd menettää sen ja yrittää käynnistää sen uudelleen. Siksi Mac OS X Tiger latautuu paljon nopeammin kuin aiemmat versiot. Järjestelmä rekisteröi vain demonit, joiden pitäisi olla käynnissä, eikä käynnistä niitä ennen kuin niitä tarvitaan. Itse asiassa latauksen aikana näkyvä edistymispalkki on vain lumelääke nimeltä WaitingForLoginWindow [1] , joka ei itse asiassa näytä mitään muuta kuin aikaa. Vaikeinta hallita käynnistyksen aikana on riippuvuudet. SystemStarterilla on hyvin yksinkertainen riippuvuusjärjestelmä, joka käyttää Käynnistyskohteiden luettelossa avaimia Käyttää, Vaatii ja Tarjoaa. On olemassa kaksi päästrategiaa luotaessa riippuvuuksia Tigerissä: IPC sallii demonien keskustella toistensa kanssa riippuvuuksien selvittämiseksi, tai demonit voivat tarkastella tiedostoja tai muuttaa polkuja. SystemStarteria tuettiin edelleen ennen OS X Mountain Lionia , mutta se poistettiin OS X Yosemitessa .

launchctl

Lausunnossa palvelunhallinta on keskitetty launchctl-sovellukseen. Launchtl voi itsessään hyväksyä komentoja komentoriviltä, ​​vakiosyötteestä tai suorittaa interaktiivisesti. Pääkäyttäjän oikeuksilla launchctl: llä voidaan tehdä globaaleja muutoksia. launchctl kommunikoi launchdin kanssa Mach - spesifisen IPC-mekanismin kautta.

Luettelo ominaisuuksista

Ominaisuusluettelo (plist) on tiedostotyyppi, jota launchd käyttää ohjelman määrittämiseen. Kun launchd skannaa kansion tai työ lähetetään launchctl:llä, se lukee plist-tiedoston, joka kuvaa kuinka ohjelma käynnistetään.

Alla on luettelo yleisesti käytetyistä avaimista. Kaikki avaimet ovat valinnaisia, ellei toisin mainita. Täydellinen luettelo on Applen ohjesivulla launchd.plist [2] .


Avaimet Tyyppi Merkintä
Label Linja Työnimike. Sopimuksen mukaan työn otsikko on sama kuin plist-tiedoston nimi ilman .plist-tunnistetta. Vaaditaan.
Program Linja Polku suoritettavaan tiedostoon. Hyödyllinen yksinkertaisissa laukaisuissa. Vähintään yksi Program- tai ProgramArguments-avain vaaditaan.
ProgramArguments Joukko merkkijonoja Joukko merkkijonoja, jotka edustavat UNIX-komentoa. Ensimmäinen rivi on yleensä polku suoritettavaan tiedostoon, kun taas viimeiset rivit sisältävät valitsimia tai parametreja. Vähintään yksi Program- tai ProgramArguments-avain vaaditaan.
UserName linja

(oletusjuuri tai nykyinen käyttäjä)

Työ suoritetaan annetun käyttäjänä, joka voi olla tai ei ole käyttäjä, joka lähetti sen käynnistettynä.
OnDemand

(poistettu käytöstä 10.5 lähtien)

looginen

(oletus KYLLÄ)

Poistettu käytöstä 10.5 alkaen tehokkaammalla KeepAlive-vaihtoehdolla. Boolen lippu, joka määrittää, onko työ käynnissä jatkuvasti vai ei.
RunAtLoad looginen

(oletus EI)

Boolen lippu, joka määrittää, käynnistetäänkö tehtävä välittömästi sen jälkeen, kun tehtävä on ladattu käynnistykseen.
StartOnMount looginen

(oletus EI)

Boolen lippu, joka määrittää, suoritetaanko tehtävä, kun uusi tiedostojärjestelmä liitetään.
QueueDirectories Joukko merkkijonoja Etsii hakemistosta uusia tiedostoja. Hakemiston on oltava tyhjä, ja se on palautettava tyhjään tilaan ennen kuin QueueDirectories suorittaa tehtävänsä uudelleen.
WatchPaths Joukko merkkijonoja Katsoo tiedostojärjestelmän polusta muutosten varalta. Voi olla tiedosto tai kansio.
StartInterval kokonaisluku Ajoittaa työn suoritettavaksi toistuvan aikataulun mukaan. Määrittää, kuinka monta sekuntia on odotettava ajojen välillä.
StartCalendarInterval Kokonaislukujen sanakirja

tai

Joukko kokonaislukusanakirjoja

Työn suunnittelu. Syntaksi on samanlainen kuin Cron
RootDirectory Linja Työ sijoitetaan tähän hakemistoon ennen suorittamista.
WorkingDirectory Linja Työ siirretään tähän hakemistoon ennen suorittamista.

StandardInPath.
StandardOutPath_
StandardErrorPath

Linja Näppäimet käynnissä olevan prosessin tulo- ja tulostustiedostojen määrittämiseen.
LowPriorityIO looginen Kerneli ytimelle, että tällä tehtävällä on alhainen prioriteetti tiedostojärjestelmän I/O:lle.
AbandonProcessGroup looginen

(oletus EI)

Boolen lippu, joka määrittää, lopetetaanko aliprosessit, jotka aloitettiin launchd-toiminnolla aloitetusta tehtävästä, kun tehtävä päättyy. Hyödyllinen, kun lyhytkestoinen tehtävä aloittaa pitkäikäisen alitehtävän, mutta voi johtaa zombiprosesseihin.
SessionCreate looginen

(oletus EI)

Boolen lippu, joka määrittää, luodaanko suojausistunto tehtävälle ja sen aliprosesseille.

Pistorasiat

Kunkin Sockets-osiossa olevan avaimen nimi sijoitetaan työn ympäristöön, kun se ajetaan, ja kyseisen socketin tiedostokuvaaja on käytettävissä kyseisessä ympäristömuuttujassa. Tämä eroaa systemd-socket-aktivoinnista siinä, että työn kokoonpanon sisällä olevan socket-määrityksen nimi on kovakoodattu sovellukseen. Tämä protokolla on vähemmän joustava, vaikka se, kuten systemd, ei vaadi demonia koodaamaan alkuperäistä tiedostokuvaajaa (3 [3] vuodesta 2014 ).

Historia

Ohjelmiston on suunnitellut ja kirjoittanut Dave Zarzhitsky Applella . Yhtiö suunnitteli korvaavansa kaikki seuraavat macOS -ympäristössä -

Suurin osa näistä asioista hylättiin, kun launchd esiteltiin Mac OS X v10.4 :n (Tiger) kanssa.

Vuonna 2005 R. Tyler Croy lykkäsi FreeBSD :n käynnistämistä osana Google Summer of Code -projektia. Sitä ei voi käyttää PID 1:nä (vain istunnon alustus), eikä sitä normaalisti käytetä tällä alustalla. [neljä]

Vuonna 2006 Ubuntu Linux -jakelua harkittiin launchd:n käyttöä. Tämä vaihtoehto hylättiin, koska lähdekoodi oli Applen julkisen lisenssin alainen  - kuvailtiin "väistämättömäksi lisenssiongelmaksi" [5] . Sen sijaan Ubuntu -kehittäjät kehittivät ja siirtyivät käyttämään Upstart -palvelunhallintatyökalua .

Elokuussa 2006 Apple julkaisi uudelleen Apache License -lisenssin version 2.0 alaisena helpottaakseen muiden avoimen lähdekoodin kehittäjien käyttöönottoa [6] . Suurin osa Linux - jakeluista käyttää systemd- tai Upstart -versiota tai jatkaa Initin käyttöä , ja myös BSD:n kaltaiset järjestelmät käyttävät edelleen Initiä .

Joulukuussa 2013 R. Tyler Croy ilmoitti aikovansa jatkaa työskentelyä FreeBSD :lle lanseeratun versionsa parissa , ja hänen "openlaunchd" Github -tietovarastonsa tuli myöhemmin aktiiviseksi [7] .

Vuonna 2014 alkaen OS X 10.10 :stä ja iOS 8 : sta Apple siirsi koodin ajettavaksi suljetun lähdekoodin libxpc:hen [8] .

Elokuussa 2015 Jordan Hubbard ja Kip Macy ilmoittivat FreeBSD-CURRENT-ytimeen perustuvan NextBSD :n lanseerauksesta lisäten Machin IPC:hen, Libdispatchin, notified, asld:n, launchd:n ja muita Darwinista johdettuja komponentteja, jotka sisältävät avoimen lähdekoodin macOS :lle. .

julkaistu julkaisuhistoria

Versiot Lisenssi Sisällytettiin MacOS - versioon
käynnistyi 106 Applen julkisen lähdekoodin lisenssi [9]
käynnistyi 106.3 Applen julkisen lähdekoodin lisenssi [12]
  • Mac OS X 10.4.2 [13]
  • Mac OS X 10.4.3 [14]
  • Mac OS X 10.4.4.ppc [15]
  • Mac OS X 10.4.5.ppc [16]
aloitettu 106.10 Applen julkisen lähdekoodin lisenssi [17]
  • Mac OS X 10.4.4.x86 [18]
  • Mac OS X 10.4.5.x86 [19]
aloitettu 106.13 Applen julkisen lähdekoodin lisenssi [20]
  • Mac OS X 10.4.6.ppc [21]
  • Mac OS X 10.4.6.x86 [22]
aloitettu 106.14 Applen julkisen lähdekoodin lisenssi [23]
  • Mac OS X 10.4.7.ppc [24]
  • Mac OS X 10.4.7.x86 [25]
  • Mac OS X 10.4.8.ppc [26]
  • Mac OS X 10.4.9.ppc [27]
  • Mac OS X 10.4.10.ppc [28]
  • Mac OS X 10.4.11.ppc [29]
aloitettu 106.20 Applen julkisen lähdekoodin lisenssi [30]
  • Mac OS X 10.4.8.x86 [31]
  • Mac OS X 10.4.9.x86 [32]
  • Mac OS X 10.4.10.x86 [33]
  • Mac OS X 10.4.11.x86 [34]
laukaistiin 152 Apache License 2.0 [35]
käynnistettiin 257 Apache License 2.0 [36]
käynnistynyt 258.1 Apache License 2.0 [39]
  • Mac OS X 10.5.2 [40]
käynnistyi 258.12 Apache License 2.0 [41]
  • Mac OS X 10.5.3 [42]
  • Mac OS X 10.5.4 [43]
käynnistyi 258.18 Apache License 2.0 [44]
  • Mac OS X 10.5.5 [45]
käynnistyi 258.19 Apache License 2.0 [46]
  • Mac OS X 10.5.6 [47]
käynnistyi 258.22 Apache License 2.0 [48]
  • Mac OS X 10.5.7 [49]
käynnistyi 258.25 Apache License 2.0 [50]
  • Mac OS X 10.5.8 [51]
käynnistettiin 328 Apache License 2.0 [52]
  • Mac OS X 10.6 [53]
  • Mac OS X 10.6.1 [54]
  • Mac OS X 10.6.2 [55]
käynnistyi 329.3 Apache License 2.0 [56]
  • Mac OS X 10.6.3 [57]
käynnistetty 329.3.1 Apache License 2.0 [58]
  • Mac OS X 10.6.4 [59]
käynnistetty 329.3.2 Apache License 2.0 [60]
  • Mac OS X 10.6.5 [61]
käynnistetty 329.3.3 Apache License 2.0 [62]
  • Mac OS X 10.6.6 [63]
  • Mac OS X 10.6.7 [64]
  • Mac OS X 10.6.8 [65]
käynnistyi 392.18 Apache License 2.0 [66]
käynnistyi 392.35 Apache License 2.0 [69]
  • Mac OS X 10.7.2 [70]
käynnistyi 392.36 Apache License 2.0 [71]
  • Mac OS X 10.7.3 [72]
käynnistyi 392.38 Apache License 2.0 [73]
  • Mac OS X 10.7.4 [74]
käynnistyi 392.39 Apache License 2.0 [75]
  • Mac OS X 10.7.5 [76]
käynnistyi 442.21 Apache License 2.0 [77]
käynnistetty 442.26.2 Apache License 2.0 [80]
  • Mac OS X 10.8.2 [81]
  • Mac OS X 10.8.3 [82]
  • Mac OS X 10.8.4 [83]
  • Mac OS X 10.8.5 [84]
käynnistetty 842.1.4 Apache License 2.0 [85]
käynnistetty 842.90.1 Apache License 2.0 [88]
käynnistetty 842.92.1 Apache License 2.0 [91]

Katso myös

Linkit

Muistiinpanot

  1. http://daringfireball.net/misc/2005/04/tiger_details#waitingforloginwindow Arkistoitu 23. huhtikuuta 2007 Wayback Machinessa Daring Fireball: Tiger Details
  2. Mac OS X Manual Page For launchd.plist(5) . Haettu 15. joulukuuta 2019. Arkistoitu alkuperäisestä 26. elokuuta 2009.
  3. pieni-iso-h. node-launchd . Haettu 10. huhtikuuta 2014. Arkistoitu alkuperäisestä 13. huhtikuuta 2014.
  4. Käynnistä . FreeBSD wiki . Haettu 8. joulukuuta 2013. Arkistoitu alkuperäisestä 14. joulukuuta 2013.
  5. ReplacementInit . UbuntuWiki. Haettu 2. heinäkuuta 2007. Arkistoitu alkuperäisestä 4. kesäkuuta 2011.
  6. Prabhakar, Ernest Apple avautuu: Kernel, Mac OS Forge, iCal Server, Bonjour, Launchd (downlink) (7. elokuuta 2006). Haettu 2. heinäkuuta 2007. Arkistoitu alkuperäisestä 20. elokuuta 2011. 
  7. Croy, R Tyler Thinkpad X200:ni naarmuisin niskaparta tai FreeBSD . unethicalblogger.com . Haettu 8. joulukuuta 2013. Arkistoitu alkuperäisestä 13. joulukuuta 2013.
  8. Levin, Jonathan Launchd – palveluksessasi! (PDF) 32 (2014). - "... 10.10: siirretty versioon libxpc 559 (560 iOS 8:ssa) - Lähde ei ole vielä saatavilla - eikä ehkä koskaan tule olemaan - Libxpc on suljetun lähdekoodin projekti ...". Haettu 3. syyskuuta 2016. Arkistoitu alkuperäisestä 7. helmikuuta 2016.
  9. käynnisti 106-lisenssitiedoston . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 13. joulukuuta 2019.
  10. Mac OS X 10.4 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 21. syyskuuta 2020.
  11. Mac OS X 10.4.1 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  12. käynnistettiin 106.3-lisenssitiedosto . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 13. joulukuuta 2019.
  13. Mac OS X 10.4.2 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  14. Mac OS X 10.4.3 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 21. syyskuuta 2020.
  15. Mac OS X 10.4.4.ppc - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 17. lokakuuta 2020.
  16. Mac OS X 10.4.5.ppc - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  17. käynnistettiin 106.10-lisenssitiedosto . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 13. joulukuuta 2019.
  18. Mac OS X 10.4.4.x86 - lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  19. Mac OS X 10.4.5.x86 - lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 21. syyskuuta 2020.
  20. käynnistettiin 106.13-lisenssitiedosto . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 13. joulukuuta 2019.
  21. Mac OS X 10.4.6.ppc - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 10. lokakuuta 2020.
  22. Mac OS X 10.4.6.x86 - lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  23. käynnistettiin 106.14-lisenssitiedosto . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 13. joulukuuta 2019.
  24. Mac OS X 10.4.7.ppc - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  25. Mac OS X 10.4.7.x86 - lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 21. syyskuuta 2020.
  26. Mac OS X 10.4.8.ppc - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  27. Mac OS X 10.4.9.ppc - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 21. syyskuuta 2020.
  28. Mac OS X 10.4.10.ppc - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  29. Mac OS X 10.4.11.ppc - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  30. käynnistettiin 106.20-lisenssitiedosto . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 13. joulukuuta 2019.
  31. Mac OS X 10.4.8.x86 - lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  32. Mac OS X 10.4.9.x86 - lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  33. Mac OS X 10.4.10.x86 - lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 21. syyskuuta 2020.
  34. Mac OS X 10.4.11.x86 - lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  35. käynnisti 152-lisenssitiedoston . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 13. joulukuuta 2019.
  36. käynnisti 257-lisenssitiedoston . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 13. joulukuuta 2019.
  37. Mac OS X 10.5 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  38. Mac OS X 10.5.1 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  39. käynnisti 258.1-lisenssitiedoston . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 13. joulukuuta 2019.
  40. Mac OS X 10.5.2 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 21. syyskuuta 2020.
  41. käynnisti 258.12-lisenssitiedoston . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 13. joulukuuta 2019.
  42. Mac OS X 10.5.3 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  43. Mac OS X 10.5.4 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  44. käynnisti 258.18-lisenssitiedoston . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 13. joulukuuta 2019.
  45. Mac OS X 10.5.5 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  46. käynnisti 258.19-lisenssitiedoston . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 13. joulukuuta 2019.
  47. Mac OS X 10.5.6 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 21. syyskuuta 2020.
  48. käynnisti 258.22-lisenssitiedoston . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 13. joulukuuta 2019.
  49. Mac OS X 10.5.7 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  50. käynnisti 258.25-lisenssitiedoston . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 13. joulukuuta 2019.
  51. Mac OS X 10.5.8 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 11. lokakuuta 2019.
  52. käynnisti 328-lisenssitiedoston . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 13. joulukuuta 2019.
  53. Mac OS X 10.6 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  54. Mac OS X 10.6.1 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 21. syyskuuta 2020.
  55. Mac OS X 10.6.2 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  56. käynnisti 329.3-lisenssitiedoston . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 13. joulukuuta 2019.
  57. Mac OS X 10.6.3 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  58. käynnisti 329.3.1-lisenssitiedoston . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 13. joulukuuta 2019.
  59. Mac OS X 10.6.4 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 21. syyskuuta 2020.
  60. käynnisti 329.3.2-lisenssitiedoston . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 13. joulukuuta 2019.
  61. Mac OS X 10.6.5 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 21. syyskuuta 2020.
  62. käynnisti 329.3.3-lisenssitiedoston . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 13. joulukuuta 2019.
  63. Mac OS X 10.6.6 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  64. Mac OS X 10.6.7 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  65. Mac OS X 10.6.8 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 21. syyskuuta 2020.
  66. käynnisti 392.18-lisenssitiedoston . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 13. joulukuuta 2019.
  67. Mac OS X 10.7 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  68. Mac OS X 10.7.1 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  69. käynnisti 392.35-lisenssitiedoston . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 13. joulukuuta 2019.
  70. Mac OS X 10.7.2 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  71. käynnisti 392.36-lisenssitiedoston . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 13. joulukuuta 2019.
  72. Mac OS X 10.7.3 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  73. käynnisti 392.38-lisenssitiedoston . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 13. joulukuuta 2019.
  74. Mac OS X 10.7.4 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  75. käynnisti 392.39-lisenssitiedoston . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 13. joulukuuta 2019.
  76. Mac OS X 10.7.5 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  77. lisenssiotsikko käynnistetyssä 442.21-lähdekoodissa . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 13. joulukuuta 2019.
  78. Mac OS X 10.8 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  79. Mac OS X 10.8.1 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  80. lisenssiotsikko käynnistetyssä 442.26.2 lähdekoodissa . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 13. joulukuuta 2019.
  81. Mac OS X 10.8.2 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  82. Mac OS X 10.8.3 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  83. Mac OS X 10.8.4 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  84. Mac OS X 10.8.5 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  85. lisenssiotsikko käynnistetyssä 842.1.4 lähdekoodissa . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 13. joulukuuta 2019.
  86. OS X 10.9 - lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  87. OS X 10.9.1 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 21. syyskuuta 2020.
  88. lisenssiotsikko käynnistetyssä 842.90.1-lähdekoodissa . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 13. joulukuuta 2019.
  89. OS X 10.9.2 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  90. OS X 10.9.3 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.
  91. lisenssiotsikko käynnistetyssä 842.92.1-lähdekoodissa . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 24. syyskuuta 2018.
  92. OS X 10.9.4 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 21. syyskuuta 2020.
  93. OS X 10.9.5 - Lähde . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 20. lokakuuta 2020.