Simple Shell هو مشروع تعليمي شامل يهدف إلى بناء مفسر أوامر UNIX بسيط (Command Line Interpreter) من الصفر باستخدام لغة البرمجة C. تم تطوير هذا المشروع كجزء من منهج أكاديمية طويق للبرمجة، ويحاكي الوظائف الأساسية لـ Unix التقليدية مثل /bin/sh.
أهداف المشروع
الأهداف التعليمية:
يهدف المشروع إلى إكساب المتدربين فهماً عميقاً للمفاهيم التالية:
إدارة العمليات (Process Management)
فهم كيفية عمل fork() لإنشاء عمليات فرعية
استخدام execve() لتنفيذ البرامج
التعامل مع waitpid() لانتظار انتهاء العمليات الفرعية
فهم الفرق بين PID و PPID
برمجة النظام (System Programming)
التعامل مع استدعاءات النظام (System Calls)
إدارة متغيرات البيئة (environ)
فهم آلية PATH في البحث عن الأوامر
التعامل مع ملفات الإدخال والإخراج القياسية
إدارة الذاكرة (Memory Management)
استخدام malloc و free بشكل صحيح
تجنب تسرب الذاكرة (Memory Leaks)
التحقق من صحة البرنامج باستخدام Valgrind
معايير البرمجة الاحترافية
الالتزام بمعيار Betty Style
كتابة كود نظيف وقابل للصيانة
توثيق الكود بشكل احترافي
تنظيم المشروع في ملفات منفصلة