Joskus viime kesänä opiskelin hieman Mac OS X:n saloja, ja kirjoittelin muistiin ohjetta siitä, mitä kautta eri prosessit käynnistyvät. Syynä selvittelylle oli yksinkertaisesti se, etten ollut löytänyt mistään yhteenvetoa aiheesta - ainoastaan tiedonmuruja ja/tai vanhentunutta tietoa.
Homma jäi kuitenkin vaiheeseen, mutta sain mielestäni kasattua dokumenttia jo aika pitkälle. Sen sijaan, että jätän sen lojumaan omiin kansioihin, ajattelin heittää sen tänne muiden ihmeteltäväksi ja ennen kaikkea täydennettäväksi ja korjailtavaksi.
En tiedä, onko tämä foorumi oikea paikka tällaiselle kollaborointi-muokkaamiselle, sillä jokin wikin tapainenkin täältä ilmeisesti löytyy. Se näytti kuitenkin hieman kuolleelta, enkä jaksa nyt opiskella toista järjestelmää kun tunnen varmuudella vain tämän foorumin. Eli tässäpä raapustukseni.
================================================================================
Mac OS X 10.5.x:n käynnistyminen: mitä, missä, milloin?
Harri J. Talvitie <harri@x7.fi>
17.6.2009
1) Järjestelmätason launchd
Ensimmäisenä varsinaisena käyttöjärjestelmäprosessina käynnistyy launchd, vrt. SysV/BSD:n ja Linuxin init, Ubuntun upstart jne.
launchd on Mac OS X 10.4:ssä alkujaan esitelty taustaprosessien yhdistelmäkäynnistäjä, joka osaa asetuksesta riippuen käynnistää prosessin heti taustalle tai tietyn tapahtuman kuten ajastuksen tai verkkoliikenteen (esim. SSH-sisäänkirjautuja) perusteella.
launchd korvaa useita Unix/Linux-alustan perinteisiä käynnistäjiä kuten initin, rc:n, xinted:n, cronin, at:n jne. Ideana on, että kaikki prosessien käynnistämiseen liittyvä logiikka olisi koottu yhden katon alle.
launchd:n järjestelmätason määritykset on annettu hakemistossa /System/Library/LaunchDaemons/, ylläpitäjän erikseen asentamien sovellusten puolestaan hakemistossa /Library/LaunchDaemons/.
Koska launchd:n prosessitunniste (PID) on aina 1, on sen välittömästi käynnistämät prosessit helppo erottaa etsimällä prosesseja, joiden PPID (Parent Process ID) on 1.
2) SystemStarter
launchd käynnistää myös erityisen "legacy-käynnistysprosessin" SystemStarter, joka lukee asetustiedostonsa hakemistoista /System/Library/StartupItems/ ja /Library/StartupItems/.
SystemStarter on launchd:sta poiketen synkroninen, sillä se käynnistää kaikki prosessit välittömästi ja määrätyssä järjestyksessä - launchd tekee sen tarpeen mukaan, eikä järjestystä voi ennakoida. SystemStarter ja StartupItems-kansiot ovat perua Mac OS X 10.3 ja sitä aiemmista. Mac OS X 10.4:sta eteenpäin kaikki käynnistysoperaatiot tulisi tehdä uudella launchd-mekanismilla.
3) loginwindow
Koneen käynnistyessä launchd suorittaa aloitusvaiheen päätteeksi prosessin loginwindow, joka avaa Mac OS X:n graafisen sisäänkirjautumisruudun. Tämän käynnistys saadaan estettyä painamalla koneen herätessä Omppu-S.
4) Käyttäjätason launchd
Kun käyttäjä kirjautuu sisään, suoritetaan käyttäjäkohtainen launchd-prosessi joka toimii samalla periaatteella kuin järjestelmätason launchd. Järjestelmä- ja käyttäjäkohtaisen launchd-käynnistäjän terminologia poikkeaa dokumentaatioissa ja voi joskus hämätä: Käyttäjäkohtainen launchd käynnistää "agentteja", järjestelmäkohtainen vastaavasti "daemoneja". Teknisesti nämä ovat kuitenkin täysin samoja.
Käyttäjäkohtainen launchd lukee asetukset hakemistoista /System/Library/LaunchAgents/, ~/Library/LaunchAgents/ ja /Library/LaunchAgents/.
5) Login Itemit
Sisäänkirjautuessa loginwindow suoritaa Loginwindow-skriptejä, jotka on määritetty tiedostossa /Library/Preferences/com.apple.loginwindow.plist. Lisäksi käynnistetään käyttäjäkohtaiset Login Itemit, jotka on määritetty tiedostossa /Library/Preferences/loginwindow.plist.
6) Finderin ja sovellusten toimesta käynnistettävät
Finder käynnistää dokumentin avaamisen yhteydessä sille erikseen määritellyn sovelluksen, tai kysyy tunnistamattoman kohdalla millä dokumentti avataan. Oikean sovelluksen määräytymiseen on moniportaiset säännöstönsä (tiedostotyyppi, tiedostopääte, URL-skeema, MIME-tyyppi jne.).
Aihe on liian laaja tässä käsiteltäväksi, joten hyvä perusohje on selvittää käynnistyvä sovellus jollakin järjestelmätyökalulla, esim. RCDefaultApp. Hyödyllistä luettavaa on välineen FAQ-ohje: http://www.rubicode.com/Software/RCDefaultApp/faq.html
////
Korjattavaa, täydennettävää, linkkejä aiheeseen, .. ?
"Mac OS X:n käynnistysskriptit" -dokumentointiprojekti
Mac OS X, Boot Camp ja virtualisointi
1 viesti
• Sivu 1/1
-
- Viestit: 3
- Liittynyt: 19.6.2008 klo 12.55
"Mac OS X:n käynnistysskriptit" -dokumentointiprojekti
Viesti Kirjoittaja htalvitie »
1 viesti
• Sivu 1/1
Palaa sivulle “Käyttöjärjestelmät”
Hyppää
- Yleiset aiheet
- ↳ Ajankohtaista Apple-maailmasta
- ↳ Käyttöjärjestelmät
- ↳ Ohjelmat
- ↳ Yleiskeskustelu
- Mac ja oheislaitteet
- ↳ Yleiskeskustelu laitteista
- ↳ MacBook, MacBook Pro ja MacBook Air
- ↳ iMac
- ↳ Mac mini
- ↳ Mac Pro ja Mac Studio
- ↳ Ongelmia Macin kanssa?
- iPhone, iPad ja Apple Watch
- ↳ iPhone-, iPad- ja Apple Watch -laitekeskustelu
- ↳ iPhone-, iPad- ja Apple Watch -ohjelmat sekä iOS
- ↳ Ongelmia iPhonen, iPadin tai Apple Watchin kanssa?
- Huviksi ja hyödyksi
- ↳ Off-topic
- ↳ Kuva ja graafinen suunnittelu
- ↳ Audio ja musiikki
- ↳ Video, televisio ja elokuvat
- ↳ Pelit ja pelaaminen
- ↳ Ohjelmointi, skriptit ja palvelimet
- ↳ Tietoturva ja varmuuskopiointi
- ↳ Verkot, mobiilidata ja muut puhelimet
- ↳ Retronurkka
- ↳ Foorumin ylläpito
- Kauppapaikka
- ↳ Myydään Mac
- ↳ Myydään iPhone, iPad ja iPod
- ↳ Myydään muut Applen tuotteet
- ↳ Myydään muuta tietotekniikkaa
- ↳ Ostetaan Mac
- ↳ Ostetaan iPhone, iPad ja iPod
- ↳ Ostetaan muut Applen tuotteet
- ↳ Ostetaan muuta tietotekniikkaa
- ↳ Vaihdetaan, annetaan, työtä haetaan ja tarjotaan
- ↳ Kauppapaikan keskustelu ja hintavinkit