جامعة تونغجي CS "نظام التشغيل" تصميم الدورة التدريبية: نظام الملفات
تم تصميم هذا المشروع لدورة نظام التشغيل في قسم علوم الكمبيوتر وتكنولوجيا جامعة تونغجي في عام 2021. تنفيذ نظام الملفات الشبيه بـ UNIX.

أسهل مهمة كبيرة في هذا الفصل الدراسي (بشكل رئيسي بدون واجهة المستخدم الرسومية) ، استغرق الأمر 10 أيام لتطوير نظام الملفات
إذا كان هذا المستودع يساعدك ، أعطني نجمًا؟
إذا كان لديك أي أسئلة ، فيمكنك أيضًا رفعها في قضية الآخرين للإشارة إليها أو مناقشتها معًا؟
يتبع المستودع بروتوكول معهد MIT مفتوح المصدر
يستخدم هذا المتغير بشكل أساسي لتسجيل طول الملف الذي يقرأ حاليًا. إن وجود هذا المتغير يقلل من صعوبة فهرسة الملفات المختلطة. لا تحتاج الوظائف إلى حساب عدد كتل الفهرس التي يتم استخدامها ، ولا تحتاج إلى معرفة هيكل الفهرس المختلط للملف. وهم يعتبرون ملف الفهرس مباشرة ملف عملاق مع جميع كتل الفهرس التي تصل إلى الحد الأقصى للحجم. ابدأ عبور الملف من الفهرس المباشر ، ثم إلى فهرس المستوى الأول ، ثم إلى الفهرس من المستوى الثاني. عندما يصل الطول إلى حجم الملف ، يمكنك الخروج مباشرة من اجتياز الملفات من أي حجم. ومع ذلك ، فإن عيب هذه الطريقة هو أنه في كل مرة تقرأ فيها ملف ، يبدأ من رأس الملف ، مما يقلل من كفاءة القراءة والكتابة العشوائية.
يستخدم هذا المتغير بشكل أساسي للإشارة إلى خط المحرر الذي يبدأ في عرض النص. يبدأ هذا المتغير في هذا المفعول عندما يتجاوز عدد خطوط الملف ارتفاع وحدة التحكم. يجب إضافة عدد الخطوط المعينة إلى النص الفعلي لمؤشر وحدة التحكم إلى متغير Start_Line. عندما ينتقل المؤشر إلى الخط الأساسي ، اضغط على مفتاح السهم مرة أخرى ، ستضيف START_LINE صفحة إلى أسفل النص في المحرر ، والعكس صحيح.
ينتمي هذا المتغير إلى فئة واجهة مستخدم سطر الأوامر ويسجل بشكل أساسي مسار المستخدم في نظام الملفات. لأنه في نظام الملفات ، تعتمد جميع واجهات التشغيل على المسار المطلق ، وتستند الأوامر التي أدخلها المستخدم في واجهة سطر الأوامر إلى المسار النسبي Cur_dir. لذلك ، عندما تستخدم واجهة المستخدم واجهة نظام الملفات ، يجب ربط Cur_dir بإدخال المسار من قبل المستخدم ، ويجب تمرير المسار المطلق كمعلمة إلى وظيفة واجهة النظام الهادئ.


يعمل نظام الملفات هذا باستخدام نظام تشغيل Windows 64 بت. حجم حجم الملف المحاكاة لنظام الملفات هو 128 ميجابايت. يرجى التأكد من وجود مساحة حرة كافية في دليل البرنامج.
يحظر إغلاق البرنامج مباشرة عند الخروج من البرنامج. يجب عليك استخدام أمر الخروج للخروج من نظام الملفات ، وإلا فقد يتسبب في أخطاء نظام الملفات أو تعطلها.
قم بتعديل ملفات /etc/users.txt و /ETC/Groups.txt بعناية. يرتبط هذان الملفان بإدارة المستخدم. إذا لم يتم تعديل التنسيق بشكل صحيح ، فقد يتسبب ذلك في عدم قدرة نظام الملفات على تسجيل الدخول أو مشاكل الإذن الأخرى.
في حالة حدوث مشكلتين أعلاه ، يرجى محاولة تنسيق نظام الملفات.
الأوامر المتاحة عند عدم تسجيل الدخول:
| طلب | المعلمة | وظيفة |
|---|---|---|
| تسجيل الدخول | اسم المستخدم (سلسلة) | تسجيل الدخول المستخدم |
| مخرج | الخروج من النظام | |
| شكل | تنسيق نظام الملفات | |
| يساعد | عرض قائمة مطالبات الأوامر |
الأوامر المتاحة في حالة تسجيل الدخول:
| طلب | المعلمة | وظيفة |
|---|---|---|
| تسجيل الخروج | سجل المستخدم | |
| مخرج | الخروج من النظام | |
| mkdir | لا يمكن أن يكون اسم الدليل (سلسلة ، طول أقل من 28 بايت ، دليلًا متعدد المستويات) | إنشاء دليل فرعي |
| قرص مضغوط | اسم الدليل (السلسلة ، طول أقل من 28 بايت ، اسم الدليل الفرعي في الدليل الحالي لا يمكن أن يكون دليلًا متعدد المستويات) | اذهب إلى الدليل الفرعي |
| ls | إظهار قائمة الدليل الحالية | |
| RMDIR | اسم الدليل (السلسلة ، طول أقل من 28 بايت ، اسم الدليل الفرعي في الدليل الحالي لا يمكن أن يكون دليلًا متعدد المستويات) | حذف الدلالات الفرعية |
| يلمس | لا يمكن أن يكون اسم الملف (سلسلة ، طول أقل من 28 بايت ، دليلًا متعدد المستويات) | إنشاء ملف جديد |
| Chmod | لا يمكن أن يكون اسم الملف (السلسلة ، أقل من 28 بايت ، اسم الملف في الدليل الحالي دليلًا متعدد المستويات) | تعديل أذونات الملف أو الدليل |
| RM | اسم الملف (السلسلة ، طول أقل من 28 بايت ، لا يمكن أن يكون اسم الملف في الدليل الحالي دليلًا متعدد المستويات) | حذف الملفات |
| userAdd | اسم مستخدم اسم المستخدم (سلسلة) (سلسلة ، مجموعة المستخدمين يجب أن تكون موجودة بالفعل) | أضف مستخدمًا |
| userDel | اسم المستخدم (سلسلة ، يجب أن يكون المستخدم موجودًا بالفعل) | حذف المستخدمين |
| Groupadd | اسم مجموعة المستخدم (سلسلة) | أضف مجموعة مستخدمين |
| Groupdel | اسم مجموعة المستخدم (سلسلة ، يجب أن تكون مجموعة المستخدم موجودة بالفعل) | حذف مجموعة المستخدمين |
| ص | تحقق من استخدام القرص | |
| يعرض | اسم الملف (السلسلة ، طول أقل من 28 بايت ، لا يمكن أن يكون اسم الملف في الدليل الحالي دليلًا متعدد المستويات) | اطبع محتويات الملف. إذا لم يكن الملف ملف حرف ، فقد يتسبب في أخطاء |
| السادس | اسم الملف (السلسلة ، طول أقل من 28 بايت ، لا يمكن أن يكون اسم الملف في الدليل الحالي دليلًا متعدد المستويات) | افتح ملفًا مع محرر |
| شكل | تنسيق نظام الملفات | |
| Win2FS | مسار الملف ضمن Windows (سلسلة ، يتوافق مع مواصفات مسار ملف Windows) ضمن الدليل الحالي لنظام ملفات FS (السلسلة ، الطول أقل من 28 بايت ، اسم الملف ضمن الدليل الحالي لا يمكن أن يكون دليلًا متعدد المستويات) | نسخ محتويات ملف Windows إلى ملفات نظام ملفات FS |
| FS2WIN | لا يمكن أن يكون اسم الملف في الدليل الحالي لنظام ملفات FS (السلسلة ، الطول أقل من 28 بايت ، اسم الملف في الدليل الحالي هو مسار ملف متعدد المستويات) في Windows (سلسلة ، مواصفات مسار ملف Windows) | انسخ محتويات نظام ملفات FS إلى ملف Windows |
| CLS | امسح الشاشة | |
| يساعد | عرض قائمة مطالبات الأوامر |
تعليمات المحرر:
بعد دخول المحرر ، يمكنك تحريك المؤشر من خلال مفاتيح السهم. عندما يكون المؤشر موجودًا في الحدود العلوية والسفلية ، يمكنك نقل المؤشر إلى الحدود مرة أخرى لإكمال تحول الصفحة لمحتوى النص ، إدخال مفتاح Enter لحذف الأحرف قبل المؤشر ، وإدخال أحرف أخرى لإدراج الأحرف في المؤشر ، واضغط على مفتاح ESC للخروج من النص وحفظه. يشير "□" في المحرر إلى مفتاح Enter ، و "#" يشير إلى نهاية الملف. لاحظ أنه يمكن للمحرر التعامل مع أحرف ASCII فقط.
قد يتسبب البرنامج في استثناءات مختلفة بسبب إدخال الأوامر غير المناسب ، ومساحة نظام الملفات الكاملة ، والأذونات غير القانونية ، وما إلى ذلك عند حدوث استثناء ، سيقوم البرنامج بإخراج معلومات الاستثناء إلى وحدة التحكم. يرجى حل الاستثناء بناءً على معلومات الإخراج. إذا لم يتم حل الاستثناء أبدًا ، فحاول تنسيق نظام الملفات.
يوجد تعريف الماكرو للمعلمات القابلة للضبط في ملف filesystem.h
| المعلمة | يوضح |
|---|---|
| إصدار | إصدار نظام الملفات |
| disk_name | محاكاة اسم ملف حجم الملف |
| disk_size | حجم قرص حجم الملف أكبر على الأقل من 1024*512 بايت. يوصى بتعيينه على (261120+1024) *512 بايت ، أي 128 ميجابايت |
| اسم الملف | يوضح |
|---|---|
| FileSystem.H | ملف رأس نظام الملفات |
| FileSystem.cpp | ملفات الملفات C ++ |
| Main.cpp | ملف البرنامج الرئيسي C ++ (واجهة مستخدم سطر الأوامر) |
| test.cpp | لم يتم تجميع ملف اختبار واجهة ملفات الملف في البرنامج النهائي القابل للتنفيذ. |
| fs.data | محاكاة أحجام ملفات القرص |
| ملف system.exe | برنامج قابل للتنفيذ (واجهة مستخدم سطر الأوامر) |







