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

صمم حاسوبك و ابنه بتكلفة 0$

بدأه Khaled.Alshaya في 13 ديسمبر 2008 · 5 رد · 1,298 مشاهدة · في الأخبار والنقاشات التقنية
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ,,

يمر على المبرمج لحظات لا يدري إلى أين ستقوده أنامله ,خلال عدة شهور ماضية, قرأت كتاباً حول الـ Virtual Machines, و أدهشتني فكرتها من حيث أن مبرمجاً مبتدأً يمكن أن يصمم حاسوبه على الورق ثم يقوم بكتابة محاكي لذلك الحاسوب باستخدام لغة البرمجة المفضلة لديه :)

يمكنك أن تقوم بكتابة لمحاكي بواسطة لغة مثل C أو أي لغة أخرى. تحتاج بالطبع إلى أن تكون قد استخدمت Assembly أحد المعالجات و لا يهم المنصة التي عملت عليها, فأنت لن تستخدمها في عملية البرمجة :)

لكي نقوم ببناء حاسوبنا, يجب أن نعرف ماهي مكوناته... ما هي مكونات الحاسوب برأيك ؟

إن الحاسوب هو المعالج, و لكن الحاسوب يحتاج إلى ذاكرة لكي يقوم بعملية باستلام ما نريد حسابه و اخراج الناتج إليه, طبعاً لكي نرفه المستخدم العزيز اخترعنا له طرقاً لإدخال البيانات إلى الذاكرة و طرقاً لإخراجها من الذاكرة, فبدلاً من لوحة المفاتيح استخدمنا شاشة تعمل باللمس :) و لإخراجها بالمثل,

الآن إذا أردنا أن نبني حاسباً وهمياً كل ما علينا فعله هو بناء معالج على الورق, و تحديد خصائصه و الأمور التي يدعمها, من حيث هل يدعم الادخال و الاخراج IO هل يدعم الأعداد الحقيقية, ما هي النموذج المتبع هل هو stack based أم register based و ما هي الـ Endianess المعتمدة, الكثير من الخصائص الأخرى التي يجب تحديدها على الورق بعد ذلك نقوم بكتابة المحاكي. لتمثيل ذاكرة الجهاز نحتاج إلى حجز ذاكرة من الذاكرة الحقيقة بقدر مانريد! و نحتاج إلى Executer و الذي يمثل المعالج :)

سيقوم الـ Executer و هو عبارة عن Decoder يقوم بقراءة الـ Machine Code الموجود في مكان ما في ذاكرة هذه الـ Virtual Machine.

الـ Machine Code سنقوم نحن بتصميمه لأنه حاسوبنا :) و هنا تكمن المتعة, يمكنك بناء assembler أو حتى Compiler إذا أردت :D أعتقد أني أستطيع بناء حاسوب وهمي و لكني لا أستطيع بناء مترجم لغة برمجة عليه :)

عموماً أنا بدأت بتصميم حاسوبي الوهمي و ربما أطرح تجربتي و المصادر التي جمعتها قريباً لمن أراد الإستفادة :) المصادر غير متوفرة على النت بكثرة في الحقيقة و ستحتاج إلى Textbook بكل تأكيد حتى تبدأ في هذا المجال. أحد الأفكار التي خطرت لي هي أن تكون الـ instruction set الخاصة بجهازي الوهمي باللغة العربية :)

معالجي لا يدعم إلا 16 instruction تقريباً و به عدة registers و بضعة كيلوباتات من الذاكرة, و لا يدعم الإدخال و لا الإخراج كتصميم أولي :)

طبعاً إذا ذكرنا هذا المجال فلابد أن نمر على الـ Virtual Machine الخاصة بـ Sun و التي تعتبر أكبر مثال على الـ Virtual Machine, ما يميزها أنها وهمية تماماً أي أنها ليست محاكاة لمعالج حقيقي أي أنها جهاز على الورق تمت كتابة محاكي له :), هناك أيضاً Parrot من جماعة البرامج الحرة و المصادر المفتوحة :) و هما حسب معرفتي أكبر تجربتين في هذا المجال.

www.parrot.org

و ربما كانت أفضل المشاريع التي أعطتني الحافز لبدء العمل في هذا المشروع هو مشروع النملة :)

اطلع على هذا الجهاز 8-bit ;)

http://ant.eecs.harvard.edu/

الرجاء لمن عنده خلفية حول الموضوع أن يزيدنا علماً, و لمن لديه مصادر جيدة الرجاء اطلاعنا عليها :)

تحياتي ,,

#2

ارى ان العنوان الصراحة اكبر من محتوى الموضوع بكثير

لاحظت من كلامك ان بناء الاله وهمية هذا كأنه عمل برنامج عادى :)

---------------------------

سؤالي هو اذا كان البناء بهذه السهولة فأعتقد تحويل الوهمي الى حقيقي ايضا يمكن عمله وليس مستحيل ؟؟ اليس كذلك ؟؟

-----------------------------------------------

سأحاول قراءة الموضوع مرة اخرى لانى الصراحة نايم :) حاليا :)

ولكن فعلا شكله شئ مشوق

نرجو من من لديه اى مصدر يمده لنا

تم تعديل هذه المشاركة بواسطة (HARD) في 13 ديسمبر 2008 في 02:47

#3

موضوع VM موضوع متقدم جدا في برمجة النظم و مشوق ذكرتني بشيئ كنت اريد ان انساه

العمل كثير و الوقت قليل أعاننا الله

seo zen SEO Enlightment amazon danbo

#4
اقتباس
ارى ان العنوان الصراحة اكبر من محتوى الموضوع بكثير

لاحظت من كلامك ان بناء الاله وهمية هذا كأنه عمل برنامج عادى

---------------------------

سؤالي هو اذا كان البناء بهذه السهولة فأعتقد تحويل الوهمي الى حقيقي ايضا يمكن عمله وليس مستحيل ؟؟ اليس كذلك ؟؟

-----------------------------------------------

سأحاول قراءة الموضوع مرة اخرى لانى الصراحة نايم حاليا

ولكن فعلا شكله شئ مشوق

نرجو من من لديه اى مصدر يمده لنا

إذا كان لديك معرفة بمعمارية الحاسوب computer architecture فيمكنك تصميم حاسوبك خلال اسبوعين و عمل implementation له خلال شهر على الأكثر إذا وضعت نصب عينيك البساطة في التصميم كهدف رئيسي,

و إذا أردت, تحتاج إلى علماء حاسوب و جيش من المبرمجين وو قت طويل لبناء virtual machine كالتي تعمل عليها الجافا :lol:

فليس الهدف من الموضوع بناء حاسوب "عصري" و إنما بناء حاسوب و فقط!

ألق نظرة على مشروع ant و انظر إلى البساطة في التصميم :rolleyes:

الحاسوب هو المعالج و إذا استطعت تصميم معالج بسيط فقد أنجزت المهمة,

أما بالنسبة لعملية تصنيع المعالج فهذا ليس موضوعنا و لا أعرف عنه الكثير, و لا أعتقد أن بناء معالج حقيقي بهذه البساطة مهما كانت بساطة ذلك المعالج,

تحياتي ,,

#5

إذا كان الهدف هو البساطة فإن تطوير الحاسوب الوهمي لن يأخذ الكثير من الوقت كما أشار الأخ Khaled.Alshaya .

لدي هذا الفصل مادة اسمها (برمجة نظم) Systems Programming تتحدث المادة عن بناء ال Assemblers , Linkers and loaders , Macro Processors

إضافة إلى مقدمة عن ال Compilers , ببساطة من يفهم هذه المادة بإمكانه بناء جزء جيد من الآلة التي تحدث عنها الأخ خالد (بالمواصفات المبسطة) .

مشروع المادة هو بناء Assembler مبسط للآلة الإفتراضية SIC/XE , و قد قاربنا على إنهاء العمل , بدون اي تعقيد كلها برمجه (ما في شي من القمر)

بالمناسبة الآلة الإفتراضية SIC/XE هي آلة صممها مؤلف الكتاب ليسهل الشرح .

اسم الكتاب

System Software: An Introduction to Systems Programming

System Software: An Introduction to Systems Programming

اسم المؤلف : Leland L. Beck

أنا أضمن لمن يقرأ الكتاب أن يكون قادر على بناء تلك الآلة الإفتراضيه (من ال Assembler وصولا إلى محرر النصوص)

تحياتي

#6
اقتباس
ما بالنسبة لعملية تصنيع المعالج فهذا ليس موضوعنا و لا أعرف عنه الكثير, و لا أعتقد أن بناء معالج حقيقي بهذه البساطة مهما كانت بساطة ذلك المعالج,

انا لا اقصد سهولة تصنيع المعالج اذا كان سهلة كنا سنرى الكثير من المعالجات

ولكن صناعة المعالج ليست بهذه السهولة ، افضل اننا نظل فى موضوعنا وهو بناء الاله افتراضية :)

--------------------------

سؤال

لكن هل يمكن بناء الاله معقدة ؟؟؟؟؟

تم تعديل هذه المشاركة بواسطة (HARD) في 13 ديسمبر 2008 في 21:20

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…