"Mac OS X:n käynnistysskriptit" -dokumentointiprojekti

Mac OS X, Boot Camp ja virtualisointi

"Mac OS X:n käynnistysskriptit" -dokumentointiprojekti

ViestiKirjoittaja htalvitie » 17.6.2009 klo 19.34

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, .. ?
MacBook Pro 2.4 GHz 15" (11/2007), Mac mini (Intel)
Avatar
htalvitie
 
Viestit: 3
Liittynyt: 19.6.2008 klo 12.55
Paikkakunta: Helsinki

Paluu Käyttöjärjestelmät

Paikallaolijat

Käyttäjiä lukemassa tätä aluetta: tved ja 3 vierailijaa