منهج نواة تقنية الجلسة الرابعة

من ويكي أضِف
مراجعة 19:15، 18 أبريل 2021 بواسطة محمد عبدالعزيز (نقاش | مساهمات) (تنسيق النص)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

الهدف من الجلسة

  1. التعرف على أحد كيانات نظام لينكس الملفات.
  2. معرفة كيفية تمثيل كل شيئ في النظام على انه ملف
  3. التعرف على أنواع الملفات والتعامل مع كل منها
  4. التعرف على شجرة الملفات (file tree) ومفهوم المسار (path)

محتوي الجلسة

3.6 الملفات و الأدلة directory

3.6.1 ما هو الملف؟ (تمثيل البيانات)

3.6.2 ما هو الدليل directory؟

3.6.3 كل ملف ودليل له اسم

3.6.4 مفهوم دليل العمل الحالي working directory

3.6.4.1 الجذر root /

3.6.4.2 مفهوم المسار

   المسار النسبي Relative
   المسار المطلق Absolute

3.6.5 امر pwd

 3.6.5.1 ما هو دليل العمل الحالي working directory عند الولوج؟

3.6.6 أمر ls

 3.6.6.1 عرض محتويات الدليل الحالي
 3.6.6.2 عرض محتويات الأدلة الأخرى
 3.6.6.3 الملفات المبدوءه ب .
 3.6.4 تفاصيل الملف

3.6.7 الأمر tree

3.6.8 الأمر cd

3.6.9 الأمر mkdir

3.6.10 الاشاره إلى الأم

3.6.11 الاشاره إلى مكاني

3.6.12 الاشاره إلى دليل المنزل home directories (اللمحة الأولى عن الامتدادات)

3.6.13 الأمر cp

3.6.14 شجرة أدلة لينكس (الاشاره إلى معيار هيكل الملفات FHS)

3.6.15 التكلم عن الأدلة المهمة مع ذكر وظائفها

 3.6.15.1 /bin
 3.6.15.2 /dev
    ◦ الملفات الخاصة
 3.6.15.3 /etc
 3.6.15.4 /home
 3.6.15.5 /lib
 3.6.15.6 /proc
 3.6.15.7 /sbin
 3.6.15.8 /sys
 3.6.15.9 /tmp
 3.6.15.10 /usr
   ◦ /usr/bin
   ◦ /usr/include
   ◦ /usr/lib
   ◦ /usr/local
   ◦ /usr/sbin
   ◦ /usr/share
   ◦ /usr/src
 3.6.15.11 /var
   ◦ /var/log
   ◦ /var/spool

طريقة التقديم

  • يسأل المدرب المتدربين عن كيفية توصيل رسالة من شخص الى آخر سواء كانت الرسالة إلكترونية أو غير ذلك وهذا لجذب الإنتباه وتفاعل المتدربين مع المدرب وهذا سيكون مدخل للتعريف بالعنوان أو المسار (path) الواجب سلوكه لتوصيل الرسالة.

يتم تطبيق النشاط السابق بالتركيز على نظام التشغيل لينكس (Linux) وكيفية الوصول من مجلد الى آخر داخل بيئة النظام.

  • سؤال المتدربين "ما العمل إذا ما كنا في مكان ولا نعرف عنوان هذا المكان؟" وذلك لتنشيط الجانب التحليلي عند المتدربين بالسؤال عن "أين نحن؟" وذلك تمهيداً للتعرف على أمر (pwd) وقراءة تعريفه في الـ (man) والتعرف على أنواع المسارات (paths) في نظام التشغيل ؛وهي المسار المطلق (absolute path) والمسار المرتبط (relative path).
  • تطبيق نشاط آخر بالضغط من لوحة المفاتيح (keyboard) على الإختصار (ctrl+alt+F5) مثلاً لفتح (tty) جديد للدخول للنظام عن طريق سطر الأوامر (command line) وتسجيل الدخول كمستخدم عادي وتنفيذ الأمر (pwd) ،وفتح (tty) آخر بإستخدام الإختصار السابق ذكره وتسجيل الدخول كمدير للنظام وتنفيذ الأمر السابق (pwd) والمقارنة بين النتائج.
  • السؤال مرة أخرى عن طريق الوصول الى المجلدات تمهيداً للتعرف بالمسار المطلق (absolute path) والمسار النسبي (relative path) والمقارنة بين النتائج.
  • السؤال عن إذا ما أردنا عرض محتويات المسار الحالي (current path) ،والتعريف بأمر (ls) من خلال (man) والخيارات الخاصة به.

مع تجربة خيار (l-) وذلك لعرض محتويات المسار (path) مع بعض التفصيل عن كل مجلد وملف لهذا المسار وشرح هذا التفصيل بشكل سريع.

  • السؤال مرة اخرى عن ما إذا اردنا عرض محتويات مسار (path) آخر وتمرير المسار المطلوب عرض محتوياته الى الأمر (ls -l).
  • يقوم المدرب بتغيير اسم ملف أو مجلد ما ليبدأ بعلامة النقطة (.) وهذا لإخفاءه وإعادة عرض الملفات بإستخدام الأمر (ls -l) وذلك تمهيداً للتعريف بالخيار (a-) لعرض الملفات التي تم إخفاؤها بالأمر (ls-la).
  • يطرح المدرب تساؤل عن التفاصيل الناتجة عن أمر (ls -l) ليقوم بشرحها هذه المرة بشئ من التفصيل ويبدأ بشرح أنواع الملفات في بيئة نظام التشغيل (linux) بدايةً بالملف الاعتيادي (regular file) ويرمز له بالرمز (-) ،ثم المجلد (directory) ويرمز له بالرمز (d) ،ثم يتطرق لباقي الأنواع والتنويه على أنه سيتم شرحها بالتفصيل لاحقاً ؛كالملف الخاص قالب/مجموعة محارف (block special file) ويرمز له بالرمز (b) ،والملف الخاص رمز/محرف (character special file) ويرمز له بالرمز (c) ،والاختصار/الرابط المرجعي (symbolic link) ويرمز له بالرمز (l) ،وملف الشبكة (network file) ويرمز له بالرمز (n) ،و(FIFO) ويرمز له بالرمز (p) ،و(socket) ويرمز له بالرمز (s).
  • يستكمل المدرب قراءة نتائج الأمر (ls -l) بقراءة والتعريف بصلاحيات الملفات ومدلول كل رمز من هذه الحروف (rwx) بشكل سريع والتنويه على انه سيتم شرحها فيما بعد بشكل مفصل.

فـ (r) هي ترمز الى صلاحية قراءة الملف ،و (w) هي صلاحية الكتابة على الملف ،و (x) هي صلاحية تنفيذ/فتح الملف وهذا لكل من الـ (user) والـ (group) والـ (others).

  • يشير المدرب الى جزء الـ (inode) وينوه على انه سيتم شرحه لاحقاً بشكل مفصل.
  • ثم يتابع المدرب بشرح باقي ناتج الأمر (ls -l) والاشارة وشرح الأجزاء لكل من المستخدم المالك للملف (file owner) والمجموعة المالكة لهذا الملف (file group) ،ثم الإشارة الى حجم الملف وتجربة الأمر (ls -lh) وذلك لعرض حجم الملف بشكل يسهل قراءته ،ثم الإشارة الى التاريخ ووقت التعديل على الملف ،ثم الإشارة الى إسم الملف.
  • يتساءل المدرب عن أننا نريد في بعض الأحيان عرض محتويات المجلد مع ترتيبها بشكل ما ليبدأ في سرد مع توجيه المتدربين الى الرجوع الى (man ls) ومعرفة كيفية تطبيق هذا.

على سبيل المثال الترتيب ابجدياً حسب نوع الملف (ls -x) او (ls --sort=extension) ،والترتيب حسب الحجم (ls -S) او (ls --sort=size) ،والترتيب حسب توقيت آخر تعديل (ls -t) او (ls --sort=time) ،والترتيب حسب نسخة الملف (version) بـ (ls -v) او (ls --sort=version) ،وفي الأخير يسأل المدرب عن ناتج الأمر (ls -ltr /var).

  • يقوم المدرب بشرح الأمر (ls -R) اعتماداً على (man) وهذا لترسيخ فكرة الرجوع له في كل أمر نريد معرفة تفاصيل عنه ويتساءل المدرب "هل من طريقة يمكنها تحسين النتائج؟" تمهيداً لشرح الأمر (tree) وتنصيبه اذا ما كان غير متوفر ،وقراءة التفاصيل الخاصة بهذا الأمر من خلال (man tree) وتجربة بعض الخيارات المتاحة بهذا الأمر.
  • يشير المدرب الى المثال الأول الذي اعتمد عليه كمدخل لشرح المسارات (paths) ويتساءل المدرب عن إذا ما أردنا تغيير المسار المتبع ؛وتطبيق هذا المثال على (linux) ليكون هذا المثال مدخلاً لشرح الأمر (cd) وهو تغيير المسار الحالي ،وتجربة الأمر مع التنقل بين بعض المسارات.
  • يتساءل المدرب عن اذا ما اردنا انشاء مجلد جديد لكي يقوم بشرح الأمر (mkdir) ،وقراءة التفاصيل الخاصة بهذا الأمر من خلال (man mkdir) وتجربة بعض الخيارات المتاحة بهذا الأمر.
  • يذكر المدرب المتدربين بالأمر (ls -la) ويقوم بتجربته مرة أخرى مع الإشارة والتساؤل عن النقطة (.) والنقطتين (..) الموضحين في النتائج ويبدأ بشرح مبدأ التبديل (substitution) بأن النظام يقوم بتبديل كلاً من هذه النقاط وغيرها سيتم شرحها لاحقاً الى ما يكافئها من قيم محفوظة لديه.
  • يبدأ المدرب بعدها بشرح أمر (cp) لنسخ محتويات الملفات ،وقراءة التفاصيل الخاصة بهذا الأمر من خلال (man cp) وتجربة بعض الخيارات المتاحة بهذا الأمر والتدرب عليه.

بعدها يقوم المدرب بتوضيح محتويات المسار (dev/) عن طريق أمر (ls -l) ومناقشة نتائج هذا الأمر مع توضيح فكرة الملفات الخاصة التي تم الإشارة إليها سابقاً.

  • النشاط السابق ذكره هو مدخل لطريقة عمل لوحة المفاتيح (keyboard) والفارق بين أداة قراءة/كتابة المحارف (character device) والتي تقوم بالتعامل مع الـ (driver) المسؤول عن التعامل مع المحارف سواء بإرسالها (send) /استقبالها (receive) الى/من وحدات الإدخال (input devices) /الإخراج (output devices) ،وأداة قراءة/كتابة مجموعة من المحارف أو البيانات (block device) والتي تقوم بالتعامل مع الـ (driver) المسؤول عن التعامل مع مجموعة من المحارف/البيانات سواء بإرسالها (send) /استقبالها (receive) الى/من وحدات الإدخال (input devices) /الإخراج (output devices).
  • يتساءل المدرب عن كيفية كتابة البيانات على وسائط التخزين (storage devices) ويقوم بذكر بعض منها كلمحة تاريخية وصولاً الى القرص الصلب (hard disk device) ؛يستمع المدرب إلى آراء المتدربين حول تكوينه وآلية عمله مع تقريب الصورة لديهم إلى أن يقوم بسرد التفاصيل بدايةً من الشكل العام للقرص الصلب (hard disk device) والذي يتكون من صندوق معدني مستطيل الشكل يحوي مجموعة من الأقراص (platters) وفي الغالب تكون مصنوعة من [ الألومنيوم المخلوط أو الزجاج أو السيراميك ] وتغطى بطبقة رقيقة (nm10-20) من مادة ممغنطة ،و رؤوس القراءة/الكتابة (heads) الموزعة على جانبي الأقراص تقوم بالقراءة/الكتابة أعلى وأسفل القرص الواحد ،ولوحة الكترونية (PCB).
  • كل قرص يحوي مجموعة من المسارات (tracks) عبارة عن مجموعة من الدوائر مشتركة المركز ،والمقسمة الى مجموعة من الأجزاء (sectors) ؛وتخزن البيانات على هيئة أجزاء ممغنطة صغيرة على الأقراص (platters) تمثل (bit) عن طريق رأس القراءة/الكتابة (head) والذي يحتوي على ما يشبه قطبي المغناطيس (N) و (S) والتي يتحكم بها متحكمات (controllers) خاصة داخل القرص الصلب (hard disk device).
  • عند الكتابة يتحرك هذان القطبان فإذا تلامس القطب (N) مع القرص قبل القطب (S) تكون النتيجة (N-S) وهذا يمثل الرقم (1) بلغة الآلة ،بينما إذا حدث العكس تكون النتيجة (S-N) وهذا يمثل الرقم (0) بلغة الآلة.
  • تخزن البيانات بشكل عشوائي على الأقراص (platters) ويتم تخزين معلومات عن هذه البيانات (metadata) في ذاكرة خاصة (special memory) داخل القرص الصلب (hard disk) توصِف هذه البيانات لسهولة قراءتها واسترجاعها ؛فعلى سبيل المثال يتم تسجيل رقم المسار (track number) الذي به هذه البيانات ورقم كل جزء (sector) يحوي جزء من هذه البيانات ...إلخ.

هذا التنظيم والترتيب يسمى بـ (linear block addressing).