Gentoo: لماذا اخترت تجميع برامجي الخاصة؟

حسنًا ، نظرًا للاستقبال الكبير لمنشورتي السابقة ، جئت لأخبركم المزيد عن التوزيع المفضل لدي ، Gentoo Linux. أعدك بأن هذا المنشور سيحتوي على معلومات مسلية ستساعدك على فهم القليل عن الأساطير التي تظهر أمام المخيف تجميع من البرامج. أعدك أيضًا بأن هذه المعلومات ستكون مفيدة في دليل تثبيت Gentoo Linux التالي في حوالي 20 خطوة (لم أحسبها جيدًا حتى الآن ، لكنني أعتقد أنها أقل من ذلك). دون مزيد من اللغط ، لنبدأ:

ما هو التجميع؟

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

التصميم الخاص ، كريستوفر دياز ريفيروس

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

التصميم الخاص ، كريستوفر دياز ريفيروس

جميل ، أليس كذلك؟ 🙂 هذا ما تفهمه أجهزتنا لتتمكن من كتابة "Hello" الصغير في جهازك في كل مرة يتم فيها تنفيذ البرنامج.

عملية البناء:

حيث أنه من غير المجدي أن يكون لديك برنامج يقوم بطباعة كلمة "Hello" بسيطة على الشاشة ، حيث أن ملفات .c و. h وفيرة في المشاريع (كما هو الحال في جميع لغات البرمجة). من أجل جعل عملية التجميع أسهل قليلاً ، ظهرت أدوات جديدة ، والأمر الأكثر تمثيلاً هو الأمر جعل.

Make خذ ملف Makefile كنقطة بداية ويجمع ما هو ضروري لإنشاء الملف التنفيذي النهائي ، وفي بعض الحالات تتطلب هذه الخطوة تنفيذ ملف يسمى configure لتكون قادرًا على تعيين بعض المتغيرات الضرورية للمترجم ليجمع (يغفر التكرار) ملفًا مفيدًا.

هذا هو السبب في أننا سنجد الخطوات التالية في العديد من البرامج التعليمية:

خاصة. كريستوفر دياز ريفيروس

سحر ./ تكوين:

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

خاصة. كريستوفر دياز ريفيروس

سيعيد هذا قائمة طويلة من الخيارات ، من بينها سأعرض لك الخيار الأكثر لفتًا انتباهي.

خاصة. كريستوفر دياز ريفيروس

--with-insults... كما يوحي الاسم ، يجمع sudo مع إساءة 😀 هي ميزة ممتعة تتيح لك إرسال إهانة للمستخدم في كل مرة يخطئ في كلمة المرور الخاصة به. لما هذا؟ حسنًا ، منذ وقت ليس ببعيد 😛 ولكنه يوضح نقطة واحدة. هناك الآلاف من الخيارات التي لا تأتي بشكل افتراضي في معظم التوزيعات.

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

ابدأ المرح على Gentoo:

لقد رأينا بالفعل عدد الخيارات التي يمكن أن نفقدها أو نسحبها باستخدام البرامج المترجمة مسبقًا. لكن دعونا الآن نركز قليلاً على المشكلة المجمعة مسبقًا.

الأداء:

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

لنأخذ مثالاً عمليًا للغاية.

يتم تجميع برامجي مع الخيار --march=broadwell... هذا لأن المعالج الخاص بي واسع النطاق (intel i7). ما الجانب السلبي لهذا؟ لا يوجد معالج قبل برودويل قادر على التعرف على هذا الثنائي. في هذه المرحلة ، يجب أن تراها بوضوح شديد ، إذا جمعت مع ملف -مارس  محددًا ، كل ما سبق لن يعمل ... فكيف تدعم الحزم الثنائية أنواعًا كثيرة من الأجهزة؟ سهل ، يتم تجميعهم بأقل خيار ممكن - وهذا يضمن أن جميع أنواع الأجهزة ستكون قادرة على قراءتها (على الأقل من أجل التوافق).

المشكلة الحقيقية ... إذا كنت تستخدم البرامج التي تم تجميعها لـ i3 ... تضيع كل قوة i7 (أو نظائرها من AMD) !! أليس هذا حزينا؟ 🙁

المرونة:

نظرًا لأن مطوري Gentoo أذكياء جدًا ، فقد تم استبدال هذه العملية برمتها من tar و. / تكوين وصنع وما إلى ذلك ... بقوة حمل. تمت إعادة تسمية كل هذه التكوينات الغريبة باسم أعلام USE ، لذلك إذا كنت تريد تكوينًا معينًا ، فلن تحتاج إلى إدخال رمز المصدر ، فقط قم بتكوين المتغير. فيما يلي مثال على كيفية القيام بذلك باستخدام sudo في portage. أولاً سنرى ما هي الخيارات المتوفرة لدينا في التكوين الحالي لدينا الفروسية.

خاصة. كريستوفر دياز ريفيروس

كما نرى ، يتم تنشيط الخيارات الحمراء ، والخيارات الزرقاء ليست كذلك ، حسنًا ... يمكن للجميع قراءة الأسطورة 🙂

لنفترض أنني أريد إضافة خيار ...

خاصة. كريستوفر دياز ريفيروس

بسيطة مثل إضافة سطر في ملف يسمى سودو (الاسم مرجعي) داخل /etc/portage/package.use/. مع هذا في المرة التالية التي نقوم فيها بتثبيت sudo ، سيخبرنا أنه سيتم إعادة ترجمته مع تفعيل الخيار.

خاصة. كريستوفر دياز ريفيروس

إذا قدمنا ​​، نعم، كل ما عليك فعله هو الانتظار قليلاً وفويلا 🙂 بهذه البساطة.

افكار اخيرة:

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

سأكتب دليل تثبيت Gentoo الخاص بي قريبًا ، لكل من عشاق SystemD ومغامري OpenRC (أستخدم systemd مع جنوم). بالمناسبة ، من المزايا الرائعة الأخرى لـ Gentoo إمكانية اختار كل شيء داخل نظامك ، وعندما أقول كل شيء ALL.

إذا فاتتك أول مشاركة لي ، فإليك الرابط:

جينتو لينكس: قصة رحلة

التحيات،


اترك تعليقك

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

*

*

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

  1.   سوق قال

    عظيم! سأكون في انتظار دليل تثبيت Gentoo مع Gnome. ربما يتم تشجيعي على الهجرة إلى Gentoo حتى لو كان لا يزال لدي جهاز كمبيوتر قديم بعض الشيء (intel core i5 3rd gen.). في صحتك!

    1.    كريساد قال

      بعد فترة وجيزة ، استحوذت على Mart ganó لمشاركة المزيد من الأشياء ، لذلك كتبت منشورًا آخر ينتظر النشر ، لكن قريبًا جدًا 🙂 أعد

  2.   نيورد قال

    أعتقد أنني سأبدأ في رؤية الكثير من المنشورات هنا حول توزيع Linux المفضل لدي o!!
    لقد كنت في Gentoo منذ عام 2005 حيث استخدمته لإعداد خادم بريد في الجامعة التي كنت أدرس فيها (وحيث أعمل الآن) وعلى الرغم من أنني عانيت من هجمات توزيع متفرقة ، فقد انتهى بي الأمر دائمًا بالعودة مع Gertroodis العزيز (أولاً مع Gnome2 ، ثم Xfce والآن openbox) ، وكما تعلق في منشورك السابق ، مع زيادة المهارات والمعرفة لضبطها 😉
    سأنتظر مساهماتك وتحياتك وشكرك القادمة لجعل يومي = D!

    1.    كريساد قال

      حسنًا ، سيصدر التالي إنه مثل إجراء محادثة مسلية حول موضوعي المفضل ، سيأتي القادم قريبًا ، والتالي ، والتالي 😛 تحياتي وشكرًا جزيلاً على تعليقك 🙂

  3.   منتصر قال

    لقد كنت أقفز بين التوزيعات لسنوات وكنت أفكر في تجميع توزيعاتي…. هذا الدليل سيكون الخطوة التي كنت أفتقدها…. بينما أنا ذاهب للترفيه عن نفسي مع الكتيب. شكرا على كل شيء……

    1.    كريساد قال

      حسنًا ، الكتيب هو جنة المعلومات ، هناك ببساطة كل شيء 🙂 يمكنني فقط المساهمة بحبتي الصغيرة من الرمل لكن قريبًا جدًا ، المنشور التالي سيصدر ، وسرعان ما سيصدر (أرى بالفعل أنه متوقع تمامًا) ~ دليل التثبيت 20 خطوة. في صحتك،

      1.    منتصر قال

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

  4.   الصويا قال

    Knoppix و Mandrake و Ubuntu و Debian ... والتفكير دائمًا في Gentoo ...

    في انتظار تلك الخطوات العشرين!

    1.    كريساد قال

      هاهاها حسنًا ، إنه مثل الحلم أليس كذلك؟ 🙂 أقول أن الوقت قد حان لتحقيق ذلك تحياتي

  5.   بارد كالثلج قال

    مرحبًا ChrisADR ، أولاً أريد أن أخبرك أنني لم أنم جيدًا منذ مقالتك الأولى عن Gentoo ، وهي مرتبطة بهذا المقال الجديد ، وتستند أحلامي على تجميع Gentoo على جهاز Aspire One Netbook القديم. في حلمي يخبرني النظام أن netbook الخاص بي قديم جدًا لذا فهو لا يتعرف على الأجهزة.
    من ناحية أخرى ، بمجرد أن رأيت Gentoo ولفت انتباهي ، ذكروا القوة التي يوفرها للكمبيوتر (الكمبيوتر). منذ ذلك اليوم قلت لنفسي إنني سأقوم بتثبيته يومًا ما ، وقد مرت أكثر من 10 سنوات ولم أفعل ذلك ، ربما لأنهم أخبروني أنه كان من الصعب جدًا تثبيته ، في ذلك الوقت كنت تقريبًا مناهضًا لنظام Linux ، لذا فقد زادوا من شكواي تجاهه. ومع ذلك استمر الفضول. ذات مرة حاولت تثبيت BSD على نتبووك الخاص بي دون أي نجاح ، وقيل لي أن Gentoo كان يشبه نظام Linux BSD.
    ما الذي تنصحني به لتثبيت Gentoo على جهاز Aspire One القديم باستخدام مترجم Atom القديم؟

    وشكرًا جزيلاً على مقالاتك وما زلت أنتظر المزيد

    1.    كريساد قال

      حسنًا ، أوصي ... افعلها! وأخيرًا ، إذا فشلت في النهاية (وهو ما أشك كثيرًا لأن النواة مصنوعة لدعم جميع أنواع الأجهزة) ، فستكون قد حصلت على تجربة غنية للغاية في عالم Linux ، وستكون قد جمعت النواة الخاصة بك ، سيكون لديك قمت بتثبيت نظام الملفات الخاص بك من البداية ، ستكون قد قمت بإجراء تكوينات لا يقوم بها سوى القليل في حياتهم 🙂 سوف يمنحك منظورًا جديدًا للعالم هاهاها إذا لم تتمكن من رؤية ملف تعريف Unix & StackExchange الخاص بي hange تغطي إجاباتي نطاقًا واسعًا من نظام Linux هناك لأن معرفة Gentoo سمحت لي بتعلم أشياء كثيرة عن كل Linux 😉 أترك لك رابط ملفي الشخصي هنا

      https://unix.stackexchange.com/users/246185/christopher-d%C3%ADaz-riveros?tab=profile

      لا تخف ، وفي النهاية ، إذا سارت الأمور على ما يرام (سيكلف ذلك بالتأكيد قليلاً) فسيكون ذلك إنجازًا لكتابك 😉 تحياتي

  6.   ستيفن قال

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

    1.    كريساد قال

      حسنًا ، الحقيقة لا يمكن أن تخبرك على وجه اليقين أيهما أكثر إصدارًا متداولًا tell ما يمكنني قوله على وجه اليقين هو أن Gentoo لها فرعين: "المستقر" و "غير المستقر" ، على الرغم من أن "غير المستقر" يجب أن يكون لها الأغلبية عدد الحزم على حافة التكنولوجيا ، لدي العديد من المطورين المعروفين الذين يستخدمونها في حياتهم اليومية دون تعقيدات. تم تصميم العديد منها للعمل مع مستودعات git الخاصة بالمشروع ، لذلك لا يوجد شيء أكثر حداثة person أنا شخصياً أستخدم الفرع "المستقر" ، ولكن هذا بشكل خاص بسبب عملي داخل المجتمع كمنسق أمني و كعضو في فريق الاختبار (Arch Tester). إذا لم يكن لديك إصدار "ثابت" لهذه الوظيفة ، فستكون بالتأكيد على حافة التكنولوجيا مع "غير مستقر".
      لا أعرف ما إذا كان يجيب على سؤالك ، لكن على الأقل آمل أن يلفت انتباهك بدرجة كافية لتجربته 😛 تحياتي

  7.   كيشوت مجاني قال

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

    1.    كريساد قال

      تبدو مساهمتك صحيحة بالنسبة لي ، فأنا أجعلها مناسبة لمحاولة إبقائها في جوهرها وإضافة تلك المعلومات 😉 شكرًا لك.

  8.   مزدوج د قال

    أنا أستخدم ubuntu 16.04 ، هل تعتقد أنه يجب علي التبديل إلى gentoo؟ ما هي مزايا gentoo مقابل ubuntu؟

    1.    كريساد قال

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

  9.   فرنان قال

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

    1.    كريساد قال

      نعم ، هاها ، في البداية يتدهور قليلاً 🙂 ولكن بمرور الوقت تصبح مألوفًا حتى أنك تفكر في سبب عدم وجود الكثير من المرونة في أي مدير حزم آخر - من حيث الوقت ، أعرف أشخاصًا لديهم نفس الخادم يعمل لسنوات بدون تحديث ويظل ثابتًا تمامًا في اليوم الأول ، وبالنسبة لأولئك الذين ظلوا هناك لسنوات (وليس أشهر) ، يوجد قسم خاص من الويكي يصف الحلول الممكنة للمشكلة:

      https://wiki.gentoo.org/wiki/Upgrading_Gentoo/es#Actualizar_sistemas_antiguos

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

  10.   فرنان قال

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

    1.    كريساد قال

      قل نعم لكل شيء ليس جيدًا أبدًا فيرنان 🙂 إذا وصلت إلى جنو / لينكس فعليك أن تعرفه وتفهمه. حسنًا ، لا يوجد شيء تراه ، إنه مجرد أمر مألوف ، بمرور الوقت تدرك أن اللون الأحمر هو ما لديك ، والأزرق ما لا يوجد لديك ، والأخضر ما ستضيفه وهذا كل شيء :). لا يتعين علي أبدًا تغيير أي شيء للتحديث إذا قمت بتكوينه بشكل صحيح للبدء ، وأحيانًا أقوم بإضافة أو إزالة علامات الاستخدام ، ولكن الشيء الشائع هو منح Y نعم بعد قراءة القائمة لمعرفة ما يتم فعله
      ملاحظة: pacman -Syy هو نفس ظهور المزامنة
      Pacman -Suy هو نفسه ظهور -uDworld (the -av هو فقط ليكون مطولًا ويسألك قبل المتابعة ، وهو أمر غير ضروري إذا كنت تعرف فريقك وتعرف ما تفعله ، لكنني أضعه لتجنب المشاكل لاحقًا 😉) لا أرى صعوبة في التذكر 🙂

      تحياتي

  11.   ماوريسيو لوبيز قال

    ممتاز مقالاتك ، السابقة وهذا واحد. لدي شك وهو مقدار السرعة التي تكتسبها بين Arch أو Manjaro و Gentoo. بغض النظر عن التخصيص والتعلم في حد ذاته ، فإنه يجعله يستحق التثبيت.
    سؤال آخر لدي وهو كيفية التعامل مع السائقين ، هذا شيء تسبب لي في مشاكل في آرتش.

    1.    كريساد قال

      هولا موريسيو ،
      حسنًا ، لم أتوقف أبدًا عن القياس بين الاثنين ، وفي الواقع إنه سؤال غامض للغاية ، اعتمادًا على البرنامج الذي تستخدمه ، والمعدات التي لديك ، يمكن أن يختلف هذا من القليل أو لا شيء إلى الكثير. على الأقل في الوقت الحالي ، يعمل كلا النظامين بشكل جيد بالنسبة لي فيما أحتاج لاستخدامهما. (لدي Gentoo رئيسي وقوس أستخدمهما من وقت لآخر) عادةً ما أستخدمه في المحاكاة الافتراضية وتحرير البرامج (ولكن عادةً عن طريق المحطة بحيث لا يستخدم الكثير من الذاكرة في IDE. يدعمني Chrome بطريقة هادئة تمامًا أكثر من 40 علامة تبويب (لقد جربت ذلك مرارًا وتكرارًا ، على الرغم من أنه بشكل عام ليس لدي سوى حد أقصى 5 مفتوح لفترات طويلة.
      إذا تجرأت يومًا ما على المحاولة ، أخبرني كيف سارت الأمور

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

      تحياتي و حظ

  12.   جانبير سوبيرو قال

    ما هي شبكات التواصل الاجتماعي الخاصة بك ChirsADR؟