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

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

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

  • فهم كيف تعمل الأقراص الصلبة, قطاعات الاقراص الصلبة sectors مفهوم السجلات المادية block devices
  • فهم مفهوم البيانات الوصفية meta data (وربط ذلك بدور نظام التشغيل)
  • فهم ملفات مؤشرات الفهرسة (inode (Index Node
  • فهم مفهوم صلاحيات الملفات في نظام التشغيل لينكس
  • إكتساب مهارات التعامل مع الصلاحيات المختلفة للملفات
  • فهم مفهوم الروابط الثابته واللينه Hard and soft links ومهارات التعامل معها

محتوي الجلسة

الملفات, نظم الملفات والصلاحيات Files, file systems and file permissions

1 فهم كيف تعمل الأقراص الصلبة, قطاعات الاقراص الصلبة sectors مفهوم السجلات المادية block devices 2 فهم مفهوم البيانات الوصفية meta data (وربط ذلك بدور نظام التشغيل)

     2.1 تطبيق عرض البيانات الوصفية لملف بإستخدام الأمر stat

3 البيانات الوصفية meta data للنظم الشبيهه باليونكس

     3.1 قائمة السجلات المادية الفارغة    Free block list
     3.2 مؤشرات الفهرسة (inode (Index Node
     3.3 جدول مؤشرات inode table 
     3.4 اين يقع جدول مؤشرات الفهرسة inode table 
     3.5 ما هي محتويات مؤشر الفهرسة  inode ؟
     3.6 كيف نستطيع عرض رقم مؤشر الفهرسة  inode لملف ( ls -n )
     3.7 مفهوم  مطابقة (تحويل) الأسم إالي رقم مؤشر فهرسة inode ( المجلد directory )
            3.7.1 هل أسم الملف جزء من البيانات الوصفية meta data للملف 
     3.8 المجلدات directories هل مجرد ملفات ام ملفات خاصة

الصلاحيات file permission

1 ما هي الصلاحيات في نظام التشغيل 2 مفهوم ان لكل ملف مالك file owner 3 مفهوم ان كل ملف ينتمي الي مجموعة مستخدمين group 4 عرض مما يتكون عمود الصلاحيات في بيانات الملف ( ls -l ) rwxrwxrwx 5 كيف يتم التعبير عن الصلاحيات (قراءة read 4, كتابة write 2,تنفيذ execute 1, لا شئ 0) 6 فقط ال root يمكنه تغيير مالك الملف owner او مجموعة المستخدمين المنتمي لها الملف group 7 فقط مالك الملف owner وال root يمكنه تغيير صلاحيات ملف file permission 8 المستخدم root هو مدير النظام administrator 9 ماذا عن المستخدمين الاخرين everyone else ؟ 10 تسلسل فحص وتنفيذ الصلاحيات ( المالك owner – مجموعة المستخدمين group – المستخدمين الاخرين other) 11 الفرق بين الصلاحيات في حالة البرمجيات المترجمة (المنفذة تجميعياً) compiled والبرمجيات المفسرة interpreted. 12 الصلاحيات في حالة المجلدات directories

الروابط الثابته واللينه Hard and soft links

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

يشير الميسر ان الجلسة مرتبطة بشكل جزئي لما جاء في الجلسة الرابعة وبالتحديد أجزاء الملفات ووسائط التخزين

الملفات, نظم الملفات والصلاحيات Files, file systems and file permissions

يذَكِر الميسر المتدربين بالمكونات المادية للقرص الصلب كما تم ذكرها في ما سبق بسؤال المتدربين عنها وسرد التفاصيل الخاصة بها

(إجابة إسترشادية):

- ما هي مكونات القرص الصلب (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) يحوي جزء من هذه البيانات ...إلخ.

البيانات الوصفية لملف بإستخدام الأمر stat

يسأل الميسر عن كيفية الوصول للبيانات الوصفية (metadata) السابق ذكرها كجزء من البيانات المخزنة في المكونات المادية للقرص الصلب (hard disk device) ومن المسؤول عن ذلك؟

(إجابة إسترشادية):

- من المسؤول عن الوصول الى البيانات الوصفية (metadata) المخزنة على القرص الصلب (hard disk device) وكيف نصل لها؟

نظام التشغيل هو المسؤول عن ذلك ويمكن الوصول لها في نظام لينكس (Linux) عن طريق أمر 'stat'

ويقوم الميسر بتطبيق هذا الأمر مع المتدربين للوصول الى النتيجة ومناقشتها سوياً:

$ stat directory1
  File: 'directory1/'
  Size: 4096      	Blocks: 8          IO Block: 4096   directory
Device: 811h/2065d	Inode: 1623019     Links: 3
Access: (0500/dr-x------)  Uid: ( 1000/   adef)   Gid: ( 1000/   adef)
Access: 2021-04-09 22:01:36.708155848 +0200
Modify: 2021-04-09 22:01:13.808296041 +0200
Change: 2021-04-09 22:01:34.852166470 +0200
 Birth: -

يقوم الميسر بمراجعة الجزء الخاص بالملفات بسؤال المتدربين عن أنواع الملفات التي تعاملنا معها الى الآن والصلاحيات التي نحتاجها من وجهة نظرهم للتعامل مع تلك الملفات

(إجابة إسترشادية):

- ما هي أنواع الملفات التي تعاملنا معها الى الآن في بيئة نظام التشغيل لينكس (Linux)؟

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

- في نظركم ما هي الصلاحيات اللازمة للتعامل مع الملفات بشكل عام؟

هي القراءة/السرد (r) والكتابة/التحرير (w) والتنفيذ/الفتح (x) ؛وهذا لكلٍ من يملك هذا الملف من المستخدم (user) ويعبر عنه أول ثلاث خانات المعبرة عن الصلاحيات ،والمجموعة (group) ويعبر عنها الثلاث خانات التالية ،والآخرون (others) ويعبر عنها الثلاث خانات الأخيرة.

- بناءاً على ذلك في نظركم ماذا يحدث عند اعطاء الملفات الإعتيادي (regular file) كل من هذه الصلاحيات؟ ماذا يحدث عند اعطاء المجلد (directory) كل من هذه الصلاحيات؟ ... وهكذا

عند اعطاء الملف الإعتيادي (regular file) صلاحية القراءة فقط ،فهذا الملف يمكن معرفة محتوياته ،لكن لا يمكن الكتابة عليه لأنه لا يحتوي على صلاحية الكتابة ؛وكذلك المجلد (directory) يمكن سرد محتوياته ،ولكن لا يمكن الكتابة عليه.

ويقوم الميسر بتطبيق هذا مع المتدربين بالتدريج للوصول الى هذه النتيجة ومناقشتها سوياً:

$ cat > file1.txt
lorem ipsum
# ctrl+d <- EOF character

$ chmod 400 file1.txt
$ cat file1.txt
lorem ipsum

بينما عند اعطاء الملف الإعتيادي (regular file) صلاحية الكتابة فقط ،فهذا الملف يمكن الكتابة به ولكن لا يمكن معرفة محتوياته لأنه لا يحتوي على صلاحية القراءة. ويقوم الميسر بتطبيق هذا مع المتدربين بالتدريج للوصول الى هذه النتيجة ومناقشتها سوياً:

$ chmod 200 file1.txt
$ cat > file1.txt
Hello, World!
# ctrl+d <- EOF character

$ cat file1.txt
Hello, World!

أما اذا اعطينا المجلد (directory) صلاحية الكتابة فقط فلا يمكن سرد محتوياته ولا فتحه للكتابة عليه. ويقوم الميسر بتطبيق هذا مع المتدربين بالتدريج للوصول الى هذه النتيجة ومناقشتها سوياً:

$ chmod 200 directory1
$ ls -l direcotry1/
ls: cannot open directory 'directory1/': Permission denied
$ mkdir directory1/directory2
mkdir: cannot create directory 'directory1': Permission denied

وعند اعطاء الملف الإعتيادي (regular file) صلاحية التنفيذ فقط ،فهذا الملف يمكن فتحة ولكن لا يمكن الكتابة عليه ولا قراءة محتوياته. ويقوم الميسر بتطبيق هذا مع المتدربين بالتدريج للوصول الى هذه النتيجة ومناقشتها سوياً:

$ chmod 100 file1.txt
$ cat file1.txt 
cat: file1.txt: Permission denied
$ cat >> file1.txt 
bash: file1.txt: Permission denied

وأما عند اعطاء المجلد (directory) صلاحية التنفيذ فقط ،فهذا المجلد لا يمكن سرد محتوياته ولا الكتابة عليه. ويقوم الميسر بتطبيق هذا مع المتدربين بالتدريج للوصول الى هذه النتيجة ومناقشتها سوياً:

$ ls -l directory1/
ls: cannot open directory 'directory1/': Permission denied
$ mkdir directory1/directory2
mkdir: cannot create directory ‘directory1/directory2’: Permission denied

ويمكن دمج الصلاحيات سوياً وانتاج مزيج منه وتطبيق ذلك مع المتدربين:

$ chmod 300 directory1/
$ mkdir direcotry1/directory3
mkdir: created directory 'directory1/directory3'
$ ls -l directory1/
ls: cannot open directory 'directory1/': Permission denied
$ chmod 500 directory1/
$ ls -l directory1/
total 4
drwxrwxr-x 2 adef adef 4096 Apr  9 22:01 directory3

وهكذا...

الروابط الثابته واللينه Hard and soft links

يسأل الميسر عن اذا ما اردنا ان نفتح ملف في المجلد 'home' الخاص بالمستخدم في مكان آخر ،ويحاول تقريب الصورة الى المتدربين ليكون المدخل لشرح الروابط الثابته واللينه.

(إجابة استرشادية):

- كيف نقوم بالوصول الى ملف في المجلد 'home' الخاص بالمستخدم 'adef' من سطح المكتب مثلاً؟

عن طريق الروابط سواء كانت ثابته او لينه

- ما الفرق بين الروابط الثابته واللينه؟