سؤال

أردت الدخول في برمجة الأنظمة لـ Linux وأردت معرفة كيفية التعامل مع ذلك وأين أبدأ. لقد جئت من خلفية تطوير الويب (Python ، PHP) ولكني أعرف أيضًا بعض C و C ++.

في الأساس ، أود أن أعرف:

  1. ما هي اللغة (اللغات) التي يجب تعلمها ومتابعتها (أعتقد بشكل رئيسي C و C ++)؟
  2. كيف/أين تتعلم تلك اللغات الخاصة ببرمجة الأنظمة؟ الكتب ، مواقع الويب ، المدونات ، البرامج التعليمية وما إلى ذلك
  3. أي أماكن جيدة أخرى يمكنني من خلالها بدء هذا من الأساسيات؟
  4. أي مكتبات جيدة لتبدأ؟
  5. ما هي إعداد البيئة (أو تقريبًا) التي أحتاجها؟ على افتراض أن Linux يجب أن يكون هناك ولكن لدي مربع Linux نادراً ما أقوم بتسجيل الدخول إلى استخدام واجهة المستخدم الرسومية (استخدم دائمًا SSH). هل واجهة المستخدم الرسومية أكثر فائدة أو محرر السادس كافٍ؟ ((يرجى إعلامي إذا كان هذا الجزء من السؤال يجب أن ينتقل إلى serverfault.com)

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

هل كانت مفيدة؟

المحلول

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

بشكل عام ، تتم كتابة العديد من الخوادم في C ، وأحيانًا C ++. تشمل المكتبات الشائعة GLIB ، LIBEVENT ، BOOST (لـ C ++).

يمكنك أن تفعل كل شيء من سطر الأوامر في المحرر المفضل لديك - لا يوجد فوز واضح هنا ، اختر ما تريد.

نصائح أخرى

للوصول حقًا إلى برمجة نظام Linux ، أقول C و X86 Assembly.

بالنسبة للتطبيقات ، تدعم Linux عددًا لا يحصى من اللغات ، Python ، C ++ ، Fortran ، Perl ، إلخ ، لذلك اختر أي واحد تريد استخدامه.

سؤالك واسع جدا. تغطي "التطبيقات الأصلية غير الموجودة على Linux" أشياء مثل Suites Office ، والتي لا أعتبرها برمجة النظام. أود التركيز على شيء واحد (قل برامج تشغيل الأجهزة) في وقت AA. هناك الكثير من الأسئلة الحالية حول هذا الموضوع ، بما في ذلك كتاب برمجة Linux, ما هو IDE سيكون جيدًا لتطوير سائق Linux kernel, هل هناك دروس موصى بها لكتابة برامج التشغيل لـ GNU/Linux؟, ، وUbuntu Linux ، ما هي لغات البرمجة التي يجب أن أتعلمها؟.

لتعلم C89 ، أود بالتأكيد الخوض لغة البرمجة C (الطبعة الثانية).

نانو هو المحرر المفضل لدي إلى حد بعيد. السادس لطيف أيضا. لم أقم بوقت وقت لتعلمه ، لكن كلاهما يمكن أن يساعد في تجارب البرمجة الخاصة بك. يعود الأمر إلى الأخطاء الصعبة في التعليمات البرمجية ، وقم بتثبيت محرك أقراص SSH ، ثم افتح الملفات عن بُعد مع برنامج واجهة المستخدم الرسومية المفضلة لديك.

تتم معظم برمجة النظام في C كما سبق ذكرها هنا. بعض الكتب الجيدة التي تحتاجها للالتفاف لفهم العقلية ، وسيكون طريقة الصالحين لـ Unix/Linux للقيام بالأشياء "فن البرمجة UNIX" من تأليف إريك ريموند ، و "البرمجة المتقدمة في بيئة يونيكس" من تأليف ريتشارد ستيفنز. هناك بعض الكتب الجديدة في السوق مثل كتاب Robert Love "Linux System Programming" بالإضافة إلى "واجهة برمجة Linux" ، فهي UP2Date ، ومع ذلك فهي لا تناقش المبادئ والأفكار الأصلية مثل تلك التي ذكرتها سابقًا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top