الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

هل يمكن برمجة انظمة التشغيل بالاسمبلي

بدأه nizarnizario في 29 يونيو 2013 · 6 رد · 1,585 مشاهدة · في لغة Assembly لأنظمة 16, 32, 64 بت
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم 

 

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

 

سؤالي هو هل يمكن برمجة نظام تشغيل بالسي بلس بلس فقط ام ضروري الاسمبلي 

 

وسؤال ثاني هل يمكن برمجة قطاع الاقلاع بسي بلس بلس فقط

 

وسؤال ثالث هل يمكن دمج مكتبات للغة سي بلس بلس لتشتغل مع النظام يعني اذا صنعت نظام يكتب مرحبا مثلا فهل يمكن دمج المكتبات الاخرى معه مثلا مكتبة STL

وشكرا لكم

و السلام عليكم

#2

و عليكم السلام 

 

نعم ضروري الأسمبلي  هناك أشياء لا يمكن عملها الى به سأعطيك مثال  تعديل قيمه على GDTR 

 

استعمال لغة السي سيوفر الكثير من الوقت و الجهد , يمكنك استعمال in line assembly داخل السي لبرمجة الأشياء الحساسة 

2

الفريق العربي للبرمجة

16359.png

userbarxp.png

624.gif
#3

شكرا ا خويا

 

هل من الممكن برمجة قطاع الاقلاع بالسي بلس بلس وليس السي

#4

نظم التشغيل تبرمج بالسي والاسمبلي حصراً اذا اردت ان تبرمج نظام تشغيل هنالك العديد من الكتب سوف تعلمك الاساسيات خطوة بخطوة اما استعمال السي++ ..........لا اعرف او لست متاكد

ولكن الاسمبلي سريعة جدا وتعاملها مباشر مع العتاد(الهاردوير) لذلك فان برمجة قطاع الاقلاع بالاسمبلي افضل فهي اسرع لغة ......اما اذا استعملت السي++ فسيكون الاقلاع بطيئاُ وتحدث الكثير

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

السي بشكل كبير بدل الاسمبلي في الوقت الحاضر من قبل المبرمجين في برمجة العتاد.................

ملاحظة ليس لتقليل عزمك وانما لكي لا تتفاجئ بان برمجة نظم التشغيل تحتاج مجهود كبير وخبرة عالية جدا وتحتاج صبر ووقت طويل

بالتوفيق في طريقك

#5

شكرا لك اخي على المعلومات القيمة

 

لكن هناك كتب انجليزية تشرح برمجة نظام تشغيل شبيه بالدوس بالسي بلس بلس و الاسمبلي لكن اعتقد انه يجب ان ادرس مكتبة بوست في سي بلس بلس و بعدها سادرس انظمة التشغيل المبرمجة بال سي ++ و تحليلها

 

وشكرا لك اخي مجددا على المعلومات

#6

في ما يخص الإقلاع فأنا أستعمل الأسمبلي 16 bit    لأن الحاسوب يقلع في ال real mode compatible 

 

برمجة الأنظمة تتطلب دراية بالهاردوير , إستعمال الأسمبلي يتحول مباشرة الى opcode  كما هو الكود 

 

اللغات الأخر يقوم ال compiler  ب إضافة ال optimization و أشياء أخرى لا تريدها خصوصا على مستوى نظام التشغيل 

الفريق العربي للبرمجة

16359.png

userbarxp.png

624.gif
#7
اقتباس

هل يمكن برمجة نظام تشغيل بالسي بلس بلس فقط ام ضروري الاسمبلي

توجد بعض الأجزاء التى لابد من إستخدام الأسمبلي بها، فى الأغلب يتم كتابة هذه الأجزاء بإستخدام Assembler ثم يتم الربط عليها من داخل ++C/C، السبب فى عدم إستخدام inline assembler يكمن فى اختلاف لغة الأسمبلي بين اكثر من architicture.

 

اقتباس
هل يمكن برمجة قطاع الاقلاع بسي بلس بلس فقط

لا، تحتاج أيضا للأسمبلي فى بعض الأجزاء فمثلا عملية اظهار النصوص و الرسم على الشاشة و غيرها يمكن إجراءها من داخل ++C/C، و لكنك تحتاج مسبقا لكتابة stub بالأسمبلي لتحميل البرنامج المكتوب بـ ++C/C و ايضا دوال الكتابة على الشاشة بالأسمبلي.

 

اقتباس
هل يمكن دمج مكتبات للغة سي بلس بلس لتشتغل مع النظام يعني اذا صنعت نظام يكتب مرحبا مثلا فهل يمكن دمج المكتبات الاخرى معه مثلا مكتبة STL

عندما تكتب نظام تشغيل فى الأغلب داخل الكرنل الخاص بك لن تستخدم مكتبات اللغة و لكنك ستصنع مكتبات خاصة بك و السبب يكمن فى كيفية عمل memory manager الخاص بنظام التشغيل و إن أصررت على استخدام مكتبات اللغة حينها ستحتاج لكتابة دوال الـ runtime بدلا من التى يستخدمها المترجم.

 

 

*-----------------------------------------------------*

 

اقتباس

 

نظم التشغيل تبرمج بالسي والاسمبلي حصراً اذا اردت ان تبرمج نظام تشغيل هنالك العديد من الكتب سوف تعلمك الاساسيات خطوة بخطوة اما استعمال السي++ ..........لا اعرف او لست متاكد

ولكن الاسمبلي سريعة جدا وتعاملها مباشر مع العتاد(الهاردوير) لذلك فان برمجة قطاع الاقلاع بالاسمبلي افضل فهي اسرع لغة ......اما اذا استعملت السي++ فسيكون الاقلاع بطيئاُ وتحدث الكثير

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

السي بشكل كبير بدل الاسمبلي في الوقت الحاضر من قبل المبرمجين في برمجة العتاد.................

 

البطء لا علاقة له باللغة المستخدمه بقدر أسلوب البرمجة ذاته. الأخطاء الناتجه من برنامج الإقلاع المكتوب بالـ ++c سببها استخدام اجزاء من الـ runtime الخاص بالـ compiler دون إعادة كتباتها و تنقيحها جيدا، مثلا استخدام virtual functions او new او delete و غيرهم، فإن قمت بإستخدام قواعد اللغة جيدا و انت تعرف ما تقوم به يمكنك إنتاج برنامج إقلاع صغير الحجم و عالي الكفاءة بإستخدام كود سي++ و أسمبلي.

 

 

و الله ولي التوفيق

تم تعديل هذه المشاركة بواسطة C++er في 2 يوليو 2013 في 01:16

1

مدونتي: C++ Tips and Tricks

مواضيع مشابهة