منهج نواة تقنية الجلسة التاسعة
الهدف من الجلسة
- فهم كيف تعمل الأقراص الصلبة, قطاعات الاقراص الصلبة 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' من سطح المكتب مثلاً؟
عن طريق الروابط سواء كانت ثابته او لينه
- ما الفرق بين الروابط الثابته واللينه؟