کی اگزک

از ویکی‌پدیا، دانشنامهٔ آزاد

کی اِگزک (به انگلیسی: kexec) خلاصهٔ kernel execution است و مشابه با مکانیسم فراخوانی فرمان exec در هسته لینوکس است که امکان بوت شدن یک هسته جدید از رایانه فعلی را فراهم می‌کند.

عملکرد[ویرایش]

در اصل، kexec مرحله راه اندازی و مرحله اولیه سخت‌افزاری را که توسط سیستم عامل سیستم (BIOS یا UEFI) انجام می‌شود را رد می‌کند و به‌طور مستقیم هسته جدید را به حافظه اصلی بارگذاری می‌کند و بلافاصله آن را اجرا می‌کند. با این کار از راه اندازی مجدد کامل جلوگیری می‌شود و می‌توان سیستم‌هایی که تقاضای بالا دارند را با به حداقل رساندن زمان خرابی کمک کند.[۱][۲]

چالش ها[ویرایش]

در صورت امکان‌پذیر بودن، اجرای مکانیسمی مانند kexec دو چالش اساسی را ایجاد می‌کند:

  • حافظه هسته فعلی که در حال اجرا است توسط هسته جدید رونویسی می‌شود، در حالی که هسته قدیمی هنوز در حال اجرا است.
  • هسته جدید معمولاً انتظار دارد که تمام دستگاه‌های سخت‌افزاری در وضعیت بعد از راه اندازی مجدد سیستم قرار داشته باشند زیرا سیستم عامل سیستم آنها را به حالت "sane" تنظیم می‌کند. دور زدن یک راه اندازی مجدد واقعی ممکن است دستگاه‌ها را در وضعیت نامعلومی قرار دهد و هسته جدید باید از این حالت بهبود یابد.

پشتیبانی تنها از هسته‌های امضا شده که به صورت kexec بوت شود از نسخه ۳٫۱۷ به هسته اصلی لینوکس اضافه شد، که در ۵ اکتبر سال ۲۰۱۴ منتشر شد.[۳] این عمل به کاربر root اجازه نمی‌دهد که کد دلخواه را از طریق kexec اجرا کند.

منابع[ویرایش]

  1. Hariprasad Nellitheertha (مه ۴, ۲۰۰۴). "Reboot Linux faster using kexec". IBM. Archived from the original on January 21, 2013. Retrieved December 5, 2013.
  2. David Pendell (اوت ۱۶, ۲۰۰۸). "Reboot like a racecar with kexec". linux.com. Archived from the original on 14 February 2009. Retrieved December 5, 2013.
  3. "Linux kernel 3.17, Section 1.10. Signed kexec kernels". kernelnewbies.org. اکتبر ۵, ۲۰۱۴. Retrieved November 3, 2014.