إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

ما مدى قدرة اى لغة برمجة فى تطوير نظام تشغيل

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • ما مدى قدرة اى لغة برمجة فى تطوير نظام تشغيل

    بسم الله الرحمن الرحيم

    السلام عليكم ورحمة الله وبركات

    ما مدى قدرة اى لغة برمجة فى تطوير نظام تشغيل


    موضوع كان يدور ببالى وتناقشت فيه مع احد الاخوة

    فاحببت ان نرى اراء الاخوة هنا لكى تعم الفائدة

    فكما يعرف الكل فلايوجد لغة برمجة تقدر تقود بهذه المهمة غير لغة C

    ولكن مؤخرا تم طرح نظا م تشغيل مكتوب بلغة الـ #C

    SharpOS

    فما قدرة لغات البرمجة الاخرى مثل JAVA و PYTHON ......


    على فعل ذلك ...

    نرجوا من الاخوة الادلاء بدلوهم فى هذا النقاش اللذى نود ان يكون مثمر....

    دمتم بود

    صمت فقالوا: كليل اللسان.. نطقت فقالوا: كثير الكلام
    حلمت فقالوا: صنيع الجبان ..ولو كان مقتدراً لانتـقـــم
    فأيقنت أني مهمـــــا أرد.. رضا الناس لابــد أن أذم

  • #2
    اللغة الأولى لكتابة أنظمة التشغيل كانت لغة الآلة ثم التجميع

    لكن في عام 1970 تم عمل قفزة باختراع لغة سي لا لشيء إلا لكتابة نظام تشغيل ثوري اسمه يونكس

    ثم جاءت c++ مع الكثير من الأنظمة (لينكس ليس منها)
    منها hurd

    أتردي هناك نظام تشغيل أغلب أدواته مكتوب من خلال Web Applications

    لكن السؤال هو ما جدوى كل ذلك! أي ذلك هو الأسرع والأفضل والقابل للتطوير بشكل أسرع

    أيضاً يجب أن نعرف أنه وفق مفهوم يونكس (او غنو ) كلمة نظام التشغيل تشمل أدوات النظام وليس النواة فقط

    أنا أرى أن نواة النظام يجب أن لا تكتب إلا بلغة سي أو سي ++
    مع أن ذلك ممكن على لغات أخرى

    أما الأدوات فلتكتب على سي أو سي++ هذا أفضل!
    لكن الأدوات التي نكون فيها بحاجة للتطوير السريع مثل الواجهة الرسومية من السهل والمفيد كتابتها على لغة مثل بايثون

    تعليق


    • #3
      افهم من كلامك هذا استاذى مؤيد انه يمكن لاى لغة ان تكتب نواة نظام تشغيل
      يعنى يمكن للبايثون او الجافا مثلا ذلك كما تم عمل ذلك بالسى شارب لانه كما يقول مطوروا النظام انه ليس بكفاءة اى نظام مكتوب بال سى++

      وما مدى افضلية السى ++ فى ذلك ؟؟
      صمت فقالوا: كليل اللسان.. نطقت فقالوا: كثير الكلام
      حلمت فقالوا: صنيع الجبان ..ولو كان مقتدراً لانتـقـــم
      فأيقنت أني مهمـــــا أرد.. رضا الناس لابــد أن أذم

      تعليق


      • #4
        بعد اذن اﻷستاذ مؤيد،

        أخي العزيز M الجواب عن سؤالك يحتاج حرف لاتيني واحد هو: C

        بصفة عامة إذا أردت اختيار لغة معينة لكتابة أي برنامج يجب عليك أن تفهم أولا ما هو الدور الرئيسي لـهذا البرنامج و ما هي قائمة الخدمات التي سيقدمها، ثم يجب أن تكون لديك صورة إجمالية عن كيفية تصميمه ليؤدي هذه الخدمات بطريقة فعالة. بعدها يمكنك اختيار اللغة اﻷكثر مناسبة لمهمتك و ذلك بمقارنة ميزات هذه اللغة مع طبيعة مكونات البرنامج و العمليات التي سينجزها.

        مثلا بالنسبة لنظام التشغيل من المعروف أن دوره هو إدارة موارد الحاسوب بدءاً من المعالج إلى آخر جهاز طرفي ، مرورا بالذاكرة المركزية و اﻷقراص و الشاشة و لوح المفاتيح ... إلخ. و هذا يعني أن النظام يحتاج إلى التعامل بشكل مباشر مع اﻷجهزة ، مثلا بقراءة خلايا الذاكرة عن طريق عناونيها المباشرة ، و تقديم أوامر من لغة اﻵلة للمعالج ، و برمجة المقاطعات (interrupts) المختلفة و قراءة سجلات أجهزة اﻹدخال و اﻹخراج المتنوعة ، و غيرها من العمليات التي تكون خاصة بكل جهاز و كلها يجب تنفيذها بأسرع و قت ممكن و دون استخدام جزء كبير من موارد الحاسوب ، ﻷن دور نظام التشغيل هو توفير هذه الموارد لتطبيقات المستخدم اﻷخرى و ليس اﻹستئثار بها لنفسه كما يفعل فيستا .
        طبعا هناك مهمات كثيرة أخرى يقوم بها نظام التشغيل نذكر منها على سبيل المثال لا الحصر :
        • برمجة استخدام المعالج من طرف التطبيقات حيث تبدو كأنها تشتغل كلها في نفس الوقت بطريقة متوازية.
        • تقسيم الذاكرة المركزية بين هذه التطبيقات بأمثل طريقة.
        • تأمين عمليات اﻹتصال بين مختلف التطبيقات سواء كانت تُنفذ على نفس الحاسوب أو على حواسيب مربوطة بشبكة.
        • تنظيم عمليات قراءة البيانات من اﻷقراص في شكل ملفات و مجلدات.... إلخ

        اﻵن إذا فهمنا هذه المهام و صممنا النظام الذي سيقوم بها فيجب علينا البحث عن اللغة التي تُسهل برمجتها على أفضل وجه. في الواقع ، على سبيل العموم، ليس هناك لغة أحسن من لغة سي لبرمجة نظام تشغيل ، فهي تسمى عند الكثير بلغة اﻵلة من المستوى العالي، و المقصود من ذلك هي أنها تسمح لك بالتحكم بأجهزة الحاسوب كما لو أنك تستخدم لغة الآلة، و ذلك بقراءة و كاتبة خلايا الذاكرة المركزية (أو حتى بت واحدة من خلية معينة) مباشرة عن طريق الـpointers ، و تمكن من حجز و تحرير أي مساحة من الذاكرة بالحجم و في المكان الذي تريده و بسرعة عالية ، و فيها الأوامر الموجودة في اللغات عالية المستوى مثل الدوال و حلقات التكرار و الجداول و المصفوفات و أوامر المقارنة و القفز إلي مكان في البرنامج و غيرها. ثم هناك أمر مهم جدا وهو وجود المصنفات التي تحول برامج السي إلى لغة اﻵلة بشكل فعال بحيث تُنتنج تطبيقات سريعة جدا في التنفيذ.

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

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


        هذا ما تيسر و الله هو الموفق.
        مدونتي
        تغرب عن الأوطان في طلب العلا * وسافر ففي الأسفار خمس فوائد
        تَفَرُّجُ هم ، واكتسـاب معيشــة * وعلم وآداب ، وصحبة ماجـد
        لكن بعدها

        لقرب الدار في الإقتار خيرٌ * من العيش الموسّع في اغتراب

        تعليق


        • #5
          في المقابل هناك لغات أخرى عالية المستوى لا تتمتع بهذه الصفات مما يجعلها غير مناسبة لبرمجة نظام تشغيل أو أي نظام آخر يحتاج إلى سرعة في التنفيذ من دون هدر لموارد الحاسوب. من الأمثلة على هذه اللغات هناك عائلة اللغات المُترجَمة (في مقابل اللغات المُصَنفة) مثل الجافا أو السي شارب و البايثون. في هذه اللغات لا يتم تحويل أوامر البرنامج إلى لغة اﻵلة قبل التنفيذ، و إنما تتم ترجمة كل سطر على حدى بتحويله إلى عمليات ينفذها مُترجم اللغة الذي يلعب دور الوسيط بين البرنامج و الحاسوب. في الحقيقة هذا المُترجم يتولى أيضا عمليات حجز و تحرير المساحات من الذاكرة بشكل تلقائي و حسب الحاجة، كما يقوم بعمليات كثيرة معقدة مقابل سطور معدودة من أوامر هذه اللغات، مثل عرض واجهة رسومية متطورة أو استخدام وصلات الشبكة و تنفيذ بروتوكولات عديدة لنقل بيانات البرنماج عبر الشبك
          س : الا تحتاج لغة السى مترجم هى الاخرى
          صمت فقالوا: كليل اللسان.. نطقت فقالوا: كثير الكلام
          حلمت فقالوا: صنيع الجبان ..ولو كان مقتدراً لانتـقـــم
          فأيقنت أني مهمـــــا أرد.. رضا الناس لابــد أن أذم

          تعليق


          • #6
            السلام عليكم . .

            لغة سي لغة منخفضة المستوى، معنى ذلك أنها قريبة إلى لغة اﻵلة (01) لكنها أسهل بكثير من هذه اللغة المعقدة جدا جدا، وهنا تكمن قوة لغة الـ سي ، إذ أنها تتعامل مع اﻵلة مباشرة، ولكننا نكتب أكوادها بلغة مفهومة عندنا، فمثلا إذا كتبنا //
            printf ("salut tous le mond !")
            فإننا نريد أن نظهر على الشاشة الرسالة //
            salut tous le mond !
            واﻷمر المستخدم هنا هو //
            printf
            وبالتأكيد اﻵلة لن تفهم هذه اللعة ، ﻷنها لغتنا نحن البشر، لذلك لابد من مترجم يقوم بترجمة هذا اﻷمر إلى لغة مفهومة للآلة . . .

            kaf-laarous

            " إذا كنت تصدق كل ما تقرأ، لا تقرأ !"

            [مدونة kaf-laarous]


            G+ || Facebook || twitter

            تعليق


            • #7
              س : الا تحتاج لغة السى مترجم هى الاخرى
              يقصد أخونا جلال هناك نوعان من اللغات لغات بحاجة لتصنيف compile تحول إلى لغة الآلة مباشر
              ولغات بحاجة لمفسر interpreter أي يتم تفسيرها أولاً بأول عند كل تنفيذ

              إذا كان عند أحدكم حس رياضي مرهف فإنه سيسأل (بناءً على Well order principle) بأي لغة كتب مصنف لغة سي gcc
              الجواب كتب على لغة سي وبمصنف سي أيضاً

              انظر كيف يبنى لينكس من الصفر linux from scratch
              في الكتاب الذي يحمل نفس الاسم

              تعليق

              يعمل...
              X