.\" -*- coding: UTF-8 -*- .\" Copyright 2010, Intel Corp. .\" Copyright 2014, Vivek Goyal .\" Copyright 2015, Michael Kerrisk .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH kexec_load 2 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم kexec_load, kexec_file_load \- تحميل نواة جديدة للتنفيذ لاحقًا .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP /* Definition of \fBKEXEC_*\fP constants */ \fB#include \fP /* Definition of \fBSYS_*\fP constants */ \fB#include \fP .P \fBlong syscall(SYS_kexec_load, unsigned long \fP\fIentry\fP\fB,\fP \fB unsigned long \fP\fInr_segments\fP\fB,\fP \fB struct kexec_segment \fP\fIsegments\fP\fB[\fP\fInr_segments\fP\fB],\fP \fB unsigned long \fP\fIflags\fP\fB);\fP \fBlong syscall(SYS_kexec_file_load, int \fP\fIkernel_fd\fP\fB, int \fP\fIinitrd_fd\fP\fB,\fP \fB unsigned long \fP\fIcmdline_len\fP\fB, const char \fP\fIcmdline\fP\fB[\fP\fIcmdline_len\fP\fB],\fP \fB unsigned long \fP\fIflags\fP\fB);\fP .fi .P \fIملاحظة\fP: لا توفر glibc أغلفة لنداءات النظام هذه، مما يستلزم استخدام \fBsyscall\fP(2). .SH الوصف استدعاء النظام \fBkexec_load\fP() يحمل نواة جديدة يمكن تنفيذها لاحقًا بواسطة \fBreboot\fP(2). .P الوسيطة \fIflags\fP هي قناع بت يتحكم في عملية الاستدعاء. يمكن تحديد القيم التالية في \fIflags\fP: .TP \fBKEXEC_ON_CRASH\fP (منذ Linux 2.6.13) تنفيذ النواة الجديدة آليًا عند تعطل النظام. تُحمّل هذه "نواة التعطل" في منطقة من الذاكرة المحجوزة تُحدد عند الإقلاع باستخدام معلمة سطر أوامر النواة \fIcrashkernel\fP. يتم تصدير موقع هذه الذاكرة المحجوزة إلى مساحة المستخدم عبر ملف \fI/proc/iomem\fP، في إدخال بعنوان "Crash kernel". يمكن لتطبيق في مساحة المستخدم تحليل هذا الملف وإعداد قائمة من المقاطع (انظر أدناه) تحدد هذه الذاكرة المحجوزة كوجهة. إذا تم تحديد هذه العلامة، تتحقق النواة من أن المقاطع الهدف المحددة في \fIsegments\fP تقع ضمن المنطقة المحجوزة. .TP \fBKEXEC_PRESERVE_CONTEXT\fP (منذ Linux 2.6.27) الحفاظ على حالات العتاد والبرمجيات للنظام قبل تنفيذ النواة الجديدة. يمكن استخدام هذا لتعليق النظام. هذه العلامة متاحة فقط إذا تم تكوين النواة مع \fBCONFIG_KEXEC_JUMP\fP، وتكون فعالة فقط إذا كان \fInr_segments\fP أكبر من 0. .P البتات العليا (المقابلة للقناع 0xffff0000) من \fIflags\fP تحتوي على بنية النواة المراد تنفيذها. حدد (أو) الثابت \fBKEXEC_ARCH_DEFAULT\fP لاستخدام البنية الحالية، أو أحد ثوابت البنية التالية \fBKEXEC_ARCH_386\fP، \fBKEXEC_ARCH_68K\fP، \fBKEXEC_ARCH_X86_64\fP، \fBKEXEC_ARCH_PPC\fP، \fBKEXEC_ARCH_PPC64\fP، \fBKEXEC_ARCH_IA_64\fP، \fBKEXEC_ARCH_ARM\fP، \fBKEXEC_ARCH_S390\fP، \fBKEXEC_ARCH_SH\fP، \fBKEXEC_ARCH_MIPS\fP، و \fBKEXEC_ARCH_MIPS_LE\fP. يجب أن تكون البنية قابلة للتنفيذ على وحدة المعالجة المركزية للنظام. .P الوسيطة \fIentry\fP هي عنوان الدخول الفعلي في صورة النواة. الوسيطة \fInr_segments\fP هي عدد المقاطع المشار إليها بواسطة المؤشر \fIsegments\fP؛ تفرض النواة حدًا (اعتباطيًا) قدره 16 على عدد المقاطع. الوسيطة \fIsegments\fP هي مصفوفة من بنى \fIkexec_segment\fP التي تحدد تخطيط النواة: .P .in +4n .EX struct kexec_segment { void *buf; /* Buffer in user space */ size_t bufsz; /* Buffer length in user space */ void *mem; /* Physical address of kernel */ size_t memsz; /* Physical address length */ }; .EE .in .P تُنسخ صورة النواة المحددة بواسطة \fIsegments\fP من العملية المستدعية إلى النواة إما في الذاكرة العادية أو في الذاكرة المحجوزة (إذا تم تعيين \fBKEXEC_ON_CRASH\fP). تقوم النواة أولاً بإجراء فحوصات سلامة متنوعة على المعلومات الممررة في \fIsegments\fP. إذا نجحت هذه الفحوصات، تنسخ النواة بيانات المقطع إلى ذاكرة النواة. يُنسخ كل مقطع محدد في \fIsegments\fP كما يلي: .IP \[bu] 3 \fIbuf\fP و \fIbufsz\fP يحددان منطقة ذاكرة في مساحة العنوان الافتراضية للمستدعي التي هي مصدر النسخ. قد لا تتجاوز القيمة في \fIbufsz\fP القيمة في الحقل \fImemsz\fP. .IP \[bu] \fImem\fP و \fImemsz\fP يحددان نطاق عنوان فعلي هو هدف النسخ. يجب أن تكون القيم المحددة في كلا الحقلين مضاعفات لحجم صفحة النظام. .IP \[bu] تُنسخ \fIbufsz\fP بايت من المخزن المؤقت المصدر إلى المخزن المؤقت الهدف للنواة. إذا كان \fIbufsz\fP أقل من \fImemsz\fP، فتُصفّر البايتات الزائدة في المخزن المؤقت للنواة. .P في حالة kexec عادي (أي، عدم تعيين علامة \fBKEXEC_ON_CRASH\fP)، تُحمل بيانات المقطع في أي ذاكرة متاحة وتُنقل إلى الوجهة النهائية عند وقت إعادة تشغيل kexec (مثلًا، عند تنفيذ أمر \fBkexec\fP(8) مع الخيار \fI\-e\fP). .P في حالة kexec عند الذعر (أي، تعيين علامة \fBKEXEC_ON_CRASH\fP)، تُحمل بيانات المقطع إلى الذاكرة المحجوزة في وقت الاستدعاء، وبعد تعطل، تمرر آلية kexec التحكم ببساطة إلى تلك النواة. .P استدعاء النظام \fBkexec_load\fP() متاح فقط إذا تم تكوين النواة مع \fBCONFIG_KEXEC\fP. .SS kexec_file_load() استدعاء النظام \fBkexec_file_load\fP() مشابه لـ \fBkexec_load\fP()، لكنه يأخذ مجموعة مختلفة من الوسائط. يقرأ النواة المراد تحميلها من الملف المشار إليه بواسطة واصف الملف \fIkernel_fd\fP، و initrd (قرص RAM الأولي) المراد تحميله من الملف المشار إليه بواسطة واصف الملف \fIinitrd_fd\fP. الوسيطة \fIcmdline\fP هي مؤشر إلى مخزن مؤقت يحتوي على سطر أوامر النواة الجديدة. الوسيطة \fIcmdline_len\fP تحدد حجم المخزن المؤقت. يجب أن تكون آخر بايت في المخزن المؤقت بايت فارغ (\[aq]\[rs]0\[aq]). .P الوسيطة \fIflags\fP هي قناع بت يعدل سلوك الاستدعاء. يمكن تحديد القيم التالية في \fIflags\fP: .TP \fBKEXEC_FILE_UNLOAD\fP تفريغ النواة المحملة حاليًا. .TP \fBKEXEC_FILE_ON_CRASH\fP تحميل النواة الجديدة في منطقة الذاكرة المحجوزة لنواة التعطل (كما في \fBKEXEC_ON_CRASH\fP). تُقلع هذه النواة إذا تعطلت النواة الجاري تشغيلها حاليًا. .TP \fBKEXEC_FILE_NO_INITRAMFS\fP تحميل initrd/initramfs اختياري. حدد هذه العلامة إذا لم يتم تحميل أي initramfs. إذا تم تعيين هذه العلامة، يُتجاهل القيمة الممررة في \fIinitrd_fd\fP. .P .\" See also http://lwn.net/Articles/603116/ أُضيف استدعاء النظام \fBkexec_file_load\fP() لتوفير دعم للأنظمة حيث يجب تقييد تحميل "kexec" فقط للنوى الموقعة. استدعاء النظام هذا متاح فقط إذا تم تكوين النواة مع \fBCONFIG_KEXEC_FILE\fP. .SH "قيمة الإرجاع" عند النجاح، تُرجع استدعاءات النظام هذه 0. عند الخطأ، يُرجع \-1 ويُضبط \fIerrno\fP للإشارة إلى الخطأ. .SH الأخطاء .TP \fBEADDRNOTAVAIL\fP .\" See kernel/kexec.::sanity_check_segment_list in the 3.19 kernel source تم تحديد علامة \fBKEXEC_ON_CRASH\fP، لكن المنطقة المحددة بواسطة حقلي \fImem\fP و\fImemsz\fP لأحد إدخالات \fIsegments\fP تقع خارج نطاق الذاكرة المحجوزة لنواة التعطل. .TP \fBEADDRNOTAVAIL\fP القيمة في حقل \fImem\fP أو \fImemsz\fP في أحد إدخالات \fIsegments\fP ليست مضاعفًا لحجم صفحة النظام. .TP \fBEBADF\fP \fIkernel_fd\fP أو \fIinitrd_fd\fP ليس واصف ملف صالحًا. .TP \fBEBUSY\fP نواة تعطل أخرى قيد التحميل بالفعل أو نواة تعطل قيد الاستخدام بالفعل. .TP \fBEINVAL\fP \fIflags\fP غير صالحة. .TP \fBEINVAL\fP قيمة حقل \fIbufsz\fP في أحد إدخالات \fIsegments\fP تتجاوز القيمة في حقل \fImemsz\fP المقابل. .TP \fBEINVAL\fP \fInr_segments\fP يتجاوز \fBKEXEC_SEGMENT_MAX\fP (16). .TP \fBEINVAL\fP تتداخل مخازن الهدف النووية اثنان أو أكثر. .TP \fBEINVAL\fP القيمة في \fIcmdline[cmdline_len\-1]\fP ليست \[aq]\[rs]0\[aq]. .TP \fBEINVAL\fP الملف المشار إليه بواسطة \fIkernel_fd\fP أو \fIinitrd_fd\fP فارغ (طوله صفر). .TP \fBENOEXEC\fP \fIkernel_fd\fP لا يشير إلى ملف مفتوح، أو لا تستطيع النواة تحميل هذا الملف. حاليًا، يجب أن يكون الملف bzImage ويحتوي على نواة x86 قابلة للتحميل فوق 4 جيبي بايت في الذاكرة (انظر ملف مصدر النواة \fIDocumentation/arch/x86/boot.rst\fP). .TP \fBENOMEM\fP تعذر تخصيص الذاكرة. .TP \fBEPERM\fP لا يمتلك المتصل إمكانية \fBCAP_SYS_BOOT\fP. .SH المعايير لينكس. .SH التاريخ .TP \fBkexec_load\fP() لينكس 2.6.13. .TP \fBkexec_file_load\fP() لينكس 3.17. .SH "انظر أيضًا" \fBreboot\fP(2), \fBsyscall\fP(2), \fBkexec\fP(8) .P ملفات مصدر النواة \fIDocumentation/kdump/kdump.rst\fP و\fIDocumentation/admin\-guide/kernel\-parameters.txt\fP .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .