مرجع
آخر الزيارات

دي تريس

1٬487 كلمة•0 مشاهدة•🗒️ منذ 15 يوماً
باختصار: دي تريس هو إطار عمل شامل للتتبع الديناميكي تم إنشاؤه في الأصل بواسطة صن ميكروسيستمز لاستكشاف مشكلات النواة والتطبيقات على أنظمة الإنتاج في الوقت الفعلي. في هذه المقالة 13 قسماً: «# Syscall count by process»، «# Disk size by process» و«# Syscall count by program» وغيرها.
المحتويات
  1. # Syscall count by process
  2. # Disk size by process
  3. # Syscall count by program
  4. مقدمو اللغة والتطبيقات
  5. الوصف
  6. أمثلة على سطر الأوامر
  7. دليل دي تريسكتاب إيلوموس دي تريس
  8. # Pages paged in by process
  9. # New processes with arguments
  10. المنصات المدعومة
  11. المؤلفون والجوائز
  12. # Files opened by process
  13. # Syscall count by syscall
دي تريس

في البداية، دي تريس هو إطار عمل شامل للتتبع الديناميكي تم إنشاؤه في الأصل بواسطة صن ميكروسيستمز لاستكشاف مشكلات النواة والتطبيقات على أنظمة الإنتاج في الوقت الفعلي. تم تطويره في الأصل لنظام سولاريس، وتم إصداره منذ ذلك الحين بموجب المجاني (CDDL) في أوبن سولاريس ونسله إيلوموس، وتم نقله إلى الكثير من الأنظمة الأخرى المشابهة لنظام يونكس. ستحتوي أنظمة ويندوز سيرفر من ويندوز سيرفر 2025 على دي تريس كجزء من النظام. وتعرض الأقسام التالية جوانب أخرى من الموضوع.

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

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

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

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

كذلك، في أغسطس 2017، أصدرت شركة أوراكل كود نواة دي تريس بموجب رخصة جنو العمومية+، وكود مساحة المستعمل بموجب رخصة جنو العمومية و. في سبتمبر 2018 أعلنت شركة مايكروسوفت أنها نقلت دي تريس من فري بي إس دي إلى ويندوز.

# Syscall count by process

dtrace -n 'syscall:::entry { @num[pid,execname] = count; }'

# Disk size by process

وفي هذا الصدد، dtrace -n 'io:::start { printf("%d %s %d",pid,execname,args[0]->b_bcount); }'

# Syscall count by program

dtrace -n 'syscall:::entry { @num[execname] = count; }'

مقدمو اللغة والتطبيقات

كذلك، باستخدام موفر لغة مدعوم، يمكن لدي تريس استرداد سياق الكود، بما في ذلك الوظيفة وملف المصدر وموقع رقم السطر. علاوة على ذلك، يمكن توفير تخصيص الذاكرة الديناميكي وجمع القمامة إذا كانت اللغة تدعم ذلك. تتضمن موفرات اللغة المدعومة لغة التجميع، C، C++، جافا، إرلانج، جافا سكريبت، بيرل، بي إتش بي، بايثون، روبي، إخطاط واجهة الأوامر، وتي سي إل.

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

الوصف

ومن جهة أخرى، قامت شركة صن ميكروسيستمز بتصميم دي تريس لتقديم رؤى تشغيلية تسمح للمستعملين بضبط التطبيقات ونظام التشغيل نفسه واستكشاف أخطائه وإصلاحها.

من جهة ثانية، يكتب المختبرون برامج التتبع (يشار إليها كذلك باسم البرامج النصية) باستخدام لغة البرمجة دي (لا ينبغي الخلط بينها وبين لغات البرمجة الأخرى المسماة «دي»). اللغة، المستوحاة من لغة سي، تتضمن وظائف ومتغيرات إضافية خاصة بالتتبع. تشبه برامج D برامج أوك في البنية؛ فهي تتكون من قائمة مكونة من مسبار واحد أو أكثر (نقاط القياس)، ويرتبط كل مسبار بإجراء. تعتبر هذه المجسات قابلة للمقارنة مع في البرمجة الموجهة للجوانب. عندما يتم استيفاء شرط المجس، يتم تنفيذ الإجراء المرتبط به (يتم إطلاق المجس). قد يتم إطلاق المسبار النموذجي عند فتح ملف معين، أو بدء عملية، أو تنفيذ سطر معين من التعليمات البرمجية. قد يقوم المسبار الذي يتم إطلاقه بتحليل موقف وقت التشغيل من خلال الوصول إلى مكدس النداء ومتغيرات السياق وتقييم التعبيرات؛ ويمكنه فيما بعد طباعة بعض المعلومات أو تسجيلها، أو تسجيلها في قاعدة بيانات، أو تعديل متغيرات السياق. إن قراءة وكتابة متغيرات السياق تسمح للمجسات بنقل المعلومات إلى بعضها البعض، مما يسمح لها بتحليل الارتباط بين الأحداث المختلفة بشكل تعاوني.

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

أمثلة على سطر الأوامر

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

دليل دي تريسكتاب إيلوموس دي تريس

وفي السياق ذاته، برنامج تعليمي حول دي لايتأداة واجهة مستعمل رسومية تفاعلية لمطوري C/C++ تعتمد على تقنية دي تريس؛ جزء من أوراكل سولاريس ستوديو قبل الإصدار 12.4

وعلى صعيد آخر، التتبع الديناميكي باستخدام دي تريس ونظام تابكتاب مجاني مع أمثلة وتمارين

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

مختبر دي تريس العمليدورة خطوة بخطوة لتعلم دي تريس

# Pages paged in by process

dtrace -n 'vminfo:::pgpgin { @pg[execname] = sum(arg0); }'

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

# New processes with arguments

ومن ناحية أخرى، dtrace -n 'proc:::exec-success { trace(curpsinfo->pr_psargs); }'

المنصات المدعومة

دي تريس هو جزء قياسي من فري بي إس دي ونت بي إس دي.

في هذا الإطار، في 11 مارس 2019، أصدرت مايكروسوفت إصدارًا من دي تريس لإصدارات ويندوز 10 إنسايدر. قامت مايكروسوفت بتضمين دي تريس كأداة مدمجة في ويندوز سيرفر 2025.

كذلك، أضافت Apple دعم دي تريس في نظام التشغيل ماك أو إس إكس 10.5 «ليوبارد»، بما في ذلك واجهة المستعمل الرسومية المسماة إنسترمينتس. تم تضمين أكثر من 40 نص دي تريس من مجموعة أدوات دي تريس في /usr/bin، بما في ذلك الأدوات اللازمة لفحص إدخال/إخراج القرص (iosnoop) وتنفيذ العملية (execsnoop). على عكس المنصات الأخرى التي يدعمها دي تريس، يحتوي نظام التشغيل ماك أو إس إكس على علم (P_LNOATTACH) يمكن للبرنامج تعيينه لمنع تتبع هذه العملية من خلال أدوات تصحيح الأخطاء مثل دي تريس و gdb. في تنفيذ ماك أو إس إكس دي تريس الأصلي، قد يؤثر هذا على تتبع معلومات النظام الأخرى، حيث أن المجسات غير ذات الصلة التي يجب أن يتم تشغيلها أثناء تشغيل برنامج يحمل هذه العلامة المحددة ستفشل في القيام بذلك. نظام التشغيل تم معالجة هذه المشكلة في تحديث X 10.5.3 بعد بضعة أشهر. ومع ذلك، منذ إل كابيتان، تمنع ميزة المستعمل من تتبع الملفات الثنائية المحمية بشكل افتراضي.

علاوةً على ذلك، في عام 2007، أعلن أحد المطورين في شركة كيو إن إكس أنظمة البرمجيات على مدونته أنه وزميل له يعملان على دمج دي تريس في نظام التشغيل كيو إن إكس.

من جهة ثانية، لقد أصبح منفذ لينكس الخاص بـ دي تريس متاحًا منذ عام 2008؛ ويستمر العمل بنشاط على تحسين وإصلاح المشكلات. هناك كذلك تنفيذ نشط على غيت هاب. يتوفر مزودو النواة القياسيون (fbt، syscall، profile)، إلى جانب مزود «instr» خاص (بعض مزودي سولاريس غير متاحين ). تنفيذ لينكس دي تريس عبارة عن وحدة كرنل قابلة للتحميل، مما يعني أن النواة نفسها لا تتطلب أي تعديل، وبالتالي يسمح دي تريس بتجنب تعارضات ترخيص CDDL مقابل GPL (في شكله المصدر، على الأقل). ومع ذلك، بمجرد تحميل دي تريس، سيتم وضع علامة على مثيل كرنل باعتباره ملوثًا.

من جانب آخر، أصبح دي تريس متاحًا للاستخدام لأول مرة في نوفمبر 2003، وتم إصداره رسميًا كجزء من صن سولاريس 10 في يناير 2005. كان دي تريس هو أول مكون لمشروع أوبن سولاريس يتم إصدار الكود المصدري الخاص به بموجب (CDDL).

يعد دي تريس جزءًا لا يتجزأ من إيلوموس والتوزيعات ذات الصلة.

إضافةً إلى ذلك، أضافت شركة شركة أوراكل دعمًا تجريبيًا لـ دي تريس لنظام أوراكل لينكس في عام 2011، كمعاينة تكنولوجية في إصدار أوراكل إنتربرايس كرنل 2، والذي يخضع لرخصة جنو العمومية (تم إصدار وحدة دي تريس كرنل لينكس في الأصل بموجب CDDL). تم الإعلان عن التوفر العام في ديسمبر 2012.

المؤلفون والجوائز

تم تصميم دي تريس وتنفيذه بواسطة و و.

المراجع

من جهة ثانية، وقد حصل المؤلفون في عام 2005 على تقدير لابتكاراتهم في دي تريس من وإم آي تي تكنولوجي ريفيو. فازت دي تريس بالجائزة الكبرى في مسابقة جوائز الابتكار التكنولوجي لعام 2006 التي صحيفة وول ستريت جورنال. تم تكريم المؤلفين من قبل يوسينكس بجائزة مجموعة مستعملي أدوات البرمجيات (STUG) في سنة 2008.

الاستشهادات

# Files opened by process

وعلى صعيد آخر، dtrace -n 'syscall::open*:entry { printf("%s %s",execname,copyinstr(arg0)); }'

# Syscall count by syscall

dtrace -n 'syscall:::entry { @num[probefunc] = count; }'

ما رأيك في هذه المقالة؟

📝 هل في هذه المقالة خطأ؟

إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.