Mac OS X بوٹ کے عمل میں کیا ہوتا ہے؟

Anonim

کبھی سوچا ہے کہ Mac OS X بوٹ اور اسٹارٹ اپ کے عمل کے دوران کیا ہوتا ہے؟ Mac OS X کے ساتھ یہ پہلے کی چیزوں کے مقابلے میں قدرے پیچیدہ ہے، اور کلاسیکی میک OS (سسٹم 9، 8، 7، 6) کے وہ دن گزر چکے ہیں، جہاں ہمارے میک کو ایکسٹینشنز اور کنٹرول پینلز کی ایک سیریز کے ساتھ بوٹ اپ ہوتے دیکھتے ہیں۔ ہم ہمیشہ اکیلے ان کے آئیکن سے شناخت کر سکتے ہیں، اور پھر میک بوٹ پر جو کچھ لوڈ ہو رہا ہے اور کیا ہو رہا ہے اسے آسانی سے ایڈجسٹ کرنے کے لیے ایکسٹینشنز فولڈر میں تلاش کر سکتے ہیں۔آج میک OS X کے یونکس انڈرپننگز کے ساتھ، بہت سے صارفین اس بات سے بالکل بے خبر ہیں کہ پردے کے پیچھے کیا ہو رہا ہے۔

تو Mac OS X بوٹ کے عمل کے دوران بالکل کیا ہوتا ہے؟ آپ Verbose موڈ میں میک کو بوٹ کرکے ہمیشہ ایک بہتر شکل حاصل کرسکتے ہیں، لیکن یہ ضروری نہیں کہ آپ جو کچھ دیکھتے ہیں اس کی وضاحت کرے۔ خوش قسمتی سے KernelThread پر سیگمنٹ کے ذریعے ایک بہترین وضاحت دستیاب ہے، جو شروع سے آخر تک Mac OS X بوٹ ایونٹس کی ترتیب کو احتیاط سے درج کرتی ہے۔ یہ کافی حد تک مکمل اور پڑھنے کے قابل ہے، جو میک کے متجسس صارفین کے لیے نیچے دہرایا گیا ہے۔

ote: جیسا کہ ایک قاری نے اشارہ کیا، PPC OF (اوپن فرم ویئر) استعمال کرتا ہے، i386 EFI (ایکسٹینسیبل فرم ویئر انٹرفیس) استعمال کرتا ہے

تو Mac OS X بوٹ کے عمل کے دوران کیا ہوتا ہے؟ آپ اپنا میک آن کرتے ہیں، اور ایسا ہوتا ہے:

  • بجلی آن ہے۔
  • OF یا EFI کوڈ پر عمل درآمد ہے۔
  • ہارڈ ویئر کی معلومات اکٹھی کی جاتی ہیں اور ہارڈ ویئر کو شروع کیا جاتا ہے۔
  • بوٹ کرنے کے لیے کچھ (عام طور پر OS، بلکہ چیزیں جیسے ایپل ہارڈویئر ٹیسٹ وغیرہ) کا انتخاب کیا جاتا ہے۔ صارف کو یہ منتخب کرنے کے لیے کہا جا سکتا ہے کہ کیا بوٹ کرنا ہے۔
  • کنٹرول /System/Library/CoreServices/BootX، بوٹ لوڈر کو جاتا ہے۔ BootX کرنل کو لوڈ کرتا ہے اور OS بیجز بھی کھینچتا ہے، اگر کوئی ہو۔
  • BootX ڈیوائس ڈرائیوروں کی پہلے کیش شدہ فہرست لوڈ کرنے کی کوشش کرتا ہے (/usr/sbin/kextcache کے ذریعے تخلیق/اپ ڈیٹ کیا گیا)۔ اس طرح کا کیش mkext قسم کا ہوتا ہے اور اس میں متعدد کرنل ایکسٹینشنز کے لیے معلوماتی لغات اور بائنری فائلیں ہوتی ہیں۔ نوٹ کریں کہ اگر mkext کیش خراب ہے یا غائب ہے، BootX /System/Library/Extensions میں ان ایکسٹینشنز کے لیے دیکھے گا جن کی موجودہ منظر نامے میں ضرورت ہے (جیسا کہ OSBundleRequired پراپرٹی کی قیمت Info.plist ایکسٹینشن کے بنڈل کی فائل میں ہے۔
  • init کرنل کی روٹین پر عمل کیا جاتا ہے۔ بوٹنگ سسٹم کے روٹ ڈیوائس کا تعین کیا جاتا ہے۔ اس وقت، فرم ویئر مزید قابل رسائی نہیں ہے۔
  • مختلف مچ/بی ایس ڈی ڈیٹا ڈھانچے کو دانا کے ذریعے شروع کیا جاتا ہے۔
  • I/O کٹ شروع کر دی گئی ہے۔
  • دانا شروع ہوتا ہے /sbin/mach_init، مچ سروس کا نام (بوٹسٹریپ) ڈیمون۔ mach_init سروس کے ناموں اور Mach پورٹس کے درمیان میپنگ کو برقرار رکھتا ہے جو ان سروسز تک رسائی فراہم کرتی ہے۔

یہاں سے، اسٹارٹ اپ صارف کی سطح بن جاتا ہے:

  • mach_init شروع ہوتا ہے /sbin/init، روایتی BSD عمل شروع کریں. init رن لیول کا تعین کرتا ہے، اور /etc/rc.boot چلاتا ہے، جو مشین کو واحد صارف چلانے کے لیے کافی ترتیب دیتا ہے۔

اس کی پھانسی کے دوران، rc.بوٹ اور دوسرا rc سکرپٹ ماخذ /etc/rc.common ، ایک شیل اسکرپٹ جس میں یوٹیلیٹی فنکشنز ہوتے ہیں، جیسے CheckForNetwork() (چیک کرتا ہے کہ نیٹ ورک اپ ہے)، GetPID ()، purgedir() (صرف ڈائریکٹری کے مواد کو حذف کرتا ہے، ساخت نہیں) وغیرہ۔

  • rc.boot بوٹ کی قسم (ملٹی یوزر، سیف، سی ڈی روم، نیٹ ورک وغیرہ) کا پتہ لگاتا ہے۔ نیٹ ورک بوٹ کی صورت میں (sysctl متغیر kern.netboot پر سیٹ کیا جائے گا۔ 1 جس صورت میں)، یہ /etc/rc.netboot کے ساتھ چلتا ہے شروع دلیل۔

/etc/rc.netboot نیٹ ورک بوٹنگ کے مختلف پہلوؤں کو ہینڈل کرتا ہے۔ مثال کے طور پر، یہ نیٹ ورک اور (اگر کوئی ہے) لوکل ماؤنٹس کرتا ہے۔ یہ /usr/bin/nbst کو روٹ ڈیوائس کے طور پر استعمال ہونے والی ڈسک امیج کے ساتھ شیڈو فائل کو جوڑنے کے لیے بھی کال کرتا ہے۔خیال یہ ہے کہ تحریروں کو شیڈو فائل میں ری ڈائریکٹ کیا جائے، جو امید ہے کہ مقامی اسٹوریج پر ہے۔

  • rc.boot اعداد و شمار سے پتہ چلتا ہے کہ آیا فائل سسٹم کی مستقل مزاجی کی جانچ کی ضرورت ہے۔ سنگل یوزر اور CD-ROM بوٹ fsck نہیں چلتے ہیں۔ سیف بوٹ ہمیشہ 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 چل رہا ہے۔ یہ متعدد یونکس اور میک مخصوص ڈائریکٹریز/فائلوں کو "صاف" کرتا ہے۔
  • BootCache شروع ہو گیا ہے۔
  • مختلف sysctl متغیرات سیٹ کیے گئے ہیں (جیسے زیادہ سے زیادہ تعداد میں vnodes، System 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
  • portmap اور netinfo شروع ہو گئے ہیں۔
  • اگر /System/Library/Extensions.mkext سے پرانا ہے /System/Library/Extensions ، /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 /System/Library/StartupItems اور /Library/StartupItems StartupItem ایک پروگرام ہے، عام طور پر ایک شیل اسکرپٹ، جس کا نام فولڈر کے نام سے ملتا ہے۔ فولڈر میں پراپرٹی لسٹ فائل ہوتی ہے جس میں کلیدی قدر کے جوڑے ہوتے ہیں جیسے Description، فراہم کرتا ہے، ضروری ہے، OrderPreference، پیغامات شروع/اسٹاپ وغیرہ۔ آپ چلا سکتے ہیں۔ SystemStarter -n -D پروگرام پرنٹ ڈیبگنگ اور انحصار کی معلومات حاصل کرنے کے لیے روٹ کے طور پر (حقیقت میں کچھ چلائے بغیر)۔
  • CoreGraphics اسٹارٹ اپ آئٹم ایپل ٹائپ سروسز ڈیمون کو شروع کرتا ہے (ATSServer ) نیز ونڈو سرور (WindowServer)۔

اور پھر آپ کا میک بوٹ ہو گیا!

آپ اس سرگرمی کا تھوڑا سا حصہ خود وربوز موڈ کے ساتھ دیکھ سکتے ہیں (جسے آپ فی بوٹ وربوز موڈ میں بوٹ کر سکتے ہیں، یا آپ میک کو بھی سیٹ کر سکتے ہیں کہ وہ ہمیشہ وربوز موڈ میں بوٹ ہو جائے اگر آپ ہمیشہ دیکھنا چاہتے ہیں یونکس اسٹائل بوٹ)، لیکن یہ ایک بہت ہی مکمل وضاحت ہے۔

Apple کے پاس میک بوٹ پروسیس پر کچھ دستاویزات بھی دستیاب ہیں جو یہاں ان کی ڈویلپر ڈاکیومینٹ لائبریری میں دستیاب ہیں۔

نوٹ کریں کہ مندرجہ بالا معلومات فراہم کرنے والا اصل یو آر ایل اب فعال نہیں ہے، اس لیے اس پوسٹ کو کیشے کے ذریعے نسل کے لیے اوپر شامل کیا گیا ہے۔ اصل ماخذ مندرجہ ذیل url پر KernelThread پر ایک دھاگہ تھا: http://www.kernelthread.com/mac/osx/arch_startup.html جو کہ فی الحال آف لائن ہے اور کسی نئے مقام پر ری ڈائریکٹ نہیں ہوتا ہے۔

اگر آپ کے پاس Mac OS X بوٹ ترتیب میں شامل کرنے کے لیے کوئی خبر یا کوئی اور اضافہ ہے تو تبصروں میں شئیر کریں!

Mac OS X بوٹ کے عمل میں کیا ہوتا ہے؟