انتقل إلى المحتوى الرئيسي

المختبر 2.1 - فحص النواة والعمليات النظامية

الأهداف​

في نهاية هذا المختبر، ستكون قادرًا على:

  • فحص نواة لينكس
  • التحقق من العمليات النظامية
  • فحص systemd والخدمات
  • فهم هيكل العمليات

المتطلبات​

  • نظام لينكس عامل (يوصى بـ Ubuntu/Debian)
  • وصول root أو sudo
  • فتح الطرفية

التمرين 1: معلومات عن النواة​

الخطوة 1: إصدار النواة​

# عرض إصدار النواة
uname -a

# الإصدار فقط
uname -r

# معلومات مفصلة
cat /proc/version

سؤال: ما هو إصدار النواة الذي تستخدمه؟

الخطوة 2: وحدات النواة​

# عرض الوحدات المحملة
lsmod

# عرض تفاصيل وحدة
modinfo nom-module

# عرض الوحدات المرتبطة بكلمة مفتاحية
lsmod | grep network

الخطوة 3: إعدادات النواة​

# عرض إعدادات sysctl
sysctl -a

# عرض إعداد معين
sysctl kernel.version

# عرض إعدادات الشبكة
sysctl net.ipv4

التمرين 2: العمليات النظامية​

الخطوة 1: عملية Init (PID 1)​

# عرض عملية init
ps -p 1

# تفاصيل العملية
ps -p 1 -o pid,ppid,cmd,etime

# عرض نوع init
systemctl --version

سؤال: ما هو نظام init الذي تستخدمه؟ (systemd, SysVinit, إلخ.)

الخطوة 2: العمليات النظامية​

# عرض جميع العمليات
ps aux

# عرض شجرة العمليات
pstree

# مع PID
pstree -p

# عرض العمليات النظامية فقط
ps aux | grep -E '\[.*\]'

الخطوة 3: العمليات حسب المستخدم​

# عمليات root
ps -u root

# عمليات المستخدم الخاص بك
ps -u $USER

# عد العمليات
ps aux | wc -l

التمرين 3: systemd والخدمات​

الخطوة 1: حالة systemd​

# عرض إصدار systemd
systemctl --version

# عرض حالة systemd
systemctl status

# عرض الوحدات النشطة
systemctl list-units --type=service --state=running

الخطوة 2: الخدمات النظامية​

# عرض جميع الخدمات
systemctl list-units --type=service

# الخدمات النشطة
systemctl list-units --type=service --state=active

# الخدمات الفاشلة
systemctl list-units --type=service --state=failed

الخطوة 3: تفاصيل خدمة​

# حالة خدمة (مثال: sshd)
systemctl status sshd

# عرض السجلات
journalctl -u sshd

# آخر الأسطر
journalctl -u sshd -n 50

التمرين 4: استكشاف /proc​

الخطوة 1: معلومات النظام​

# معلومات CPU
cat /proc/cpuinfo

# معلومات الذاكرة
cat /proc/meminfo

# معلومات النظام
cat /proc/loadavg

الخطوة 2: العمليات في /proc​

# عرض العمليات
ls /proc/ | grep -E '^[0-9]+$'

# معلومات عن عملية (استبدل PID)
cat /proc/1/status

# الملفات المفتوحة بواسطة عملية
ls -l /proc/1/fd/

الخطوة 3: معلومات الشبكة​

# اتصالات الشبكة
cat /proc/net/sockstat

# إحصائيات الشبكة
cat /proc/net/dev

التمرين 5: التحليل المتقدم​

الخطوة 1: استخدام الموارد​

# العمليات الأعلى
top -bn1 | head -20

# مع htop (إذا تم تثبيته)
htop

# استخدام CPU حسب العملية
ps aux --sort=-%cpu | head -10

# استخدام الذاكرة حسب العملية
ps aux --sort=-%mem | head -10

الخطوة 2: شجرة العمليات​

# شجرة كاملة
pstree -a

# مع المستخدمين
pstree -u

# تحديد العمق
pstree -L 2

الخطوة 3: عمليات الزومبي​

# عرض عمليات الزومبي
ps aux | grep -w Z

# عد الزومبي
ps aux | grep -w Z | wc -l

التمرين 6: المراقبة في الوقت الحقيقي​

الخطوة 1: top​

# تشغيل top
top

# الأوامر في top:
# - 'q': الخروج
# - 'k': قتل عملية
# - 'r': تغيير أولوية عملية
# - 'f': تغيير الأعمدة المعروضة

الخطوة 2: htop (إذا كان متاحًا)​

# تثبيت htop
sudo apt install htop

# تشغيل
htop

# أكثر تفاعلية من top

الخطوة 3: سكربت المراقبة​

# إنشاء سكربت بسيط
cat > monitor.sh << 'EOF'
#!/bin/bash
echo "=== Kernel ==="
uname -a
echo
echo "=== Load Average ==="
uptime
echo
echo "=== Top 5 CPU ==="
ps aux --sort=-%cpu | head -6
echo
echo "=== Top 5 Memory ==="
ps aux --sort=-%mem | head -6
EOF

chmod +x monitor.sh
./monitor.sh

التحقق​

قائمة التحقق​

تحقق من أنك تستطيع:

  • عرض إصدار النواة
  • سرد الوحدات المحملة
  • تحديد عملية init (PID 1)
  • عرض العمليات النظامية
  • استخدام systemctl لرؤية الخدمات
  • استكشاف /proc لمعلومات النظام
  • استخدام top/htop للمراقبة

أسئلة للتفكير​

  1. ما هو دور عملية PID 1؟

    • هو والد جميع العمليات
    • يدير العمليات اليتيمة
    • يقوم بتهيئة النظام
  2. ما الفرق بين ps وtop؟

    • ps يظهر لقطة
    • top يظهر في الوقت الحقيقي
  3. لماذا /proc مهم؟

    • واجهة إلى النواة
    • معلومات في الوقت الحقيقي
    • لا توجد ملفات حقيقية، كل شيء افتراضي

الخطوات التالية​

  • المختبر 2.2: تحليل إدارة الذاكرة
  • المختبر 2.3: مراقبة النظام المتقدمة
  • الفصل 2.3: إدارة الذاكرة وswap

تم إنشاء المختبر في: ديسمبر 2024