نگاهی دقیق‌تر به فرایند راه‌اندازی لینوکس
امروزه شما قادرید تا براحتی یکی از توزیع‌های لینوکس را تهیه کرده و آنرا نصب و استفاده نمایید بدون اینکه واقعا نیاز داشته باشید تا بخش‌های فنی سیستم‌عامل را درک نمایید. مقاله حاضر نگاهی اجمالی به فرایند راه‌اندازی سیستم لینوکس شما دارد.
اصطلاح فنی راه‌اندازی کامپیوتر را فرایند بوت یا Bootstrapping می‌گویند و یا بطور خلاصه‌تر بوت (boot یا booting). بخش آغازین این فرایند توسط کدهای ذخیره شده در ROM کامپیوتر انجام می‌شود. این بخش در همه سیستم‌عامل‌ها یکسان می‌باشد. وظیفه این کد بارگذاری مدیر بوت لینوکس (Linux Boot Loader) برای ادامه فرایند می‌باشد.
برنامه‌های مدیر بوت
برنامه‌های مدیر بوت برنامه‌هایی هستند که توسط ROM کامپیوتر (یا همان BIOS) بارگذاری می‌شوند. در لینوکس دو مدیر بوت رایج وجود دارد. لیلو (LiLO) مدیر بوت سنتی لینوکس و گراب (Grub) مدیر بوتی جدیدتر می‌باشد.هرکدام از این برنامه‌ها ابتدا مقداری اطلاعات پیکربندی را دریافت کرده و سپس هسته لینوکس یا سیستم‌عامل دیگری را بارگذاری می‌کند و ادامه فرایند بوت را به آن می‌سپارد. قبلا دو مقاله برای آشنایی بیشتر با نحوه مدیریت و پیکربندی این دو مدیر بوت منتشر کرده‌ام که می‌توانید آنها را در بخش مقالات سایت مطالعه نمایید.
مهمترین تفاوت بین لیلو و گراب در نحوه دریافت اطلاعات پیکربندی است. فایل پیکربندی لیلو با اجرای دستور lilo بصورت ثابت ذخیره می‌گردد. این اطلاعات یا در رکورد بوت اصلی (MBR یا Master Boot Record) دیسک یا در رکورد بوت پارتیشن لینوکس ذخیره می‌شود. اطلاعات پیکربندی که توسط دستور lilo استفاده می‌شود، عموما در فایل etc/lilo.conf ذخیره می‌شود. در زیر یک مثال از این فایل پیکربندی را مشاهده می‌نمایید.
boot=/dev/hda # boot loader to MBR
root=/dev/hda1 # root partition
install=/boot/boot.b
map=/boot/map
delay=50 # 5 second delay before auto-boot
image=/vmlinuz # kernel
label=linux # name to refer to entry
read-only
image=/vmlinuz.old # backup entry
label=old
read-only
در مثال بالا امکان انجام بوت از روی دو هسته مختلف یعنی vmlinuz و vmlinuz.old وجود دارد. هنگام بوت شما می‌توانید یکی از این هسته‌ها را انتخاب نمایید. با فشردن کلید TAB در اعلان لیلو، گزینه‌های موجود لیست می‌شوند. در صورتی که هسته جدیدی را با ویرایش فایل etc/lilo.conf اضافه کرده‌اید و یا هر تغییر دیگری در فایل پیکربندی لیلو اعمال کرده‌اید، باید پس از آن دستور lilo را اجرا نمایید تا این تغییرات اعمال شوند.
گراب فایل پیکربندی را هنگام بوت می‌خواند. حجم MBR فقط ۵۱۲ بایت است و تنها بخشی از گراب که عهده دار فرایند‌های بسیار ابتدایی بوت است در آن ذخیره می‌شود. بقیه اطلاعات از روی پارتیشنی که اطلاعات بوت گراب در آن ذخیره شده است، بارگذاری می‌گردد.
گراب توسط برنامه grub-install نصب می‌شود. فایل پیکربندی گراب به طور معمول در مسیر boot/grub/menu.lst قرار دارد. در زیر یک مثال از این فایل را مشاهده می‌نمایید:
default 0
timeout 8
gfxmenu (hd0,1)/boot/message

title Linux
kernel (hd0,1)/boot/vmlinuz root=/dev/hda2 desktop showopts
initrd (hd0,1)/boot/initrd

title Failsafe
kernel (hd0,1)/boot/vmlinuz root=/dev/hda2 showopts ide=nodma apm=off acpi=o
ff vga=normal nosmp noapic maxcpus=0 3
initrd (hd0,1)/boot/initrd

title Memory Test
kernel (hd0,1)/boot/memtest.bin
در صورتی که شما کامپیوتر خود را با یک سیستم‌عامل عامل اختصاصی از ردموند به اشتراک گذاشته‌اید، حواستان باشد که آنها اعتقاد دارند که سیستم‌عاملی جز سیستم‌عامل خودشان وجود ندارد و بنابراین اگر ویندوز را پس از لینوکس نصب کنید، بر روی MBR خواهد نوشت. به همین علت ابتدا ویندوز را نصب نمایید.
سطوح اجرایی لینوکس
سطوح اجرایی لینوکس به شما آرایه‌ای از پیکربندی‌های سیستمی ارائه می‌کنند. بدون مشخص کردن، معمولا سیستم با سطح اجرایی پیش‌گزیده که ممکن است ۳، ۲ یا ۵ باشد، بوت می‌شود. این سطح اجرایی پیش‌گزیده را می‌توانید با ورود برخی کلمات کلیدی هنگام بوت تغییر دهید.
به طور استاندارد ۷ سطح اجرایی در لینوکس وجود دارد. از ۰ تا ۷. سطح اجرایی ۰ به معنی خاموش کردن سیستم، سطح اجرایی ۱ به معنی حالت تک کاربر و سطح اجرایی ۶ به معنی بوت مجدد (Reboot) سیستم هستند. سطوح اجرایی دیگری که رایج هستند عبارتند از سطح اجرایی ۳ که یک سیستم چند کاربره بدون محیط گرافیکی است، حالت اجرایی ۵ که محیط اجرایی چندکاربره همراه با محیط گرافیکی است. البته در سیستم‌های مبتنی بر لینوکس دبیان، سطوح اجرایی ۳ و ۵ با سطح اجرایی ۲ جایگزین شده‌اند. در بسیاری از سیستم‌ها، یک سطح اجرایی دیگر موسوم به S وجود دارد که مشابه به سطح اجرایی ۱ بوده ولی برای ورود به آن نیاز به کلمه عبور ریشه می‌باشد. این بدلیل مسائل امنیتی است.
محتویات فایل etc/inittab مشخص کننده سطوح اجرایی سیستم شما و سطح اجرایی پیش‌گزیده می‌باشد. در زیر مثالی از این فایل را مشاهده می‌نمایید:
#
# /etc/inittab
#
# This is the main configuration file of /sbin/init, which
# is executed by the kernel on startup.
#

# The default runlevel
id:5:initdefault:

# /etc/init.d/rc takes care of runlevel handling
#
# runlevel 0 is System halt (Do not use this for initdefault!)
# runlevel 1 is Single user mode
# runlevel 2 is Local multiuser without remote network (e.g. NFS)
# runlevel 3 is Full multiuser with network
# runlevel 4 is Not used
# runlevel 5 is Full multiuser with network and xdm
# runlevel 6 is System reboot
#
l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6

# what to do in single-user mode
ls:S:wait:/etc/init.d/rc S
~~:S:respawn:/sbin/sulogin

# what to do when CTRL-ALT-DEL is pressed
ca::ctrlaltdel:/sbin/shutdown -r -t 4 now

# getty-programs for the normal runlevels
# :::
# The "id" field MUST be the same as the last
# characters of the device (after "tty").
1:2345:respawn:/sbin/mingetty --noclear tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
خط id:5:initdefault به معنی این است که سطح اجرایی پیش‌گزیده کامپیوتر شما سطح اجرایی ۵ است. خطوط l1:1:wait:/etc/init.d/rc 1 و به همین ترتیب، باعث می‌شوند تا اسکریپت etc/init.d/rc سطح اجرایی مربوطه را بصورت یک آرگومان ارسال نماید. سپس این اسکریپت پروسه‌های خاص سطح اجرایی ارسال شده را آغاز می‌کند. تمام اسکریپت‌های کنترل کننده پروسه‌های مختلف در مسیر etc/init.d/ ذخیره شده‌اند.
به طور معمول، بطور معمول پروسه‌هایی که با ورود به یک سطح اجرایی، اجرا یا متوقف خواهند شد در زیر دایرکتوری‌هایی مانند rc2.d یا rc5.d (همنام با شماره سطح اجرایی مربوطه‌شان) ذخیره شده‌اند. این فایل‌ها لینک‌های Symbolic به اسکریپت‌های موجود در etc/init.d/ می‌باشند. لینک‌هایی که با K آغاز می‌شوند، هنگام ورود به سطح اجرایی مربوطه نابود (Kill) خواهند شد. لینک‌هایی که با S شروع می‌شوند، هنگام ورود به آن سطح اجرایی شروع (Start) خواهند شد. این لینک‌ها بصورت الفبایی اجرا می‌شوند، به این معنی که ابتدا لینک‌های K آغاز شده و سپس لینک‌های S. ترتیب اجرای لینک‌های K و S با عددی دو رقمی که بلافاصله پس از حروف S یا K قرار می‌گیرد، تعیین می‌شود.
این روش، روش استاندارد برای اجرای پروسه‌ها در آغاز فرایند بوت می‌باشد. این سیستم استاندارد به System V Init موسوم می‌باشد که مشابه با سیستم‌عامل یونیکس است.
در صورتی که همه چیز به خوبی پیش رفته باشد، سیستم شما هم اکنون در حال اجرا بر روی سطح اجرایی انتخاب شده است. برای تغییر سطح اجرایی می‌توانید بصورت کاربر ریشه وارد شده و دستور init را در خط فرمان تایپ نمایید. برای مثال init 3.


منبع: http://technotux.com/html/modules.ph...rtid=47&page=1



موضوعات مشابه: