SETARCH(8) إدارة النظام SETARCH(8)

الاسم

setarch - غيّر المعمارية المُبلغ عنها في بيئة برنامج جديد و/أو اضبط أعلام الشخصية (personality flags)

موجز

setarch [arch] [خيارات] [برنامج [وسيط...]]

arch [خيارات] [program [argument...]]

الوصف

يعدل setarch مجال التنفيذ وأعلام شخصية العملية.

يؤثر مجال التنفيذ حالياً فقط على مخرجات uname -m. على سبيل المثال، في نظام AMD64، سيؤدي تشغيل ‎setarch i386 program إلى جعل البرنامج يرى i686 بدلاً من x86_64 كنوع للجهاز. البرنامج المبدئي هو /bin/sh.

منذ الإصدار 2.33، أصبح معامل سطر الأوامر arch اختيارياً، ويمكن استخدام setarch لتغيير أعلام الشخصية (مثل: ADDR_LIMIT_3GB، و SHORT_INODE، إلخ) دون تعديل مجال التنفيذ.

الخيارات

--list

اسرد المعماريات التي يعرفها setarch. تعتمد إمكانية قيام setarch بضبط كل من هذه المعماريات فعلياً على النواة الجارية.

--show[=personality]

يعرض الشخصية والأعلام النشطة حالياً. إذا قُدم المعامل personality، فإنه يُعرض بدلاً من الحالي. الشخصية personality هي رقم سداسي عشري القيم الممكنة له موصوفة في sys/personality.h.

-p, --pid=pid

عند استخدامه مع ‎--show‎، يعرض الشخصية وأعلام العملية المحددة.

--uname-2.6

يجعل البرنامج program المحدد يرى رقم نسخة نواة يبدأ بـ 2.6. يفعل UNAME26.

-v، --verbose

كن مسهباً.

-3، --3gb

يجب أن يستخدم البرنامج program المحدد بحد أقصى 3 جيجابايت من مساحة العناوين. مدعوم على x86. يفعل ADDR_LIMIT_3GB.

--4gb

ليس لهذا الخيار أي تأثير. أُبقي عليه من أجل التوافقية مع الإصدارات السابقة فقط، وقد يُزال في الإصدارات المستقبلية.

-B، --32bit

قيد مساحة العناوين إلى 32 بت لمحاكاة العتاد. متاح على ARM و Alpha. يُفعّل ADDR_LIMIT_32BIT.

-F، --fdpic-funcptrs

عامل مؤشرات دوال فضاء المستخدم لمعالجات الإشارات كمؤشرات لواصفات العناوين. ليس لهذا الخيار تأثير على المعماريات التي لا تدعم ثنائيات ELF من نوع FDPIC. في نسخة النواة v4.14، يقتصر الدعم على معماريات المعالجات ARM، و Blackfin، و Fujitsu FR-V، و SuperH.

-I، --short-inode

علم محاكاة علة مهجور. يُفعّل SHORT_INODE.

-L، --addr-compat-layout

وفر تخطيط مساحة عناوين افتراضية قديم. يُستخدم عندما لا يملك ثنائي الـ برنامج ترويسة ELF من نوع PT_GNU_STACK. يُفعّل ADDR_COMPAT_LAYOUT.

-R، --addr-no-randomize

يعطل عشوائية مساحة العناوين الافتراضية. يُفعّل ADDR_NO_RANDOMIZE.

-S، --whole-seconds

علم محاكاة علة مهجور. يُفعّل WHOLE_SECONDS.

-T، --sticky-timeouts

يجعل هذا استدعاءات النظام select(2) و pselect(2) و ppoll(2) تحفظ قيمة المهلة بدلاً من تعديلها لتعكس مقدار الوقت الذي لم يُقضَ في النوم عند المقاطعة بواسطة معالج إشارات. يُستخدم عندما يعتمد برنامج على هذا السلوك. لمزيد من التفاصيل، انظر وصف المهلة في صفحة دليل select(2). يُفعّل STICKY_TIMEOUTS.

-X، --read-implies-exec

إذا ضُبط هذا، فإن PROT_READ في mmap(2) سيضيف أيضاً بتة PROT_EXEC - كما هو متوقع من قِبل ثنائيات x86 القديمة. لاحظ أن محمل ELF سيضبط هذه البتة آلياً عندما يصادف ثنائياً قديماً. يُفعّل READ_IMPLIES_EXEC.

-Z، --mmap-page-zero

محاكاة علة SVr4 التي ستضبط الصفحة صفر في mmap(2) لتكون للقراءة فقط. يُستخدم عندما يعتمد برنامج على هذا السلوك، ولا يكون الكود المصدري متاحاً لإصلاحه. يُفعّل MMAP_PAGE_ZERO.

-h، --help

اعرض نص المساعدة ثم اخرج.

-V، --version

اعرض الإصدار واخرج.

أمثلة

setarch --addr-no-randomize mytestprog
setarch ppc32 rpmbuild --target=ppc --rebuild foo.src.rpm
setarch ppc32 -vL3 rpmbuild --target=ppc --rebuild bar.src.rpm
setarch ppc32 --32bit rpmbuild --target=ppc --rebuild foo.src.rpm
setarch --show
setarch --show=$(cat /proc/9284/personality)
setarch --show --pid 9284

المؤلفين

Elliot Lee <sopwith@redhat.com>، Jindrich Novy <jnovy@redhat.com>، Karel Zak <kzak@redhat.com>

انظر أيضاً

personality(2)، select(2) *proc_pid_personality(5)

التبليغ عن الأخطاء

لتقارير العِلل، استخدم مُتتبع المشكلات https://github.com/util-linux/util-linux/issues.

التوفر

الأمر setarch جزء من حزمة util-linux التي يمكن تنزيلها من أرشيف نواة لينكس https://www.kernel.org/pub/linux/utils/util-linux/.

2026-05-18 util-linux 2.42.1