TAHA
04-23-2010, 09:16 PM
نگاهی به فرایند خاموش شدن لینوکس
مدتی پیش مقالهای در مورد چگونگی بوت لینوکس نوشتم. اکنون احساس میکنم که باید مقالهای نیز درباره مراحل خاموش شدن یک سیستم لینوکس داشته باشیم.
بدلیل اینکه RAM بسیار سریعتر از خواندن و نوشتن روی دیسک سخت است، فایل سیستم لینوکس تغییرات ایجاد شده را در RAM بافر میکند. این به این معنی است که در صورتی که شما سیستمتان را بطور صحیح خاموش نکنید، جدیدترین تغییرات ذخیره نخواهند شد. ممکن است این مسئله وقتی تنها پای یک فایل در میان باشد، زیاد مهم نباشد، ولی به یاد داشته باشید که اطلاعات شما فقط همان فایل نیست. پروسههای بسیاری مانند سیستم ثبت وقایع سیستم، اطلاعات خود را در فایل سیستم می نویسند. از این مهمتر، اطلاعات خود فایل سیستم مانند تعداد بلاک استفاده شده، تعداد فایلها و دایرکتوریها موجود و مانند این است.
این خصوصیت در فایل سیستمهای قدیمی یونیکس و لینوکس مسئلهای جدی به شمار میرفت. البته در فایل سیستمهای جدید موسوم به روزنامهای یا Journaling file systems این مسئله حل شده و تمام تبادلات در یک فایل جایگزین ذخیره میشود که امکان بازیافت و اجرای مجدد آن در راهاندازی سیستم وجود دارد. فایل سیستمهای ReiserFS و ext3 مثالی از این فایل سیستمهای روزنامهای هستند. حتی با وجود این سیستم فایلهای جدید امنتر آن است که سیستم خود را بطور صحیح خاموش کنید!
آیا باید کامپیوتر خود را خاموش کنید؟
اگر تنها میخواهید کامپیوترتان را خاموش کنید، پاسخ بله است. من این بخش را به این علت نوشتم که برخی از کاربران کامپیوتر، تنها راه حل «برطرف کردن» برخی مشکلات را خاموش و روشن کردن یا reboot کامپیوترشان میدانند. بدتر از این، این افراد فکر میکنند که اگر خاموش و روشن کردن مشکلشان را برطرف نکرد، قدم بعدی نصب مجدد سیستمعامل خواهد بود!
دلایل زیادی وجود دارد که در مورد سیستمعامل لینوکس، این قدمها به هیچ وجه صحیح نیستند. به طور تاریخی، برخی از سیستمعاملها یا آنقدر قدیمی بودند تا نتوانند از قابلیت Memory Access Protection استفاده کنند و یا این قابلیت اصلا در آنها پیاده سازی نشده بود. بنابراین هر برنامه خطازا، میتوانست حتی به حافظه مصرفی توسط برنامههای دیگر یا حتی خود سیستمعامل آسیب رساند. در چنین شرایطی، یک بوت مجدد، حل کننده مشکلات به شمار میرود. به همین صورت، یک برنامه خطازا میتواند به محتویات دیسک سخت نیز آسیب رسانده و شما را مجبور به نصب مجدد برنامهها یا سیستمعامل نماید.
امروزه، حتی با سایر سیستمعاملها نیز این مشکلات کمتر پیش میآیند. ولی این عادت همچنان در کاربران باقی مانده است! در مورد لینوکس، این سیستمعامل از همان ابتدا از Memory Access Protection استفاده کرده و مجوزهای دسترسی به فایلها، امکان نیاز به بوت مجدد و یا نصب مجدد نرمافزار را به حداقل و محدود به خود نرمافزار آسیب دیده و خطازا نموده است. با این حال این دلیل نمیشود که این رفتارها به دنیای لینوکس هم سرایت نکرده باشند!
انواع خاموش کردن سیستم
سه نوع مختلف عملیات خاموش کردن وجود دارند:
- راهاندازی مجدد کامپیوتر (و احتمالا با یک سیستمعامل دیگر) یا Reboot
- متوقف کردن کامپیوتر یا Halt
- خاموش کردن کامپیوتر یا Power Off
در بخش بالا در مورد راهاندازی مجدد یا Reboot کامپیوتر صحبت شد. دلایل معقولی برای راهاندازی مجدد یک کامپیوتر وجود دارند. یکی از مهمترین این دلایل، فعال کردن هسته جدید است. برای برخی کاربران، دلیل آن میتواند استفاده از سیستمعامل دیگری که روی سیستم نصب است، باشد. یکی از آسانترین راههای بوت مجدد سیستم، استفاده از دستور زیر است:
# shutdown -r
همانطور که میبینید، برای اجرای این دستور باید در حالت کاربر ریشه قرار داشته باشید. در صورتی که مایل هستید تا قبل از خاموش شدن سیستم مدتی زمان داشته باشید، گزینه t امکان این زماندهی را برای شما فراه میسازد. برای مثال، با اجرای دستور زیر، دستگاه شما پس از ۶۰ ثانیه انتظار خاموش خواهد شد:
# shutdown -t 60 -r
برای متوقف کردن کامپیوتر، میتوانید از گزینه h به همراه این دستور استفاده نمایید. هنگام متوقف شدن دستگاه، ابتدا تمامی فرایندهای نوشتن روی دیسکها متوقف شده و سپس دستگاه متوقف میشود.
بردهای اصلی از نوع ATX و کامپیوترهای کیفی دارای قابلیت خاموش شدن (Power off) خودکار هستند. برای خاموش کردن سیستم میتوانید از دستور poweroff استفاده نمایید. نحوه عملکرد این دستور مشابه با دستور Halt بوده با این تفاوت که سیستم خاموش خواهد شد. البته لازم به ذکر است که در برخی از سیستمها، دستور halt عمل خاموش کردن را نیز انجام میدهد.
اطلاعات دقیقتر
گزینهها و انتخابهای فراوانی برای استفاده شدن به همراه دستورهای shutdown، halt وجود دارند که میتوانید برای اطلاعات بیشتر، به مستندات این دستورها مراجعه نمایید.
مقاله حاضر توسط ریک مان (Rich Mann) نوشته شده است
مدتی پیش مقالهای در مورد چگونگی بوت لینوکس نوشتم. اکنون احساس میکنم که باید مقالهای نیز درباره مراحل خاموش شدن یک سیستم لینوکس داشته باشیم.
بدلیل اینکه RAM بسیار سریعتر از خواندن و نوشتن روی دیسک سخت است، فایل سیستم لینوکس تغییرات ایجاد شده را در RAM بافر میکند. این به این معنی است که در صورتی که شما سیستمتان را بطور صحیح خاموش نکنید، جدیدترین تغییرات ذخیره نخواهند شد. ممکن است این مسئله وقتی تنها پای یک فایل در میان باشد، زیاد مهم نباشد، ولی به یاد داشته باشید که اطلاعات شما فقط همان فایل نیست. پروسههای بسیاری مانند سیستم ثبت وقایع سیستم، اطلاعات خود را در فایل سیستم می نویسند. از این مهمتر، اطلاعات خود فایل سیستم مانند تعداد بلاک استفاده شده، تعداد فایلها و دایرکتوریها موجود و مانند این است.
این خصوصیت در فایل سیستمهای قدیمی یونیکس و لینوکس مسئلهای جدی به شمار میرفت. البته در فایل سیستمهای جدید موسوم به روزنامهای یا Journaling file systems این مسئله حل شده و تمام تبادلات در یک فایل جایگزین ذخیره میشود که امکان بازیافت و اجرای مجدد آن در راهاندازی سیستم وجود دارد. فایل سیستمهای ReiserFS و ext3 مثالی از این فایل سیستمهای روزنامهای هستند. حتی با وجود این سیستم فایلهای جدید امنتر آن است که سیستم خود را بطور صحیح خاموش کنید!
آیا باید کامپیوتر خود را خاموش کنید؟
اگر تنها میخواهید کامپیوترتان را خاموش کنید، پاسخ بله است. من این بخش را به این علت نوشتم که برخی از کاربران کامپیوتر، تنها راه حل «برطرف کردن» برخی مشکلات را خاموش و روشن کردن یا reboot کامپیوترشان میدانند. بدتر از این، این افراد فکر میکنند که اگر خاموش و روشن کردن مشکلشان را برطرف نکرد، قدم بعدی نصب مجدد سیستمعامل خواهد بود!
دلایل زیادی وجود دارد که در مورد سیستمعامل لینوکس، این قدمها به هیچ وجه صحیح نیستند. به طور تاریخی، برخی از سیستمعاملها یا آنقدر قدیمی بودند تا نتوانند از قابلیت Memory Access Protection استفاده کنند و یا این قابلیت اصلا در آنها پیاده سازی نشده بود. بنابراین هر برنامه خطازا، میتوانست حتی به حافظه مصرفی توسط برنامههای دیگر یا حتی خود سیستمعامل آسیب رساند. در چنین شرایطی، یک بوت مجدد، حل کننده مشکلات به شمار میرود. به همین صورت، یک برنامه خطازا میتواند به محتویات دیسک سخت نیز آسیب رسانده و شما را مجبور به نصب مجدد برنامهها یا سیستمعامل نماید.
امروزه، حتی با سایر سیستمعاملها نیز این مشکلات کمتر پیش میآیند. ولی این عادت همچنان در کاربران باقی مانده است! در مورد لینوکس، این سیستمعامل از همان ابتدا از Memory Access Protection استفاده کرده و مجوزهای دسترسی به فایلها، امکان نیاز به بوت مجدد و یا نصب مجدد نرمافزار را به حداقل و محدود به خود نرمافزار آسیب دیده و خطازا نموده است. با این حال این دلیل نمیشود که این رفتارها به دنیای لینوکس هم سرایت نکرده باشند!
انواع خاموش کردن سیستم
سه نوع مختلف عملیات خاموش کردن وجود دارند:
- راهاندازی مجدد کامپیوتر (و احتمالا با یک سیستمعامل دیگر) یا Reboot
- متوقف کردن کامپیوتر یا Halt
- خاموش کردن کامپیوتر یا Power Off
در بخش بالا در مورد راهاندازی مجدد یا Reboot کامپیوتر صحبت شد. دلایل معقولی برای راهاندازی مجدد یک کامپیوتر وجود دارند. یکی از مهمترین این دلایل، فعال کردن هسته جدید است. برای برخی کاربران، دلیل آن میتواند استفاده از سیستمعامل دیگری که روی سیستم نصب است، باشد. یکی از آسانترین راههای بوت مجدد سیستم، استفاده از دستور زیر است:
# shutdown -r
همانطور که میبینید، برای اجرای این دستور باید در حالت کاربر ریشه قرار داشته باشید. در صورتی که مایل هستید تا قبل از خاموش شدن سیستم مدتی زمان داشته باشید، گزینه t امکان این زماندهی را برای شما فراه میسازد. برای مثال، با اجرای دستور زیر، دستگاه شما پس از ۶۰ ثانیه انتظار خاموش خواهد شد:
# shutdown -t 60 -r
برای متوقف کردن کامپیوتر، میتوانید از گزینه h به همراه این دستور استفاده نمایید. هنگام متوقف شدن دستگاه، ابتدا تمامی فرایندهای نوشتن روی دیسکها متوقف شده و سپس دستگاه متوقف میشود.
بردهای اصلی از نوع ATX و کامپیوترهای کیفی دارای قابلیت خاموش شدن (Power off) خودکار هستند. برای خاموش کردن سیستم میتوانید از دستور poweroff استفاده نمایید. نحوه عملکرد این دستور مشابه با دستور Halt بوده با این تفاوت که سیستم خاموش خواهد شد. البته لازم به ذکر است که در برخی از سیستمها، دستور halt عمل خاموش کردن را نیز انجام میدهد.
اطلاعات دقیقتر
گزینهها و انتخابهای فراوانی برای استفاده شدن به همراه دستورهای shutdown، halt وجود دارند که میتوانید برای اطلاعات بیشتر، به مستندات این دستورها مراجعه نمایید.
مقاله حاضر توسط ریک مان (Rich Mann) نوشته شده است