عمليات تسمى الشياطين

Daemons هي عمليات تبدأ غالبًا عند بدء تشغيل النظام وتنتهي فقط عند إيقاف تشغيل النظام نظرًا لعدم وجود محطة تحكم تعمل في الخلفية، كما أن أنظمة UNIX بها العديد من المساعدين الذين يقومون بالأنشطة اليومية

كما يستكشف أيضًا كيفية كتابة البرنامج الخفي نظرًا لأن البرنامج الخفي لا يحتوي على طرف تحكم متحكم، فنحن بحاجة إلى معرفة كيف يمكن للبرنامج الخفي الإبلاغ عن حالات الخطأ عندما يحدث خطأ ما.

خصائص الشياطين

يصف هذا القسم بعض مؤثرات النظام الشائعة مع مفاهيم مجموعات العمليات ومحطات التحكم. تتضمن هذه العمليات أو المفاهيم ما يلي

  • ps -axj
  • يعرض الخيار -a حالة العمليات التي يمتلكها الآخرون.
  • يعرض الخيار -x العمليات التي لا تحتوي على محطة تحكم.
  • يعرض الخيار -j المعلومات حول الوظيفة
  • معرف جلسة العمل
  • معرف مجموعة العمليات
  • محطة التحكم
  • معرف مجموعة العمليات الطرفية

يبدو أيضًا الإخراج من ps على Linux 3.2.0 كما يلي

  • UID PID PPID PGID SID TTY CMD
  • جذر 1 0 1 1 / sbin / init
  • جذر 2 0 0 0 [kthreadd]
  • جذر 3 2 0 0 [ksoftirqd / 0]
  • جذر 6 2 0 0 [الهجرة / 0]
  • جذر 7 2 0 0 [حراسة / 0]
  • الجذر 21 2 0 0 [cpuset]
  • جذر 22 2 0 0 [خيلبر]
  • جذر 26 2 0 0 [sync_supers]
  • الجذر 27 2 0 0 [bdi- افتراضي]
  • جذر 29 2 0 0 [kblockd]
  • جذر 35 2 0 0 [kswapd0]
  • جذر 49 2 0 0 [scsi_eh_0]
  • جذر 256 2 0 0 [jbd2 / sda5-8]
  • الجذر 257 2 0 0 [ext4-dio-unrit]
  • 847 1843 843 rsyslogd -c5
  • جذر 906 1906906 / usr / sbin / cupsd -F
  • جذر 1037 1 1037 1037 / usr / sbin / inetd
  • جذر 1067 1 1067 1067 كرونة
  • الشيطان 1068 1 1068 1068 ATD
  • جذر 8196 1 8196 8196 / usr / sbin / sshd -D
  • الجذر 13047 2 0 0 [kworker / 1: 0]
  • الجذر 14596 2 0 0 [تدفق -8: 0]
  • جذر 26464 1 26464 26464 rpcbind -w
  • statd 28490 1 28490 28490 statd -L
  • الجذر 28553 2 0 0 [rpciod]
  • الجذر 28554 2 0 0 [nfsiod]
  • جذر 28561 1 28561 28561 idmapd
  • الجذر 28761 2 0 0 [مغلق]
  • الجذر 28764 2 0 0 [nfsd]
  • 28775 1 28775 28775 /usr/sbin/rpc.mountd – دليل الإدارة

عناوين الأعمدة

عناوين الأعمدة بالترتيب هي كما يلي

  • معرف المستخدم
  • معرف العمليه
  • معرف العملية الأصل
  • معرف مجموعة العمليات
  • معرف جلسة العمل
  • اسم المحطة
  • سلسلة الأمر

الشياطين الوظيفة

تعتمد عمليات النظام في هذا الإخراج أيضًا على تنفيذ نظام التشغيل وعادةً ما يكون أي شيء له معرّف عملية أصل هو عملية نواة بدأت كجزء من إجراء تمهيد النظام باستثناء الأمر init الذي هو أمر على مستوى المستخدم بدأه kernel في وقت التمهيد . تكون موجودة بشكل عام طوال عمر النظام حيث يتم تشغيلها بامتيازات المستخدم المتميز وليس لها محطة تحكم أو سطر أوامر

في نموذج الإخراج ps، تكون أسماء kernel daemon بين قوسين مربعين و kthreadd هي عملية kernel خاصة على Linux تقوم بإنشاء عملية kernel أخرى وبالتالي تظهر كأصل عناصر kernel الأخرى وعادةً ما تحتوي على مكون kernel يجب تشغيله في سياق عملية ولكن لم يتم استدعاؤها من سياق العملية على مستوى المستخدم، وخفي النواة الخاص به على سبيل المثال

kswapd البرنامج الخفي للصفحة الذي يدعم النظام الفرعي للذاكرة الظاهرية عن طريق كتابة الصفحات المتسخة على القرص ببطء بمرور الوقت حتى يمكن استعادة الصفحات. يقوم هذا البرنامج الخفي بمسح الصفحات المتسخة إلى القرص عندما تصل الذاكرة المتاحة إلى الحد الأدنى الذي تم تكوينه ويقوم أيضًا بمسح الصفحات المتسخة مرة أخرى إلى القرص على فترات منتظمة لتقليل فقد البيانات في حالة فشل النظام.

كما يمكن أن يكون هناك العديد من شياطين التدفق لكل جهاز دعم، ويعني إخراج عينة flush-8 0 أن جهاز الدعم هو e من خلال رقم الجهاز الرئيسي ورقم الجهاز الصغير

يقوم البرنامج الخفي sync_supers أيضًا بمسح البيانات الوصفية للنظام بشكل دوري إلى القرص ويساعد برنامج jbd daemon في تنفيذ المجلة في نظام الملفات ext4. rpcbind RPC (استدعاء إجراء بعيد) خدمة ترقيم منفذ الشبكة

توفر شياطين nfsd و nfsiod و lockd و rpciod و rpc.idmapd و rpc.statd و rpc.mountd دعمًا لنظام ملفات الشبكة (NFS) كما تلاحظ أن الأربعة الأولى عبارة عن خوادم kernel بينما الثلاثة الأخيرة عبارة عن شياطين على مستوى المستخدم، حيث يمكن لـ rsyslogd قد تتم طباعة رسائل نظام السجل لأي برنامج ورسائل على جهاز وحدة التحكم أو كتابتها إلى ملف حيث ينفذ cron الأوامر في التواريخ والأوقات المجدولة بانتظام

  • يتم التعامل مع العديد من مهام إدارة النظام بواسطة برامج تشغيل cron على فترات منتظمة
  • يسمح ATD على غرار cron للمستخدمين بأداء المهام في أوقات محددة ومرة ​​واحدة فقط
  • cupsd هو التخزين المؤقت للطباعة الذي يعالج طلبات الطباعة على النظام
  • يوفر sshd إمكانية تسجيل الدخول والتنفيذ عن بُعد
  • يعمل معظمهم بامتيازات المستخدم المتميز (الجذر)

لا يوجد لدى أي من الشياطين محطة تحكم حيث يتم تعيين اسم الماكينة على علامة استفهام ويتم بدء برامج شياطين النواة بدون محطة تحكم وقد يكون عدم وجود محطة تحكم شياطين على مستوى المستخدم بسبب استدعاء الشياطين الموجودة بجانب الموقع

نظرًا لأن معظم برامج المساعدة على مستوى المستخدم هي قادة مجموعة العمليات وقادة الجلسات وهي العمليات الوحيدة في العملية ومجموعة الجلسات والاستثناء الوحيد هو rsyslogd، فإن أصل شياطين مستوى المستخدم هو عملية البادئ.

قواعد الترميز

يشرح هذا القسم القواعد الأساسية لبرنامج التشفير الخفي الذي يمنع التفاعلات غير المرغوب فيها، متبوعة بوظيفة daemonize التي تنفذ هذه القواعد. استدعاء umask لتعيين قناع إنشاء وضع الملف إلى قيمة معروفة عادة. إذا قام البرنامج الخفي بإنشاء ملفات، فقد ترغب في تعيين أذونات محددة

من ناحية أخرى، إذا كان البرنامج الخفي يستدعي وظائف المكتبة التي تنشئ ملفات، فقد يكون من المنطقي تعيين وضع الملف لإنشاء قناع إلى قيمة أكثر تقييدًا لأن وظائف المكتبة قد لا تسمح للمتصل بتحديد الأذونات من خلال وسيطة صريحة، وإذا كان يبدأ البرنامج الخفي كأمر بسيط، وإنهاء الأمر الأبوي يجعل الفرصة تعتقد أن الأمر قد تم تنفيذه

في مجموعات جهات الاتصال لإنشاء جلسة جديدة، يتم سرد الخطوات الثلاث التالية

  • كن قائد جلسة جديد
  • كن قائدًا لمجموعة جديدة من العمليات
  • يتم فصله عن محطة التحكم الخاصة به

إنه ضمن الأنظمة المستندة إلى System V حيث يوصي بعض الأشخاص بالاتصال بالشوكة مرة أخرى في هذه المرحلة وإنهاء مراقبة الوالدين واستمرار البرنامج الخفي مع هذا يضمن أن البرنامج الخفي ليس قائد جلسة مما يمنعه من الحصول على محطة تحكم بموجب قواعد النظام V (القسم 9.6) بدلاً من هذا لتجنب الحصول على محطة تحكم، لذا تأكد من تحديد O_NOCTTY عند فتح المحطة.