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

کبھی سوچا ہے کہ 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.confMac OS X سرور پر)، اسے پڑھا جاتا ہے اورsysctl اس میں موجود متغیر سیٹ ہوتے ہیں۔ syslogd شروع ہو گیا ہے۔- مچ سمبل فائل بن گئی ہے۔
/etc/rcشروع ہوتا ہےkextd، ڈیمون عمل جو کرنل یا کلائنٹ کے عمل کی مانگ پر کرنل ایکسٹینشن لوڈ کرتا ہے۔/usr/libexec/register_mach_bootstrap_servers/ میں موجود مختلف Mach بوٹسٹریپ پر مبنی خدمات کو لوڈ کرنے کے لیے چلایا جاتا ہے۔ etc/mach_init.dportmapاور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/StartupItemsStartupItem ایک پروگرام ہے، عام طور پر ایک شیل اسکرپٹ، جس کا نام فولڈر کے نام سے ملتا ہے۔ فولڈر میں پراپرٹی لسٹ فائل ہوتی ہے جس میں کلیدی قدر کے جوڑے ہوتے ہیں جیسےDescription،فراہم کرتا ہے،ضروری ہے،OrderPreference، پیغامات شروع/اسٹاپ وغیرہ۔ آپچلا سکتے ہیں۔ SystemStarter -n -D پروگرام پرنٹ ڈیبگنگ اور انحصار کی معلومات حاصل کرنے کے لیے روٹ کے طور پر (حقیقت میں کچھ چلائے بغیر)۔CoreGraphicsاسٹارٹ اپ آئٹم ایپل ٹائپ سروسز ڈیمون کو شروع کرتا ہے (ATSServer) نیز ونڈو سرور (WindowServer)۔
اور پھر آپ کا میک بوٹ ہو گیا!
آپ اس سرگرمی کا تھوڑا سا حصہ خود وربوز موڈ کے ساتھ دیکھ سکتے ہیں (جسے آپ فی بوٹ وربوز موڈ میں بوٹ کر سکتے ہیں، یا آپ میک کو بھی سیٹ کر سکتے ہیں کہ وہ ہمیشہ وربوز موڈ میں بوٹ ہو جائے اگر آپ ہمیشہ دیکھنا چاہتے ہیں یونکس اسٹائل بوٹ)، لیکن یہ ایک بہت ہی مکمل وضاحت ہے۔
Apple کے پاس میک بوٹ پروسیس پر کچھ دستاویزات بھی دستیاب ہیں جو یہاں ان کی ڈویلپر ڈاکیومینٹ لائبریری میں دستیاب ہیں۔
نوٹ کریں کہ مندرجہ بالا معلومات فراہم کرنے والا اصل یو آر ایل اب فعال نہیں ہے، اس لیے اس پوسٹ کو کیشے کے ذریعے نسل کے لیے اوپر شامل کیا گیا ہے۔ اصل ماخذ مندرجہ ذیل url پر KernelThread پر ایک دھاگہ تھا: http://www.kernelthread.com/mac/osx/arch_startup.html جو کہ فی الحال آف لائن ہے اور کسی نئے مقام پر ری ڈائریکٹ نہیں ہوتا ہے۔
اگر آپ کے پاس Mac OS X بوٹ ترتیب میں شامل کرنے کے لیے کوئی خبر یا کوئی اور اضافہ ہے تو تبصروں میں شئیر کریں!






