حالت hibernate چیست
نویسنده : مهشید | زمان انتشار : 09 آذر 1399 ساعت 14:14
هایبرنت (Hibernate) یا خواب زمستانی یکی از انواع حالتهای خاموش کردن سیستم است که اجازه حفظ پروندهها، برنامهها و دادههایی که بر روی حافظه RAM قرار دارد را پس از خاموش کردن سیستم، به کاربر میدهد.
هایبرنت (Hibernate) چیست؟
هایبرنت (Hibernation)، خواب زمستانی یا Suspend to disk (تعلیق بر روی دیسک) یکی از انواع حالتهای خاموش کردن سیستم است که عملکرد آن بسیار شبیه به حالت Sleep میباشد. در حالت هایبرنت، تمامی پروندهها و برنامههای باز شدهای که قبل از خاموش کردن سیستم مورد پردازش قرار گرفتهاند به صورت کامل قابل استفاده دوباره هستند. یعنی شما میتوانید پروندهای را باز نگه دارید و پس از خاموش و روشن کردن با استفاده از حالت هایبرنت، همان سیستم را که قبل از خاموش کردن داشته اید، در اختیار داشته باشید. این فرایند شبیه این است که هنگام پخش ویدئوای بر روی کلید مکث کلیک کنید (یعنی هنگام خاموش کردن در حالت Hibernate) سپس هر زمانی که خواستید دوباره ادامه آن را دقیقاً از جایی که نگه داشته اید، ببینید (هنگام روشن کردن دوباره سیستم).
به این ترتیب در حالت Hibernate سیستم شما به اصطلاح بر روی حالت Pause رفته و پس از روشن کردن دوباره Resume میشود. توجه کنید که پس از خاموش کردن در حالت هایبرنت، سیستم شما به صورت کامل مشابه حالت Shutdown خاموش خواهد شد یعنی پس از خاموش کردن سیستم، هیچ برقی مصرف نخواهد شد.
نکته: تلفظ اصلی Hibernate برابر "هایبرنیت" است ولی توسط بسیاری از افراد "هایبرنت" خوانده میشود و دلیل اصلی انتخاب عنوان هم همیت است. گاهی به اشتباه هیبرنت و هیبرنیت نیز خوانده میشود. همچنین درصورتی که میخواهید قابلیت هایبرنت را در ویندوز ۷ فعال یا غیرفعال کنید به پست "فعال یاغیرفعال کردن هایبرنت در ویندوز ۷" مراجعه کنید.
فرایند هایبرنت (Hibernate) چگونه است؟
شاید برایتان سوال پیش بیاید که در حالت هایبرنت چه اتفاقی میافتد؟ سیستم به صورت کامل خاموش شده درحالی که همه چیز را پس از روشن کردن میتوانید دوباره در اختیار داشته باشید. در این بخش با نحوه انجام گرفتن فرایند هایبرنت آشنا خواهید شد.
خاموش کردن در حالت Hibernate:
ابتدا فرض کنید سیستم به صورت عادی در حال پردازش است و همه برنامهها و دستوراتی که پردازش میشوند بر روی حافظه RAM قرار گرفته اند. به عنوان مثال برنامهای با نام TheApp را برای انجام اعمال مختلفی باز کرده ایم. بنابراین دادههای مربوط به این پرونده روی حافظه RAM قرار گرفته اند.
حال قصد خاموش کردن سیستم در حالت هایبرنت را داریم. در این مرحله سیستمعامل تقریباً همه دادههای حافظه RAM از جمله دادههای مربوط به نشست هسته سیستم عامل، نشست حساب کاربر (برنامهها، پروندههای درحال پردازش و ...) را بر روی حافظه جانبی غیرفرار (حافظهای که برای حفظ داده نیاز به منبع انرژی ندارد؛ برای مثال هارددیسکها یا درایوهای حالت جامد) و در داخل فایلی خاص ذخیره میکند. در این مرحله دادههای مربوط به برنامه TheApp نیز روی حافظه ذخیره میشوند. پس از اتمام این فرایند، سیستم به صورت کامل مشابه زمانی که از حالت Shutdown استفاده میکنیم، خاموش میشود. به دلیل این که دادههای موجود در حافظه غیر فرار بدون تامین انرژی باقی میمانند، بنابراین دادههای ما نیز پس از خاموش شدن کامل سیستم، در حافظه باقی خواهند ماند. (در تصویر زیر هارددیسک به عنوان حافظه غیر فرار انتخاب شده است)
انتقال دادهها از رم به هارددیسک
به این ترتیب نشست حساب کاربر و نشست هسته سیستم عامل ذخیره شده سپس ویندوز سیگنال خاموش کردن سیستم را به مادربورد ارسال میکند و سیستم خاموش میشود. این قسمت شبیه حالت Shutdown است با این تفاوت که در Hibernate جزئی از سیستم سخت افزاری و همچنین جزئی از بایوس مانند زمانی که در حالت هایبرنت خاموش میکنیم، روشن نگه داشته میشود تا برخی از عملیات پایهای را انجام دهد. یکی از این عملیات پایهای مربوط به این است که سیستم درصورت دریافت سیگنالی از کیبورد (فشرده شدن کلیدی)، ماوس (فشرده شدن کلید یا حرکت دادن ماوس) و همچنین از طریق LAN (که به WOLAN یا Wake-on-LAN معروف است) یا از طریق مشخص کردن زمانی خاص، سیستم را روشن کرده و فرایند راه اندازی سیستم عامل را انجام دهد (البته درصورتی که BIOS یا UEFI از این قابلیت پشتیبانی کنند).
روشن کردن در حالت Hibernate:
پس از این که سیستم به صورت هایبرنت خاموش شد، در هنگام راه اندازی نیز سیستمعامل به صورت خودکار تشخیص خواهد داد تا به صورت عکس فرایند خاموش کردن، سیستم را راه اندازی کند.
فرض کنید سیستم ما خاموش است و قبلا با روش Hibernate آن را خاموش کرده ایم. زمانی که سیستم را روشن میکنیم (جدا از این که با چه روشی آن را روشن میکنیم، برای مثال از طریق کلید فیزیکی، یا قابلیتهایی که در قسمت هیبرید شاتداون گفته شد) طبق معمول اولین کاری که انجام میشود سفت افزار (Frimware) سیستم راه اندازی شده و BIOS یا UEFI کارهای ابتدایی را انجام داده و سخت افزار را آماده میکند و قطعات سخت افزاری را بررسی میکند. سپس نشست سخت افزاری (Hardware session) را آماده و در ادامه پردازش را به سیستم عامل واگذار میکند. سیستم عامل نیز با بررسی وضعیت سخت افزارها، درایوهای سخت افزاری را بارگذاری کرده و نشست سخت افزاری رو کامل میکند. تا این قسمت، فرایندی که همیشه تکرار میشود گفته شد.
حال سیستم عامل دادههای موجود در حافظه غیرفرار که قبلاً ذخیره کرده است را بر روی حافظه RAM قرار میدهد. در این مرحله دادههای برنامه TheApp که قبلاً روی حافظه ذخیره شده نیز به رم انتقال داده میشوند. به این ترتیب نشست هسته سیستم عامل و نشست حساب کاربر که هردو قبل از فرایند خاموش شدن ذخیره شده اند، بازگردانده میشوند. به این ترتیب فرایند آماده به کار شدن هسته سریع تر انجام میشود.
بعد از اتمام فرایند انتقال دادهها به رم، چون نشست کاربری بازگردانده شده است، پس از ورود به حساب کاربری، پردازش درست از نقطهای که قبل از خاموش شدن مشخص شده است، ادامه پیدا خواهد کرد. بنابراین همه برنامههایی که بازکرده بودیم، به همان شکل در دسترس خواهند بود.
انتقال دادههای ذخیره شده از هارددیسک به رم
به این ترتیب در فرایند هایبرنت، همه دادههایی که بر روی حافظه RAM قرار گرفته اند و درحال پردازش هستند، بر روی حافظههای جانبی غیرفرار (مانند هارد دیسکها) قرار میگیرند و سیستم میتواند در هنگام راه اندازی دوباره، همان دادهها را بر روی RAM قرار داده و دقیقاً از همان جایی که سیستم متوقف شده است، ادامه پیدا میکند.
حالت Hibernate در سیستمعاملها:
در سیستمعامل ویندوز، از نسخه ۹۵ به بعد این قابلیت اضافه شد. البته در ویندوز ۲۰۰۰ این قابلیت ارتقاء یافته و کامل تر شد. همان طور که گفته شد، دادههای رو بر روی یک فایل ویژه در حافظه جانبی ذخیره میشوند. نام این فایل hiberfil.sys و در ریشه درایو ویندوز قرار دارد. البته این فایل جزء فایلهای سیستمی است یعنی برای مشاهده آن باید تنظیماتی را انجام دهید. حجم این فایل معمولاً نزدیک به حجم حافظه رم (به صورت پیش فرض، ۷۵ درصد فضای رم) است و با حذف آن امکان بوت از طریق حالت هایبرنت وجود نخواهد داشت (در هر خاموشی با حالت هایبرنت، این فایل خود به خود ایجاد میشود).
فایل hiberfil.sys موجود در ریشه درایو ویندوز
در سیستمعامل مک OS X، از ورژن ۱۰.۴ به بعد این قابلیت با نام Safe Sleep و در سیستمعامل لینوکس، از ورژن هسته ۲.۲ به بعد به صورت ابتدایی و از ورژن ۳.۴ به بعد به صورت کامل پشتیبانی میشود.