Linux kernel يغير أجزاء من التعليمات البرمجية الخاصة بك من Assembler إلى C

لغة البرمجة ج

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

C هي لغة برمجة Linux الأكثر تمثيلا (في الواقع ، من بين جميع الأنظمة الأساسية * nix) ، تم تطويره بواسطة دنيس ريتشي و Ken Thompson في عام 1972 ، تم تصنيعه على نظام Unix PDP-11 وكان جزءًا من الإصدار 2. من Unix نظرًا لأدائه العالي وإمكانية نقله ، فقد بدأ استخدامه أكثر فأكثر في تنفيذ أنظمة التشغيل ، وبالتالي لينوس تورفالدس استخدمها في مشروعه عندما كان يبحث في عام 1990 عن بديل مجاني ومفتوح لـ Minix.

بالطبع ، على الرغم من العديد من نقاط القوة ، يتمتع Assembler ببعض المزايا على C كما ذكرنا في البداية ، لذلك فقد فاجأ هذا القرار ولكن وفقًا لما تعليقات آندي Lutomirsky في القوائم البريدية لـ kernel ، يسير عملك على قدم وساق و Linux kernel 4.1 تحديث سيكون أول من يدمج إعادة كتابة كود مصدر المجمع هذا إلى C. على وجه التحديد ، كل ما يتعلق بمخارج وضع المستخدم ، والذي يتكون حاليًا من مزيج من التعليمات البرمجية من لغتي البرمجة هاتين ، ولكن نظرًا لقلة صيانته ، يصبح معقدًا بشكل متزايد عند التحديث.

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


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: AB Internet Networks 2008 SL
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.

  1.   ميغيل مايول تور قال

    في المقام الأول هو ENSAMBLADOR باللغة الإسبانية.

    ثانيًا ، يجب تجميع كل اللغات (أو تفسيرها) ، لذا فإن جودة النتيجة تعتمد على المترجم (أو المترجم)

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

    لذلك ، نظرًا لأنه من الأسهل الحفاظ على C من المُجمِّع ، فإنه قرار سليم للغاية إجراء هذه التغييرات في النواة ، عند إجراء تحليل التكلفة والفائدة ، ونقاط الضعف ، والتهديدات ، ونقاط القوة والفرص أو أي شيء آخر يعمل.
    لاتخاذ القرار.

    1.    Chiguire ثنائي القطب قال

      إلى Miguel Mayol Tur: أولاً وقبل كل شيء ، كل مبرمج يدعي أنه واحد يتحدث لغة ASSEMBLER ويفهم اللغة الإنجليزية. يستخدم الآخرون Visual Basic ويطلقون على أنفسهم اسم المبرمجين. يا له من عار. وثانياً ، لا يقوم المجمع بالتجميع. ما تفعله البرامج التي تتعامل معها هو تحويل فن الإستذكار إلى بايت مباشرة. البرمجة في Assembler تتحدث إلى الآلة بنفس اللغة ، ولكن لتسهيل الأمر قليلاً ، يتم استخدام فن الإستذكار بدلاً من الكتابة المباشرة للبايتات المقابلة. يوجد تطابق واحد لواحد بين مجموعة البايتات والتعليمات في المجمع. لكن هذا بالطبع لا يعرفه إلا مبرمج حقيقي ، أحد أولئك الذين يقولون ASSEMBLER. وبالتالي ، لا توجد تحسينات على "المحول" من المجمع إلى أكواد التشغيل لأن المبرمج مسؤول عن إجراء هذا التحسين. المترجمون C (واللغات الأخرى) يترجمون التعليمات إلى تمثيلات ماكرو محددة مسبقًا للمجمع (أو رمز الآلة) ويتم تقديم التحسينات من خلال كيفية إجراء هذه التحويلات.
      لماذا نستخدم سي؟ لأنه من الأسهل مراجعة وصيانة شيء يسهل قراءته. معظم الناس لا يفهمون بشكل مباشر أكواد عمل المجمّع أو فن الإستذكار. سهل هكذا.
      لن أكلف نفسي عناء الحديث عن Java ، والتي على الرغم من أنها فرضت كمعيار منذ وقت طويل ، إلا أنها الآن مكروهة من قبل أولئك الذين يفهمون الكود.
      لكن لا تصدقني ، اسأل Google عما إذا كان ما قلته هنا خاطئًا.
      تحياتي

      1.    إيوجيهك قال

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

  2.   لويس جيراردو مارين قال

    اللغة الإنجليزية هي دائمًا أصل جميع المصطلحات الحسابية. هذا هو الحال ، حتى لو كنا المتحدثين بالإسبانية لا نريد ذلك. أضف إلى ذلك أن هناك مصطلحات لا يمكن ترجمتها إلى "بت" و "بايت" و "يونيكس" و "لينكس" و "دوس" وغيرها الكثير. وهناك بعض الأشياء التي يمكن ترجمتها ولكن لا توجد حالة مثل "CMOS" و "CSS" و "RAM" لأن هناك بعض الأحرف الأولى التي لا علاقة لها بالتكنولوجيا والأهم من ذلك أنها غير موجودة حتى في Google . لا فائدة من الترجمة عندما تكون الرسالة المنتجة غير قابلة للقراءة. الخلاصة: يفضل استخدام المصطلحات الفنية باللغة الإنجليزية في القضايا التقنية أو الحسابية. للسبب نفسه: أفضل أن أكتب أنني أستخدم "windows" لأقول إنني أستخدم نظام التشغيل "windows". وأنا أفضل التحدث عن CSS وأنني أستخدم type = »text / css بدلاً من محاولة القول إنني أستخدم« أوراق أنماط بنوع يساوي أوراق أنماط نص قطرية ». صحة.

  3.   روبرتو جوميز قال

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