إذا كان الفلتر المناسب مركباً فقط مرر الملف،
مثلاً الفلتر 'apsfilter' يدعم (بمساعدة برامج أخرى مثل
html2ps و pdf2ps و dvips...إلخ):
gzipو bzip2و compressو freezeو packو
ASCIIو BMPو PCLو DVIو FBMو FIGو FITSو GIFو Group 3 faxو
HTMLو IFF ILBMو JPEGو Kodak Photo CDو MGRو MIFFو PBM/PGM/PNM/PPMو PDFو
PNGو PostScriptو RLEو SGIو Sketchو Sun rasterو Targaو TIFFو troffو WPGو
X pixmap وحتى XCF،
في هذه الحالة لا حاجة لأن تفك ضغط 'COPYING.GZ' بواسطة 'zcat'.
يمكن أن تستعمل lpr كما يلي:
bash$ lpr -#3 article.html
bash$ lpr -P laserjet -s mybook.pdf
لطباعة 3 نسخ من ملف 'article.html' على الطابعة الافتراضية،
ونسخة من 'mybook.pdf' على طابعة اسمها 'laserjet'
وبدلاً من نسخ الملف إلى دليل الطابور فإنه فقط يضع له وصلة symbolic link هناك
(بسبب الخيار '
-s'، هذا يساعد على توفير الكثير من المساحة).
إذا غيرت رأيك بخصوص 'mybook.pdf' وتريد إلغاء هذه المهمة
اكتب '
lprm -' التي تلغي آخر مهمة دخلت الطابور،
لتلغي مهمة بعينها مرر رقمها إلى 'lprm'، الرقم تتحصل عليه
باستعراض الطابور بأمر 'lpq'،
الذي يعرض حالة الطابعة وكل المهمات في الطابور وحالة كل واحدة.
في هذه الأيام تم استبدال نظام LPD بنظام CUPS،
لإنه أسهل في الإعداد ويدعم المزيد من الطابعات ويعمل
خادماً أو مخدوماً server or client للعديد من البروتوكولات أهمها
IPP (أي Internet Printing Protocol) إلى جانب طابعات مقبس الإيثرنت
و LPD و Mirosoft/Samba.
والخبر الجيد أنك لن تتجبر على تعلم الكثير؛
فنظام CUPS يدعم مجموعتا الأوامر
بأسلوبي BSD (مثل 'lpr') و System V (مثل 'lp'),
كل ما عليك هو تفعيل هذه الخدمة في مستوى التشغيل
باستعمال أدوات التوزيعة الرسومية أو النصية
(مثلاً 'chkconfig --level 2345 cups on' ثم 'service cups start')
يمكن إعداد الطابعات عبر أدوات التوزيعة أو أداة إدارة CUPS من سطر الأوامر 'lpadmin'
أو عبر واجهة الويب السهلة عبر المتصفحات أو ربما بحرير ملف
'/etc/cups/cupsd.conf' الذي له هيئة مشابهة لإعدادات Apache.
لتفعيل أداة إعداد CUPS عبر الويب (علماً أنه يعمل بأمان خلف 'xinetd')
حرر ملف '/etc/xinetd.d/cups-lpd' ليحتوي سطراً كما يلي:
'disable = no' ثم افتح أي متصفح ويب
(مثل 'mozilla' أو 'epiphany' أو 'konquror' أو حتى 'links')
على العنوان 'http://localhost:631'
وتفاعل معها واتبع التعليمات، هذه الصفحة لا ترى تلقائياً إلا من الجهاز نفسه localhost (أي '127.0.0.1')
انظر بند 5.3.8 خدمة xinetd في فصل 5.3 تشغيل الخادمات.
|

|
يمكن إدارة CUPS عبر أداة سطر الأوامر 'lpadmin'
مثلاً لإضافة طابعة على أول منفذ متوازي وتسميتها 'MyPrinter'
وجعلها طابعة تلقائية default printer (بالخيار '-d')
استعمل ما يشبه:
bash# lpadmin -p MyPrinter -v parallel:/dev/lp0 -P /PATH/DRIVER.ppd
bash# /usr/bin/enable MyPrinter
bash# /usr/sbin/accept MyPrinter
bash# lpadmin -d MyPrinter
لإضافة طابعة بعيدة موجودة على شبكة Samba (أو Microsoft)
وتسميتها HisPrinter وجعلها طابعة تلقائية:
bash# lpaddin -p HisPrinter -v smb://myname:mypass@WINNT/INKJET -P /PATH/DRIVER.ppd
bash# /usr/bin/enable HisPrinter
bash# /usr/sbin/accept HisPrinter
bash# lpadmin -d HisPrinter
لاحظ أنه ليس بالضرورة أن تمتلك ملف التعريف PPD حيث يقوم Samba
بالحصول عليه تلقائياً.
يجب أن تنتبه من ظهور كلمة السر في أمر ps.
انظر البند 5.2.3 من فصل '
5.2 العمل في الشبكات'
لتتعرف على استعمال 'smbclient' لإيجاد العناصر في شبكة Samba.
التعريفات التي تأتي مع CUPS بسيطة وعامة generic وتحتاج إلى ما هو أفضل منها
للعمل الاحترافي. الحمد لله، يتوفر تعريفات محسّنة بجودة تصويرية
optimized photo-quality drivers من www.LinuxPrinting.org
تأتي مع أغلب التوزيعات في حزمة تسمى
'foomatic' (انظر www.linuxprinting.org/foomatic.html),
وهي توفر دعماً لعدد أكبر من الطابعات (انظر
قائمة الطابعات المدعومة على 'www.LinuxPrinting.org' )
وباستعمال ملفات PPD لقيادة/تعريف الطابعات جميعها (بما في ذلك طابعات non-Postscript).
يأتي 'foomatic' بفلتر ذكي يسمى 'foomatic-rip'
يعمل مع كافة أنظمة spooler وليس فقط CUPS.
وله واجهة رسومية GUI في حزمة أخرى اسمها 'foomatic-gui'
تساعدك على إعداد الطابعات وهي لبيئة غنوم.
المزيد من تعريفات PPD ذات الجودة العالية توجد في حزمة Gimp Print.
إلى جانب تعريفات وأدوات LinuxPrinting.org قد تجد تعريفات وأدوات من الجهة الصانعة
للطابعة، فإذا كانت طابعة Postscript فيمكنك أن تأخذ ملف PPD من تعريف
الطابعة على ويندوز (على القرص الذي يأتي مع الطابعة)
أو من موقعAdobe على www.adobe.com/products/printerdrivers/winppd.html.
طابعات Hewlett-Packard (تختصر HP) الشائة توفر دعم جيد
انظر المواقع ذات الصلة
'http://hp.sf.net' و
'http://hpinkjet.sf.net'
(في ديبيان هناك حزمة باسم 'hpijs') و
'http://hpoj.sf.net'
هذا الأخير يوفر دعم (أدوات وتعريفات) لأغلب أجهزة "الكل-في-واحد"
مثل OfficeJet و LaserJet و Printer/Scanner/Copier (تختصر "PSC") و PhotoSmart
(في ديبيان حزمة 'hpoj-xojpanel' لعرض لوحة طابعات 'hpoj' الكرستالية).
عند شراء طابعة جديدة تأكد من أن تزور موقع
LinuxPrinting.org قبل الشراء بغض النظر عن الشركة الصانعة للطابعة،
مثلاً توفر HP دعم جيد للمطورين في المصادر المفتوحة إلا أن
هناك عدد قليل من طابعاتها لا تعمل في لينكس!
انظر قادة بيانات الطابعات المدعومة ودرجة الدعم في موقع
www.linuxprinting.org/database.html.
أغلب مستخدمي المنازل يختارون طابعة نافثة للحبر، ولكن بعد شرائها
لا يطبعون أكثر من دزينة من الصفحات في السنة، لأن كلفة تغيير عبوة الحبر
ثلاث مرات قد تزيد عن ثمن طابعة جديدة!! الطابعات النافثة للحبر
رخيصة ولكن كلفة الطباعة بالورقة مرتفعة، وهذا ليس سيئاً لمستخدمي
البيوت الذين يريدون طابعة ملونة جيدة رخيصة
(على الرغم من أنه يمكنهم توليد ملف PDF وحمله على قرص مرن أو ذاكرة USB إلى ليطبع على طابعة
ليزرية في محل خدمات حاسوبية).
للعمل الجاد لست بحاجة لألوان (مثل الفواتير والنماذج والتقارير ...إلخ) بل
إلى طابعة تتحمل العمل الشاق وتدوم تعطي صفحات أكثر في وقت أقل
بكلفة متدنية لكل ورقة، طابعات الليزر غير الملونة
هي الخيار الأفضل في هذه الحالة، ولكن بعض الشركات لا تزال تستعمل
الطابعات النقطية، هذا الخيار يكون جيداً لطباعة النصوص
الصرفة بخط وحيد ثابت العرض فهي رخيصة (كلفة الطابعة نفسها و
كلفة طباعة الصفحة الواحدة) وتمتاز بالطباعة على النماذج والورق المتصل
، علماً أن بعض طابعات الليزر تفعل ذلك أيضاً.
إذا أردت الصيحة انظر www.linuxprinting.org/suggested.html،
ولدعم مستقبل الطباعة في لينكس اشترِ من المصنعين المساهمين
في Linux printing انظر www.linuxprinting.org/affiliate.html.
المراجع:
- Debian and Windows Shared Printing mini-HOWTO
- The Linux Printing HOWTO
- The Linux Printing Usage HOWTO
- The Linux Print2Win mini-HOWTO
4.1.6 الماسحة الضوئية
يكون تعريف الماسحة الضوئية ببساطة بإعطاء البرامج
الذي يستخدم الماسحة مثل xsane أو gimp اسم الجهاز الصحيح
الذي يمثلها مثل
/dev/usb/scanner0
انظر القائمة في الأسفل
أو أن تجعل البرامج يستعمل الجهاز
/dev/scanner
الذي تجعله وصلة لجهاز الماسحة
4.1.7 الكاميرات الرقمية والتقاط الفيديو
يتم التعامل مع الكاميرات الرقمية (للصور الثابتة) كأي وسيط تخزين
عبر أمر الضم 'mount' (على أنه قرص SCSI، انظر الملحق في نهاية هذا الفصل)
أو عبر برنامج متخصص مثل 'gtkam' or 'kamera'.
مستقبلات التلفاز TV tuners وكاميرات الويب وغيرها من أدوات التقاط الصور
المتحركة أو الفيديو (أي motion-picture-capturing أو video capturing)
كلها نصل إليها عبر واجهة موحدة تسمى Video4Linux (أو V4L)
عبر نواة لينكس (على شكل modules)، هناك العديد من البرامج التي تستخدم
هذه الميزة أهمها 'xawtv' or 'tvtime' (انظر tvtime.net)
كل ما عليك لإعدادها هو تحديد الجهاز الصحيح (انظر الملحق في نهاية هذا الفصل)
عبر واجهتهما الرسومية أو عبر حزمة 'v4l-conf'
(أو عبر أدوات توزيعتك كما في ماندريك).
هناك بعض البرامج المتخصصة في بكاميرات الويب وأفضل مثال على ذلك
برنامج شبكة مؤتمرات الفيديو gnomemeeting انظر بند
2.6.4. الإنترنت التفاعلية.
منذ عدة سنوات والناس تشاهد التلفاز بالألوان فهل خطر ببالك أن
تشاهده بالنصوص ASCII Art text!! حزمة 'ttv' تستخدم مكتبة aalib
لإظهار الصور المتحركة على طرفية tty. إذا كنت تريد المشاهدة بالألوان
دون إكس يمكنك أن تجرب 'fbtv' الذي يستخدم Linux Frame Buffer بدلاً من إكس.
في ديبيان هناك الكثير من الحزم ذات الصلة مثل:
- 'came' إعادة كتابة لبرنامج 'xawtv' باستعمال مكتبة 'imlib2'.
- 'scantv' يبحث عن كل القنوات/المحطات دفعة واحدة
ويضيفها إلى إعدادات 'xawtv' وغيره.
- 'libdscaler' إضافة plugin إلى 'tvtime' لإزالة التداخل deinterlacer
(لإعطاء دقة أعلى)
باستعمال ملفات DLL الخاصة ب DScaler بواسطة WINE.
- 'kvdr' مسجل DVB (digital TV) على أقراص Video Disk لبيئة KDE.
- 'wmtv' تطبيق صندوقي لتشغيل Video4Linux لبيئة WindowMaker ومثيلاته.
- 'camorama' برنامج لبيئة غنوم يعرض ويعدل ويخزن الصور
في جهاز Video4Linux بما في ذلك كاميرات الويب.
- 'vgrabbj' أداة لسطر الأوامر لالتقاط الصور من جهاز Video4Linux
وتخزيها بهيئة JPEG/PNG.
- 'camstream' واجهة QT لأجهزة Video4Linux تدعم كاميرات الويب
والمؤتمرات الفيديوية وتسجيل الفيديو (بهيئة AVI أو Quicktime)
كما تسمح باستخدامها كاميراتاً أمنية، انظر 'www.smcc.demon.nl/camstream'.
- 'motion' برامج التقاط V4L يدعم كاشف للحركة Movement Detection
وهيئة MPEG للمخرجات وكاميرات الويب (يمكن استعمالها كاميراتاً أمنية).
- 'webcam' يلتقط الصور من جهاز Video4Linux ويرفعها تلقائياً إلى خادم ويب عبر FTP أو SSH.
- 'camserv' تأخذ سيال من الفيديو، غالباً من كاميرا،
وترسله إلى المخدومين (عبر متصفحات الويب).
إذا كنت مهتماً بتسجيل الصور الملتقطة إلى ملف فيديو
فصلا الوسائط المتعددة والتصميم.
4.1.8 بطاقة الشبكة والمودم
إذا كان الربط يتم عن طريق بطاقة الشبكة الداخلية LAN
أو ما يسمى بطاقات الإيثرنت الأولى فالجهاز الذي يقوم بالعملية هو
/dev/eth0 لمعرفة المزيد اكتب
bash# dmesg | grep eth
bash# lspci -v | grep eth
ثم عليك إعداد شبكة كما في فصل '
5.2 العمل في الشبكات'
أما إذا كان الربط يتم من خلال الاتصال الهاتفي Dial-up
فإننا نتعامل مع جهاز مودم MODEM يسمى أيضا ppp+ أي point to point protocol.
إذا كان اشتراك ISDN وهو خط هاتفي مطور يسمح
بسرعات أعلى وبتلقي المكالمات حتى أثناء الربط على
على الأنترنت في نفس الوقت يسمى هذا البروتوكول ippp+.
أما خط DSL (أو ADSL أو IDSL أو SDSL) فإن لربط يكون
عبر PPPoE أي Point to Point Protocol over Ethernet
(في الإعدادات يرمز لها ppp+ أيضاً)
أو عن طريق DHCP حسب مزود الخدمة.
فإذا كان من
المودمات الخارجية التسلسلية فهو ليس بحاجة لتعريف ، فقط اعمل رابط يشير للجهاز
ln -sf /dev/ttyS0 /dev/modem
استبدل ttyS0 بأي قيمة مناسبة، إذا كنت تعاملت مع ويندوز
فهذا هو نفسه COM1 ،
غالباً ما يكون COM1 محجوز لذا نستعمل COM3 أي
/dev/ttyS2
وهذا ينطبق على المودمات الداخلية الحقيقية (ولكنها قليلة) مثل IBM 33L4618 وهو ينطبق على أي مودم
يحتوي UART حقيقية - Universal Asynchronous Receiver Transmitter مثل :
Lucent Venus chipset:
Multitech MT5634ZPX-PCI,
Zoom 2920 (Digitan DS550-558),
Actiontec PCI56012 (IBM 33L4618 or GVC MD0223)
USR/TI Kermit chipset:
the 3Com/USR 3CP5610 family, which includes models 5613, 5609, and OEM models 2976, 2977, and 3258
TOPIC TP560i chipset:
Well Communications FM-56PCI-TP (GVC MD0321), and
Archtek Smartlink 5634PCV.
Conexant RC56D-PCI chipset:
none observed yet ???!
أما إذا كان مودم winmodem أي وهمي softmodem HSF (معظم المودمات الداخلية هكذا ) أو بدون
حاكم HCF controllerless مثل مودمات USB الخارجية
فعليك الذهاب إلى موقع الشركة الصانعة لطقم الرقائق chipset
يمكنك أن تعرفها عن طريق طباعة الأمر
lspci أو
التفصيلي
lspci -vv الذي سيطبع أسماء كل البطاقات من نوع
PCI وسيكون جهاز المودم واحداً منها ، ابحث عن أسماء الشركات الصانعة لذلك النوع
من البطاقات فيها مثلاً
bash$ lspci -vv | grep -i 'modem'
إذا كنت قد عرفته في ويندوز يمكنك أن تجد اسمه هناك.
بعد أن تعرف نوع طقم رقائق المودم عليك
تنزيل التعريف جاهزاً الذي يتناسب مع النواة لديك
والأفضل أن تنزل الملف المصدري للتعريف
وتصنفه بنفسك(حتى تنجح في تصنيفه فأنت بحاجة للملفات المصدرية للنواة)،
ومن أكثر المودمات من هذا النوع شيوعا في هذا الوقت
conexant وهي نفسها المعروفة باسم rockwell
ولكنها لا توفر تعريفا لمودماتها بل توفرها شركة أخرى
اسمها
www.linuxant.com
هذه التعريفات نصف مفتوحة
وتقدم هذه التعريفات مجانا (مع بعض الميزات الناقصة أو بيتا كامل المزايا) أو مقابل نقود
إذا لم يعجبك هذا الوضع أرسل شكوى إلى الشركة المصنعة للمودم
(وليس conexant لأنها تصنع طقم الرقائق فقط)
وهناك تعريفات له كاملة المزايا لكنها beta يمكنك تجدها
http://naboo.homelinux.org/~daniel/download/hsf_hcf_riptide-beta/
تحذير
اذا كنت ستشتري مودم جديد فليكن مودم خارجي تسلسله serial
لأن المودم الداخلي زائف وحتى لو كان له تعريف فإنه يبقى زائف
ولن تضمن بقاء تعريفه موجود مع الزمن. أو على الأقل داخلي حقيقي وفي أسوأ الأحوال
تلك التي لها تعريفات مفتوحة المصدر مثل IBM ACP-mwave
(التعريف موجود في ديبيان باسم mwavem'). أما المودمات الداخلية الوهمية
بتعرفات مغلقة أو نصف مفتوحة فيجب تجنبها.
لأن المودم الوهمي يعمل على تقليل سرعة الجهاز بنسبة 25% على الأقل.
كما أنه ليس أرخص في الغالب.
على أي حال اذهب إلى موقع
www.linuxant.com
واحصل على الملف المصدري وهو ملف بإمتداد tgz
إما لنوع
HSF
إما لنوع
HCF
وضعه في بيتك ثم قم بما يلي
bash$ su -
bash# cd ~ali # الذهاب إلى بيت المستخدم حيث الملف
bash# pwd
/home/ali
bash# tar -xvzf the-driver # اضغط تاب بدل من الاسم الطويل
bash# make install
bash# hsfconfig --help
bash# hsfconfig
bash# hsfconfig --region # تحديد رقم المنطقة (المقسم الدولي) للبلد
bash# cd /dev
bash# ln -sf ttySHSF0 modem
bash# ls -l ttySHSF0 # انظر إلى الأذونات
bash# chmod 777 ttySHSF0 # السماح للجميع بالوصول للشبكة
bash# exit
bash$ hsfconfig
bash$ hsfconfig --region
هذا المثال لنوع HSF استبدل
hsfconfig بالمناسب من
hcfpciconfig
أو
hcfusbconfig
واستعمال الجهاز المناسب
/dev/ttySHSF0
أو
/dev/ttySHCF0
أو
/dev/ttySHCFUSB0
أو ملف rpm العام وليس الخاص بتوزيعة
hsfmodem-VER.rpm.zip
أو
hcfmodem-VER.rpm.zip
فتركيبه أسهل من المصدري.
وضعه في بيتك ثم قم بما يلي
bash$ su -
bash# cd ~ali # الذهاب إلى بيت المستخدم حيث الملف
bash# pwd
/home/ali
bash# unzip hsf*.zip # اضغط تاب بدل من الاسم الطويل
bash# rpm -Uvh hsf*.rpm
bash# cd /dev
bash# ln -sf ttySHSF0 modem
bash# ls -l ttySHSF0 # انظر إلى الأذونات
bash# chmod 777 ttySHSF0 # السماح للجميع بالوصول للشبكة
bash# hsfconfig --region # تحديد رقم المنطقة (المقسم الدولي) للبلد
bash# exit
bash$ hsfconfig
bash$ hsfconfig --region
أما بالنسبة لمودم motorola فقد أعلنت الشركة أنها أوقفت
إنتاجها منه ودعمها له (يعني ألقه في القمامة) وهي أيضاً
لم تطلق الملف المصدري للتعريفات ليقوم مجتمع لينكس
بالمهمة عنها ، وآخر تعريف من الشركة
هو للنواة الموجودة مع ريدهات 7.1 أظن أنها النواة 2.4.5
فالطريقة الأولى لتعريفه هي بتركيب تلك النواة من حزمة أو من المصدر
ثم تنزيل التعريف من موقع الشركة.
ولكن الحل الأفضل هو تنزيل تعريفات من موقع
www.sm56.tk
هناك قائمة من الملفات الملف المطلوب يعتمد على اصدار gcc لديك
التوزيعات الحديثة تعتمد الإصدار 3، بعد فك الضغط
نفذ make install من مجلد التعريف ثم عدل الأذونات .
لاحظ النقطة المهمة بعد تركيب تعريف مودمات motorola أو conexant
هي بأن تقوم بجعل الجهاز الذي يمثل المودم مثلاً /dev/sm56
يحمل الأذونات المناسبة ويعود للمجموعة والمالك المناسب
لرؤية ما اعتمدته توزيعتك للجهاز الحقيقي
ls -l /dev/ttyS0
حيث سترى من مالك الملف وإلى أي مجموعة ينتمي وما هي الأذونات
عندها قم بعمل أذونات مشابهة لجهاز مودم الذي ركّبت تعريفه
الكثير من المودمات الوهمية أصبحت توفر تعريف لنظام لينكس من أهمها IBM ACP-mwave
بشكل مفتوح ولكن أكثرها توفر تعريفات جاهزة
أو نصف مفتوحة (حجة الشركات التي تحجب تلك المعومات أن هناك top-secret confidential hardware specification! أو أن ذلك يتطلب نفقات إضافية)
وهذا أمر مزعج.
إذا كنت من مستخدمي ماندريك وتريد تعريف المودم
قم بالخطوات السابقة ثم اذهب إلى مركز تحكم ماندريك
ثم network ثم connection عندها
قم بطلب الفحص التلقائي وعند عرض الخيارات
تأكد من وضع علامة على Normal modem ثم
وعند عرض قائمة الأجهزة عليك اختر /dev/modem
فهذا أفضل من اختيار /dev/ttyS2 أو غيره
ثم جرب الاتصال بضغط connect فإذا حصل الاتصال
اخرج و جرب عمل ذلك من kppp و gnome-ppp فإذا فشل هنا
تكون المشكلة مشلكة أذونات
قد تفيدك هذه الوصلات
في التوزيعات الأخرى عليك اعداد الاتصال عن طريق برنامج kppp أو gnome-ppp بحيث يستعملان الجهاز
/dev/modem أو الجهاز المقابل للمودم عندك.
4.1.9 وسائط التخزين
وسائط التخزين نوعان ثابتة وقابلة للنزع
يتم التعامل معهما عن طريق أمر mount
حيث يقوم بضم (أو احتضان أو تحميل) محتويات (نظام ملفات)
الموجود على جهاز معين وضمها إلى نظام ملفات لينكس
وبالتحديد إلى مجلد فارغ (إن لم يكن فارغ ستختفي محتويته حتى إلغاء الضم) وجعل هذا المجلد يبدو وكأنه هو
ذلك الجهاز (ولكن في الحقيقة لا تتغير محتويات الدليل ويبقى الدليل فارغاً)
وعادة ما يكون المجلد داخل مجلد /mnt
بكلمات أخرى نعمل مجلد فارغ ثم نقول للأمر الضم
mount بأن يرسل محتويات الجهاز الفلاني إلى ذلك المجلد
ولكن هنا لا يجري عملية نقل للملفات وإنما هي عملية إفتراضية (وهمية) ،
وكل تغيير يحدث على الملفات هناك سيجري على الملفات داخل الجهاز
وهذه صيغته
mount [-t FS_TYPE] [-o OPTIONS] DEVICE MOUNT_POINT
حيث
DEVICE هو الجهاز مثل
/dev/fd0 انظر الملحق والأمثلة
و MOUNT_POINT هو اسم المجلد
و FS_TYPE هي نوع نظام الملفات المستعمل ويمكن أن تكون
ext3, ext2, reiserfs, vfat, ntfs ...
وإذا لم تكن تعلم أو لا تريد أن تحدد استعمل auto
(في هذه الحالة سيعمل لينكس على تجريبهم بالترتيب الموجود في
/etc/filesystems
فإن لم يوجد
/proc/filesystems
مما يسمح لك بتقديم vfat على msdos مثلاً)
و OPTIONS هي الخيارات الإضافية
مثل
ro أي قراءة فقط و rw أي قراءة وكتابة و غيرها الكثير مثل
remount,loop,umask=VALUE,noauto,users...
انظر كتيب استعمال mount
وعندما تنتهي منه يجب أن نلغي الضم
وذلك حتى يقوم النظام بإنهاء عمليات التحديث اللتي قام بها
(تقوم معظم أنظمة التشغيل الحديثة مثل لينكس بجدولة بعض الأعمال حتى لا ترهق
الجهاز وتتسبب في تقليل سرعته
فإذا سحبت القرص المرن قد تكون بعض
البيانات لم تكتب لأنها مجدولة لذا من الضروري
إعلام النظام قبل نزع القرص)
وللقيام بذلك اكتب أي من :
umount DEVICE
umount MOUNT_POINT
مثلاً لضم القرص المرن الأول
/dev/fd0
إلى مجلد
/mnt/floppy
ونريد منه أن يخمن نظام الملفات تلقائياً auto نكتب
bash# mount -t auto /dev/fd0 /mnt/floppy
لإلغاء الضم نكتب
تحذير
إذا كان الجهاز الفلاني مضموم إلى مجلد معين فلا تغيّر اسم ذلك
المجلد أو تنقله أو تعدل عليه ولكن لك الحرية بالعمل في محتوياته
وليس فيه ،وإذا أردت أن تغير اسمه عليك أولا بإلغاء الضم
umount ثم التعديل،
وأيضا نفس الشيء ينطبق على الجهاز فمثلا لا يجوز أن تهيء
format قرص وهو مضموم
ولا يجوز أن تفحصه إلا إذا كان للقراءة فقط
وعملية الضم مؤقتة تزول عند إقلاع لينكس
فيعود المجلد فارغا ولكن بدلاً من كتابة هذا الأمر دائما للوسائط الثابتة
في كل مرة يتم تشغيل الجهاز يتم ذلك تلقائياً
وتقرأ هذه البيانات من ملف جدول أنظمة الملفات
/etc/fstab
الذي له الصيغة التالية
الجهاز ثم المكان ثم نوع الملفات إذا كنت لاتريد أن تحدد ضع
auto ثم تأتي الخيارات الإضافية (التي كنا ضعها بعد -o في أمر mount) إذا لم يكن هناك خيارات ضع
defaults ثم ترتيب النسخ الاحتياطي ب dump (أداة نادرة الاستخدام)
صفر إذا لم ترد شملها به.
ثم ترتيب الفحص في حال الحاجة
ويمكن أن تجعلها صفر لأن النظام ext3 مضاد لمثل هذه الأشياء
# This is /etc/fstab هذان السطران بلا معنى ويمكن حذفهما
# Device Mount_Point FS_TYPE Options dump seq
/dev/hda7 / ext3 defaults 0 1
# بعض الأنظمة الخاصة مثل proc و swap تحدثا عنهم من قبل
none /proc proc defaults 0 0
none /dev/pts devpts mode=0620 0 0
/dev/hda9 swap swap defaults 0 0
# أقسام غير لينكس
/dev/hda1 /mnt/win_c vfat umask=0 0 0
# قابلة للنزع
/dev/fd0 /mnt/floppy auto noauto,users 0 0
/dev/cdrom /mnt/cdrom auto noauto,users,nohide 0 0
وللأجهزة الموجدة في هذا الجدول فقط أذكر الجهاز
أو المجلد (مكان التعريف) مثلا
bash# mount /mnt/floppy
bash# mount -o remount,ro /mnt/win_c
لحظة لماذا هناك قرص مرن ومدمج هنا، ألم نقل أنه للنظم الثابتة؟
وهو لغير الثابة والهدف هو توفير عليك كتابة الجهاز واïمكان معا
فقط تكتب أحدهما والآخر يقرأ من الملف
لاحظ الخيار noauto الذي يعني :لا تقوم بضمه تلقائيا عند الإقلاع.
أما users فتعني أن المستخدم العادي يمكنه إعطاء الأمر بالضم وإلغاء ذلك
دون الحاجة لأن يكون جذرا.
أما الوسائط القابلة للنزع مثل القرص المدمج
يمكن ذلك بالنقر بالزر الأيمن على سطح المكتب في غنوم
أو بالنقر على أيقونة القرص في KDE بالزر الأيمن ثم mount
و عادة ما توفر التوزيعات الحديثة برنامج يعرفها تلقائيا
بمجرد وضعها
مثلا أقراص USB
ولكن إذا أردت أن تقم بذلك يدويا فالأمر هو mount
كما ذكرنا وإذا لم يكن ضمن fstab عليك أن تذكر المكان والجهاز معاً
ويستعمل هكذا : المثال لقرص مدمج
bash# dmesg | grep Floppy
Floppy drive(s): fd0 is 1.44M
bash# dmesg | grep CD
hdb: CDROM ATAPI blah blah ...
bash# mount /dev/hdb /mnt/cdrom
طبعاً تقوم التوزيعات بعمل وصلة باسم
/dev/cdrom
تشير للجهاز الخاص بالقرص المدمج فيكفي أن تكتب
mount /dev/cdrom /mnt/cdrom
مكان
mount /dev/hdb /mnt/cdrom
وقد تفضل أن تضيف الخيار nohide لإظهار بعض الملفات غير المرئية.
ويوجد الكثير من أقراص SCSI الثابتة أو القابلة للنزع تعمل
، وهو ناقل قياسي صمم للأقراص الكبيرة جداً والجاهزية العالية
وهناك الكثير من الوسائط يمكن التعامل معها وكأنها موصولة على SCSI
مع أنها ليست كذلك، مثل مسجل الأقراص المدمجة CD-RW و الكثير من وسائط تخزين usb
والكاميرات الرقمية. الجهاز المقابل لأول قرص SCSI هو /dev/sda
ويمكن أن يكون على شكل أقسام مثل القسم الأول من الجهاز السابق /dev/sda1.
هناك بعض الأدوات الخاصة بأجهزة SCSI في حزمة 'scsitools' مثل:
- scsiinfo - يعرض معلومات المستوى التحتي low-level ويعدل في إعدادات الجهاز.
- scsifmt - تهيئة تحتية لأجهزة SCSI.
- sraw - قياس أداء عمليات الإدخال والإخراج التحتية متخطياً عملية cache.
- scsistop - تشغيل وإيقاف جهاز SCSI.
- scsi-spin - زيادة أو تقليل دوران جهاز SCSI.
وهناك أدوات خاصة بناقل USB مثل 'usbview' وهو عارض GTK+ لحالة أجهزة USB،
حيث يعرض تمثيل رسومي للأجهزة المرتبطة على هذا الناقل.
تلميح
لتسريع عمل القرص يمكنك إلغاء خيار تحديث زمن الوصول
access time
أي زمن آخر قراءة للملف (وليس آخر تعديل فيه) ،
وهذا الخيار قد يستعمل في شطب ملفات لم ينظر إليها أحد منذ فترة
ولكن إذا لم تكن تخطط لمثل هذا الشيء على قرص معين
(غالباً أقراص مرنة أو أقسام ويندوز)
أضف خيار noatime إلى الخيارات في fstab أو عند إعطاء أمر الضم
مثلاً اكتب
mount -o noatime /mnt/win_c
أو اجعل سطر في fstab يشبه
/dev/hda1 /mnt/win_c vfat umask=0,noatime 0 0
هناك خيارات أخرى مثل nodev وتعني أنه لا يوجد ملفات-أجهزة
على ذلك النظام
أي أن الملفات التي لها العلامة الخاصة بالأجهزة مثل
/dev/fd0 ستمثل ملف عادي وليس جهاز
يستخدم هذا الخيار مع الأقراص المدمجة وأقسام ويندوز
وهناك خيار noexec أي لا يوجد برامج تنفيذية على ذلك النظام
و خيار nosuid أي لا يوجد برامج
تنفذ على أنها المستخدم الجذر ويستخدمان أيضا مع أقسام ويندوز
من الخيارات الأخرى هو خيار تحديد طريقة الكتابة هل هي
متزامة sync أم غير متزامنة async
الأولى وهي الأكثر أمناً يتم فيها كتابة
البيانات فيزيائياً أولاً بأول أما الأخرى فيتم جدولتها والقيام بها
بالتدريج في الخلفية دون أن تشعر في وقت ما قبل إنهاء الضم.
تحتوي الأنوية الحديثة خياراً اسمه supermount
يمكنك من ضم أجهزة تلقائياً بمجرد محاولة الوصول إليها
وإلغاء الضم تلقائياً بعد فترة من عدم استعمالها
وهذا مفيد للأقراص القابلة للنزع مثل القرص المدمج و
المرن. فإذا كانت النواة في توزيعتك لا تدعم
هذا الخيار اعمل نوواة بنفسك تأكد من أن CONFIG_SUPERMOUNT فعّال.
من أكثر التوزيعات التي تستخدم هذه الطريقة هي ماندريك
وهذا يجعل العمل به بسهولة ويندوز! لنقم بضم القرص المدمج بهذه الطريقة
بشكل مؤقت للتجريب. اكتب وأنت جذر
bash# mount -t supermont -o dev=/dev/cdrom,--,ro,users none /mnt/cdrom
تلك الصيغة المعقدة ليست سوى أنك تضع supermount على أنه نوع نظام الملفات
(مكان auto في الطريقة العادية)
ونضع الجهاز هو none و نقطة الضم(المجلد)
/mnt/cdrom
أما الخيارات بعد
-o فهي أكثر تعقيداً من ذي قبل فهي
تقسم إلى قسمين الخيارات العادية (الخاصة بنظام الملفات المحدد) وهي تلك التي تأتي بعد
-- في حالتنا
ro,users
أما الخيارات قبل
-- فهي ترسل إلى
supermount لتحدد الجهاز الذي تتعامل معه
dev=/dev/cdrom
ويمكن أن تضيف نوع نظام الملفات بشكل اختياري مثلاً
fs=vfat
لأن تحديد نوع نظام الملفات باستعمال
-t
غير ممكن فهي تساوي supermount. لجعل هذه التغيرات دائمة عدل
ملف
/etc/fstab بحيث يصبح السطر الخاص بالقرص المدمج من
الشكل الأول إلى الثاني.
#/dev/cdrom /mnt/cdrom auto ro,users 0 0
none /mnt/cdrom supermont dev=/dev/cdrom,--,ro,users 0 0
يمكنك أن تضيف خياراً ل supermount لمنع سحب القرص المدمج
tray_lock=always أو إبقائها
على
tray_lock=onwrite هذه الخيارات
توضع قبل
--.
تحذير
وفي الملفات الكبيرة والأقراص المنهكة(المخدوشة) يقوم بإلغاء الضم لطول الوقت timeout
مما يجعل نقلك للملفات جحيما فقد تختفي وأنت تحاول تعليمها ويسبب
هذا البرنامج مشاكل مع OpenOffice
لذا أنصح بإلغاء ال supermount واستعمال الطريقة العادية
اذهب إلى مركز التحكم ثم mount points ثم القرص الذي تريد ثم أزل اختيار supermount أو بتعديل fstab
في الجزء المتعلق بالقرص المرن والمدمج ليبدو مثل الذي في الأعلى
أو إذا كنت تريد طريقة أكثر أمناً يمكنك تجريب autofs.
هناك طريقة تسمى autofs تقوم بضم النظام بمجرد محاولة الوصول إليه
تلغي ذلك بعد انتهاء العملية.تمتاز هذه عن supermount أنك تستطيع تحديد timeout
وأنك لست بحاجة للعبث في /etc/fstab
ولعمل هذه الطريقة ركب الحزمة المسماة
autofs ثم حرر الملف /etc/auto.master
ليحتوي اسم المجلد الذي يحتوي المجلدات الفرعة لتكون نقاط الضمmount_point
ويفضل أن تجعله مخفيا وراء نقطة
مثلا /.auto
ثم اسم ملف الإعدادات
ثم بعض الخيارات مثل الوقت timeout وهو بالثواني
أنا أضعه على ثانية واحدة ولك البعض يفضل أكثر من ذلك بكثير
(هذا يعتمد على ذوقك وعلى مدى جودة السواقة/القارئ والقرص)
/.auto /etc/auto.map --timeout=1
ثم ملف الإعدادات الذي ذكرناه في مثالنا auto.map سيبدوا هكذا
cdrom -fstype=auto,ro,nosuid,nodev :/dev/cdrom
floppy -fstype=auto :/dev/fd0
الآن افتح مجلد جديد باسم /.auto
ولا داع لأن تفتح مجلدات بداخله بالأسماء التي كتبتها في الخانة الأولى
مثل cdrom و floppy لأن autofs تتولى ذلك ثم افتح مجلد غير مخفي
باسم auto وضع به وصلات للمجلدات الفرعية من /.auto المجلدات ثم اذهب إلى
الأداة الخاصة بالخدمات مثلا
Mandy Control Center->System->Services
أو
Menu->Settings-> services
أو بالأداة redhat-config-services أو system-config-services
وقم بتفعيل أداة ال autofs أو automount أو يمكنك من سطر الأوامر
chkconfig --level 12345 autofs on ثم
service autofs start
ثم بكل بساطة كلما أردت التعامل مع القرص المرن و المدمج اذهب إلى مجلد auto
وبالمناسبة هذا لا يلغي طريقة mount إنها لاتزال موجودة
في مجلد mnt
$ su
# mkdir /.auto /auto
# cd /auto
# ln -s ../.auto/floppy floppy
# ln -s ../.auto/cdrom cdrom
# chkconfig --level 12345 autofs on
# service autofs start
4.1.10 الأقراص المدمجة
تحدثنا عن كيفية قراءة الأقراص المدمجة
هذا ليس عن كيفية قراءة الأقراص المدمجة CD ولا عن
بل عن بعض الحيل والطرق الالتفافية
للكثير من المشاكل المعروفة مثلاً من أكثر المشاكل التي
تواجه قارئ الأقراص هي تلك الناجمة عن
قلة جودة الكتابة أو قلة جودة الوسيط(القرص) نفسه
مشكلة أخرى هي أن القرص يصدر أصوات مزعجة عند دورانه بسرعة،
يمكن تلافي هاتن المشكلتان بتقليل سرعة دوران القرص
بأحد الطرق التالية التي لها نفس النتيجة.
bash# hdparm -E 4 /dev/cdrom
bash# setcd -x 4 /dev/cdrom
bash# echo 'current_speed:4' > /proc/ide/hdb/settings
حيث
hdb هو الجهاز الذي يمثل القرص المدمج والرقم 4
هو السرعة (يبدو أني بالغت في تقليل السرعة جرب 32) .
كما أن هذه الأوامر تفيد أحياناً
بقراءة كمية أكبر (1 ميغا في المثال الأول) دفعة واحدة
وهي تقوم باستعمال رقاقة dma Direct Memory Access إذا أمكن
أي دون أن تشغل المعالج
bash# echo 'file_readahead:1048576' > /proc/ide/hdb/settings
bash# echo 'unmaskirq:1' > /proc/ide/hdb/settings
bash# echo 'using_dma:1' > /proc/ide/hdb/settings
bash# hdparm -d1 -a8 -u1 /dev/cdrom
أما بالنسبة لحرق/تسجيل الأقراص المدمجة بواسطة البرامج
الرسومية أو الأداة cdrecord فإن عليك معرفة أي قرص تستعمل عند الإعداد.
أول ما يكون ذلك بتمرير hdX=ide-scsi
للنواة عبر برنامج الإقلاع حيث hdX هو مكان وصل المسجل مثل hdb
إذا primary slave حتى نستطيع التعامل معه على أنه قرص scsi (إضافة لكونه ide فيزائياً).
برنامج cdrecord يأخذ معامل لتحديد الجهاز dev=DEVICE
في الأنوية الحديثة 2.6
يمكن أن يكون DEVICE بكل بساطة الجهاز الذي يمثل القرص
مثلاً /dev/hdb أو /dev/cdwriter
ولكن في الأنوية الأقدم فإن هناك مغامرة والصواب هو استعمال 3 أرقام
تفصلها فاصلة ‘,‘ هذه أرقام خاصة scsi يمكنك أن تستعمل الأمر
الخيار speed لتحديد السرعة ويجب أن تكون من
ليس فقط مدعومة من الجهاز بل ومن وسيلة التخزين (القرص) وأحياناً
بعض الأقراص لا تستطيع الكتابة بالسرعة المكتوبة عليها.
كما أن انشغال الحاسوب ببرامج أخرى أو تأخر القراءة من المصدر
قد يسبب فشل العملية (حاول بسرعة أقل ويمكنك لتجريب دون المغامرة بالخيار dummy) ،
يمكن تسجيل قرص صوتي أو قرص ملفات بالخيار data
وتحديد ملف iso الذي تريد حرقه أو - لأخذه من الدخل القياسي
الذي يمكن أن يولده برنامج mkisofs مثلاً
bash# mkisofs -J -r mydir/ | cdrecord -v speed=12 dev=0,1,0 -data -
ولكن لمزيد من الموثوقية سجل ملف iso ثم احرقه
bash# mkisofs -J -r -o foo.iso mydir/
bash# cdrecord -v speed=12 dev=0,1,0 -data foo.iso
إذا كان القرص يمكن إعادة الكتابة عليه CD-RW
فعليك استعمال الخيار
blank=fast.
حتى يقوم mkisofs بالسماح بالملفات ذات الأسماء الطويلة
بطريقة ويندوز MS Joliet استعمل الخيار J أو الطريقة
الأقرب إلى لينكس RockRidge (التي تحفظ الأذونات والوصلات والملفات الخاصة ولكنه لا يظهر الأسماء كاملة في ويندوز)
بالخيار R.
4.1.11 إدارة الطاقة
يوفر لينكس دعم لإدارة الطاقة المتقدمة Advanced Power Managment
إذا كانت ال BIOS تدعم ذلك لمعرفة ذلك اكتب
dmesg | grep apm
حتى يتوفر ذلك عليك تشغيل خدمة apmd من أداة الخدمات في توزيعتك أو بكتابة
/etc/init.d/apmd restart
وهو نص تنفيذي يعمل في أحد خطواته على استدعاء
modprobe apm
ثم تشغيل مراقب /usr/sbin/apmd
إذا لم تنجح جرب تفعيلها في إعدادات ال BIOS ثم حاول من جديد.
نظام جديد يتوفر
في النواة 2.4 على شكل رقعة (موجود في 2.4.19) ثم إضيفت في 2.6 بشكل رسمي لنفس الغاية
يسمى ACPI وهو بشكل أساسي في لوحات إنتل الجديدة
وغيرها ويوفر إضافات مثل قياس للحرارة سرعة المروحة.
ولكن نظام BIOS إما أن يدعم هذه أو تلك وليس الإثنين
معاً (قد يوجد خيار في إعدادات BIOS يخبرك أيها تعمل مثلاً ACPI aware OS
أي أن يعمل وفق النظام الجديد)
لهذا إذا لم ينجح apmd جرب acpid
وذلك عبر تفعيل الخدمة أو تنفيذ /etc/init.d/acpid restart
وهو نص يعمل على إضافة بعض Modules الخاصة به بواسطة modprobe وهي
button و battary و ac و fan و thermal و processor
مثلاً modprobe ac ومراقب acpid.
يمكنك مراقبته والتحكم فيه من خلال الأداة acpi مثلاً لعرض تقرير
acpi -V
كما ويمكن من خلال الدليل proc
bash# cat /proc/acpi/battery/BAT0/state
bash# cat /proc/acpi/battery/BAT0/info
تفيد هذه الخدمة أو تلك أيضا في تتبع حالة بطارية الجهاز المحمول
كل ما عليك هو وضع ال applet المسؤول عن ذلك
في غنوم يكون ذلك بالنقر في مكان فارغ من اللوحة بالزر الأيمن
ثم اختيار add ثم laptop battary.
أما إكس يمكن تفعيل خاصية "نجمة الطاقة" للتوفير من خلال
xset بالأمر xset +dpms
ويمكن تحديد زمن الدخول في كل طور من أطوار التوفير (بالثواني)
xset dpms standby_time suspend_time off_time
ولتغيير وضع الشاشة يدوياً من طور إلى آخر
xset dpms force standby|suspend|off|on
يوجد الكثير من البرنامج الجميلة التي تراقب الطاقة/البطارية/الحرارة
منها على شكل بريمجات أو على شكل gdesklets أو karmba
4.1.12 كلمة عن الذاكرة رام
ذكرنا في بند 1.5.8 من فصل كيفية تركيب لينكس
معلومات عن إعداد BIOS كي لا يقوم بحجز جزء من رام كظل لتعليمات
ROM لأنه يهدف لتسريعها وقلنا أن علينا تثبيط هذا الخيار لأن لينكس لا يستعمل ROM
فبهذا نكسب المزيد من مساحة رام راجع ذلك البند.
كما توفر BIOS خياراً لفحص صلاحية رام parity check من خلال رقاقة
إضافية في بطاقة الرام أصغر من أخواتها وإلا فإن فحص الصلاحية
يكون بلا فائدة؛ لهذا تأكد من وجود تلك الرقاقة عند شراء رام جديدة.
بعض BIOS المتخلفة التي ظن مصنعوها أن الرام لن تزيد عن 64 ميغا-بايت
تقدم تقارير مضللة عن حجم الذاكرة رام، بإمكانك أن تعرف حجم
الرام (ومعلومات أخرى مثل المساحة المتبقية سواء من ذاكرة رام أو ذاكرة التبديل swap)
بواسطة الأمر free كما يمكنك معرفة حجم الرام أيضاً بواسطة dmesg ولأنه طويل استعمل dmesg | grep LOWMEM
في حال كنت من أصحاب تلك الأجهزة المتخلفة فإن لينكس يعطيك فرصة تشغيل
ذاكرة رام التي لا يراها BIOS بعد حدود 64 ميغا-بايت بتمرير الحجم الحقيقي كمعامل
أثناء الإقلاع عبر LILO أو GRUB بإضافة mem=128m
حيث 128 هو الحجم الحقيقي لذاكرة ram.
تذكر في lilo نستخدم append وفي grup نضيف ما نريد بعد أمر kernel.
4.1.13 الاختيار والشراء
إذا كنت تريد شراء حاسوب أو قطعة عتاد له، ننصحك بأن تقرأ وثيقة توافقية العتاد مع لينكس
Linux Hardware Compatibility HOWTO
لمؤلفها Steven Pritchard و The Unix Hardware Buyer HOWTO
لمؤلفها Eric Raymond وغيرها من وثائق مشروع 'www.tldp.org'،
وبأن تبحث في منتديات لينكس ومجموعات المستخدمين LUG والمجموعات الإخبارية على شبكة USENET،
لأنه سؤال البائ ضرب من العبث إلا إذا كان البائع من عشاق لينكس
أو أنه في متجر متخصص في لينكس كما www.LinuxMall.com.
بعض شركات توزيعات لينكس تبيع الحواسيب (المكتبية والمحمولة Laptops)
مركب عليها لينكس ومعدة مسبقاً له، مثل
www.mandriva.com و
www.linspire.com.
وهناك بعض منتجي الحواسيب انظر 'www.hp.com/go/linux' و
'www.hp.com/desktops/linux'.
لمعلومات عامة(ليست خاصة بنظام لينكس) عن أي العتاد أفضل يمكنك قراءة الأسئلة الأكثر تكراراً
www.faqs.org/faqs/pc-hardware-faq.
النصيحة الأولى هي بأن لا تشتري أي قطعة لها تصميم سري أو مملوك (ملكية فكرية) أو مغلق
proprietary closed لا يتوفر له تعريف مفتوح المصدر
(حتى لو وفّر الصانع دعماً جيداً لتعريف مغلق المصدر في صورة جاهزة)
لأن هؤلاء يفترضون أن طاقمهم أذكى من بقية العالم، وأنهم قادرين
على توفير الدعم أكثر من المجتمع، وأنهم ومصالحهم أهم من مصالحك.
يعلق Richard B. Johnson (رافضاً حجة "تواصيف واجهة العتاد السرية
- confidential hardware interface specifications"
لتبرير التعريفات مغلقة المصدر):
"لم أكن أعلم أنكم متقدمون لهذه الدرجة، فأنتم لا تستعملون
واجهة عتاد إلكترونية! إن تواصيف واجهة العتاد عندكم
تستخدم علم المغنطو-هيدرو-ديناميكا وهو سري، أليس كذلك ؟"
لنأخذ حالة استخدام تعريفين مغلقين لقطعتين على نفس الحاسوب،
فإذا واجهت مشكلة، كيف ستتبعها، وإلى من ترسل الشكاوى
يقول Alan Cox في قوائم لينكس البريدية:
"إذا كان تعريف nVidia محمل - ترسل الشكاوى إلى nVidia.
إذا كان vmware محمل - ترسل الشكاوى إلى vmware.
إذا كانا كلاهما، فليكن الله في عونك، لا أحد سواه يستطيع ذلك"
إن المجتمع لن يساعدك فليس لديهم المصدر كل ما يستطيعون
هو الهندسة العكسية التي تأخذ وقتاً طويلاً وهي ليست ممتعة
(إذا اعتبرنا متعة البرمجة هي دافعهم في البرمجة المستندة إلى المجتمع)
يعلق Alan Cox قائلاً: "لو دفعت لي nVidia بقدر ما دفعت لشركة مايكروسوفت
من أجل ترخيص التعريف لوجدت الوقت الكافي".
يجب أن نتعلم مما حصل مع مودمات Motorola SM56
(كان له تعريف مغلق المصدر في يوم من الأيام)
إنهم لا ينتجونه الآن، ولا يطوّرونه ولا يدعمونه،
إنه لا يستند إلى علم المغنطو-هيدرو-ديناميكا السري،
إنه مجرد مودم وهمي قديم وبسيط؛ ومع كل ذلك
فهم لا يزالون يعتبرونه ملكية فكرية سرية ويرفضون
تقديم مصدر التعريفات القديمة ليقوم المجتمع بطويرها عنهم!
النصيحة التالية بأن تهمل كل اختبارات قياس الأداء benchmarks
التي خرجت عن سياقها لتصبح "هذا أفضل بنسبة 20% من ذاك"
لأنها يجب أن تحدد في أي مجال أو عند أي نوع من الاستعمال.
إخراجها من السياق يقود إلى قرارات خاطئة، سنناقش الآن
قياسات أداء المعالجات على سبيل المثال.
ما يكتب على المعالج بوحدات الهيتز Hz (أي GHz أو MHz) يسمى سرعة الساعة،
وأحياناً كلما زادت سرعة الساعة زادت سرعة الأداء،
مثلاً الاختبارات التي قام بها Ram Samudrala
(في ما يخص أبحاثه على برنامج محاكاة طي البروتينات في www.ram.org)
أظهرت أن Athlon 1.5 GHz أسرع بنسبة 38% من a PIII 1.0 GHz
وهذا ما يمكن توقعه، ولكن نفس Athlon 1.5 GHz كان أسرع بنسبة 8.66% من
Xeon 1.7 GHz في نفس الاختبار مع أن ساعة الأخير أسرع.
المفتاح لفهم ذلك هو بأن تعلم أن المعالجات المختلفة
لها معدلات مختلفة لعدد التعليمات في دَقة
الساعة IPC (أي Instructions Per Clock ratio)
فهي لمعالج Xeon السابق 6 IPC و لمعالج Athlon فهي 9 IPC،
إنها مثل رجل يمشي ويعد 1، 2، 3، ... إلخ.
سرعة عده قد لا تتزامن مع خطواته، سرعة عده لا قيمة لها
ولا حتى عدد الخطوات في الثانية إذا كان طول خطوته قصيرة وخطوة شخص آخر طويلة.
قد يكون أحدهما أسرع في السباقات القصيرة والآخر أسرع في سباقات
التحمل الطويلة، بعض المعالجات أسرع في العمليات على الأعداد الصحيحة
وآخر أسرع في العمليات على الأعداد النسبية ذات الفاصلة العائمة (الكسور).
إذا دفعت الكثير مقابل معالج صمم للعمليات على الأعداد النسبية
وكنت تعمل في تطوير برمجيات النظم وأغلب عملك في تصنيف
الأنوية والأدوات فإنك على الأغلب لن تقوم بعملة نسبية واحدة!! لقد ضاع المبلغ الإضافي هباءً.
من جهة أخرى إذا كنت تقوم بأبحاث على بيانات كسرية خام
empirical float point data في مشروع لمحاكات الأخطار الزلزالية
باستعمال نسخة معدلة من FORTRAN ، عندها من الأفضل أن يدعم المعالج
ما يشبه خاصية 3DNow من AMD.
نعود إلى التشبيه مع الرجل الذي يمشي، ماذا لو كان يعرف طرق مختصرة
أو أنه يقوم بأكثر من شيء دفعة واحدة، تقنية MMX في المعالج الحديثة
(بما فيها Pentium II وما بعده من Intel و K7 وما بعده من AMD)
التي تستطيع أن تقوم بأربعة عمليات 8-بت
بسرعة عملية واحدة (بمعاملتها كأنها عدد من 32-بت) ولكن
حتى تحصل على هذه الميّزة يجب أن تستعمل البرمجيات التي تستدعي
التعليمات الجديدة. أداء المعالج ليس كل شيء
كما لو أن الرجل الذي لا يجيد الركض عنده سيارة!
إذا كنت تشغل الألعاب أغلب الوقت فإنك ستلاحظ أن الأمر
يعتمد على دعم OpenGL مباشرة في بطاقة العرض (كرت الشاشة) والتسريع
الرسومي العتادي (طبعاً يجب أن يدعمه التعريف)،
فحتى PIII بطيء مع هكذا بطاقة أفضل من PIV مع بطاقة عرض دون
تسريع عتادي، لأن البطاقات بالتسريع العتادي تحتوي على ما نسميه
معالجات لصيقة attached processors تقوم بمهمة محددة بوقت أسرع
من المعالج الأساسي تاركةً إياه ليقوم بأعمال أخرى بينما هي تعمل.
النصيحة الأخيرة أن تشتري الأفضل بغض النظر عن الشركة الصانعة،
أو الاسم الذي كتب على العلبة، لا تتردد في شراء الأجهزة المتوافقة
clones إذا كانت أفضل.
لا تشتري brand name computer "الأصلي" بأسعار مبالغ فيها خصوصاً
إذا كنت تقيم خارج البلاد التي تقع ضمن خطط الدعم
(مثل أغلب دول العالم الثالث)
لأن المبلغ الإضافي يذهب لتغطية خدمة الدعم التي لن تحصل عليها.
أحد أصدقائي اشترى جهاز "أصلي" مرتفع الثمن من شركة معروفة
وعند أول محاولة لطلب الدعم
- "أ: نعم، لدينا أحدث المنتجات، ونغطي كامل البلاد ..."
- "ب: أعرف ذلك، لدي واحد وأنا أتصل بخصوص الدعم -"
- "أ: لا، آسف، أنا مجرد موزع معتمد! اتصل بالوكيل أو المكتب الإقليمي
في تلك-الدولة-البعيدة."
وضع Andr D. Balsa قائماً في وثيقة Linux Benchmarking HOWTO
لعوامل لا معنى لها ويجب تجاهلها:
- سمعة الصانع (لا تقاس ولا معنى لها).
- حصة الصانع من السوق (معلومة بلا معننى وفي غير مكانها).
- حجم الحملة الترويجية الدعائية.
- عوامل غير منطقية (مثل الخزعبلات والأحكام المسبقة:
"هل ترغب بشراء معالج X131313ZAP ولونه زهري ؟")
- القيمة المعنوية (لا معنى له ولا يقاس وغير منطقي).
- الغالي سعره فيه.
إذا كنت تقوم بأبحاث أو تحتاج لخادمات تقوم بعمل شاق
لشركة كبرى وتحتاج أداء يتخطى أفضل حاسوب معروف
فعليك تكوين شبكة عنقودية من الحواسيب cluster of computers
انظر فصل
5.3 تشغيل الخادمات
أو أحد حلول المعالجة المتوازية Parallel Processing الأخرى،
يمكنك الرجو إلى Linux Parallel Processing HOWTO لمؤلفه Hank Dietz.
4.1.13 ملحق أسماء الأجهزة
تجد في موقع www.lanana.org/docs/device-list
قائمة مفصلة بالأجهزة كما يتعامل معها لينكس
وأدناه قائمة مختصرة
[can be mounted]
/dev/hda First whole IDE hard disk or CD
/dev/hda1 First partition on it
/dev/ram0
/dev/fd0
/dev/fd0u1440
/dev/fd0u1722
/dev/fd0u2880
/dev/loop0
/dev/sda First SCSI disk whole (as ide)
/dev/sda1 ... First partitin in the 1st scsi (as ide)
/dev/st0 First SCSI tape, mode 0
/dev/st0l First SCSI tape, mode 1
/dev/nst0 First SCSI tape, mode 0, no rewind
/dev/md0 First metadisk(RAID) group
/dev/nwflash Netwinder flash memory
/dev/scd0 First SCSI CD-ROM (or SCSI emulated)
/dev/sr0 First SCSI CD-ROM (old)
/dev/rom0 First ROM card (rw)
/dev/rrom0 First ROM card (ro)
/dev/flash0 First flash memory card (rw)
/dev/fflash0 First flash memory card (ro)
[printers]
/dev/lp0 Parallel printer on parport0
/dev/usb/lp0 First USB printer
[mice]
/dev/usb/mouse0 First USB mouse
/dev/logibm Logitech bus mouse
/dev/psaux PS/2-style mouse port
/dev/inportbm Microsoft Inport bus mouse
/dev/atibm ATI XL bus mouse
/dev/jbm J-mouse
/dev/amigamouse Amiga mouse (68k/Amiga)
/dev/atarimouse Atari mouse
/dev/sunmouse Sun mouse
/dev/amigamouse1 Second Amiga mouse
/dev/smouse Simple serial mouse driver
/dev/pc110pad IBM PC-110 digitizer pad
/dev/adbmouse Apple Desktop Bus mouse
/dev/vrtpanel Vr41xx embedded touch panel
/dev/vpcmouse Connectix Virtual PC Mouse
[other input]
/dev/input/js0 First joystick
/dev/touchscreen/ucb1x00 UCB 1x00 touchscreen
/dev/touchscreen/mk712 MK712 touchscreen
/dev/usb/scanner0 USB scanner
/dev/sg0 First generic SCSI device may be scanner
/dev/scanners/cuecat CueCat barcode scanner
/dev/gs4500 Genius 4500 handheld scanner
/dev/wvisfgrab Quanta WinVision frame grabber
/dev/video0 Video capture/overlay device
/dev/radio0 Radio device
/dev/vtx0 Teletext device
/dev/vttuner TV tuner on teletext interface
/dev/dcxx0 miroVIDEO DC10/30 capture/playback card
/dev/av0 Philips SAA7146-based audio/video card
[other]
/dev/usb/cpad0 Synaptics cPad (mouse/LCD)
/dev/phone0 First telephony device
/dev/ttyTB0 First USB BlueTooth device
[symbolic links]
/dev/mouse mouse port Current mouse device
/dev/tape tape device Current tape device
/dev/cdrom CD-ROM device Current CD-ROM device
/dev/cdwriter CD-writer Current CD-writer device
/dev/scanner scanner Current scanner device
/dev/modem modem port Current dialout device
/dev/root root device Current root filesystem
/dev/swap swap device Current swap device