Product SiteDocumentation Site

B.4. بعض المهام التي تتحكم بها النواة

B.4.1. إدارة العتاد

النواة تهتم، أولاً وقبل كل شيء، بالتحكم بقطع العتاد، والتعرف عليها، تشغيلها عند تشغيل الحاسوب، وهكذا. كما أنها توفر واجهة برمجية مبسطة للعتاد تستفيد منها البرمجيات عالية المستوى، حتى تستثمر التطبيقات مزايا العتاد دون الحاجة للاهتمام بالتفاصيل مثل أي منفذ توسعة تم تركيب البطاقة الإضافية عليه. تُقدّم الواجهة البرمجية أيضًا طبقة عزل؛ تسمح هذه لبرمجيات الاجتماعات المرئية مثلاً، باستخدام كاميرا الوب بغض النظر عن الشركة الصانعة وطرازها. يستطيع البرنامج استخدام واجهة Video for Linux‏ (V4L) ببساطة، وسوف تترجم النواة استدعاءات دوال هذه الواجهة إلى أوامر العتاد الفعلية التي تحتاجها كاميرا الوب الخاصة المستعملة.
تُصدِّر النواة العديد من التفاصيل عن العتاد الذي تعرفت عليه من خلال نظامي الملفات الوهميين /proc/ و /sys/. تُلَخِّص العديد من الأدوات هذه التفاصيل. من بينها، lspci (في الحزمة pciutils) التي تسرد أجهزة PCI، والأداة lsusb (في الحزمة usbutils) التي تسرد أجهزة USB، وأيضًا lspcmcia (في الحزمة pcmciautils) التي تسرد بطاقات PCMCIA. هذه الأدوات مفيدة جداً للتعرف على الطراز الدقيق للجهاز. بعد ذلك يمكن البحث في الوب بدقة أعلى، وبالتالي، الحصول على وثائق ذات صلة أكثر.

مثال B.1. مثال عن المعلومات التي يقدمها الأمر lspci والأمر lsusb

$ lspci
[...]
00:02.1 Display controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 03)
[...]
01:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5751 Gigabit Ethernet PCI Express (rev 01)
02:03.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)
$ lsusb
Bus 005 Device 004: ID 413c:a005 Dell Computer Corp.
Bus 005 Device 008: ID 413c:9001 Dell Computer Corp.
Bus 005 Device 007: ID 045e:00dd Microsoft Corp.
Bus 005 Device 006: ID 046d:c03d Logitech, Inc.
[...]
Bus 002 Device 004: ID 413c:8103 Dell Computer Corp. Wireless 350 Bluetooth
لهذه البرامج خيار -v، الذي يعرض معلومات مفصلة أكثر بكثير (لكن غير ضرورية عادة). أخيراً، يسرد الأمر lsdev (في الحزمة procinfo) موارد التواصل التي تستهلكها الأجهزة.
تصل التطبيقات إلى الأجهزة غالباً عبر ملفات خاصة منشأة ضمن المجلد /dev/ (انظر الملاحظة الجانبية أساسيات صلاحيات الوصول للأجهزة). هذه الملفات هي ملفات خاصة تمثّل سواقات الأقراص الصلبة (مثلاً، /dev/hda و /dev/sdc)، أو أقسام الأقراص (مثلاً، /dev/hda1 أو /dev/sdc3)، الفأرات (/dev/input/mouse0)، لوحات المفاتيح (/dev/input/event0)، بطاقات الصوت (‎/dev/snd/*‎)، المنافذ التسلسلية (‎/dev/ttyS*‎)، وغيرها.

B.4.2. نظم الملفات

نظم الملفات هي إحدى أهم مظاهر النواة. تدمج النظم المشابهة لنظام يونكس جميع أجهزة تخزين الملفات في شجرة واحدة، والتي تسمح للمستخدمين (والتطبيقات) بالوصول إلى البيانات ببساطة بمعرفة مكانها ضمن تلك الشجرة.
تدعى نقطة البداية لهذه الشجرة الهرمية بالجذر root، ويرمز لها بالرمز /. يستطيع هذا المجلد أن يحوي مجلدات فرعية مسماة. مثلا، يدعى مجلد home (البيت) المتفرع عن / باسم /home/. يمكن لهذا المجلد الفرعي، بدوره، أن يحوي مجلدات فرعية أخرى، وهكذا. يمكن لكل مجلد أيضًا أن يحوي ملفات، حيث يتم تخزين البيانات الفعلية. بالتالي، يشير الاسم /home/rmas/Desktop/hello.txt إلى الملف المسمى hello.txt المخزن في المجلد Desktop المتفرع عن المجلد rmas المتفرع عن المجلد home الموجود في الجذر. تترجم النواة بين نظام التسمية هذا وبين نظام التخزين الفعلي الفيزيائي على القرص.
بعكس نظم التشغيل الأخرى، توجد شجرة ملفات واحدة فقط، ويمكن لها أن تضم بيانات من أقراص متعددة. يستخدم أحد هذه الأقراص كجذر، والبقية ”تُربط mount“ بمجلدات في الشجرة (اسم الأمر في يونكس هو mount)؛ تتوفر هذه الأقراص الأخرى بعدئذ تحت ”نقاط الربط mount points“ هذه. يسمح هذا بتخزين مجلدات بيوت المستخدمين (المخزنة ضمن مجلد /home/ تقليديًا) على قرص ثان، الذي سيحوي مجلدات rhertzog و rmas. بمجرد ربط القرص مع /home/، تصبح هذه المجلدات متاحة للوصول من أماكنها المعتادة، وتبقى المسارات مثل /home/rmas/Desktop/hello.txt صالحة.
هناك صيغ عديدة لنظم الملفات، توافق الطرق العديدة التي يمكن بها تخزين البيانات فيزيائياً على الأقراص. أكثر نظم الملفات شهرة هي ext2 ،ext3 و ext4، لكن يوجد غيرها. مثلاً، vfat هو النظام الذي استخدمه دوس قديمًا ونظام التشغيل ويندوز، ما يسمح باستخدام الأقراص الصلبة في دبيان كما في ويندوز. على أية حال، يجب تجهيز نظام ملفات على القرص قبل أن نتمكن من ربطه مع شجرة الملفات وتعرف هذه العملية باسم ”التهيئة“. تعالج الأوامر مثل mkfs.ext3 (حيث mkfs تعني MaKe FileSystem أي اصنع نظام ملفات) عملية التهيئة. تتطلب هذه الأوامر، كمتغير، ملف جهاز يمثل القسم المراد تهيئته (مثلاً، /dev/sda1). هذه العملية مدمرة ويجب تشغيلها مرة واحدة فقط، إلا إذا أراد المرء مسح نظام الملفات والبدء من جديد عمدًا.
بل هناك نظم ملفات شبكية أيضاً، مثل NFS، حيث لا تخزن البيانات على قرص محلي. بل ترسل البيانات عبر الشبكة إلى مخدم يخزنها ويسترجعها حسب الطلب. إن تجريد نظم الملفات يحمي المستخدمين من الحاجة للاهتمام بذلك: تبقى الملفات متوفرة للوصول بالطريقة الشجرية المعتادة.

B.4.3. الوظائف المشتركة

نظرًا لوجود عدد من الوظائف (functions) المتشابهة التي تستخدمها جميع البرمجيات، فمن المنطق تجميعها في النواة. مثلاً، تسمح الإدارة المشتركة لنظام الملفات لأي تطبيق بفتح أي ملف عبر استخدام اسمه ببساطة، دون الحاجة للاهتمام بمكان تخزين الملف فيزيائيًا. يمكن أن يخزَّن الملف في عدة شرائح مختلفة على قرص صلب، أو ينقسم بين عدة أقراص، أو حتى يخزَّن على مخدم ملفات بعيد. تستخدم التطبيقات دوال التواصل المشتركة لتبادل البيانات بغض النظر عن طريقة نقلها. مثلاً، يمكن أن تُنقَل عبر أية تركيبة من الشبكات المحلية أو اللاسلكية، أو عبر خط الهاتف الثابت.

B.4.4. إدارة العمليات

العملية هي نسخة فعالة من البرنامج. تحتاج كل عملية إلى ذاكرة لتخزين كُلٍّ من البرنامج نفسه والبيانات التي يعمل عليها. النواة مسؤولة عن إنشاء وتتبع العمليات. عند تشغيل برنامج، تخصص له النواة جزءًا من الذاكرة، ثم تُحمِّل الشفرة التنفيذية من نظام الملفات إليه، بعدها تبدأ تشغيل الشِّفرة. تحتفظ النواة بمعلومات عن هذه العملية، أكثر هذه المعلومات بيانًا للعيان هو رقم تعريف العملية الذي يعرف بالرمز pid (مُعرِّف العملية process identifier).
نوى نظم التشغيل المشابهة لنظام يونكس (بما فيها لينكس)، ومعظم نظم التشغيل الحديثة الأخرى، تدعم ”تعدد المهام“. بكلمات أخرى، تسمح هذه النوى بتشغيل العديد من العمليات ”في الوقت نفسه“. في الحقيقة توجد مهمة واحدة تعمل في الوقت الواحد، لكن النواة تقسم الوقت إلى شرائح قصيرة وتشغل كل عملية بالدور. ونظراً لقصر هذه الشرائح الزمنية الشديد (من رتبة الميللي ثانية)، يتولد سراب العمليات التي تعمل على التوازي، بالرغم من أنها في الواقع فعالة فقط خلال بعض الفترات الزمنية وخاملة بقية الوقت. مهمة النواة هي ضبط آلية جدولة هذه الفترات للإبقاء على هذا الوهم، مع رفع أداء النظام الكلي إلى أعظم ما يمكن. إذا كانت الشرائح الزمنية طويلة جداً، فقد يفقد التطبيق قدرته على التجاوب بالشكل المقبول. وإذا كانت قصيرة جداً، سيضيّع النظام الوقت في التبديل بين المهام بشكل متكرر. يمكن إحكام هذه القرارات باستخدام أولويات العمليات. العمليات ذات الأولوية العالية ستعمل في شرائح زمنية أطول ولها تواتر أعلى من شرائح العمليات ذات الأولوية المنخفضة.
طبعاً، تسمح النواة بتشغيل أكثر من نسخة مستقلة من البرنامج نفسه. لكن كل واحدة منها تستطيع استخدام ذاكرتها وشرائحها الزمنية الخاصة فقط. وبذلك تبقى بياناتها مستقلة.

B.4.5. إدارة الصلاحيات

نظم التشغيل المشابهة لنظام يونكس متعددة المستخدمين أيضاً. فهي تقدم نظام إدارة صلاحيات يدعم وجود مستخدمين ومجموعات منفصلة؛ كما يسمح أيضاً بالتحكم بالأعمال الجارية اعتماداً على الصلاحيات. تدير النواة بيانات لكل عملية على حدة تسمح لها بالتحكم بالصلاحيات. في معظم الأوقات، تُعرَّفُ العملية بهوية المستخدم الذي بدأ تنفيذها. يُسْمَح لتلك العملية بتنفيذ الأفعال نفسها المتاحة لمالكها فقط. مثلاً، تحتاج محاولة فتح ملف من النواة التحقق من هوية العملية استناداً لصلاحيات الوصول (لمزيد من التفاصيل عن هذا المثال بالذات، انظر قسم 9.3, “إدارة الصلاحيات”).