• الإعلانات

    • فيصل الحربي

      تسجيل عضوية جديدة في المنتدى   01/31/2016

      السلام عليكم ورحمة الله وبركاته  عزيزي العضو الجديد :  حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة )  فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK)  وقم بتفعيل إشتراككم من هناك   

MohamedIBrahim

مشرف مساعد
  • عدد المشاركات

    2,340
  • تاريخ الانضمام

  • تاريخ اخر زياره

كل شيء نشر بواسطة MohamedIBrahim

  1. معادلة كلية الهندسة

    يمكنك أخي الكريم من دراسة تلك المواد من الكورسات الاونلاين والتي ستعطيك افضلية اكثر ومناهج افضل وكما انها مجانية واذا اردت الحصول علي شهادات موثقة عالمياٌ يمكن وقتها دفع مبلع صغير مقابل ذلك
  2. حسناٌ دعوناٌ نكون واقعيين كما يريد البعض لا مشكلة من الواقعية والمبالغة فيها لا مشكلة لنجرب شيئاٌ جديداٌ دعونا نكون واقعين ولنذكر ما هي مشاكل المنتدي بكل وضوح ونحددها علي الاقل قبل ان نتحدث عن حلول نريد ان نعرف ما هي المشكلات لا احد يمكنه الجزم تماماٌ بما هي مشاكل المنتدي كلها لكن يمكن ان نضع خطوط عريضة تساعدنا فى هذا 1- عدم وجود تواصل مع الادارة وهذه مشكلة يلاحظها الجميع ومنهم الاعضاء الجدد لكن كمشرفين نعاني من هذا الضعفين 2- عدم وجود حافز للمشاركة فما الذي سيجعل طالب جامعي مثلاٌ وهم دائماٌ كانوا نبض المنتدي بأن يخصص وقتاٌ من يومه ليشارك فى المنتدي الا اذا كان هناك ما يمكن ان يفيده بالطبع 3- المنتدي يحتاج الي اعادة تقسيم فمن المعترف به ان الخمول والكسل من أسبابه هو كثرة عدد الاقسام والتفريعات وأغلبها لم يشارك فيه احد من اسابيع 4 - بعض المشاكل الفنية فى المنتدي لم يتم الوصول لحل لها ومنها بعض المشاكل فى نظام البحث ناهينا طبعاٌ انني كنت اؤيد افكار الاخ عبد الشمري والتي وأدت بسبب ارادة عدم التغيير التي سادت عند الجهات العليا 5- قوانين المنتدي والاقسام بحاجة الي بعض التغيير وايضا الي تطبيق جيد لها فمثلاٌ مملكة الاكسس المستقلة تحتاج للعودة للمنتدي علينا ان نحدد علي الاقل بعض المشاكل التي نراها فى المنتدي لانه عندما يأتي الاستاذ محمد بدوي مثلاٌ او الادارة لتناقش الامر علي الاقل ستحتاج لمعرفة ما هي المشكلات حتي نتناقش فى الحلول !! واعتقد ان المنطق يؤيد فكرة المضمون من تحديد المشكلات :) بالمناسبة اخ جونكر لدي خاصية نمتلكها جميعاٌ فى المنتدي تسمي الرسائل الخاصة ويمكن استخدامها فى حل مشاكل شخصية او اسداء نصيحة بخصوص الاسلوب او المضمون ونترك التعليق علي كلام الاشخاص لان المواضيع بالقطع ليست المكان المثالي لهذه الأمور تحياتي لك :)
  3. اخي أحمد بالفعل كلامك صحيحاٌ وتشبيه رائع الفكرة انني يمكن ان اكون اخطئت التعبير عندما استخدمت مصطلح عقم الافكار ولم اقصد به اتهام احد ما بل ان كل ما كنت أعنيه هو بعض مقاومة التغيير والاكتفاء بالماضي وهو بالمناسبة شئ منتشر جداٌ بيننا كالتغني دائماٌ بانجازات المسلمين الماضية الحاسب من اكثر الامور التي تتغير ولو رجعنا الي تاريخ بداية المنتدي سنجد حتي ان المنتدي نفسه تغير مع تطور الافكار والتقنيات وهو التغيير الابطئ لكننا سنلاحظ انه كان كبيراٌ جداٌ المشكلة لا تكمن فى رفض فكرة المنتديات او الانتقال الي الانظمة الحديثة مثل الاقتراح الذي كان يعمل عليه الاخ Xacker والاخ عبد الله الشمري قبل ان ينسحبا (بالمناسبة الاخ Xacker  اختفي فجأة أرجو ان يكون بخير فهو من سوريا ) بل الفكرة فى خصوصية كل موقع واهتماماته والامر الذي يصلح له لا يصلح مع الاخرين ملاحظة أخيرة : كل اناء بما فيه ينضح كما انه ليس من اللائق التحدث بأسلوب غير لائق مع أي أحد حتي لو عضو لا يمتلك الا مشاركة واحدة فكلنا هو اخوة ولا فارق عندنا سوي ان عملية الاشراف والادارة تكليف وليس تشريف شكرا أخي مصطفي علي كلماتك  
  4. بخصوص المسابقة الرمضانية فلم يكن هناك لها وقت او اهتمام وحتي فى السنة السابقة كانت المشاركة شبه معدومة تقريباٌ حتي ان من فاز هو كل من شارك فما بالك بهذه المرة  
  5. ومنذ متي يشارك الاخ محمد بدوي فى المنتدي اعتقد ان اخر مشاركاته كانت منذ سنوات وقبل حتي اجراءات التحديث منذ اكثر من سنة للمنتدي وتجديده والحصول علي دومين جديد لم يكن يشارك الا نادراٌ جدا جدا اعتقد ان هناك الكثير من الاسباب منه هو فعلاٌ كون الحروب والمواجهات فى الدول العربية المختلفة وسوء الاوضاع الاقتصادية والانشغال بالاوضاع السيئة أصبح اهمها بالاضافة الي انه وئدت محاولة تغيير علي يد بعض من لم يرد التحول الي نظام جديد (عقم الافكار لا اكثر )  
  6. اخي الكريم السلام عليكم ورحمة الله وبركاته حرصا منا على عدم اثارة البلبة والمشاكل في المنتدى فإننا قمنا بغلق موضوعك لأنه سوف يتسبب بخلق مشاكل انت في غنى عنها مع خالص شكرنا وتقديرنا لك ادارة منتديات الفريق العربي للبرمجه
  7. اخي الكريم السلام عليكم ورحمة الله وبركاته حرصا منا على عدم اثارة البلبة والمشاكل في المنتدى فإننا قمنا بغلق موضوعك لأنه سوف يتسبب بخلق مشاكل انت في غنى عنها مع خالص شكرنا وتقديرنا لك ادارة منتديات الفريق العربي للبرمجه
  8. برغم ان الأمر لا يستحق لانه بالفعل هذا موقع youtube الا ان هذا نتيجة فحص مثلا  
  9. سرعة البديهة . . والبرمجة

    محمد علاء لا يمكن لجسيم ان يصل لسرعة الضوء فبغض النظر عن النتائج النظرية للنظرية النسبية عن تحوله لطاقة فانت اصلا تحتاج لطاقة اكبر من التي يمكن استخراجها من مادة الكون كله ليسير جسم بسرعة الضوء
  10. هكذا بكل بساطة أصبحت نظرية التطور من المسلمات فى عصر أصبح فيه العلم لا يعترف بالمسلمات الرياضية حتي :)
  11. سرعة البديهة . . والبرمجة

    أنا دائماٌ أكذب عندما أتكلم   
  12. تطور البرامج

    لم أفهم جيداٌ مقصدك والاخت اجابتك اذا كان مقصدك هو انك تسأل عن ميكانيكية الترجمة نفسها اذا كتبت مثلا compiler للغة قمت بصنعها او compiler لpascal باستخدام لغة الC وهذا امر ليس له علاقة بعملية الcompiling نفسها  اما اذا كنت تقصد مفهوم Bootstrapping فهذا شئ أخر ظ   واقتبس هنا شرح كنت وضعته لتبسيط الفكرة  هل هناك طريقة عملية وحقيقية لكتابة المترجم باستخدام اللغة التي يقوم أصلا هو بترجمتها ؟ نعم فأنت فى هذه الحالة عليك ان يكون لديك بعض العبارات والدوال التي ستقوم بكتابة المترجم الخاص الجديد وان كنت تقوم بكتابة المترجم من جديد فمثلا لنقل مترجم للغة ++C سوف تقوم فقط بكتابة المترجم بلغة السي بلس ومن ثم اولا ستقوم بترجمته باستخدام مترجم متواجد اساسا (مترجم موجود مسبقا) ومن ناحية أخري اذا كنت تقوم بكتابة مترجم للغة برمجة جديدة ودعنا مثلا نطلق عليها اسم  "Gaza" فأنت بحاجة الى كتابة المترجم باستخدام لغة موجودة مسبقا اولا وعموما هذه ستكون لغة برمجة اخري ولا يفترض ان تكون كذلك فقد تكون لغة الاسمبلي وهذا فى الغالب او احيانا لغة الالة مباشرة  اذا كنت تريد عمل bootstrap  للغة "Gaza" فانك فى البداية لا تقوم بعمل مترجم لكل اللغة وبدلا من ذلك فانك تقوم بكتابة المترجم لبعض مفردات وقواعد اللغة وستقوم بكتابة اجزاء على هيئة مجموعات فرعية ومن ثم عن الاكتمال وانشاء مترجم لهذه الاجزاء فانك تستطيع كتابة مترجم للغة كاملة ومن الواضح أن هذا يمكن أن يحدث تكرارا في نقطة واحدة بدلا من القفز وترك اشياء مهمة وذلك لان الجزء الصغير من "Gaza"  هو مجموعة من اللغة الكاملة نفسها والان فأنت تمتلك مترجم مبني على نفسه وتستطيع ترجمته باستخدام نفسه  الخلاصة  1- قم بكتابة المترجم (G) للغة (f) باستخدام اللغة (Z)2- استخدام المترجم (G) لكتابة مترجم للغة  (f) باستخدام لغة  (f)3- الان المترجم (G) هو كامل ومتكامل وبيئة استضافة كاملة 
  13. تطور البرامج

    الموضوع يعتمد علي مدي المامك بمواضيع اخري مثل Data Structure غير ان تكون لديك خبرة فى التعامل مع لغات البرمجة  Compilers هو احد اهم الBranches فى الComputer Science  كذلك بعض الالمام بالمواضيع مثل Turing machines و Type Theory و lambda calculus مطلوبة جدا   
  14. تطور البرامج

     الامر ليس بتلك السهولة ابدا     http://stackoverflow.com/questions/3810119/how-to-go-about-making-your-own-programming-language   http://stackoverflow.com/questions/1669/learning-to-write-a-compiler
  15. اخي الكريم السلام عليكم ورحمة الله وبركاته حرصا منا على عدم اثارة البلبة والمشاكل في المنتدى فإننا قمنا بغلق موضوعك لأنه سوف يتسبب بخلق مشاكل انت في غنى عنها مع خالص شكرنا وتقديرنا لك ادارة منتديات الفريق العربي للبرمجه
  16. الدرس الثانى

    اهلا شباب ارجع اليكم اليوم بالدرس الثانى فى دورتنا لتصميم انظمة التشغيل هذه الدورة هى دورة المستوى الاول فى تصميم انظمة التشغيل وهى ان شاء الله ستكون جزء من 3 دورات حتى الاحتراف فى مجال تصميم انظمة التشغيل كنا قد وصلنا الى طباعة جملة فى درسنا السابق وسنتابع اليوم (BOOT.S) سبق وقد امتلكنا الLoader الخاص بنا سوف ننتقل الان الى الوضع المحمى ( protected mode ) والبرنامج المخرج سنكتبه باذن الله بلغة السى النواة ستكون نواة 32 bit وسوف تبدا الاقلاع من bootsector وسنبنيها ب Gcc اولا سنحتاج من المعالج ان يقوم بقراءة النواة لذا فمجددا سنستخدم الفنكشن 0x2 المعدة من القطاع 0x13 recalibrate: mov ah, #0 mov dl, #FLOPPY_ID int 0x13 ; drive reinitialisation jc recalibrate call read_track ; calling kernel reading function jnc next_work ; if nothing bad happens, continue working bad_read ; if reding is not successful, output error mov bp,#error_read_msg mov cx, 7 call write_message inf1: jmp inf1 ; going to endless loop, so that we can be saved by "hand" rebooting only. 'طبعا القراءة الذاتية للكود سهلة للغاية :) ينبغى علينا الان حفظ البارميترات وقراءة النواة دفعة واحدة الصعوبة تبدأ عندما لا تتمكن النواة من ان تتناسب فى 17 sector (i.e. 8.5 Kb) لكن هذا سيكون فى المستقبل >>> الدروس المقبلة لذا فليس علينا القلق من هذا الان read_track: pusha push es push ds mov di, #sysseg mov es, di ; the data buffer address xor bx,bx mov ch, #START_TRACK ; track 0 mov c1, #START_SECTOR ; start from sector 2 mov dl, FLOPPY_ID mov dh, #START_HEAD mov ah, #2 mov al, #SYSSIZE ; read 10 sectors int 0x13 pop ds pop es popa ret الان هذه هى النواة وتقرا بنجاح والان يمكننا اخراج رسائل اكثر next_work: call kill_motor ; stop floppy drive mov bp,#load_msg ; output message mov cx,#4 call write_message this is the message, you want to output load_msg: .ascii "DONE" .byte 0 And here how you stop floppy: kill_motor: push dx push ax mov dx,#0x3f2 xor al,al out dx,al pop ax pop dx ret الان من المفترض عند التنفيذ ان ترى الجملة المطبوعة "Booting Arabic Dream of An Opreating System..." والضوء من الفلوبى ان يغلق الان المهم هو القفز الى الوضع او النمط المحمى اولا علينا التحول الى سطر العنوان A20 وهذا يعنى انك ستستخدم 32 bit data addressing. mov al, #0x01 ; the recording command for 8042 out #0x64, al mov al, #0xDF out #0x60, al كما هو واضح للجميع فهذا يقفز بنا الى الوضع المحمى protected_mode: mov bp,#load_msg mov cx, #25 call write_message the message load_msg: .byte 13,10 .ascii "Going to protected mode..." .byte 0 بينما البيوس ما يزا على قيد الحياة :lol: :lol: :) :) علينا حفظ مؤشر التوقف الى وحفظه الى العنوان 0000:0x8000 والنواة سوف تستخدم هذه البيانات فيما بعد save_cursor: mov ah,#0x03 ; read cursor position xor bh, bh int 0x10 seg cs mov [0x8000], dx ; save into special hidden place انتباه يا مجند منك له :lol: :lol: cli igdt GDT_DESCRIPTOR ; load descriptors table description The descriptors table consists of 3 describers: zero ( should present always), code segment and data segment. .align 4 .word 0 GDT_DESCRIPTORS: .word 3*8-1 ; descriptors table size .long 0x600 + GDT ; location of descriptors table .align 2 GDT: .long 0,0 ; e.g. 0 : empty descriptor .word 0xFFFF, 0 ; number 8: code descriptor .byte 0, CODE_ARB, 0xC0, 0 .word 0xFFFF, 0 ; number 0x10 : data descriptor .byte 0, DATA_ARB, 0xCF, 0 عملية الانتقال الى الوضع المحمى قد تنفذ بطريقتين فسوف نستخدم سطر الاوامر مثل Linux :wub: mov ax, #1 lmsw ax ; later real mode الان نحن بداخل الوضع المحمى وتمت عملية الانتقال اليه بنجاح jmpi 0x1000, 8 ; Long jump onto 32 bit kernel فى نهاية ملف الاسمبلى يمكنك ايضا اضافة .org 511 .end_boot: .byte 0 والنتيجة ستكون ان حجم ملفك سيكون بالظبط 512 byte وهذا هو المطلوب صح الدرس سهل وبسيط لكن ينبقى عليك التركيز والى اللقاء فى الدرس القادم سنتكلم فيه عن التحرك داخل النواة واشياء تخصها والى اللقاء تحياتى لكم
  17. السلام عليكم ورحمه الله وبركاته اخباركم يا شباب الفريق اتمنى يكون الجميع بخير بما انى لدى وقت فراغ هذه الايام فقررت الاسهام باحدى الدورات وهى دورة بسيطة لانشاء نظام تشغيل بسيط يكون نواة تعريفية للحلم العربى بعمل نظام تشغيل وان شاء الله بيكون كل اسبوع درسين وارجو من الادارة الاعتراف بالدورة رسميا الدرس الاول : فى هذه الدورة سوف نتعرف كيفية بناء نظام التشغيل من الصفر ان شاء الله ولتسهيل الدورة وجعلها مقدمة فقط سيكون نظام التشغيل خاصتنا mini ويطبع فقط جملة Arabic Dream of An Opreating System الشئ الاول الذى علينا التفكير فيه عند تصميم نظام تشغيل هو نظام الاقلاع المسمى البيوس لان CPU يقلع ويتم تحميله فى الوضع 16 BIT لنستطيع عمل boot sector سوف نحتاج الى استخدام assembler وlinker من bin86 package هناك طبعا اشياء اخرى وافضل لكن فى هذه الدورة سنستخدم هذه الادوات السهلة 1- Boot sector (boot.s) انا لن اقوم بكتابة كل السورس للملف لكى تتعرف اكثر على الملف وحتى لا يحدث كسل ولكى اسهل فهم الفكرة العامة فانا لست بصدد عمل نظام التشغيل الكامل الان فى البداية علينا القيام بتعريف الثوابت العامة START_TRACK = 0 - The track, we start reading from. START_SECTOR = 2 - The sector, we will start reading the OS from SYSSIZE = 10 - The size in sectors (1 sector = 512 byte) FLOPPY_ID = 0 -The ID of the drive (0 - is first, 1 is second) HEADS = 2 - Number of heads SECTORS = 18 - Number of sectors for a floppy ( 18 for 1.44 Mb)START_HEAD = 0 - The device head, we will be using. التعليقات بالانجليزى لاننى لم اكتب فى حياتى تعليق بالعربى + فى مجال انظمة التشغيل هناك مصطلحات لا اعرف كيف اترجمها الى العربية وبما ان الدورة اساسا موجهة للمحترفين سيكون من المفترض ان يكونوا يجيدون الانجيليزية بمستوى متوسط على الاقل نرجع الى موضوعنا أثناء الاقلاع سيحدث ما يلى BIOS loader سيقوم بقراءة الsector الاول من الFloppy ويضعه فى العنوان 0000:0x7c00 ويقوم بنقل التحكم اليه سوف نقوم بالحصول عليه فى البداية يجب علينا ان نقوم بتحريك Lower الى العنوان 0000:0x600 ومن ثم نستكمل وكل ما سنحتاجه بالفعل هو اقلاع النواة ل sector 2-12 على الtrack الاول من الفلوبى (floppy) الى العنوان 0x100:0000 لكى نقوم بالانتقال الى الوضع المحمى ويتم القفز الى بداية النواة (first rows of the kernel.) وبسبب هذا ستحتاج الى القليل من الثوابت الاخرى INITSEG = 0x600 - Here we will move it SYSSEG = 0x100 - Our kernel will go here DATA_ARB = 0x92 - The definer of data segment for descriptor CODE_ARB = 0x9A - The definer of code segment for descriptorBOOTSEG = 0x7c00 - We will put the booting BIOS sector here اولا نحتاج الى تحريك انفسنا الى المكان المناسب xor ax,ax mov ss,ax mov sp, #BOOTSEG mov si, sp mov ds, ax mov es, ax sti cld move di, #INITSEG mov cx, #0x100 repnz movsw jmpi go, #0 ; jump into new place of the boot sector , mark "go" Now we have to configure data segments (es,ds) go: mov ax, #0xF0 mov ss,ax mov sp, ax 0xF0:0xF0=0xFF0 mov ax, #0x60 ;we'll set data segments in 0x60 mov ds,ax mov es,axcli فى النهاية سيكون بمقدورنا الان عمل رسالة مخرجية لاننا نمتلك BIOS نستطيع استخدام الفنكشن 0x13 من القطاع 0x10 نستطيع ايضا تجاهله والكتابة مباشرة الى Video memory لكننا نمتلك فقط المساحة المسموح بها للبيوس هى 512 bytes وهى ليست ابدا بالمساحة الكبيرة وسوف نقوم الاعتماد على شئ اخر mov cx,#18 mov bp,#boot_msg call write_message الفنكشن write_message تبدو هكذا push bx push ax push cx push dx push cx mov ah, #0x03; read the current cursor position, so that we don't output the message anywhere. xor bh,bh int 0x10 pop cx mov bx,#0x0007 ; parameters of outputted symbols: videopage 0, attribute 7 (black and grey) mov ax,#0x1301 ; outputting prompt and moving cursor int 0x10 pop dx pop cx pop ax pop bx retwrite_message: والرسالة هكذا .byte 13,10 .ascii "Booting Arabic Dream of An Opreating System..." .byte 0 boot_msg: هذا افضل بكثير من كتابة Helloworld وهكذا قد امتلكنا ال Loader الخاص بنظامنا والى هنا ايضا ينتهى الدرس الاول والى اللقاء فى درس جديد وارج وان يكون وقتها قد تم الاعتراف بالدورة رسميا من الادارة والسلام عليكم ورحمه الله وبركاته
  18. ما دامت هناك عوامل جذب تختلف بحسب اختلاف اهداف المجتمعات وتوجهاتها فهي فى طريقها الي التحسن ما دامت انها ليست تقليد لمثيلتها الأجنبية او تطرح كبديلاٌ عنها هكذا أري انها ستتجه الي الافضل ما دامت تخرج الابداع من داخلها  
  19. خير الكلام ما لخص وقل ودل جزاك الله خيرا تم التثبيت للاهمية والاستفادة
  20. جميلة ما دامت خارج قاعات الدراسة والامتحانات هكذ هي الرياضيات بشكل عام فلسفةر الاعداد المركبة تقدم لك مفاهيم جميلة وتطبيقاتها الرياضية مفيدة للغاية بخصوص موضوع علاقتها بالبرمجة   المصدر
  21. بغض النظر أن قصة التفاحة غير صحيحة وان فولتير هو من ابتكر هذه القصة من خياله الا ان فكرة الجاذبية ليست بتلك البساطة فحيث لو افترضنا صحتها فيجب ان نعلم ان صدفة مثل تلك ليست السبب فى ابتكار نيوتن للتفاضل والتكامل وعمله عن تطوير رياضيا للتعامل مع افكاره كما قال أخي ماجد هو اجتهد وعمل وحصد ما زرع
  22. لغز (52) : الترتيب الوحيد ؟

    هل هناك من الغاز اخري ابتداءاٌ من يوم 10 القادم :D
  23. نظرية الاحتمالات نظرية الممكن واللاممكن حيث تتداخل الامور الصدفة لا تلعب دوراٌ انما الاحتمالية
  24. يبدو الكتاب شيق بالفعل واحتاج :)  اليه لمناقشة بروفيسورة الbiology في جامعتي فى نقاشاتنا معها حول نظرية التطور التي ندرسها خصوصا انني لا امتلك موهبة فى فهم الاحياء لذا نأتي للنظرية من الجانب المحبب شكرا لك