(در ادامه مقاله قبلی) : هسته kernel سیستم عامل لینوکس سپس هریک از برنامه های کاربردی خود و نصب شده روی سیستم را یکی پس از دیگری اجرا نموده و در صورتی که در مورد هر برنامه ها همه چیز درست کارکند برنامه بعدی را به اجرا می گذارد.
در مرحله نخست هسته kernel میبایست فایل initrd یانامی مشابه حاوی عبارت init را به اجرا گذارد که حاوی اطلاعات مهمی مثل نام برنامه های کاربردی و فایلها و یا سایر موضوعات مرتبط با کامپیوتر است.
بعد از اینکه هسته کرنل فایل init را به اجرا گذاشت دیگر هیچ برنامه دیگری را اجرا نخواهد کرد و مدیریت عملیات سیستم را کاملا بعنوان مدیر سرویس دهنده کامپیوتر و نه بعنوان یک برنامه اجرا شده بدست می گیرد.
برای اینکه ببینیم بعداز مراحل بالاآمدن هسته سیستم عامل کامپیوتر چه عملیاتی را انجام میدهد باید نگاهی به مراحل اجرای init بیندازیم . درحال عادی init کامپیوتر را وامیدارد که وارد یک سری عملیات پیچیده شود که در انواع کامپیوترها باهم متفاوت خواهند بود .
برای لینوکس نسخه های متفاوتی از init وجود دارد که هر نسخه یک سری عملیات خاص خودرا انجام میدهد . این عملیات بستگی کامل به نوع توزیع مورد استفاده در هنگام نصب لینوکس و قرارگرفتن یا نگرفتن کامپیوتر برروی شبکه network دارد . در هر صورت تعدادی از عملیات روتین که موقع اجرای کدهای init برروی کامپیوتر به اجرا گذاشته میشوند عبارتند از :
· سیستم فایل مورد استفاده برروی هاردیسک بررسی میشود . فایل سیستم ها مثل EX3 یا EX2 یا FAT به کرنل خواهند گفت که چه قسمتی از هارد دیسک حاوی اطلاعات و چه قسمتی شامل فضای خالی است . متاسفانه بنابه دلائلی همچون قطع ناگهانی جریان برق ممکن است فایل سیستم در شناسائی فضای آزاد یا استفاده شده هارددیسک دچار اشتباه شده و این خطا به از دست رفتن دائمی اطلاعات منجر گردد . (به همین دلیل است که ماهرگز نباید کامپیوتر خودرا بدون طی مراحل استاندارد shut down خاموش کنیم) . البته تعدادی برنامه اختصاصی مثل fsck برای تصحیح خطاهای ایجاد شده در این قبیل موارد طراحی گردیده و سیستم لینوکس یا کاربران آن بصورت دستی یا اتوماتیک خواهند توانست تاحد زیادی این خطاهای ایجاد شده را ترمیم کنند .
· برنامه های مسیر یاب routing شبکه برای کاربرروی شبکه اجرا میگردند .
· فایلهای موقت temporary ایجاد شده توسط برخی برنامه های کاربردی پاکسازی میشوند .
· ساعت و تقویم سیستم system clock با اطلاعات موجود از طریق GMT و ساعت بایوس به روز میگردد . در این مرحله ساعت بومی تنظیم شده برروی سیستم شما در اولویت قرار دارد .
بعد از به اتمام رسیدن فعالیتهای init و انجام روندهای مشابه فوق الذکر در پروسه boot-up به مرحله اجرا و انجام پروسه ها و برنامه های زمان بندی شده میرسیم .
در این مرحله نقش init بعنوان سرپرست parent سایر روندها در سیستم لینوکس قطعی است .
در unix یک پروسه را به سادگی میتوان با اجرای یک برنامه مقایسه کرد و چون هربرنامه بارها و بارها میتواند اجرا شود و نقشهای متفاوتی را بعهده بگیرد پس دویا چند پروسه را میتوان برای یک برنامه واحد مشاهده کرد .باید اذعان کرد که تعداد بسیار زیادی پروسه و زیر پروسه ها در این مرحله به اجرا گذاشته میشوند . بعنوان مثال یکی از پروسه های احضار شده Fork نام دارد و پروسه Fork خود شامل پروسه های متعدد دیگری در داخل خود میباشد .
همانطوریکه میدانید وقتی کامپیوتر خودرا روشن میکنید نخستین چیزی که برای آغاز عملیات Boot لازم است اطلاعات موجود در یک برنامه کوچک مستقر در چیپ ستی به نام Bios میباشد . این برنامه که بصورت read only در یک چیپ از نوع rom قرار دارد اولین و حداقل اطلاعات حیاتی را در مورد سخت افزار سیستم در خود دارد و بدون آن دبالا آمدن سیستم عملا غیر ممکن است .
پس از اینکه برنامه موجود در بایوس اجرا شد نخستین صفحه حاوی متنی ساده برروی مانیتور شما به نمایش در آمده و اطلاعات کمی در مورد نوع پردازنده و کارت گرافیک یا نوع هارد دیسک و سی دی رام متصل شده به سیستم به نمایش در می آید . در این هنگام برنامه بایوس در آخرین خط اجرای فرامین خود کنترل عملکرد را برای اجرای دستورات بعدی به نخستین رسانه دارای اطلاعات سیستمی (مثلا فلاپی دیسک) میدهد . حتما شما هم تاکنون به پیغام زیر هنگامی که یک فلاپی غیر سیستمی در فلاپی درایو قرار داده و کامپیوتر را بوت نموده اید برخورد کرده اید .
Non-system disk or disk error
Remove the disk and press any key to continue
معنی این پیغام این است که دیسکت شما فاقد اطلاعات لازم برای بوت کردن سیستم است . اگر شما این دیسکت را از دستگاه خارج کرده و یک کلید را بدلخواه فشار دهید بایوس سیستم به دومین رسانه دارای فایلهای سیستمی و بصورت پیش فرض به قسمت master boot record – MBR هاد دیسک مراجعه خواهد کرد .
در این مرحله کدهای اجرائی و سیستمی موجود یکی پس از دیگری اجرا میگردند و مثلا در مورد سیستم عامل داس در نهایت به خط فرمان خواهیم رسید .
اما در مورد سیستمهای لینوکس ابتدا کدهای اجرائی برنامه های بوت لودرهمچون LILO, the LInux Loader یا GRUB,grand unified unix bootloader به اجرا در آمده و این برنامه ها هستند که تعیین کننده خط مشی اجرائی کدهای بعدی خواهند بود .
این بدین معنی است که بوت لودر این انتخاب را برای کاربر فراهم میسازد که برای اجرای فرامین بعدی و بوت کردن سیستم خود به کدامین قسمت از master boot record و کدام پارتیشن مراجعه کند .
بعد از اینکه بایوس کنترل را به بوت لودر سپرد ، بوت لودر هم کنترل را در نهایت به سیستم عامل شما مثلا به لینوکس میسپارد . بدیهی است که بوت لودرهای لینوکس براحتی قابل پیکربندی و اختصاصی شدن هستند و اطلاعات نخستین سیستم عامل قابل بوت و زمان وقفه و پارتیشن هاد دیسک محل استقرارMBR یا سیستم عامل ها با ویرایش فایلهای /etc/lilo.conf یا /boot/grub/menu.lst قابل تغییر است .
اولین چیزی که لینوکس پس از آغاز عملیات بوت انجام میدهد تغییر وضعیت سیستم یا سوئیچ کردن به وضعیت protected mode یا همان سیستم امن میباشد . البته باید دانست که سیستمهای عامل قدیمی همچون داس بدون تغییر وضعیت سیستم از لحاظ امنیتی به وضعیت بدون حفاظ real mode بوت میشوند .
همانطوریکه میبینید سیستم های عامل پیشرفته مثل لینوکس با انجام اینکار کنترل سیستم را کاملا بدست گرفته و از اختیار بایوس کاملا خارج میسازند .
در مرحله بعدی لینوکس به جستجو وشناسائی سخت افزارهای موجود برروی سیستم میپردازد و این کار را هربار که شما سیستم خودرا خاموش و سپس روشن نمائید انجام خواهر داد چرا که اطلاعات مربوط به سخت افزار سیستم مثل نوع مادربورد ، هاددیسک ، چیپست کارت گرافیک ، ماوس و ابزارهای شبکه و ..... در هربار بوت شدن لازم و ضروری اند و لینوکس نمیتواند و نباید این اطلاعات را بخاطر بسپارد چون هر کس ممکن است در طول دومرحله بوت کامپیوتر خود نوعی از سخت افزار را به آن افزوده یا از آن بکاهد .
با کمال خوشبختی لینوکس این اطلاعات را ازطریق پرس و جو با سخت افزار سیستم و بصورت اتوماتیک انجام میدهد و نیاز به دخالت کاربر وجود ندارد ، البته شما میتوانید نتایج کار هسته kernel سیستم عام را در مورد این پرس و جوها در صفحات آغازین بوت شدن لینوکس و بصورت خطوطی که برروی مانیتور نمایش می یابند مشاهده نمائید .
همانطوریکه میدانید برنامه های نرم افزاری با فرمت rpm در لینوکس بسیار فراگیر شده اند و به هر یک از آنها اصطلاحا یک بسته گفته میشود . کسب اطلاعات در مورد بسته های نرم افزاری rpm قبل یا پس از نصب برروی سیستم یکی از مهمترین جنبه های کار با اینگونه نرم افزارهاست .
Quering یا پرس و جو در مورد بسته های RPM نصب شده برروی سیستم را میتوان از طریق رابطهای گرافیکی یا در محیط متنی انجام داد . هدف از این پرس و جو که در محیط متنی توس دستور rpm –q صورت می پذیرد کسب اطلاعات در مورد یک یا تعدادی بسته نرم افزاری نصب شده روی سیستم لینوکس میباشد .
مثلا برای کسب اطلاعات در مورد بسته mozilla در یک سیستم لینوکس باید در خط فرمان تایپ کنیم :
# rpm –q mozilla
همانطوریکه می بینید در این دستور نیاز به تایپ نام کامل بسته نمی باشد. و خروجی آن که بلافاصله در خط فرمان درج خواهد شد عبارتست از :
# mozilla-1.6.1
البته بجای مشخص کردن نام بسته میتوان از گزینه های زیر بهمراه سوئیچ –q استفاده کرد :
· -a از تمامی بسته های نصب شده برروی سیستم گزارش تهیه میکند .
· -f
· -p
تعدادی از گزینه های دیگر هم وجود دارند که که برای نمایش اطلاعات تکمیلی در مورد بسته های پرس و جو شده بکار میروند بعنوان مثال :
· -i اطلاعات بسته ها را بعنوان نام ، توصیف ، انتشار ، اندازه و زمان ساخت و زمان نصب و فروشنده نمایش میدهد .
· -l لیست فایلهای بسته را نمایش میدهد .
· -s وضعیت تمامی فایلهای داخل بسته را نمایش میدهد .
· -d لیستی از فایلهای مستندات بسته مثل readme یا documentation را نمایش میدهد .
· -c لیستی از فایلهای پیکربندی را نشان میدهد . در واقع اینها همان فایلهائی هستند که در صورت نصب ناموفق یک بسته روی سیستم به واسطه عدم سازگاری بسته شما باید آنها را برای رفع اشکالات احتمالی ویرایش یا تعویض نمائید .
· برای گزینه هائی که لیست فایل را نمایش میدهند با افزودن سوئیچ –v بخ خط دستورات قادر خواهید بود از آن لیست بگیرید و این گزینه چیزی شبیه دستور ls –l میباشد .