Saturday, December 19, 2009

في يونكس كل شيء هو ملف

لا اخفيكم انه وفي بداية اطلاعي على نظام التشغيل يونكس لم يثر اعجابي شيء كما اثارتني تقنية "Everything is a File" ، بالطبع هذه التقنية اصبحت معروفة في هذه الايام ولن تثير الكثير ممن يعمل في مجال تقنية المعلومات، ولكنها كانت واحدة من اكثر المزايا التي اعطت نظام التشغيل يونكس دفعا في القوة والانتشار،

لقد وحد يونكس بهذه الطريقة اساليب التعامل مع تجهيزات ادخال واخراج البيانات وسمح بأيجاد "unified paradigm" نظام موحد للتعامل مع وحدات اخراج وادخال البيانات من ملفات ومجلدات ، طابعات، شاشات اخراج، والاقراص الصلبة والمرنة، وكل مايمكن ان يأتي ضمن تلك الفئة من التجهيزات، وأوجد نظام يونكس مكتبة موحدة من البرامج للتعامل معها جميعها بنفس الطريقة، وهو ماسهل على المبرمجين كما سهل على المستثمرين والمصنعين لتلك التجهيزات في التعامل معها، وأصبح بالأمكان استعمال نفس التعليمات البرمجية لعمليات القراءة او الكتابة على اي نوع من انواع التجهيزات، لأنه بكل بساطة يراها كأنها ملف، فتعليمة الكتابة على القرص الصلب هي نفس التعليمة التي نستخدمها للكتابة على الطابعة او على شريط مغناطيسي، التلعيمات كلها تنظر إلى الجهة او المصدر على انه ملف وتتعامل معه على ذلك الاساس، ولكي ابين اهمية الموضوع لنلقي نظرة إلى نظام ويندوز الذي يعامل التجهيزات وفق نظرية مختلفة "Everything is an object" وبالتالي يحتاج كل جهاز إلى مجموعة خاصة به من المكتبات والوظائف التي تؤمن الاتصال به والتعامل معه وبالتالي يجعل من عمل المبرمجين او المستثمرين اكثر تعقيدا ويصبحون في حاجة لتعلم المزيد والمزيد عن كل جهاز جديد يتم العمل عليه، والحاجة للمزيد من تلك البرامج والتي قد تقلل من نسب التوافقية فيما بينها، ويقلل من امكانية تعامل البرامج مع كل تلك الانواع من التجهيزات ويحددها بالتجهيزات التي تم تزويدها بها مسبقاً،


أعرف ان ما قلته هو قليل جداً ولكني اردت فقط أن اسلط الضوء على هذه النقطة ولست في صدد الدخول في التفاصيل التقنية ولكن لمن يرغب في المزيد من التفاصيل يجدها على هذا الموقع

Sunday, December 13, 2009

يونكس عبر التاريخ


يونكس عبر التاريخ،

لست هنا بصدد السرد التاريخي لنظام التشغيل يونكس، والذي يمكن الحصول عليه بسهولة عبر البحث في الويكيبيديا او على موقع البحث غوغل، فتاريخ يونكس من ناحية من اخترعه وكيف ومتى تم اختراعه وإلى ما هنالك من تفاصيل قد تبدو تفاصيل مجردة لاتعطينا حقيقة انطلاق يونكس في عالم انظمة التشغيل وبقائه على قمة هذه الانظمة رغم مرور الوقت الطويل على اختراعه ورغم التطور الحاصل في مجال صناعة المخدمات والمعالجات ومايتبعها من منصات عمل،

ولكني اريد تسليط الضوء على تلك الناحية من نظام يونكس التي جعلت منه جزء من تاريخ صناعة التكنولوجيا والمعلومات،
لقد بدأ العمل على كتابة نظام يونكس على محطات عمل في مختبرات بيل من نوع "بي دي بي -7" بأستخدام الاسمبلي كود، وهذه المحطة كانت تدعم لغة البرمجة المدعوة "تي ام جي" وقد عمدو إلى تطوير لغة فورتران بأستخدامها، وحاولو تطوير نظام يونكس عليها ولكن واجهتهم الكثير من المشاكل فتحولو إلى تطوير لغة برمجة جديدة بدلا من العمل على نظام التشغيل يونكس وتم تطوير لغة البرمجة  "بي" لغة متطورة سرعت من انجاز العمل وسهلت من تطوير النظام، ولكن مع قدوم الجيل الجديد من محطات العمل من النوع "بي دي بي -11" قام دينيس ريتشي بتطوير لغة سي على تلك المحطات أعتمادا على لغة بي.
ومع لغة سي تبدأ قصة يونكس تاريخياً، فلغة سي تتميز بأحتوائها على ثنائية التعامل بالتفاصيل على مستوى الهاردوير كما تحتوي على الوظائف العالية المستوى والتي تساعد على كتابة وتطوير نظام تشغيل، وهكذا تم اعادة كتابة الجزء الاكبر من يونكس بأستعمال لغة سي، حتى النواة نفسها كتبت بلغة السي في عام 1973، وبذلك تعتبر لغة سي هي المحرك الدافع لنظام يونكس وقد اشتهرت هذه اللغة وانتشرت عالميا لتصبح اللغة رقم واحد في العالم ﻷكثر من ربع قرن،

وبما ان يونكس كتب بلغة سي فلقد ورث اهم صفاتها، وهي الصفات التي صنعته نفسها،

(Portability)
يحمل نظام التشغيل يونكس صفةإمكانية النقل: والتي تمكن من نقل نظام التشغيل يونكس إلى اي محطة عمل من نوع جديد دون الحاجة ﻷعادة كتابته من جديد، ﻷنه كتب بلغة سي القابلة للنقل إلى اي نوع اخر من التجهيزات، وهذا ما سمح للكثير من الشركات بالبدء بأعتماده كنظام تشغيل لمنصاتها الجديدة،
(Improvability)
أما الصفة الثانية في إمكانية التطوير لم يعد يحتاج تطوير النظام إلى تعلم لغات معقدة واصبحت لغة سي في متناول الجميع الذين سارعو لتطوير واضافة البرامج لهذا النظام مما جعله يؤدي المزيد من المهمات والاعمال،

بالنتيجة: تاريخيا، يعود ارتباط يونكس بلغة سي إلى السر في ماوراء نجاحه، ولايمكن الفصل بينهما.

Saturday, December 12, 2009

تعليم نظام يونكس في المدارس؟



تعليم نظام يونكس في المدارس؟
ما الحاجة لتعليم يونكس في المدارس ؟ هذا سؤال يعيدني إلى حادثة حدثت معي اثناء قيامي بإجراء مقابلة لتعيين مهندس في مجال ادارة انظمة التشغيل، رغم ان هذا المهندس كان من خريجي جامعة دمشق ويحمل عدة شهادات احترافية من شركة ميكروسوفت، لكنه حين توجهت إليه بالسؤال عن معرفته بنظام التشغيل يونكس أجاب بدون تردد "انه يشبه نظام التشغيل ويندوز ولكنه بشاشة سوداء فقط (كونسول)، "، بالتأكيد جوابه اضحكني بقدر ما ازعجني، فأعدت عليه السؤال هل يعرف شيئاً عن نظام لينوكس هذه المرة مردداً بداخلي لربما تعلم عنه شيئا بالجامعة، فأجاب بأنه يعرفه وانه درس مادة عنه في أحدى الفصول، ولكنهم لم يتعمقوا به كثيراً،

بالنتيجة هناك ثقافة منتشرة بكثرة حول نظام التشغيل ويندوز والجميع يعرفه ويعمل عليه، لكن مع كل اسف ليس هناك من يعرف او يتعلم شيئا عن يونكس أو حتى لينوكس وهو النظام الذي يحل مكان ويندوز يوما بعد يوم وبشكل متزايد.

لنعود للتساؤلات، ما اهمية المعرفة وتعليم نظام التشغيل يونكس في المدارس؟ فأضرب الهند كمثال لأن نظرة بسيطة لما حققته الهند من تطور في مجال تقنية المعلومات والبرمجيات وصعودها على قمة انتاج وتطوير الانظمة البرمجية والتطبيقات العاملة في مجال التكنولوجيا يعطينا فكرة مهمة عن اهمية هذه الثقافة المطلوبة في مجال يونكس، الهند عمدت منذ زمن بعيد إلى تطبيق منهاج دراسي تعليمي من الصف الرابع الابتدائي ادخلت إليه مادة اليونكس كمادة ليتعلمها الطالب كما يتعلم اللغة الأنكليزية، وقد حققت بتلك الطريقة المعجزة التكنولوجية في اقتصادها،

حسناً، لا احب ان اسمع جواباً على هذا الكلام بأننا نعلم طلابنا العمل على نظام التشغيل ويندوز في كثير من المدارس الأن وهناك الكثير من المعاهد التي تدرب بدورها على ويندوز والبرامج الملحقة به، لأنه وبكل وضوح العمل على نظام التشغيل ويندوز بكل مايحويه من وسائل مساعدة وتسهيلات في العمل لا يساعد على تنمية المنطقة المهمة من العقل في التفكير والتحليل والتجريد وينفي الربط المتسلسل للأحداث في دماغ الطفل، ويندوز يقوم بالعمل بالنيابة عنك وبشكل لاتحتاج معه للتفكير بما يجري وهي طريقة جيدة لمن يؤدي عملاً ما ويريد انجازه، ولكنه ليس جيداً لمن يريد ان يتعلم ويعرف ويطور مهاراته في مجال تقنية المعلومات،

إن الطريقة التي يعمل بها يونكس تتطلب حسب التعبير الشعبي الشائع "تشغيل مخ"، وبرأيي أنها طريقة فعالة في تنمية وتطوير المقدرة على التعلم، يونكس يحتاج إلى ان تفكر في الطريقة التي يجب ان تنفذ بها الاوامر ويحتاج إلى مجموعة من العمليات التي ستؤدي في النهاية إلى تنفيذ المطلوب منه، وعلى الذين يعملون على يونكس ان يتذكروا وان يحللوا وان يجردو ومن ثم ربط وتسلسل العمليات بين بعضها، كل هذا هو محفز ومطور لطرق التفكير في الدماغ، يونكس يجعل من دماغك يعمل بشكل مستمر،

بالطبع كان هذا حديثاً عن اهمية تعليم يونكس من ناحية تعليمية وليس من ناحية تكنولوجية، لأن تلك الناحية محققة مسبقاً في تعلم انظمة تشغيل متطورة مثل يونكس،

هل من السهل تعليم يونكس في المدارس؟
أود بأن أجيب بنعم، ولكني لن ادخل في متاهة الحسابات المادية والتكاليف وتدريب الكوادر وخطط التدريب، لأنها بحاجة لمحلل اقتصادي ومادي ومعدي دورات تدريبة وجهات داعمة لتلك الخطط،


كانت تلك مجرد افكار مبدئية قد أعود للتوسع بها لو سمح لي الوقت،

Friday, December 11, 2009

فلسفة نظام التشغيل يونكس


لم ارغب ان أطرح سؤالاً مثل ماهو نظام يونكس؟
لأني أعرف ان الكثيرين منكم سيردون علي انه نظام التشغيل المتعدد المهام والمتعدد المستثمرين والذي تم تطويره في نهايات الستينات في مختبرات بيل ليعمل وفق معايير بوزيكس وان هذ النظام معد ليعمل في بيئة الاعمال الكبيرة والمعقدة ويحتاج إلى مستثمرين يملكون خبرة كبيرة للتعامل مع هذا النظام،
لم أطرح ذلك السؤال لأني لا اقتنع بأن هذا هو الرد على سؤال مثل ماهو نظام التشغيل يونكس، ولأن هذا التعريف هو تعريف اي نظام تشغيل، فكل انظمة التشغيل اليوم تعمل في بيئة متعددة المهام والمستثمرين وتحتاج إلى دراسات معمقة لفهم الية وعمل النظام وطريقة العمل عليه، ولكن هل هناك طريقة لتعريف نظام التشغيل بحيث تظهر الصفات التي تجعل منه مميزاً عن بقية الانظمة،
ومن هنا أجد أن علي أن أتسائل هل هناك طريقة للتعريف بنظام يونكس كنظام مميز وخاص، لا ادري حتى الأن لو توفرت سهولة كافية لشرح ماهية هذا النظام بالرغم من ان السهولة هي الصفة التي جعلت منه نظام مشهوراً،
أعرف ان هذا الكلام لايساعد كثيراً ولكن لندخل في صلب الموضوع، بإختصار إن اشهر مافي نظام التشغيل يونكس هو الفلسفة التي قام عليها هذا النظام، وهي الفسلفة التي يجب ان يتذكرها كل من يعمل عليه أو على تطوير وكتابة برامج جديدة لنظام يونكس ويمكن  اختصارها في كلمة واحدة
"K.I.S.S"
والتي تعني
"Keep It Simple, Stupid"
ولنفسر هذه الفسلفة التي يعتمد عليها نظام التشغيل يونكس التي تقول
ـ  البرامج في نظام يونكس تؤدي وظيفة واحدة وهي مكتوبة بعناية فائقة
ـ  البرامج في نظام يونكس قادرة على العمل مع بعضها البعض
ـ  البرامج في نظام يونكس قادرة على معالجة النصوص الناتجة عن برامج اخرى لأنها الطريقة الموحدة عالمياً في التفاعل بين البرامج

من هذه الفلسفة المختصرة  نستطيع ان نتعرف على هذا النظام وقد  يتضح لنا السر الكامن من وراء كون هذا النظام واحد من اكثر الانظمة استمرارية وثبات في العمل وحتى انه يعد النظام الاكثر استمراراً وبقاءاً في التشغيل من حيث عدد الساعات التي لايحتاج فيها إلى إعادة التشغيل،
هل استطعت ان اعرف لكم ما هي فلسفة نظام التشغيل يونكس؟ ربما؟


وللكلام بقية....

Wednesday, December 9, 2009

يونكس بالعربي

لعلي اجد نفسي غير قادر على الكتابة عن نظام تشغيل مثل نظام يونكس باللغة العربية وهو ماسأحاول جاهداً أن أفعله كلما كتبت شيء ما،

في البداية هل من السهل تعلم نظام تشغيل مثل يونكس؟

البعض يعتقد انه لايمكن تعلمه لعدم توفر هذا النظام بين يدي من يود التعلم، ولكن هذه الفكرة ليست صحيحة، فبعد ان قامت شركة صن بأصدارها لنظامها المشهور صن سولاريس العامل على معالجات انتل وبالتالي اصبح من السهل تشغيل نظام يونكس الخاص بشركة صن على الحواسب الشخصية والمحمولة المتوفرة بين يدي كل من يريد تعلم هذا النظام،

كما توفر الأن شركة صن النسخة المجانية من نظامها تحت اسم اوبن سولاريس وهو نظام تعمل جاهدة شركة صن لجعله منافساً للأنظمة المفتوحة المصدر مثل نظام التشغيل لينوكس ( رغم عدم وضوح مستقبل هذا النظام بسبب سياسة شركة اوراكل التي استحوذت على شركة صن وامتلاك اوراكل لنظام تشغيل لينوكس خاص بها والذي يعتبر نظام اوبن سولاريس منافساً له) ولكن شركة اوراكل لم تصرح حتى الأن عن مستقبل مشروع اوبن وسلاريس وما يمكن ان تفعله به.

كذلك تتوفر مجموعة من الخيارات لمن يريد تعلم يونكس من خلال النظام الاشهر والافدم المجاني وهو نظام اوبن بي اس دي، وهو متوفر على معالجات انتل،

بالتالي لمن يرغب تعلم هذا النظام سيترتب عليه اولا أن يعتمد المقولة التي تنصح بأن اسهل طريقة لتعلم نظام تشغيل هي ان تجعله متوفرا دائما تحت يديك، فأنا اعمل على نظام اوبن سولاريس كنظام تشغيل لحاسبي المحمول، وهو نظام سيطول الشرح عنه في مايأتي من كلام،

ولكن اعود لأقول لا ادري كم سيسهل الكلام عن نظام التشغيل يونكس باللغة العربية، وهي محاولة قابلة للنجاح او الفشل وهذا ما سيثبت لي ولكم عبر الايام القادمة وحسبما يتوفر لي من وقت كافي للكتابة، فمن مساوء العمل كمدير لنظام تشغيل يونكس لن يكون لديك الوقت الكافي للقيام بالأعمال الاخرى،


والبقية قادمة