![]() |
|||||||||
|
|
|||||||||
|
|
|||||||||
|
|||||
|
Linux ... يلا نسولف
تختلف نظرة الشخص للشئ حسب الزاوية اللي ينظر لهذا الشئ منها ، فمثلا الشخص العادي يطالع السيارة بشكلها ومظهرها وألوانها الداخلية والخارجية وماركة الصنع والموديل وقيمة شراءها ، بينما المتخصص مثل الميكانيكي أو المهندس اللي يشتغل في مجال تصميم السيارات ومحركات السيارات وأجزاءها الثانية ينظر لنفس السيارة بنظرة مختلفة تماماً ، فينظر لها من ناحية قوة الماكينة وطريقة تصنيعها واسلوب استهلاكها للوقود وغيره من التفاصيل الفنية والتقنية اللي يفهمها هو . بنفس الوقت اللي يشتغل في البزنس في مجال السيارات ينظر لنفس السيارة كمنتج يدخل علي بكم؟ وطالع من عندي بكم؟ وكم رح تكلفني هذي السيارة حتى تطلع من مسؤلية شركتي تماماً . نفس الفكرة لما أتكلم عن برنامج ( Software ) ، فمثلا المستخدم العادي وش يهمه في البرنامج؟ مثلا خلينا نقول التصميم ، سهولة التحميل والاعداد ، سهولة الاستعمال ، الاستقرار (Stability) ، الخدمات اللي يقدمها لهذا المستخدم وممكن يستفيد منها. وبالتالي لما اجي ابي اشرح هذا البرنامج للمستخدم رح استخدم النقاط اللي ذكرتها اعلاه في شرحي لهذا البرنامج وبالتالي المستخدم يقرر كيف يستخدمه وهل يحتاجه او لا. بينما نظرتي انا كمبرمج مختلفة تماما ، فأول شي اسأل عنه وش اللغة المستخدمة في كتابة هذا البرنامج؟ ، وهل يمكن اني اوصل لمفاصل هذا البرنامج واسلوب برمجتها وبالتالي لو كان في هذا البرنامج أي سيكيورتي أني اقدر اتعامل معه وفق حاجتي وبناء على فهمي لكيفية الاسلوب البرمجي المستخدم .. وهل يمكن اني استفيد من طريقة كتابة هذا البرنامج في برامجي اللي اكتبها ؟ وغيره من المعايير المختلفة واللي تهمني أنا كمختص . أنظمة التشغيل لها نفس الوضع تماما ، فشخص يطالع نظام التشغيل انه شي يشغل الكمبيوتر وبعد كذا يشغل لي البرامج اللي احتاجها ويدخلني النت ويمكني من التعامل مع البيانات اللي احتاجها بالطريقة اللي ارغب فيها وخلاص ، ولا يبغى يعور راسه بشئ أكثر من كذا . بينما شخص ثاني لا ، يبغى أكثر من كذا ، يبغى يتفاعل مع نظام التشغيل ، يبغى يعرف الطريقة اللي بني فيها هذا النظام وكيف هذا النظام يتعامل مع الهاردوير وكيف اني اوظف طريقة بناء هذا النظام والتكنيك اللي يتعامل به هذا النظام باني اقدر اوجهه لتنفيذ أغراضي واحتياجاتي. كلنا نعرف نظام التشغيل (ويندوز Windows) ومن طلعنا على الدنيا وهو اكثر شي نألفه في الكمبيوتر لدرجة اننا نادراً ما نتعرض لغير هذا النظام . ولكن حنا وش نعرف عن ويندوز؟ ما نعرف الا جزء قلييييل جداً جداً ، وما وراء هذا النظام حاجات مجهولة كثيرة وكثير من امكانياتك معطلة قدام هذا النظام ، فكل شي يجري بشكل سلس جداً ولكنك بالعربي الفصيح (ما تدري وش السالفة) . وهذا هو اكثر شي نجحت فيه شركة مايكروسوفت انها اخفت كل التفاصيل عن المستخدم العادي وخلته يسوي كل اللي هو يبي بدون ما يدري وش اللي جالس يصير وبالتالي طلعوا عندنا (علماء بدون علم) ويا كثرهم. رح ننتقل لعالم ثاني مختلف تماما عن عالم ويندوز المغلف ، وهو عالم المصادر المفتوحة Linux . هذا النظام فلسفته مختلفة تماما عن فلسفة نظام مايكروسوفت التجاري البحت . قبل ما ندخل في شرح النقاط التقنية لهذا النظام رح ناخذ لمحة تاريخية مختصرة مهمة جدا في فهم سالفة هذا النظام واللي على اساسه رح تبنى كل المعلومات المتعلقة بهذا النظام . Linux هو نظام تشغيل يعمل على أغلب معالجات 32 بت مثل Intel و AMD و Sparc وغيرهم من المعالجات. طور هذا النظام على يد أحد الطلاب الجامعيين اسمه (لينوس تروفالدز Linus Trovalds) اللي بناه على نظام التشغيل Minix (نظام شبيه لنظام Unix ولكنه اصغر بكثير) طبعا هو اللي كتب النواة من البداية . قام بكتابة هذا النظام على اساس مبدا (حر يعني حر) فأنت حر بالحصول عليه وحر باستخدامه وحر حتى اذا حبيت تبيعه ! بالتالي هذا النظام متوفر مجانا وتقدر تحصله بكل سهولة . ولكن قبل ما تفكر بالحصول عليه لازم تحدد النسخة اللي تناسبك من هذا النظام. وهذا شي مهم رح نجي له . -ليه Linux بالذات؟؟ هل تستمتع بقراءة السورس كود لبرامج تعمل عليها الحين وتبغى تعرف كيف هذي البرامج تشتغل؟ هل تبغى بيئة برمجة C أو C++ حقيقية للعمل ؟ هل تبغى ادوات وتقنيات متقدمة جدا مثل الاباتشي Apache والسكربتات (Perl, TCL) لإستغلالها في تطوير تقنيات جديدة وقوية على الانترنت أو أيا كانت شبكتك؟ هل تبغى الف طريقة مختلف لأداء عمل معين؟ هل تبي تشتغل وانت تدري وش السالفة؟ هل تبغى خبرة تقنية تفيدك وتعطيك فرص عمل قوية لسنوات طويلة قدام؟ ودك تنبسط؟؟ إذا كانت اجاباتك لأغلب الاسئلة اللي فوق بنعم فهذا النظام مناسب لك تماما .هذا النظام تتوفر فيه (كل) مميزات نظام التشغيل المتقدم جداً . Memory Management, Virtual Memory, multitasking ,filesystem .... الخ من المعايير وهذي ما رح نتكلم فيها لأنها تختص (بنظرة المبرمج) بينما هذا الموضوع موجه للمستخدم . Kernel: الكيرنل (النواة) هي زبدة نظام التشغيل كله ، فهي نقطة الوصل بين (الهاردوير أو العتاد) و (السوفتوير) . الكيرنل اعتبرها مجموعة برامج مسؤولة عن تشغيل مكونات نظام التشغيل مثل تنظيم الذاكرة (RAM) تنظيم البرامج (Processes أو Jobs) ، حركة نقل البيانات من الهاردسك إلى الميموري والعكس ، حركة نقل البيانات من خلال كرت الشبكة (مودم ، Ethernet Card) .... الخ بالاضافة إلى انه Drivers (التعريفات) الخاصة بالاجهزة يتم دعمها من قبل الكيرنل ، فمثلا حتى تكون قادر على تشغيل تقنية البلوتوث على السستم حقك أو كروت الوايرلس (الشبكة اللاسلكية) لابد ان الكيرنل تدعم هذي التقنية ، وبالتالي تستطيع تحميل حاجة اسمها Module اللي تشغل لك هذي القطعة على النظام . أضف إلى هذا انه قد تكتشف ثغرات جديدة في الكيرنل المكتوبة اما ثغرات أمنية تتسبب بتعريض النظام للاختراق ، أوثغرات تتسبب بعدم استقرار النظام وبالتالي تسمى هذي النواة أو الكيرنل (non-stable) . وهذا اللي يفسر نزول اصدارات جديدة للكيرنل كل فترة ، حيث يتم دعم تقنيات جديدة وتعريفات قطع (هاردوير) جديدة لم تكن تدعم من قبل مثل Power Management أو البلوتوث والوايرلس زي ما ذكرنا قبل . إن عملية تجميع نظام لينكس بشكل يدوي (مانول) عملية صعبة ، بمعنى انه عملية تحميل مكونات النظام بعدين ترجمتها (Compilation) بعدين تحميلها (Installation) عملية طويلة ومعرضة للاخطاء والمشاكل وغير مرغوبة . بالتالي الافضل استخدام حاجة اسمها (توزيعة distribution) مجمعة (assembled) وخالصة ، كل ما عليك هو تحميلها وبداية العمل على النظام مباشرة. وهنا نجي لنقطة ثانية ، انه فيه distributions كثيرة ومختلفة ، تختلف عن بعضها بالباكيج من البرامج والخدمات اللي تقدمها . فمثلا توزيعة RedHat لها باكيجز مختلفة عن توزيعة Debian وقد تكون فيه خدمات أفضل تقدمها لك توزيعة Debian بالتالي تخليك تفضلها على كل التوزيعات الثانية ، وعملية اختيار التوزيعة distribution تعتمد على معايير كثيرة منها زي ما قلت الباكيجز المضمنة معها وبرضو دعمها للغة المفضلة لك (مهمة جداً) وهل كل الحاجات اللي تبغاها من النظام متوفرة فيه والا لا؟ مثلا دعم الوايرلس او هل باكيج معين شفته او قريت عنه هل يركب على هذا النظام او لا؟؟ هل يوجد مراجع وتوثيق لهذا النظام ؟ بمعنى لو واجهتك مشاكل هل رح تلاقي دعم أو لا؟ ويوجد بالسوق عشرات التوزيعات تقدر تختار من بينها بعد ما تقرا تفاصيل هذي التوزيعة وتقرر وش اللي يناسبك من بينهم بناء على رغباتك . وكثرة التوزيعات هذي في صالح المستخدم فمثلا التوزيعة Mandrake هذي اعتبرها كويسة للي توه جاي من ويندوز ويبغى يتعرف على النظام ، برضو RedHat نفس الفكرة لكن RedHat عقد بدرجة بسيطة من ماندريك . وعموما اشهر التوزيعات واكثرها انتشارا هي Red Hat, Mandrake, SuSE, Gentoo, Slackware, Debian, Knoppix . وأنا شخصيا أفضل Debian (نظامي الحالي) ، وبرضو RedHat Fedora Core Project . نظام الملفات في Linux: في ويندوز نظام الملفات يقوم على انه لكل بارتشن جذره الخاصة (own root) ، يعني مثلا C يعتبر هو الجذر root حق البارتشن الأصلي و D هو الجذر root حق البارتشن الثاني وE هو الجذر حق البارتشن الثالث ... الخ ولكن في Linux الوضع يختلف تماما ، في هذا النظام ما عندك الا جذر root واحد فقط وتحت هذا الجذر تجي باقي الملفات اللي رح نجي لشرح مبسط عليها. بالمناسبة انا هنا ما اتكلم عن المستخدم root ، أنا أتكلم عن نظام الأدلة أو الملفات File System في نظام لينكس يعني لا يختلط عليك الكلام عن هذا الموضوع مع اسم المستخدم الرئيسي بالنظام المعروف root . تحت الجذر الرئيسي (الدليل) تجي مجموعة كبيرة من المجلدات مثل /boot /bin /home /mnt /lib /var /usr /dev /etc /proc /root /tmp ولكل وحدة منهم وظيفة محددة تماماً . رح نشرح وظائف بعضها . فمثلا مجلد home: هذا هو المجلد اللي تحفظ فيه ملفات المستخدمين من صور وملفات نصوص واغاني وافلام وغيره. بحيث انه لكل يوزر يوجد له مجلد مستقل تحت هذا المجلد. مجلد mnt: في هذا المجلد تحفظ وتجهز الدرايفر الخاصة بأجهزة الحفظ مثل الهاردسك والسي دي روم والدي في دي وغيرهم . بحيث يقرر لينكس وش نظام الملفات الخاص بهذا الجهاز هل هو iso (للسيديات) أو NTFS للويندوز أو smbfs لنظام سامبا أو غيرهم . مجلد boot : في هذا المجلد تحفظ (الكيرنل) وأي ملفات يحتاجها النظام في عملية Booting . مجلد etc: في هذا المجلد تحفظ ملفات اعدادات النظام بدون دخول بتفاصيلها (رح تفهمها اكثر لما تجرب النظام) . مجلد lib: في هذا المجلد تحفظ Modules الكيرنل (مثل اللي ذكرناها في تعريفات القطع) ، وتحفظ المكتبات الخاصة بتشغيل البرامج . مجلد usr: ادوات وبرامج المستخدم اللي حملها كلها تحفظ في هذا المجلد. root: هذا هو مجلد اليوزر الرئيسي للنظام root . proc: هذا المجلد يحفظ بعض معلومات النظام مثل الاحصائيات . dev: هذا المجلد فيه Pointers للأجهزة المثبتة على النظام فمثلا dev/hda1 فيه بوينتر للهاردسك الرئيسي على نظامك ونفس الكلام على كل الاجهزة الثانية. المستخدمين Users والأذونات Permissions: زي ما قلنا قبل انه هذا النظام يحمل كل مميزات انظمة التشغيل المتطورة والقوية ، من ضمنها نظام إدارة المستخدمين . في هذا النظام يوجد يوزر مطلق الصلاحيات واحد فقط هو root ، فهذا اليوزر يقدر يسوي أي شي في أي شي ، لذلك لازم تكون كلمة المرور لهذا اليوزر هي أهم ما عندك في الجهاز كله ! ويمكنك اضافة يوزرات جديدة تنتمي لمجموعات مختلفة ذات صلاحيات مختلفة. كل ملف أو مجلد على نظام Linux له خصائص صلاحيات معينة ، لنأخذ ملف معين اسمه user.conf فهذا الملف لا يمكن تعديله او حذفه الا من قبل اليوزر صاحب هذا الملف أو من قبل root ، ويمكن اعطاء هذا الملف صلاحيات اخرى حتى يمكن لليوزرات الاخرى استخدامه او منع استخدامهم له بناء على رغبتك انت . ولهذي الخاصية طرق معينة مثلا تقدر تستخدم الامر chmod لتغيير صلاحيات ملفاتك وتقدر تمنع او تسمح بالخصائص اللي انت تبغى. Shell (الغلاف) : الغلاف باختصار هو البرنامج اللي يعطيك امكانية التعامل مع نظام التشغيل عن طريقة الشاشة النصية . اعطاء الاوامر بترجمة البرامج ، تشغيل البرنامج ، انشاء المجلدات ، ادارة البروسسز وغيره . يوجد انواع مختلفة للأغلفة ، مثل bash و sh و csh و ksh وغيرهم . اشهرهم هو الغلاف bash لأن فيه مميزات حلوة كثيرة مثل تذكر الاوامر وتصحيح الاخطاء وغيرها من المميزات اللي فيه . طبعا shells تختلف عن بعضها كثيير وليس بمجرد شكل الغلاف او طريقة الكتابة فيه . X Windows: تسمح لك بادارة النظام من خلال الشاشات المرئية او الرسومية . وفيه انواع مختلفة للأنظمة الشاشات الرسومية . رح نجي لأشهر اثنين فيهم اللي هم KDE و GNOME . KDE: نظام KDE لإدارة النوافذ هو أشهر وأبسط نظام موجود على اللينكس ، فهو نظام يحتوي على سطح مكتب ويوجد لوح تحت بالاسفل يحتوي على اختصارات لتشغيل البرامج ، لتتبع البرامج اللي تعمل في اللحظة الحالية ، لإدارة الاتصالات ، الساعة ، تشغيل التيرمنال او الشيل ، يوجد فيه قائمة تشبه قائمة ابدأ في ويندوز. هذا النظام ممتاز جداً للجدد على نظام Linux. GNOME: نظام يشابه KDE في بعض الخصائص ولكن ادارة النظام عن طريقه اصعب قليلاً من KDE . فبعد ما تعمل فترة من الوقت على KDE تقدر تنتقل لـ GNOME وتجربه بنفسك وتقرر اذا كان يناسبك او لا . طبعا كلا النظامين أو أي نظام اخر (يوجد انظمة غير هذي الانظمة لكنني ما ذكرتها لعدم مناسبة ذكرها في هذا الوقت) تقدر تركبهم على توزيعات كثيرة فاولا تشوف اذا كان مثلا نظام KDE يدعم التوزيعة RedHat مثلا فتقدر تركبها وتعمل عليها مباشرة . يوجد كتب كثيرة تنفع كمرجع لأنظمة لينكس عموما مثلا Linux Bilble ، Linux in a Nutshell. موقع يساعدك في اختيار توزيعتك المناسبة: http://distrowatch.com (الموقع يدعم اللغة العربية). والان اترككم مع صور لهذا النظام . ![]() ![]() http://hungsquirrel.org/images/ubuntu.png ( اضغط لمشاهدة الصورة ) ملاحظة: أعتذر عن أي خطأ املائي أو منطقي في الموضوع لأنني لم اقرأه بعد كتابته. التعديل الأخير تم بواسطة : ..HoKo.. بتاريخ 8th July 2005 الساعة 05:23 AM. السبب: الصورة مسببة ازعاج في استعراض الموضوع , استأذنك بالاكتفاء بالرابط لمشاهدتها .. |
|
|||||
|
SUSE Linux 10
قد يكون لتقصيري في هذا المجال و قد يكون للاسلوبك الرائع كنت اعتقد ان الـ Shell هي الواجهة الرسومية لنظام التشغيل *** *** *** لمزيد من المعلومات عن عن نظام التشغيل ( Linux ) : http://en.wikipedia.org/wiki/Linux و هذه روابط تحميل توزيعة ( SUSE Linux 10.1 ) و التي اتمنى اقتنائها : http://download.opensuse.org و من الموقع اللي ذكرته هذه معلومات حول ( SUSE Linux ) : http://distrowatch.com/table.php?distribution=suse .. جايك يا لينكس بس اصبر علي .. as057 |
|
|||||
|
مشاركة: Linux ... يلا نسولف
شكرا على هالموضوع الجميل وخصوصا لاني من عشاق نظام التشغيل linux , بداءت رحلتي مع linux منذ اربع او خمس سنوات تقريبا , تعرفت على توزيعة red hat 8 ثم انتقلت الى تتوزيعات اخرى , كمستخدم عادي وقت بمشاكل لجهلي بنظام لينكس مثل الجافا و اللغه العربية ... الخ لكن استطعت والله الحمد تخطي هذه المشاكل وخصوصا بان التوزيعات الجديده مثل fedora و suse و ماندريك وسلاك وير وغيرها من النسخ الحديثه تعاملت معها بكل سهوله و كنت اعمل من خلال الواجهة KDE وهذه واجهة جميله ثم انتقلت للعمل على الواجهة gnome وهذه واجهات رسوميه هذه صورة من جهازي نظام التشغيل linux التوزيعة fedora cora5 الواجهة المستخدمه gnome ![]() و عملت ايضا من خلال سطر الاوامر المعروف بـ Shell ويعرف ايضا بـ Terminal و منذ ثلاث سنوات لم استخدم التعيس وندوز , واصبح لينكس هو نظام التشغيل الوحيد الذي تربع على جهازي بكل خفه وبكل لطافه , لا فايروسات , لا ملفات تجسس , لا اعطال غبيه , لا مايكروزفت , و بالنسبه للعمل من الواجهة المعروفه بالشل Shell فهي بغايه السهوله والامان ايضا سوف اقراء ملف اسمه cksa.txt موجود في جهازي بواسطة shell وسوف اقراء ايضا سكربتphp اسمه blog.php سوف استخدم هنا اثنين من اهم اوامر لينكس الامر الاول هو ls وهو لعرض الملفات الموجوده بالدليل والامر الثاني هو cat وهو لقراءة السكربتات و قراءة notes وامتدادات txt وغيرها من الامتدادات المستخدم هو r-hat , الدليل المتواجد فيه الان هو localhost انظر الان كيف ساقوم بالعمل على الشل كود:
[r-hat@localhost ~]$ ls
blog.php Desktop Downloads k.s.u snapshot29.png
cksa.txt Direct English fc4-up qurin sound
[r-hat@localhost ~]$ cat cksa.txt
اهلا وسهلا بكم في سطر الاوامر المحبب لي و لمستخدمين الينكس , و ان شاء الله تنتقلوا من فكرة النقاش حول لينكس الى التطبيق واستخدام لينكس , احب لينكس و اتمنى ان تحبوه انتم ايضا
Linux for Ever
انتهى
[r-hat@localhost ~]$ cat blog.php
<?php
if (! isset($wp_did_header)):
if ( !file_exists( dirname(__FILE__) . '/wp-config.php') ) {
if ( strstr( $_SERVER['PHP_SELF'], 'wp-admin') ) $path = '';
else $path = 'wp-admin/';
die("There doesn't seem to be a <code>wp-config.php</code> file. I need this before we can get started. Need more help? <a href='http://wordpress.org/docs/faq/#wp-config'>We got it</a>. You can <a href='{$path}setup-config.php'>create a <code>wp-config.php</code> file through a web interface</a>, but this doesn't work for all server setups. The safest way is to manually create the file.");
}
$wp_did_header = true;
require_once( dirname(__FILE__) . '/wp-config.php');
wp();
gzip_compression();
require_once(ABSPATH . WPINC . '/template-loader.php');
endif;
?>[r-hat@localhost ~]$
ومن احتاج الى التعرف على لينكس اكثر فاكثر فل يقراء هذا المقال http://linux4me.org/ib/index.php?showtopic=49&st=0 |
|
|||||
|
مشاركة: Linux ... يلا نسولف
شكر على الموقع انتقلت لصفحته الرئيسية : http://linux4me.org فصدمت بالتصميم لكن اعجبيت بالمحتوى |