Mac OS X బూట్ ప్రాసెస్‌లో ఏమి జరుగుతుంది?

Anonim

Mac OS X బూట్ మరియు స్టార్టప్ ప్రక్రియలో ఏమి జరుగుతుందో ఎప్పుడైనా ఆలోచిస్తున్నారా? Mac OS Xతో ఇది ఒకప్పటి కంటే కొంచెం క్లిష్టంగా ఉంది మరియు క్లాసిక్ Mac OS (సిస్టమ్ 9, 8, 7, 6) రోజులు గడిచిపోయాయి, ఇక్కడ మా Macs వరుస పొడిగింపులు మరియు నియంత్రణ ప్యానెల్‌లతో బూట్ అప్ అవుతాయి మేము ఎల్లప్పుడూ వారి చిహ్నం ద్వారా మాత్రమే గుర్తించగలము, ఆపై Mac బూట్‌లో లోడ్ అవుతున్న మరియు సంభవించే వాటిని సులభంగా సర్దుబాటు చేయడానికి పొడిగింపుల ఫోల్డర్‌లో త్రవ్వవచ్చు.నేడు Mac OS X యొక్క Unix అండర్‌పిన్నింగ్‌లతో, చాలా మంది వినియోగదారులకు తెరవెనుక ఏమి జరుగుతుందో పూర్తిగా తెలియదు.

కాబట్టి Mac OS X బూట్ ప్రక్రియలో సరిగ్గా ఏమి జరుగుతుంది? వెర్బోస్ మోడ్‌లో Macని బూట్ చేయడం ద్వారా మీరు ఎల్లప్పుడూ మెరుగైన రూపాన్ని పొందవచ్చు, కానీ మీరు చూసేదంతా వివరించాల్సిన అవసరం లేదు. అదృష్టవశాత్తూ కెర్నల్‌థ్రెడ్‌లో సెగ్మెంట్ ద్వారా అద్భుతమైన వివరణ అందుబాటులో ఉంది, ఇది ప్రారంభం నుండి ముగింపు వరకు Mac OS X బూట్ ఈవెంట్‌ల క్రమాన్ని జాగ్రత్తగా జాబితా చేస్తుంది. ఇది చాలా క్షుణ్ణంగా మరియు చదవడానికి విలువైనది, అక్కడ ఉన్న పరిశోధనాత్మక Mac వినియోగదారుల కోసం క్రింద పునరావృతం చేయబడింది.

ఓట్: రీడర్ సూచించినట్లుగా, PPC OF (ఓపెన్‌ఫర్మ్‌వేర్)ని ఉపయోగిస్తుంది, i386 EFI (ఎక్స్‌టెన్సిబుల్ ఫర్మ్‌వేర్ ఇంటర్‌ఫేస్)ని ఉపయోగిస్తుంది

కాబట్టి Mac OS X బూట్ ప్రాసెస్ సమయంలో ఏమి జరుగుతుంది? మీరు మీ Macని ఆన్ చేయండి మరియు ఇది జరుగుతుంది:

  • పవర్ ఆన్ చేయబడింది.
  • OF లేదా EFI కోడ్ అమలు చేయబడింది.
  • హార్డ్‌వేర్ సమాచారం సేకరించబడింది మరియు హార్డ్‌వేర్ ప్రారంభించబడుతుంది.
  • ఏదో (సాధారణంగా OS, కానీ Apple హార్డ్‌వేర్ టెస్ట్ మొదలైనవి కూడా) బూట్ చేయడానికి ఎంచుకోబడింది. ఏమి బూట్ చేయాలో ఎంచుకోమని వినియోగదారు ప్రాంప్ట్ చేయబడవచ్చు.
  • Control /System/Library/CoreServices/BootX, బూట్ లోడర్‌కి వెళుతుంది. BootX కెర్నల్‌ను లోడ్ చేస్తుంది మరియు ఏదైనా ఉంటే OS బ్యాడ్జ్‌లను కూడా గీస్తుంది.
  • BootX పరికర డ్రైవర్ల యొక్క మునుపు కాష్ చేసిన జాబితాను లోడ్ చేయడానికి ప్రయత్నిస్తుంది (/usr/sbin/kextcache ద్వారా సృష్టించబడింది/నవీకరించబడింది). ఇటువంటి కాష్ mkext రకంగా ఉంటుంది మరియు బహుళ కెర్నల్ పొడిగింపుల కోసం సమాచార నిఘంటువులు మరియు బైనరీ ఫైల్‌లను కలిగి ఉంటుంది. mkext కాష్ పాడైపోయినా లేదా తప్పిపోయినా, BootX ప్రస్తుత దృష్టాంతంలో అవసరమైన పొడిగింపుల కోసం /System/Library/Extensionsలో కనిపిస్తుందని గమనించండి (దీని ద్వారా నిర్ణయించబడింది పొడిగింపు యొక్క బండిల్ యొక్క OSBundleRequiredInfo.plist ఫైల్‌లోనిఆస్తి విలువ.
  • init కెర్నల్ యొక్క రొటీన్ అమలు చేయబడింది. బూటింగ్ సిస్టమ్ యొక్క రూట్ పరికరం నిర్ణయించబడుతుంది. ఈ సమయంలో, ఫర్మ్‌వేర్ ఇకపై యాక్సెస్ చేయబడదు.
  • వివిధ Mach/BSD డేటా స్ట్రక్చర్‌లు కెర్నల్ ద్వారా ప్రారంభించబడ్డాయి.
  • I/O కిట్ ప్రారంభించబడింది.
  • The Kernel /sbin/mach_init, Mach సర్వీస్ నేమింగ్ (బూట్‌స్ట్రాప్) డెమోన్‌తో ప్రారంభమవుతుంది. mach_init సేవ పేర్లు మరియు ఆ సేవలకు యాక్సెస్ అందించే Mach పోర్ట్‌ల మధ్య మ్యాపింగ్‌లను నిర్వహిస్తుంది.

ఇక్కడి నుండి, స్టార్టప్ వినియోగదారు స్థాయి అవుతుంది:

    సాంప్రదాయ BSD init ప్రక్రియ. init రన్‌లెవల్‌ను నిర్ణయిస్తుంది మరియు
  • /etc/rc.bootని అమలు చేస్తుంది, ఇది సింగిల్-యూజర్‌ను అమలు చేయడానికి సరిపోయేంతగా మెషీన్‌ను సెట్ చేస్తుంది.

దీని అమలు సమయంలో, rc.boot మరియు ఇతర rc స్క్రిప్ట్‌ల మూలం /etc/rc.common , CheckForNetwork() (నెట్‌వర్క్ అప్‌లో ఉందో లేదో తనిఖీ చేస్తుంది), GetPID వంటి యుటిలిటీ ఫంక్షన్‌లను కలిగి ఉన్న షెల్ స్క్రిప్ట్ (), purgedir() (డైరెక్టరీ కంటెంట్‌లను మాత్రమే తొలగిస్తుంది, నిర్మాణం కాదు), మొదలైనవి

  • rc.boot బూట్ రకాన్ని (మల్టీ-యూజర్, సేఫ్, CD-ROM, నెట్‌వర్క్ మొదలైనవి) లెక్కిస్తుంది. నెట్‌వర్క్ బూట్ విషయంలో (sysctl వేరియబుల్ kern.netbootకి సెట్ చేయబడుతుంది1 ఈ సందర్భంలో), ఇది తో /etc/rc.netbootతో నడుస్తుంది ప్రారంభం వాదన.

/etc/rc.netboot నెట్‌వర్క్ బూటింగ్ యొక్క వివిధ అంశాలను నిర్వహిస్తుంది. ఉదాహరణకు, ఇది నెట్‌వర్క్ మరియు (ఏదైనా ఉంటే) స్థానిక మౌంట్‌లను నిర్వహిస్తుంది. రూట్ పరికరంగా ఉపయోగించబడుతున్న డిస్క్ ఇమేజ్‌తో షాడో ఫైల్‌ని అనుబంధించడానికి ఇది /usr/bin/nbst కూడా కాల్ చేస్తుంది.వ్రాతలను షాడో ఫైల్‌కి దారి మళ్లించాలనే ఆలోచన ఉంది, ఇది ఆశాజనక స్థానిక నిల్వపై ఉంది.

  • rc.boot ఫైల్ సిస్టమ్ అనుగుణ్యత తనిఖీ అవసరమైతే గుర్తించబడుతుంది. సింగిల్-యూజర్ మరియు CD-ROM బూట్‌లు fsckని అమలు చేయవు. SafeBoot ఎల్లప్పుడూ fsckని నడుపుతుంది. rc.boot fsck యొక్క రిటర్న్ స్థితిని కూడా నిర్వహిస్తుంది.
  • rc.boot విజయవంతంగా నిష్క్రమిస్తే, /etc/rc , బహుళ-వినియోగదారు స్టార్టప్ స్క్రిప్ట్ అమలు చేయబడుతుంది. CD-ROM నుండి బూట్ అయినట్లయితే, స్క్రిప్ట్ /etc/rc.cdrom (ఇన్‌స్టాలేషన్)కి మారుతుంది.
  • /etc/rc స్థానిక ఫైల్ సిస్టమ్‌లను మౌంట్ చేస్తుంది (HFS+, HFS, UFS, /dev/ fd, /.vol), డైరెక్టరీ /private/var/tmp ఉనికిలో ఉంది మరియు రన్ అవుతుంది /etc/rc.installer_cleanup, ఒకటి ఉంటే (రీబూట్ చేయడానికి ముందు ఇన్‌స్టాలర్ వదిలివేయబడుతుంది).
  • /etc/rc.cleanup అమలు చేయబడుతుంది. ఇది అనేక Unix మరియు Mac నిర్దిష్ట డైరెక్టరీలు/ఫైళ్లను "క్లీన్ చేస్తుంది".
  • BootCache ప్రారంభించబడింది.
  • వివిధ sysctl వేరియబుల్స్ సెట్ చేయబడ్డాయి (గరిష్ట సంఖ్యలో vnodes, సిస్టమ్ V IPC మొదలైనవి). /etc/sysctl.conf ఉనికిలో ఉంటే (ప్లస్ /etc/sysctl-macosxserver.conf Mac OS X సర్వర్‌లో), ఇది చదవబడుతుంది మరియు sysctl వేరియబుల్స్ సెట్ చేయబడ్డాయి.
  • syslogd ప్రారంభించబడింది.
  • మాచ్ సింబల్ ఫైల్ సృష్టించబడింది.
  • /etc/rc మొదలవుతుంది kextd, డెమోన్ ప్రక్రియ కెర్నల్ లేదా క్లయింట్ ప్రాసెస్‌ల నుండి డిమాండ్‌పై కెర్నల్ పొడిగింపును లోడ్ చేస్తుంది.
  • /usr/libexec/register_mach_bootstrap_servers /లో ఉన్న వివిధ Mach బూట్‌స్ట్రాప్ ఆధారిత సేవలను లోడ్ చేయడానికి అమలు చేయబడుతుంది etc/mach_init.d
  • పోర్ట్మ్యాప్ మరియు నెట్ఇన్ఫో ప్రారంభించబడ్డాయి.
  • /System/Library/Extensions.mkext/సిస్టమ్/లైబ్రరీ/ఎక్స్‌టెన్షన్‌ల కంటే పాతది అయితే , /etc/rc ఇప్పటికే ఉన్న mkextని తొలగించి, కొత్తదాన్ని సృష్టిస్తుంది. అది ఉనికిలో లేకుంటే ఒకదానిని కూడా సృష్టిస్తుంది.
  • /etc/rc మొదలవుతుంది /usr/sbin/update , అంతర్గత ఫైల్ సిస్టమ్ కాష్‌లను తరచుగా డిస్క్‌కి ఫ్లష్ చేసే డెమోన్.
  • /etc/rc వర్చువల్ మెమరీ సిస్టమ్‌ను ప్రారంభిస్తుంది. /private/var/vm స్వాప్ డైరెక్టరీగా సెటప్ చేయబడింది. /sbin/dynamic_pager తగిన ఆర్గ్యుమెంట్‌లతో ప్రారంభించబడింది (స్వాప్ ఫైల్‌నేమ్ పాత్ టెంప్లేట్, సృష్టించబడిన స్వాప్ ఫైల్‌ల పరిమాణం, అదనపు స్వాప్‌ను ఎప్పుడు సృష్టించాలో పేర్కొనే అధిక మరియు తక్కువ నీటి హెచ్చరిక ట్రిగ్గర్‌లు ఫైల్‌లు లేదా ఇప్పటికే ఉన్న వాటిని తొలగించండి).
  • /etc/rc మొదలవుతుంది /usr/libexec/fix_prebindingతప్పుగా ప్రీబౌండ్ బైనరీలను పరిష్కరించడానికి.
  • /etc/rc అమలు చేస్తుంది /etc/rc.cleanupఫైల్‌లు మరియు పరికరాలను శుభ్రం చేయడానికి మరియు రీసెట్ చేయడానికి.
  • /etc/rc చివరకు /sbin/SystemStarter /సిస్టమ్/లైబ్రరీ/స్టార్టప్ ఐటమ్స్ మరియు /లైబ్రరీ/స్టార్టప్ ఐటెమ్స్ వంటి స్థానాల నుండి ప్రారంభ అంశాలను నిర్వహించడానికి స్టార్టప్ ఐటెమ్ అనేది ఒక ప్రోగ్రామ్, సాధారణంగా షెల్ స్క్రిప్ట్, దీని పేరు ఫోల్డర్ పేరుతో సరిపోతుంది. ఫోల్డర్‌లో వివరణ, అందిస్తుంది వంటి కీ-విలువ జతలను కలిగి ఉన్న ఆస్తి జాబితా ఫైల్ ఉంది. అవసరం, OrderPreference, ప్రారంభ/ఆపు సందేశాలు మొదలైనవి. మీరు అమలు చేయవచ్చు SystemStarter -n -D ప్రోగ్రామ్ ప్రింట్ డీబగ్గింగ్ మరియు డిపెండెన్సీ సమాచారాన్ని (వాస్తవానికి ఏదైనా అమలు చేయకుండా) కలిగి ఉండటానికి రూట్‌గా.
  • The CoreGraphics స్టార్టప్ ఐటెమ్ ఆపిల్ టైప్ సర్వీసెస్ డెమోన్‌ను ప్రారంభిస్తుంది (ATSServer ) అలాగే విండో సర్వర్ (WindowServer).

ఆపై మీ Mac బూట్ చేయబడింది!

మీరు వెర్బోస్ మోడ్‌తో ఈ యాక్టివిటీలో కొంత భాగాన్ని మీరే చూడవచ్చు (దీనిని మీరు ఒక్కో బూట్‌కు వెర్బోస్ మోడ్‌లోకి బూట్ చేయవచ్చు లేదా మీరు ఎల్లప్పుడూ చూడాలనుకుంటే వెర్బోస్ మోడ్‌లో ఎల్లప్పుడూ బూట్ అయ్యేలా Macని కూడా సెట్ చేయవచ్చు. unix స్టైల్ బూట్), కానీ ఇది చాలా సమగ్రమైన వివరణ.

Apple ఇక్కడ వారి డెవలపర్ డాక్యుమెంటైటన్ లైబ్రరీలో Mac బూట్ ప్రాసెస్‌లో కొన్ని డాక్యుమెంటేషన్ అందుబాటులో ఉంది.

పై సమాచారాన్ని అందించే అసలైన URL ఇకపై సక్రియంగా లేదని గమనించండి, అందువల్ల ఆ పోస్ట్ కాష్ ద్వారా సంతానం కోసం పైన చేర్చబడింది. అసలు మూలం కింది url వద్ద ఉన్న KernelThreadలో థ్రెడ్: http://www.kernelthread.com/mac/osx/arch_startup.html ఇది ప్రస్తుతం ఆఫ్‌లైన్‌లో ఉంది మరియు కొత్త స్థానానికి దారి మళ్లించదు.

Mac OS X బూట్ సీక్వెన్స్‌కు జోడించడానికి మీకు ఏవైనా చిట్కాలు లేదా ఇతర చేర్పులు ఉంటే, వ్యాఖ్యలలో భాగస్వామ్యం చేయండి!

Mac OS X బూట్ ప్రాసెస్‌లో ఏమి జరుగుతుంది?