المختبر 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 للمراقبة
أسئلة للتفكير
-
ما هو دور عملية PID 1؟
- هو والد جميع العمليات
- يدير العمليات اليتيمة
- يقوم بتهيئة النظام
-
ما الفرق بين ps وtop؟
psيظهر لقطةtopيظهر في الوقت الحقيقي
-
لماذا /proc مهم؟
- واجهة إلى النواة
- معلومات في الوقت الحقيقي
- لا توجد ملفات حقيقية، كل شيء افتراضي
الخطوات التالية
- المختبر 2.2: تحليل إدارة الذاكرة
- المختبر 2.3: مراقبة النظام المتقدمة
- الفصل 2.3: إدارة الذاكرة وswap
تم إنشاء المختبر في: ديسمبر 2024