sysctl
sysctl هي آلية برمجية في بعض أنظمة التشغيل الشبيهة بنظام يونكس، تقوم بقراءة وتعديل خصائص نواة النظام ، مثل رقم الإصدار والحدود القصوى وإعدادات الأمان. [ 1 ] وهي متاحة كاستدعاء نظام للبرامج المُجمّعة، وكأمر إداري للاستخدام التفاعلي وكتابة البرامج النصية. كما يُتيح نظام لينكس استخدام sysctl كنظام ملفات افتراضي .
بي إس دي
في نظام BSD، تُعتبر هذه المعلمات عمومًا كائنات في قاعدة معلومات الإدارة (MIB) تصف حدودًا قابلة للتعديل مثل حجم مقطع الذاكرة المشتركة، أو عدد الخيوط التي سيستخدمها نظام التشغيل كعميل NFS ، أو الحد الأقصى لعدد العمليات على النظام؛ أو تصف أو تُمكّن أو تُعطّل سلوكيات مثل إعادة توجيه IP ، أو قيود الأمان على المستخدم المتميز (مستوى الأمان "securelevel")، أو مخرجات تصحيح الأخطاء. [ 1 ]
في نظامي OpenBSD و DragonFly BSD ، يُستخدم sysctl أيضًا كطبقة نقل لإطار عمل hw.sensors لمراقبة الأجهزة ، [ 2 ] بينما يستخدم NetBSD استدعاء النظام ioctl لنظيره sysmon envsys . يُعد كل من sysctl وioctl استدعاءي النظام اللذين يُمكن استخدامهما لإضافة وظائف إضافية إلى النواة دون الحاجة إلى إضافة استدعاء نظام آخر ؛ [ 3 ] على سبيل المثال، في عام 2004 مع OpenBSD 3.6، عندما تم تقديم أداة tcpdrop ، تم استخدام sysctl كاستدعاء النظام الأساسي. [ 3 ] [ 4 ] في FreeBSD ، على الرغم من عدم وجود إطار عمل للمستشعرات، إلا أنه لا يزال يتم تصدير بيانات درجة الحرارة الفردية وغيرها من المستشعرات بشكل شائع من خلال شجرة sysctl عبر Newbus ، على سبيل المثال، كما هو الحال مع aibs(4)برنامج التشغيل المتوفر في جميع أنظمة BSD الأربعة، بما في ذلك FreeBSD. [ 5 ] [ 6 ] [ 7 ]
في نظام BSD، يتم عادةً توفير استدعاء النظام أو غلاف استدعاء النظام لاستخدامه بواسطة البرامج، بالإضافة إلى برنامج إداري وملف تكوين (لضبط المعلمات القابلة للتعديل عند بدء تشغيل النظام ).
ظهرت هذه الميزة لأول مرة في نظام التشغيل 4.4BSD . وتتميز عن الثوابت المضمنة في الكود بإمكانية إجراء تغييرات على المعلمات ديناميكيًا دون الحاجة إلى إعادة تجميع النواة.
تاريخيًا، على الرغم من إمكانية تعديل متغيرات النواة نفسها عبر sysctl، إلا أن العناصر المكونة لقاعدة معلومات الإدارة ( MIB) لشجرة sysctl كانت مُضمنة في الكود أثناء عملية الترجمة، وحتى عام 2019، لا يزال هذا هو الحال في OpenBSD (مع بعض الاستثناءات مثل hw.sensors ، التي تُدير وتُوفر شجرة فرعية ديناميكية خاصة بها). يحتوي FreeBSD على "آلية داخلية سحرية" لإدارة شجرة sysctl الديناميكية منذ عام 1995؛ بينما يمتلك NetBSD تطبيقه الخاص لشجرة sysctl الديناميكية منذ ديسمبر 2003. [ 5 ] [ 6 ]
لينكس
في لينكس، تُصدَّر آلية واجهة sysctl أيضًا كجزء من procfs ضمن الدليل /proc/sys (لا يُخلط بينه وبين الدليل /sys ). هذا الاختلاف يعني أن التحقق من قيمة أي مُعامل يتطلب فتح ملف في نظام ملفات افتراضي ، وقراءة محتوياته، وتحليلها، ثم إغلاق الملف. يوجد استدعاء النظام sysctl في لينكس، ولكنه مُهمل ولا توجد له دالة مُغلِّفة في مكتبة glibc ؛ وعادةً ما يكون غير مُتاح لأن العديد من التوزيعات تُهيئ النواة بدون CONFIG_SYSCTL_SYSCALL؛ لذا لا يُنصح باستخدامه. [ 8 ]
أمثلة
عند تفعيل توجيه بروتوكول الإنترنت (IP)، تعمل نواة نظام التشغيل كجهاز توجيه . في أنظمة FreeBSD و NetBSD و OpenBSD و DragonFly BSD و Darwin / Mac OS X ، يمكن ضبط المعامل net.inet.ip.forwarding على القيمة 1 لتفعيل هذه الخاصية. أما في نظام Linux، فيُسمى هذا المعامل net.ipv4.ip_forward .
في معظم الأنظمة، يُفعّل الأمر `sysctl -w parameter =1` سلوكًا مُحددًا، ويستمر هذا السلوك حتى إعادة تشغيل النظام. إذا أردتَ تفعيل هذا السلوك عند كل تشغيل للنظام، يُمكن إضافة/تعديل السطر ` parameter =1` في الملف `/etc/sysctl.conf` . إضافةً إلى ذلك، لا يُمكن تعديل بعض متغيرات `sysctl` بعد تشغيل النظام. هذه المتغيرات (بحسب نوع المتغير، وإصدار BSD، ونوعه) تحتاج إما إلى ضبطها بشكل ثابت في نواة النظام أثناء عملية الترجمة، أو ضبطها في الملف `/boot /loader.conf` .
انظر أيضاً
مراجع
- 1 2 "sysctl(7) — متغيرات معلومات النظام" . مرجع BSD المتقاطع . NetBSD .
- ↑ قسطنطين أ. مورينين (17 أبريل 2007). الربط المعمم مع أجهزة مراقبة أنظمة المعالجات الدقيقة . وقائع المؤتمر الدولي لشبكات الاستشعار والتحكم لعام 2007، 15-17 أبريل 2007. لندن، المملكة المتحدة: IEEE . الصفحات 901-906 . doi : 10.1109/ICNSC.2007.372901 . ISBN 978-1-4244-1076-7. IEEE ICNSC 2007، ص 901-906.
- 1 2 فيديريكو بيانكوزي (28 أكتوبر 2004). "OpenBSD 3.6 Live" . ONLamp . O'Reilly Media . مؤرشف من الأصل في 29 أكتوبر 2004. تم الاطلاع عليه في 20 مارس 2019 .
- ↑ ماركوس فريدل (2004). "tcpdrop.c" . مرجع BSD المتقاطع . OpenBSD .
- "tcpdrop — قطع اتصال TCP". خادم صفحة دليل OpenBSD .
- ١ ٢ قسطنطين أ. مورينين؛ رؤوف بوتابا (١٧ مارس ٢٠٠٩). "٨.٣. إطار عمل أجهزة الاستشعار في نظام FreeBSD CVS". إطار عمل أجهزة الاستشعار في OpenBSD (ملف PDF) . وقائع مؤتمر AsiaBSDCon ٢٠٠٩، ١٢-١٥ مارس ٢٠٠٩. جامعة طوكيو للعلوم، طوكيو، اليابان (نُشر في ١٤ مارس ٢٠٠٩). مؤرشف من الأصل في ٢٠ يونيو ٢٠١٠. تم الاطلاع عليه في ٤ مارس ٢٠١٩ .
{{cite conference}}: CS1 maint: bot: حالة عنوان URL الأصلي غير معروفة ( رابط ) - 1 2 قسطنطين أ. مورينين (21-05-2010). "8.3. إطار عمل المستشعرات في نظام FreeBSD CVS". مستشعرات الأجهزة في OpenBSD - مراقبة البيئة والتحكم في المراوح ( رسالة ماجستير في الرياضيات ). جامعة واترلو : UWSpace. hdl : 10012/5234 . معرف المستند: ab71498b6b1a60ff817b29d56997a418.
- ↑ "aibs(4) — مستشعر الجهد ودرجة الحرارة والمروحة ASUSTeK AI Booster ACPI ATK0110" . مرجع BSD المتقاطع . FreeBSD . 2010.
- "aibs -- ASUSTeK AI Booster ACPI ATK0110 مستشعر الجهد ودرجة الحرارة والمروحة". صفحات دليل FreeBSD .
- ↑ "sysctl(2): قراءة/كتابة معلمات النظام" . man7.org . 2017-09-15 . تم الاطلاع عليه بتاريخ 2018-01-04 .
روابط خارجية
- sysctl(2) في OpenBSD
- sysctl(3) في FreeBSD و NetBSD و DragonFly BSD
- sysctl(7) في NetBSD
- sysctl(8) في *BSD
- sysctl(9) في FreeBSD و DragonFly و NetBSD
- – دليل مبرمج لينكس – أوامر الإدارة والأوامر ذات الامتيازات
- – دليل مبرمج لينكس – استدعاءات النظام
- sysctl-explorer.net – مبادرة لتسهيل الوصول إلى وثائق مرجعية لـ sysctl في نظام لينكس
- واجهات برمجة التطبيقات
- توزيع برامج بيركلي
- دراجون فلاي بي إس دي
- فري بي إس دي
- لينكس
- نظام التشغيل NetBSD
- أوبن بي إس دي
- تقنية نظام التشغيل
- استدعاءات النظام
- يونكس
- برامج إدارة العمليات والمهام في نظام يونكس
