إن ذاكرة النظام ذات الوصول العشوائي RAM هي أول ما يتم كشفه من قبل نظام الدخل/الخرج الأساسي BIOS . وتستطيع نواة لينكس التعرف على كافة أنواع ذواكر الوصول العشوائي (EDO ،DRAM و SDRAM).
يمكن أن تواجه بعض المشاكل مع العتاديات القديمة عندما لا يستطيع نظام الدخل/الخرج الأساسي BIOS كشف الذواكر بحجم 64MB أو أكثر، تحتاج في هذه الحالة إلى تمرير وسائط إلى النواة عند الإقلاع.
في حال استخدام برنامج LILO فيجب إدخال ما يلي في الملف /etc/lilo.conf
:
append="mem=<amount of ram>M"
وتذكر أن تقوم بتنفيذ /sbin/lilo
.
أما إذا كنت تستخدم برنامج GRUB فعليك إضافة ما يلي إلى الملف /etc/grub.conf
عند السطر الذي يبدأ بكلمة kernel :
kernel vmlinuz mem=<amount of ram>M
حتى تسمح للطرفيات والتجهيزات على حاسبك بالاتصال مباشرة مع موارد النظام، وبشكل خاص مع المعالج CPU، فإن النظام يقوم بتوزيع الموارد على شكل خطوط وأقنية لكل جهاز. هذه الموارد هي : خطوط طلب المقاطعة IRQ، عناوين الدخل/الخرج I/O Addresses، وقنوات الوصول المباشر للذاكرة DMA.
تحتفظ الذاكرة بالمعلومات المتعلقة بالموارد الموزعة في الدليل
/proc
والملفات ذات الصلة بذلك هي:
/proc/dma
/proc/interrupts
/proc/ioports
/proc/pci
يمكن استعراض الموارد الموزعة أيضاً باستخدام أدوات برمجية مثل
lspci
و dmesg
:
lspci
: تقوم بعرض معلومات الرقاقة لكل المكونات المربوطة
عن طريق المنفذ PCI، وتعرض إعدادات الدخل/الخرج وكذلك IRQ باستخدام المؤشر
-v
. ولاحظ أيضاً أن الخيار -b
(اختصاراً
للناقل BUS)يقوم بعرض الموارد الموزعة عن طريق نظام الدخل/الخرج الأساسي BIOS بدلاً
من النواة.
dmesg
: تقوم بعرض رسائل النواة التي تم تسجيلها أثناء
الإقلاع. تقوم النواة بمسح كافة العتاديات في النظام وتستطيع بشكل تلقائي أن تحدد برامج
القيادة drivers التي ستشغل التجهيزات تبعاً للرقاقات الموجودة ضمن الحاسب. وهذه الرسائل
متاحة أيضاً في: /var/log/dmesg
.
تركيبات مسبقة الضبط من أرقام IRQ وعناوين I/O أنشأتها IBM من أجل الأجهزة التسلسلية COM والتفرعية LPT. علماً بأنه يمكن تعديل أرقام IRQ و I/O لاحقاً من البيوس.
الجهاز Device | منفذ الدخل/الخرج I/O Port | طلب المقاطعة IRQ |
---|---|---|
/dev/ttyS0 | 0x03f8 | 4 |
/dev/ttyS1 | 0x02f8 | 3 |
/dev/lp0 | 0x378 | 7 |
/dev/lp1 | 0x278 | 5 |
soundcard | 0x220 |
ملاحظة: إن هذا المثال شائع جداً، على أية حال فإن الوحدات البرمجية للنواة kernel modules ستتم مناقشتها فقط في امتحان LPI 102 ، وقد يجد البعض صعوبة في هذا المثال، لذلك يمكن تجاوزه والانتقال مباشرة إلى الفقرة 3.
فيمكن أن يتم تمرير وسائط إلى النواة أثناء الإقلاع. وكمثال نموذجي على ذلك عندما يتواجد بطاقتا شبكة (إيثرنت) ضمن الحاسب، لكن يتم كشف البطاقة الأولى فقط فإن السطر التالي:
ether=10,0x300,eth0 ether=9,0x340,eth1
يخبر النواة بأنه:
قم بكتابة السطر السابق عند موجه أوامر ‘boot:’ في LILO/GRUB ، أو كما فعلنا سابقاً في إعدادات الذاكرة قم بكتابة:
/etc/lilo.conf (append= statement استخدم)
أو:
/etc/grub.conf
لاحظ أن ether= statement
هو أمر عام في النواة مشابه لكل
من : root=
و mem=
و
init=
.
كذلك لاحظ بأنك لا تحتاج إلى تحديد أية معلومات حول بطاقة الشبكة (مثل الشركة المصنعة Intel, Netgear... إلخ).
فإنه يمكن تحديد إعدادات عناوين IRQ و I/O باستخدام /etc/modules.conf
(أو /etc/conf.modules
).
في المثال السابق بافتراض أن كلتا البطاقتين تستخدمان وحدة النواة البرمجية
e100.o
فإن الملف /etc/modules.conf
سيحوي ما يلي:
alias eth0 e100 alias eth1 e100 options eth0 io=0x300 irq=10 options eth1 io=0x340 irq=9