Docstoc

المرجع العربي فى تصميم انظمة التشغيل

Document Sample
المرجع العربي فى تصميم انظمة التشغيل Powered By Docstoc
					‫اٌٝ شٙذاء اٌّمبِٚخ ٚاالٔزفبضبد اٌفٍغغيٕيخ‬
                                                              ‫ا٘ذاء اٌىزبة :-‬
  ‫ثغُ اهلل اٌشؽّٓ اٌشؽيُ الذَ ٌىُ ٘زا اٌىزبة وّغبّ٘خ طغيشح ِٕٝ ٌٍزؼشيف ثؼٍُ‬
 ‫رظّيُ أظّخ اٌزشغيً ثؼذ اٚ ٚعذد ٔذسح اٌّشاعغ اٌؼشثيخ ثً رىبد رىْٛ شجٗ ِٕؼذِخ‬
  ‫فٝ ٘زا اٌّغبي اٌّزمذَ ِٓ ِغبالد اٌجشِغخ ٚػٍَٛ اٌؾبعت ثشىً ػبَ ػغٝ اْ‬
     ‫يفزؼ افك عذيذح ٌزغٛيش اٌزىٍٕٛعيب اٌؼشثيخ خبطخ ثؼذ اٌضٛساد اٌؼشثيخ اٌزٝ شٙذرٙب‬
‫ثٍذإٔب اٌؼشثيخ اٌزٝ ثذأد فٝ رٛٔظ ِٚٓ صُ اِزذد اٌٝ ِظش ٚثؼذ ٔغبػ اٌضٛسح اٌّظشيخ‬
      ‫اِزذد ٌزشًّ ِؼظُ اٌذٚي اٌؼشثيخ ِٚٓ صُ فىبْ الثذ ٌٕب ِٓ صٛسح ايضب فٝ ِغبي‬
   ‫اٌزىٍٕٛعيب اٌؼشثيخ ٚ٘زٖ اْ شبء اهلل عزىْٛ اٌٚٝ اٌّغبّ٘بد ِٕٝ ٚاسعٛا ال رىْٛ‬
    ‫االخيشح اْ شبء اهلل ٚا٘ذٜ ٘زا اٌّشعغ اٌؼشثٝ اٌجغيظ اٌّزٛاضغ اٌٝ اسٚاػ شٙذاء‬
‫اٌضٛساد اٌؼشثيخ عّيؼب ٚخظٛطب شٙذاء صٛسح اٌخبِظ ٚاٌؼششيٓ ِٓ يٕبيش اٌضٛسح اٌّظشيخ‬
 ‫ٚاٌزٝ افزخش ثبٔٝ وٕذ اؽذ اٌّشبسويٓ فيٙب ٚايضب ا٘ذيٙب ثبالخض اٌٝ شٙيذ ِذيٕزٝ‬
   ‫االٚي اٌشٙيذ اٌجغً ِؾّذ عّبي عٍيُ ٚوزٌه اٌٝ اٌشٙيذ ِٕٙذط اٌؾبعت وشيُ‬
   ‫ثٕٛٔخ فميذ ِٕٙذعٝ اٌجشِغيبد اٌّظشييٓ اعىُٕٙ اهلل عّيؼب فغيؼ عٕبرٗ ٚاٌؾمٕب‬
   ‫ثُٙ فٝ عٕبد اٌفشدٚط االػٍٝ اٌٍُٙ اِيٓ يب سة اٌؼبٌّيٓ ٚايضب ا٘ذٜ اٌىزبة اٌٝ‬
‫عّيغ عالة اٌجشِغخ ٚػٍَٛ اٌؾبعت فٝ اٌٛعٓ اٌؼشثٝ ٚاٌٝ وً ِب يشيذ االعزفبدح ِٓ‬
     ‫٘زا اٌىزبة ٚوً ِٓ يغبُ٘ ٌٚٛ ِغبّ٘خ طغيشح فٝ اصشاء اٌّؾزٜٛ اٌؼشثٝ ػٍٝ‬
  ‫االٔزشٔذ ٚرٛفيش اٌّشاعغ ٚاٌىزت ٚاٌّمبالد ٚاٌّؼٍِٛبد ٚفٝ إٌٙبيخ ا٘ذٜ اٌىزبة اٌٝ‬
      ‫ػبئٍزٝ ٚاطذلبئٝ ٚاٌٝ اػضبء ٚاداسح ِٕزذٜ اٌفشيك اٌؼشثٝ ٌٍجشِغخ ٚوً اٌّٛالغ‬
       ‫اٌؼشثيخ اٌزٝ رخض اٌجشِغخ ٚػٍَٛ اٌؾبعت ٚاٌزٝ اعزفذد ِٕٙب وضيشا ٚاٌٝ اػض‬
                        ‫االشخبص اٌٝ لٍجٝ اداَ اهلل ػٍيٗ اٌظؾخ ٚاٌؼبفيخ ِغ رؾيبرٝ‬




                                                            ‫ِمذِخ اٌىزبة :-‬
   ‫ثغُ اهلل ٚاٌظالح ٚاٌغالَ ػٍي اششف اٌّشعٍيٓ عيذٔب ِؾّذ ػٍيٗ اٌظالح ٚافضً‬
                               ‫اٌزغٍيُ ٚػٍٝ اطؾبثٗ ٚاي ثيزٗ االششاف اٌغب٘شيٓ‬

   ‫وضيش ِٕٕب يؼشف ػٓ اٌجشِغخ ٚلذ يخزٍف ِغزٜٛ وً ِٕب ِغ ِالؽظخ أٝ ارىٍُ ػٓ‬
  ‫اٌجشِغخ فٝ اٌٛضغ اٌخبص ثبٌّجشِغيٓ ٚاٌّغٛسيٓ اٌؼشة ِٕٚب ِٓ ٘ٛ ِجشِظ رغجيمبد‬
                     ‫ٚيت , رغجيمبد عغؼ اٌّىزت , رغجيمبد لٛاػذ اٌجيبٔبد ....اٌخ‬

  ‫ٚرؼشف اٌٍغبد إٌّزششٜ فٝ اٌٛعٓ اٌؼشثٝ ٚ٘ٝ رمٕيخ اٌذٚد ٔذ ٚايضب ٌغخ اٌغبفب‬
  ‫ٚعجؼب ٕ٘بن ٌغبد اخشٜ ٌىٕٙب اٌّغيغشح ؽبٌيب ٚعيمٛي ٌٝ اؽذُ٘ ِٚب ػاللخ ٘زا‬
‫اٌىالَ ثّٛضٛع ؽذيضٕب فٝ اٌىزبة ػٍٝ رظّيُ أظّخ اٌزشغيً فبٔب الٛي اْ ٘زا يذخً‬
         ‫فٝ طٍت ٚاعبط اٌّٛضٛع فبٌزٜ عؼٍٕٝ اوزت ٘زا اٌىزبة الفزؼ افك ٚػمٛي‬
    ‫اٌّجشِغيٓ ٚاٌّغٛسيٓ اٌؼشة ٔؾٛ عضء ِزمذَ ِٓ اٌجشِغخ اٌّزمذِخ ٌُ يىٓ اٌىضيشيٓ‬
   ‫يؼشف ػٕٗ اٜ شئ ٚ٘ٛ ثشِغخ أظّخ اٌزشغيً فىٍٕب ٔزؼبًِ وً يَٛ ٚوً ٌؾظخ ِٓ‬
 ‫ٚلزٕب ػٍٝ اٌؾبعت ِغ ٔظبَ اٌزشغيً اٌؼذيذ يؼشفْٛ ويفيخ اٌزؼبًِ ِؼٗ ٕٚ٘بن ِٓ ال‬
‫يؼٍُ غيش اعبعيبد اٌزؼبًِ ِؼٗ ٚخظٛطب ِغ إٌظبَ ٔٛافز (‪ )Windows‬اٌزٜ أزشش ِٚب‬
     ‫صاي ِٕزششا ثىضشح فٝ اٌٛعٓ اٌؼشثٝ ثً فٝ اٌؼبٌُ وٍٗ ٚايضب ٕ٘بن ِٓ يؼشف ويف‬
    ‫يؼًّ ٔظبَ اٌزشغيً ٚيغزفيذ ِٓ ِؼشفزٗ رٍه اصٕبء رغٛيشٖ ٌجشاِغٗ ٚرغجيمبرٗ ٚايضب‬
 ‫ػٕذِب يؼًّ ػٍٝ رغٛيش رغجيك ِزؼذد إٌّظبد (اٜ يؼًّ ػٍٝ اوضش ِٓ ٔظبَ رشغيً‬
                                ‫ٕٚ٘ب شجٕٙب ٚاعٍمٕب اعُ ِٕظخ ػٍٝ ٔظبَ اٌزشغيً)‬

   ‫ٚرٌه ٚاْ وبْ عيذا اال إٔب ِب صٌٕب فٝ ِشؽٍخ ِجزذئخ عذا فٝ اٌجشِغخ ٚ٘زا ِٓ اعجبة‬
     ‫رأخشٔب ػٓ اٌغشة ال الظذ اْ ػٍيٕب اٌجذء فٝ رظّيُ ٚثشِغخ أظّخ رشغيً فٝ اٌٛلذ‬
    ‫اٌؾبٌٝ ٚاْ اٌىً يغت ػٍيٗ رؼٍُ ويفيخ رظّيّٙب ٚثشِغزٙب ٌىٝ ٔزمذَ أب ال الٛي ٘زا‬
     ‫فغجً اٌزمذَ ٚاالصد٘بس ٌٕب وضيشح ٚاٌىً يجذع فيّب يؾزشفٗ ٚيؼًّ ثٗ فيغت ايضب أشبء‬
‫رغجيمبد ػشثيخ لٛيخ ِٕبفغخ ٚؽزٝ ال ٔخزٍف وضيشا فٝ ٘زٖ إٌمغخ ٌٓ ادخً فيٙب وضيشا‬
    ‫اٌزٜ عؼٍٕٝ اوزت ٘زا اٌىزبة ٘ٛ إٔٝ ٚعذد الجبال وجيشا ِٓ اٌشجبة اٌؼشثٝ (ٚاٌزٜ‬
        ‫افزخش ثبٕٔٝ ٚاؽذ ِٕٗ) ػٍٝ أشبء ٔظبَ رشغيً ػشثٝ ٚ٘زا اٌؾّبط ٚ٘زٖ اٌفىشح‬
     ‫ٌيغذ ٌٚيذح اٌيَٛ اٚ اٌشٙش اٚ اٌغٕخ اٌؾبٌيخ ثً أٙب رمشيجب ثذأد ِٕز االٌفيخ اٌغذيذح‬
      ‫ٚاْ وبٔذ لجً رٌه ايضب ٌىٓ ثؼذ االٌفيخ اٌضبٔيخ ثذأد اٌفىشح رخشط اٌٝ اٌغبؽخ ٚثمٛح‬
  ‫ٚوّب الٛي دائّب } رؼذدد االعجبة ٚاٌّٛد ٚاؽذا{ اٜ اْ اٌّشء يّٛد ثبٌغُ اٚ ثبٌمزً اٚ‬
 ‫ثبٜ شئ فٙزٖ ِغشد اعجبة ٌىٓ اٌّٛد ٚاؽذا ٌٚمبء اهلل ٚاؽذا ايضب فٍٓ يزغيش رٌه ثزغيش‬
         ‫عجت ٚٚعيٍخ اٌّٛد ٚوزٌه فٝ ِغأٌخ أشبء ٔظبَ ػشثٝ رؼذدد االعجبة ٌزٍه‬
 ‫اٌفىشح ٚاٌفىشح ٚاٌٙذف ٚاؽذا ايضب فبالعجبة اٌزٝ رذفغ ٌٕظبَ رشغيً ػشثٝ رخزٍف ِٓ‬
     ‫ِغّٛػخ الخشٜ ثً ِٓ فشد الخش فٕٙبن ِٓ يمٛي ثبٕٔب الثذ ٌٕب ِٓ اٌزخٍض ِٓ اٌزجؼيخ‬
   ‫ٌٍغشة فٝ ِغبي أظّخ اٌزشغيً ٚاٌجشِغخ ٌٚغبرٙب ٕٚ٘بن ِٓ يمٛي ٔشيذ ِٕبفغخ اٌغشة‬
   ‫ٚاصجبد لٛرٕب ٚلذسرٕب وشجبة ِٚجشِغيٓ ِٚغٛسيٓ ػشة ٕٚ٘بن ِٓ يمٛي ثبْ اٌٙذف ٘ٛ‬
‫رؼٍيّٝ ٌضيبدح ِؼشفزٕب اٌجشِغيخ ٚوضيشا ِٓ االعجبة ٚاٌزٝ يؼٍّٙب اغٍجٕب ار اوبد اعضَ أٗ‬
     ‫ٌيظ ٕ٘بن ِٓ ِجشِظ ػشثٝ ِزّشط اال ٚلذ ِش ػٍيٗ اؽذٜ إٌّبلشبد اٌزٝ رزؾذس‬
  ‫ػٓ ٘زٖ إٌمغخ ٚاْ اخزٍفذ االِبوٓ ٚاخزٍف اٌزٛليذ ٌزا فّٓ ٘زا إٌّغٍك وزجذ ٘زا‬
          ‫اٌىزبة ٌيىْٛ وّشعغ طغيش ٌٍجذء فٝ ػٍّيخ ثشِغخ ٚرظّيُ أٔظّخ اٌزشغيً ِغ‬
  ‫ِالؽظخ اْ رظّيُ أٔظّخ اٌزشغيً ػبٌُ خبص ٚثؾش ِٓ اٌؼٍَٛ اٌّزشاثغخ ِؼب ٚال يّىٓ‬
        ‫اثذا ؽظش٘ب فٝ وزبة ٚاؽذ اٚ ِشعغ ٚايضب الٔٙب فٝ رغذد ِغزّش ٚاْ اسدد رظّيُ‬
 ‫ٔظبَ ٌٍزشغيً اٚ اٌّؼشفخ اٌىبٍِخ ثٙزٖ اٌؼٍّيخ فؼٍيه ثبٌجؾش اوضش فٝ اٌّظبدس االخشٜ‬
        ‫اٌؼذيذح ٕٚ٘بن ثبة فٝ اٌىزبة عيٛضؼ ٌه ويفيخ اٌجؾش ٚايغبد ِظبدس فٝ رظّيُ‬
       ‫ٚثشِغخ أظّخ اٌزشغيً ٚايضب ِشفك ػذد وجيش ِٓ اٌّشاعغ ٚاٌّظبدس ٌىيفيخ رظّيُ‬
       ‫ٔظُ اٌزشغيً ٚأرّٕٝ ِٓ اهلل اْ يىْٛ لذ ٔغؾذ ٚٚفمٕٝ اهلل فٝ اخشاط ٘زا اٌؼًّ‬
     ‫اٌيىُ ٚ٘ٛ خبٌض ٌٛعٗ اهلل ٚال اسيذ شئ عٜٛ فمظ دػٛح ثظٙش اٌغيت ٚؽفظ اٌؾمٛق‬
                                                                        ‫ٚرؾيبرٝ ٌٍغّيغ‬
                                                          ‫ٌّٓ ٘زا اٌىزبة :-‬
‫اٌىزبة ِٛعٗ ٌٍّغزٜٛ اٌّؾزشف فٝ اٌجشِغخ ثشىً اخض ٚايضب ٌٍّغزٜٛ اٌّزٛعظ‬
  ‫فٝ اٌجشِغخ الٔٗ يؾزٜٛ ػٍٝ ِؼٍِٛبد ال رظٍؼ ٌٍّجزذئيٓ ٌزا لجً اٌمشاءح ٚااللذاَ‬
                                              ‫ػٍٝ اعزخذاَ اٌىزبة رأوذ ِّب يٍٝ :‬

                     ‫- اٌّبِه ثٍغخ اٌزغّيغ (االعّجٍٝ) ٚايضب ٌغزٝ اي++‪C/C‬‬       ‫1‬
       ‫- فّٙه ٌّب ٘يخ ِٕظِٛخ اٌؾبعت ُِٚ يزىْٛ ِٚىٛٔبد اٌؾبعت اٌذاخٍيخ‬          ‫2‬
 ‫ٚاٌفيضيبئيخ ٚاٌجشِغيخ أظؼ ثىٛسط ػٓ ِؼّبسيخ اٌؾبعت ٚوٛسط ػٓ ِٕظِٛخ‬
‫اٌؾبعت اٚ يّىٓ االعزؼبٔخ ثىزت اٚ ششٚؽبد اٚ دٚساد خبطخ ثزٌه ٌىٓ ػٍيه‬
   ‫اْ رىْٛ رٚ ِغزٜٛ ػبٌٝ ِٓ فُٙ ِب٘يخ ِٕظِٛخ اٌؾبعت اٌىبٍِخ ِٚب٘يخ‬
                                                         ‫ِؼّبسيخ اٌؾبعت‬
   ‫- اٌّبِه ثبٌزاوشح ٚأٛاػٙب ٚويفيخ اٌزؾىُ ثٙب ٚويفيخ اٌزؼبًِ ِؼٙب ِٓ ِخزٍف‬   ‫3‬
   ‫االٚضبع ٚأب أظؼ ثىٛسط ػٓ اداسح اٌزاوشح ٚايضب وٛسط ػٓ ‪Data Structure‬‬
 ‫- عزؾزبط اٌٝ ِؼشفخ عبثمخ ثبٔظّخ اٌزشغيً ٚاعبعيبد اٌزؼبًِ ٚاْ يىْٛ لذ‬          ‫4‬
 ‫عجك ٌه اٌزؼبًِ ِغ أظّخ رشغيً ِضً (‪)Windows/Linux/Mac/Minix…etc‬‬
                                               ‫ِغ ِالؽظخ اْ ‪ etc‬رؼٕٝ اٌخ‬
       ‫- اْ يىْٛ لذ ِضٝ ػٍيه ٚأذ ِجشِظ ٚلذ وجيشا ٚاوزغجذ خجشاد وجيشح‬          ‫5‬
      ‫ٚاطجؾذ ِٙبسره ػبٌيخ ٚاْ رىْٛ لذ عشثذ ثشِغخ رغجيمبد ٚثشاِظ ػذيذح‬
 ‫ٚيفضً اْ رىْٛ رغجيمبد لٛيخ ٌٚيغذ وبٌّؼزبدح ِضً ثشاِظ إٌظبَ اٌّغبػذح‬
                        ‫(ثشٔبِظ ِضبد اٌفيشٚعبد ٚثشٔبِظ رغضئخ اٌمشص ..اٌخ)‬
‫- اٌزشويض اٌشذيذ اصٕبء اٌششػ ٚاٌزغجيك اْ ٚعذ ٚاٌظجش ٚاالعزؼبٔخ ثبٌّؼٍِٛبد فٝ‬   ‫6‬
                   ‫اٌىزبة ٚاٌّشاعغ ٚاٌّظبدس اٌزٝ روشد فيٗ ٌزؾميك اٌّؼشفخ‬
   ‫- ػٍيه ثبْ رؼشف عيذا أٗ ٌيظ اٌغجت اٌٛؽيذ ٌذساعخ ويفيخ رظّيُ ٚثشِغخ‬         ‫7‬
     ‫أظّخ اٌزشغيً ٘ٛ ٌىٝ ٔظُّ ٔظبَ رشغيً ثً ٕ٘بن فٛائذ ػذيذح عٛف‬
                                                        ‫اروش٘ب اْ شبء اهلل‬
  ‫- ػٍيه ثبالعزؼبٔخ ٚاٌزٛوً ػٍٝ اهلل ٚال رٕغٝ اٌمٙٛح ثبعزّشاس الٔٙب عزفيذن‬     ‫8‬
                                                      ‫ٚعزؾزبعٙب ثال شه‬

         ‫ِغ اعيت رّٕيبرٝ ٌٍغّيغ ثمشاءح عؼيذح ِٚفيذح اْ شبء اهلل رؼبٌٝ‬

                    ‫عألَٛ اٚال ثزؼشيف ٔفغٝ ٚاػغبءوُ ٔجزح طغيشح ػٓ ِٓ يؾذصىُ‬

                                                                     ‫ِٓ أٔب :*-‬
                      ‫اٌغ١ذ : ِؾّذ اثشا٘١ُ شبة ِظشٜ ِٛاٌ١ذ 1/5/5991‬          ‫‪‬‬
                                      ‫اٌذساعخ : ؿبٌت ثبٌظف االٚي اٌضبٜٔٛ‬     ‫‪‬‬
                   ‫( إٌّظٛسح – ِؾبفظخ اٌذلٍٙ١خ – عّٙٛس٠خ ِظش اٌؼشث١خ(‬       ‫‪‬‬
      ‫اٌّشٛاس اٌزمٕٝ : ِٓ اٌشجبة اٌغذد اٌز٠ٓ رشثٛا ِٕز ٔؼِٛخ اظبفشُ٘‬         ‫‪‬‬
         ‫ػٍٝ اعزخذاَ اٌؾبعت ٚاٌجشِغخ فمذ ثذأد رؼٍُ اٌجشِغخ فٝ ػبَ‬
       ‫2002 فٝ عٓ اٌغبثؼخ ٚخالي خّظ عٕٛاد ارمٕذ اٌجشِغخ ٚاٌىض١ش‬
  ‫7002 ارغٙذ اٌٝ ِغبي االِٓ‬          ‫ِٓ ػٍِٛٙب اٌّخزٍفخ ٚفٕٛٔٙب ِٕٚز ػبَ‬
         ‫االٌىزشٚٔٝ ٚاالثؾبس اٌؼٍّ١خ فٝ ػٍَٛ اٌجشِغخ اٌؼّ١مخ ٚاٌّزمذِخ‬
        ‫إٌز١غخ : اٌؾّذ هلل خالي ٘زٖ اٌشؽٍخ اٌـٛ٠ٍخ اٌشبلخ ارمٕذ فْٕٛ‬        ‫‪‬‬
                                                     ‫ٚػٍَٛ وض١شح ٌٍجشِغخ‬
         ‫ِضً : أّبؽ اٌجشِغخ اٌّخزٍفخ ِضً ّٔؾ ثشِغخ اٌىبئٕبد ٚاٌجشِغخ‬        ‫‪‬‬
         ‫اٌٙ١ىٍ١خ ٚغ١ش٘ب ٚثذأد ِٛخشا ثبرمبْ ّٔؾ اٌخبدَ اٌّّزبص ٌٍّٕٙذط‬
         ‫ِؾّٛد فب٠ذ اٌغبٌٝ عذا ػٍٝ لٍجٝ ٚػاللزٝ ثٗ ؿ١جخ ٚاعزف١ذ ِٕٗ‬
          ‫وض١شا ٚارّٕٝ ٌمبءٖ راد ٠َٛ ٚاؿّؼ ثبْ اوْٛ ِضٍٗ ٚافؼً اْ شبء‬
                                                                      ‫اهلل‬
      ‫ارمٓ ثفؼً اهلل ٚؽّذٖ اٌؼذ٠ذ ِٓ ٌغبد اٌجشِغخ‬       ‫اٌٍغبد اٌزٝ اع١ذ :‬   ‫‪‬‬
‫‪Basic‬‬       ‫++‪ٚ Assambley ٚ C#/ C/C‬اي‪ٚ Delphi‬اي‪ٚ Perl‬اي‬               ‫ِضً‬
 ‫ٚ++‪ٚ Ruby ٚ Python ٚ Visual C‬ث١ئخ اي ‪Lua , Jython ٚ Scala‬‬
         ‫‪ .NET‬اػبفخ اٌٝ ٌغبد اخشٜ غ١ش ِشٙٛسح ٚرؼزجش ِ١زخ ؽبٌ١ب ٚٔبدسح‬
        ‫االعزخذاَ ٌٚىٓ وٕذ رؼٍّزٙب ٌالعزفبدح ػٍّ١ب ِٓ اعبٌ١ت اٌجشِغخ‬
                                      ‫اٌّخزٍفخ ٌزّٕ١خ اٌؼمً اٌجشِغٝ ٌذٜ‬
‫‪ٚ Mysql‬اع١ذ ا٠ؼب‬       ‫لٛاػذ اٌج١بٔبد : فٛوظ ثشٚ / اٚساوً / اوغظ /‬        ‫‪‬‬
                    ‫ػًّ اٌزـج١مبد اٌزغبس٠خ اٌمبئّخ ػٍٝ االٔظّخ ٚغ١ش٘ب‬
      ‫اٌزؼٍُ : ِب صٌذ فٝ عٓ طغ١شح ٌٚغذ ػبٌّب ٚال ِؾزشفب ثبالطً ٌزا‬        ‫‪‬‬
        ‫ِب صٌذ ارؼٍُ ٌغبد ٚاعبٌ١ت ٚػٍَٛ ثشِغخ اخشٜ ِٚٓ اٌٍغبد اٌزٝ‬
  ‫>> اٌٍغخ اٌزٝ رؼغجٕٝ اٚ‬       ‫ارؼٍّٙب ‪ٌٚ XML ٚ PHP/HTML‬غبد اخشٜ‬
                                             ‫اؽزبعٙب اصٕبء ِشؽٍخ اٌزؼٍُ‬
      ‫االٔظّخ : ثذأد ِٓ ػذح عٕٛاد فٝ ٘زا اٌّغبي ٚٚطٍذ ثفؼً اهلل‬           ‫‪‬‬
               ‫اٌٝ ِغزٜٛ ِزمذَ ػبٌٝ فٝ االٔظّخ ٚاٌزوبء االطـٕبػٝ‬
         ‫اخ١شا : أرّٕٝ ِٓ اهلل اْ ٠ؾمك وبفخ اؽالِٝ ٚؿّٛؽبرٝ ٚاٌزٝ‬         ‫‪‬‬
         ‫خــذ ٌٙب ِغجمب ٚاِشٝ ػٍٝ اٌذسة ٌزؾم١مٙب ٚارّٕٝ ِٓ اهلل‬
            ‫اٌزمذَ الِزٝ اٌؼشث١خ االعالِ١خ فٝ ِغبي اٌجشِغ١بد ٚاٌجشِغخ‬
                                      ‫ٚاٌزـٛ٠ش ٚاْ ٠ٕفغ ثٝ اِخ االعالَ‬
                       ‫اٌجذايخ‬
                                                     ‫ِب ٘ٛ ٔظبَ اٌزشغيً ؟‬
     ‫عٙبص اٌؾبعت : ٘ٛ ِغّٛػخ ِٓ اٌششائؼ االٌىزشٚٔيخ ٚاٌؼزبد ٚاٌّزؾىّبد‬        ‫‪‬‬
  ‫اٌّشرجغخ ِغ ثؼضٙب ٌزٛفيش ِٕظخ رشغيً ٌٍجشاِظ ٚاٌجشِغيبد ٚاٌزٝ ثذٚٔٙب ٌٓ‬
  ‫يؼًّ ٘زا اٌغٙبص ٚيّىٓ رمغيُ اٌجشاِظ ثؾغت عجيؼخ ػٍّٙب ٚٚظيفزٙب اٌٝ‬
         ‫لغّيٓ ّ٘ب ثشاِظ اٌّغزخذَ ٚاٌزٝ طّّذ خظيظب ٌؾً ِشبوً‬
‫اٌّغزخذَ ٚثشاِظ إٌظبَ ٚاٌزٝ رزؾىُ فٝ ػزبد ِٚٛاسد اٌؾبعت ٚيؼزجش ٔظبَ‬
 ‫اٌزشغيً ِضبال ٌجشاِظ إٌظبَ ؽيش يذيش ػزبد ِٚٛاسد اٌؾبعت ثبالضبفخ اٌٝ ِيضح‬
    ‫ِّٙخ ٚ٘ٝ رٛفيش ثيئخ رشغيً ّٚ٘يخ (‪ٌ )Virtual Machine‬جشاِظ اٌّغزخذَ‬
   ‫ٚيٛضؼ اٌزؼشيف اٌغبثك ػذدا ِٓ اٌّفب٘يُ ٚاٌّظغٍؾبد اٌزٝ يغت ػٍيٕب اْ‬
‫ٔمف ػٕذ٘ب ٚٔٛضؾٙب ثشىً ِفظً فبٌؾبعت ٘ٛ ِٕظخ رشغيً ؽميميخ ٌالٚاِش‬
   ‫ٚيأرٝ رٌه ثغجت ٚعٛد ِزؾىُ خبص ٌّؼبٌغخ االٚاِش ٚرٕفيز٘ب ٘زا اٌّزؾىُ‬
        ‫٘ٛ اٌّؼبٌظ (‪ )Processor‬ؽيش يؼًّ ػٍٝ رٕفيز اٌؼٍّيبد (ِضً اٌؼٍّيبد‬
‫إٌّغميخ ٚاٌؾغبثيخ اٌّخزٍفخ) ٚاسعبي ٔزبئغٙب اٌٝ االِبوٓ إٌّبعجخ اٌّغٍٛثخ‬
‫ٚرغّٝ ِغّٛػخ االٚاِش اٌزٝ يٕفز٘ب اٌّؼبٌظ ثبعُ اٌجشاِظ ٚثغجت رىٍفخ ثٕبء‬
      ‫اٌّؼبٌظ فبٔٗ غبٌجب ِب يزؼشف ػٍٝ ػذد ِؼيٓ ِٓ االٚاِش ٚاٌزٝ رؼشف ثبعُ‬
                                                          ‫(‪)Instruction Set‬‬
                                                      ‫أظش اٌٝ اٌشىً 1,1‬
 ‫ٚرشىً اٚاِش اٌّؼبٌظ ٌغخ ثشِغخ ِٓ خالٌٙب يّىٓ ثشِغخ اٌؾبعت ٚوزبثخ اٌجشاِظ ٌؾً‬
 ‫ِشبوً اٌّغزخذَ ٚ٘زٖ اٌٍغخ رؼشف ثبعُ ٌغخ االٌخ (‪ٚ . )Machine Language‬رزىْٛ‬
   ‫٘زٖ اٌٍغخ ِٓ 1.0 ؽيش اْ اٚاِش اٌّؼبٌظ ِب ٘ٝ اال عٍغٍخ ِؼيٕخ ِٓ اٌشِٛص فّضال‬
                ‫ٌزؼييٓ اٌميّخ 44713 ٌٍّغغً ‪ AX‬يغت اْ يؾٜٛ اٌجشٔبِظ ػٍٝ االِش‬
  ‫( 111000000000001100011101) ٚثبٌزبٌٝ رىْٛ ػٍّيخ وزبثخ ثشٔبِظ ِزىبًِ ثٙزٖ‬
 ‫اٌٍغخ اِشا فٝ غبيخ اٌظؼٛثخ ٚوزٌه ِّٙخ رٕميؼ اٌجشٔبِظ ٚرغٛيشٖ فٝ اٌّغزمجً رىْٛ‬
  ‫ػٍّيخ ِؼمذح ايضب ٌزٌه ظٙشد ٌغخ اٌزغّيغ ٌؾً ٘زٖ اٌّشىٍخ ؽيش اْ اٌٍغخ رذػُ‬
 ‫ِغّيبد ِٚخزظشاد ٌٍّغغالد ٚآلٚاِش اٌّؼبٌظ فّضال االِش اٌغبثك فٝ ٌغخ اٌزغّيغ‬
                                                            ‫يىْٛ ثبٌظٛسح االريخ .‬


 ‫111000000000001100011101 ‪MOV AX,0x7C00 ; Instead of‬‬




    ‫ٚاٌزٜ يغت رؾٛيٍٗ اٌٝ ٌغخ االٌخ ؽزٝ يّىٓ ٌٍّؼبٌظ اْ يمَٛ ثزٕفيزٖ ٘زا اٌّؾٛي‬
‫يغّٝ اٌّغّغ (اعّجٍش) ٚاٌزٜ يمَٛ ثزؾٛيً ٌغخ اٌزغّيغ اٌٝ ِب يمبثٍٗ ثٍغخ االٌخ ٌُٚ‬
   ‫رٕغؼ ٌغخ اٌزغّيغ فٝ رٛفيش ٌغخ ػبٌيخ اٌّغزٜٛ رجغظ ػٍّيخ وزبثخ اٌجشاِظ ثشىً‬
  ‫اوجش ٚرٌه ثغجت أٙب ِغشد اخزظبساد ٌٍغخ االٌخ ٌزا فغشػبْ ِب رُ رغٛيش ٌغبد ػبٌيخ‬
  ‫اٌّغزٜٛ ِضً اٌغٝ ٚاٌغٝ ++ ثؾيش رىزت اٌجشاِظ فيٙب ثشىً ِجغظ ثؼيذا ػٓ‬
    ‫رؼميذاد ٌغخ االٌخ ٚاٚاِش٘ب ِٚغغالرٙب ٚرذػُ ٘زٖ اٌٍغبد ػذدا ِٓ اٌزشاويت ٚعًّ‬
    ‫اٌزؾىُ اٌؼبٌيخ اٌّغزٜٛ ٌٚىٝ يٕفز اٌّؼبٌظ ثشاِظ ٘زٖ اٌٍغبد فبٔٗ يؾزبط اٚال اٌٝ‬
 ‫رشعّخ اٌشفشاد اٌّظذسيخ اٌٝ ِب يمبثٍٙب ٌغخ االٌخ اٚ ٌغخ اٌزغّيغ ٚ٘زا يزُ ػٓ عشيك‬
 ‫ِب يّغٝ ثبٌّزشعُ (‪ٚ )Compiler‬ثؼذ٘ب يمَٛ اٌّغّغ ثزؾٛيً شفشح ٌغخ اٌزغّيغ اٌٝ‬
                                      ‫ثشٔبِغب ثٍغخ االٌخ ٚاٌزٜ يغزغيغ اٌّؼبٌظ رٕفيزٖ‬

     ‫ٚؽزٝ االْ ٌُ ٔزوش ٚظيفخ ٔظبَ اٌزشغيً الْ ثيئخ اٌزشغيً اٌؾميميخ ٘ٝ اٌّؼبٌظ‬
‫ٌٚيغذ أظّخ اٌزشغيً اٚ غيش٘ب ِٓ اٌجشاِظ ٚػٍٝ اٌّجشِظ االٌّبَ ثىيفيخ ثشِغخ ػزبد‬
‫ِٚزؾىّبد اٌؾبعت ٚويفيخ عجبػخ اٌّخشعبد ػٍٝ اٌشبشخ ٚلشاءح اٌجيبٔبد ِٓ ِزؾىُ‬
 ‫ٌٛؽخ اٌّفبريؼ ٚال يمزظش ػٍٝ رٌه ثً اْ ػٍٝ اٌّجشِظ رٛفيش عشلب ٚدٚاال الداسح اٌزاوشح‬
      ‫ِٓ ؽغض اٌّمبعغ ٚرؾشيش٘ب ٚوزٌه اداسح عّيغ ػزبد اٌؾبعت وً رٌه يغؼً وزبثخ‬
      ‫اٌجشاِظ شجٗ ِغزؾيٍخ ٚ٘زا ِب ادٜ اٌٝ ظٙٛس عجمخ ثشِغيخ (‪ )Layer‬رذيش ػزبد‬
  ‫ِٚٛاسد اٌؾبعت ٚرٛفش ٚاعٙخ ثشِغيخ ٌٍّغزخذَ ٌىٝ يزؼبًِ ِغ ٘زٖ اٌّٛاسد ٚ٘زٖ‬
  ‫اٌغجمخ عّيذ ثٕظبَ اٌزشغيً (‪ٚ )Opreating Sysrem‬اٌٙذف ِٓ ٘زٖ اٌغجمخ ٘ٝ‬
    ‫ػضي اٌّجشِظ ػٓ رؼميذاد اٌؼزبد ثؾيش اْ اداسح ٘زٖ اٌؼزبديبد اطجؾذ ِٓ ِّٙخ‬
  ‫ٚاخزظبص ٔظبَ اٌزشغيً ٚفٝ ٔفظ اٌٛلذ رٛفش ٚاعٙخ ثشِغيخ ٌالعزفبدح ِٓ ٘زٖ‬
                                                                   ‫اٌؼزبديبد‬




 ‫وّب ٘ٛ ِٛضؼ فٝ اٌشىً اٌغبثك فبْ ادٔٝ عجمخ ٘ٝ عجمخ اٌؼزبد (‪)Device Level‬‬
 ‫ؽيش رزىْٛ ِٓ اٌّزؾىّبد ٚاٌششائؼ اٌّزىبٍِخ (‪ٚ )Integrated Circuit‬االعالن ٚوً‬
    ‫ِب يزؼٍك ثؼزبد اٌؾبعت ِٚٓ صُ يٍٝ ٘زٖ اٌغجمخ عجمخ (‪ٚ )Microarchitecure‬فيٙب‬
  ‫رظٙش ثشِغيبد (‪ٚ )Mircoprogram‬اٌزٝ رزؾىُ فٝ ػًّ اٌّزؾىّبد ٌىٝ رمَٛ ثبداء‬
 ‫ٚظيفزٙب فّضال ثشِغيخ اي(‪ )data path‬ثذاخً اٌّؼبٌظ ٚاٌزٜ يمَٛ فٝ وً دٚسح عبػخ‬
            ‫(‪ )Clock Cycle‬ثغٍت ليّزيٓ ِٓ اٌّغغالد اٌٝ ٚؽذح اٌؾغبة ٚإٌّغك‬
  ‫(‪ )ArithmeƟc Logic Unit‬اٌزٝ رغشٜ ػٍيُٙ ػٍّيخ ِب ِٚٓ صُ رمَٛ ثؾفظ إٌزيغخ‬
                            ‫اي‬
   ‫ٚظيفخ ‪ ٝ٘ Data Path‬رٕفيز االٚاِش‬                       ‫فٝ اؽذ اٌّغغالد‬
‫ٚرٌه ثبسعبٌٙب اٌٝ ٚؽذح اٌؾغبة ٚإٌّغك ٚرشىً ِغّٛػخ االٚاِش اٌّذػِٛخ ٚوزٌه‬
    ‫اٌّغغالد اٌّشئيخ ٌّجشِظ ٌغخ اٌزغّيغ عجمخ ِغّٛػخ االٚاِش ( ‪InstrucƟon Set‬‬
  ‫‪ٚ )Architecture‬رغّٝ ٘زٖ اٌغجمخ عجمخ االٌخ (‪ )Machine Language‬ؽيش رؾٜٛ‬
   ‫ػٍٝ وً اٌّؼبٌظ اٌزٝ يذػّٙب اٌّؼبٌظ ثّب فيٙب اٚاِش اٌمشاءح ٚاٌىزبثخ ِٓ ِغغالد‬
 ‫ِٚزؾىّبد اٌؼزبد (‪ٚ )Device Controller‬يٍٝ ٘زٖ اٌغجمخ عجمخ ٔظبَ اٌزشغيً ٚاٌزٝ‬
 ‫رفظً ٚرؼضي اٌؼزبد ػٓ اٌّغزخذَ فجذال ِٓ اْ يمَٛ اٌّجشِظ ثجشِغخ ِزؾىُ ااٌمشص‬
‫اٌظٍت ٚٔظبَ ٌٍٍّفبد ؽزٝ يزّىٓ ِٓ لشاءح ٍِف ػٍٝ اٌمشص فبْ إٌظبَ يٛفش ٚاعٙخ‬
      ‫ِجغغخ ثبٌظٛس )‪ٚ read (fd, buffer , size‬اخيشا رٛعذ عجمخ اٌجشاِظ (ثشاِظ إٌظُ‬
   ‫ٚثشاِظ اٌّغزخذَ) ٚال رظٕف اٌىضيش ِٓ ثشاِظ إٌظبَ ضّٓ ٔظبَ اٌزشغيً ؽيش اْ‬
  ‫اٌجشاِظ اٌزٝ رزجغ ٌٕظبَ اٌزشغيً يغت اْ رؼًّ فٝ ِغزٜٛ إٌٛاح (‪)Krenel Mode‬‬
                                                      ‫ٌٚيظ فٝ اٌّغزٛيبد االخشٜ‬
                                     ‫ٌىٕٕب ؽزٝ االْ ٌُ ٔزوش ِب ٘ٛ ٔظبَ اٌزشغيً :‬

       ‫دػٛٔب ٔؼزشف ثأْ ِٓ اٌظؼت عذا ايغبد رؼشيف ِؾذد ٌٕظبَ اٌزشغيً ٔظشا الخزالف‬
‫اٌزؼشيف ِٓ شخض ِٚغّٛػخ الخشٜ ِٚٓ اٌظؼت ايضب االرفبق ػٍٝ رؼشيف ِؼيٓ ٌٕظبَ‬
 ‫اٌزشغيً ٌىٓ ِٓ اٌزؼشيف اٌّزفك ػٍيٗ أْ ٔظبَ اٌزشغيً ٘ٛ اٌزٜ يذيش ػزبد اٌؾبعت‬
   ‫ِٚٛاسد اٌؾبعت ٚيٛفش ٚاعٙخ سعِٛيخ ٌٍزؼبًِ ِغ ػزبد ِٚٛاسد اٌؾبعت ٚاٌزٝ رّىٕٕب‬
                                                     ‫ِٓ االعزفبدح ِٓ ٘زٖ اٌّٛاسد‬




                                                  ‫ِىٛٔبد ٔظبَ اٌزشغيً :-‬
                                             ‫ِمذِخ رّٙيذيخ : ربسيخ ٔظبَ اٌزشغيً‬

 ‫ٌمذ طبؽت اٌزغٛس اٌش٘يت فٝ اٌؾبعت االٌٝ رغٛسا ِّبصال فٝ أظّخ اٌزشغيً الٔٗ‬
‫وّب روشٔب عبثمب فبْ أظّخ اٌزشغيً ٘ٝ اٌزٝ رذيش ػزبد ِٚٛاسد اٌؾبعت ٚاٌزٝ رؼىظ‬
                      ‫اؽزيبعبد اٌّغزخذَ ٚاال٘ذاف االعبعيخ ِٓ رغٛس اٌؾبعت‬

 ‫االعٙضح اٌمذيّخ اٌزٝ ثذأ ثٙب اٌؾبعت ٌُ يىٓ يؼشف ٚلزٙب شئ اعّٗ ٔظبَ اٌزشغيً‬
     ‫ار اْ اٌّغزخذَ يمَٛ ثبدخبي اٌجيبٔبد ػجش ثغبلبد اٚ اششعخ ِغٕبعيغيخ ٌيمَٛ‬
                         ‫اٌؾبعت ثّؼبٌغخ ٘زٖ اٌجيبٔبد اٌٝ اْ يٕزٙٝ اٚ يزٛلف‬

 ‫ٚاخيشا ٚطٛال اٌٝ أظّخ اٌزشغيً اٌؾذيضخ اٌزٝ رّىٓ اٌّغزخذَ ِٓ رٕفيز اٌىضيش ِٓ‬
‫اٌؼٍّيبد ِٚٓ رؾميك اال٘ذاف ثٛلذ ليبعٝ ثبٌٕغجخ اٌٝ اٌؾبعت ثذْٚ ٔظبَ رشغيً‬

                                      ‫فٝ اسثؼيٕيبد اٌمشْ اٌّبضٝ‬            ‫‪‬‬

  ‫ٚرؾذيذا فٝ ثذايزٗ ( 0491) وبٔذ االعٙضح ثذائيخ عذا ٌُٚ رىٓ رؾزبط اٌٝ أٔظّخ‬
  ‫رشغيً الٔٙب وبٔذ رمَٛ ثّؼبٌغخ ثشٔبِظ ٚاؽذ فمظ فٝ ٚلذ ثغئ لجً اْ رزّىٓ‬
‫ِٓ رشغيً ثشٔبِظ اخش ٚفٝ ثذايخ رٌه اٌٛلذ وبْ ػٍٝ اٌّغزخذَ اْ يمَٛ ثىزبثخ‬
  ‫وً اٌزؼٍيّبد ثٍغخ االٌخ ٚاٌزٝ عجك ٚٚضؾٕب٘ب عبثمب ٚوبْ ٚلزٙب اٌّغزخذَ ٘ٛ‬
  ‫ٔفغٗ اٌّجشِظ ٚوبْ ال اؽذ يّىٕٗ اٌزؼبًِ ِغ اٌؾبعت اال اشخبص ِؼيٕييٓ ُٚ٘‬
 ‫اٌزيٓ وبٔٛا يؼٍّْٛ ػٍٝ رغٛيشٖ ٚػٍّبء اٌشيبضيبد ٚاٌّشىٍخ اٌضبٔيخ أٗ وبْ ػٍٝ‬
‫اٌّغزخذَ (اٌّجشِظ) اْ يمَٛ ثىزبثخ ػٍّيبد االدخبي ٚاالخشاط ثبٌزفظيً ٌُٚ يّض‬
     ‫ٚلذ عٛيً ٚرُ عّغ وً ِب يزؼٍك ثبالدخبي ٚاالخشاط فٝ ِىزجخ رغّٝ ِىزجخ‬
    ‫االدخبي ٚاالخشاط (‪ٚ )IOCS: Input/Output System‬ػٕذِب يؾزبط اٌّغزخذَ اْ‬
   ‫يمَٛ ثبٜ ػٍّيخ رزؼٍك ثبالدخبي اٚ االخشاط فّب ػٍيٗ عٜٛ ٔذاء اؽذ اٌذٚاي اٌزٝ‬
      ‫رؾزٛيٙب اٌّىزجخ ٌزمَٛ ثٙزٖ اٌّّٙخ ٚ٘زٖ اٌؼٍّيخ عٍٙذ اٌىضيش ٚاٌىضيش ػٍٝ‬
     ‫اٌّغزخذِيٓ ٌىٓ ثبٌغجغ ِب صاي ٘زا ٌيظ وبفيب ٌزا فمذ ػًّ اٌؼٍّبء ِٚغٛسٜ‬
                                      ‫اٌؾبعت ػٍٝ اٌّضيذ ِٓ رغٛيش ٌٍؾبعت‬
                                        ‫فٝ عزيٕبد اٌمشْ اٌّبضٝ‬               ‫‪‬‬

      ‫رُ عّغ عّيغ اٌٛظبئف فٝ ِغّٛػخ ٚاؽذح ِٓ اٌجغبلبد اٌزٝ يزؼشف ػٍيٙب‬
       ‫اٌغٙبص ٚيفظً ثيٓ ٚظيفخ ٚاخشٜ ثغبلخ رؾىُ ٚرزؾىُ االعٙضح ثٙزٖ اٌجغبلبد‬
    ‫اٌّؾزٛيخ ػٍٝ اٌٛظبئف ػٓ عشيك ٌغخ رغّٝ (‪)JCL: Job Control Language‬‬
       ‫ٚ٘ىزا ػٕذ أزٙبء ثغبلخ ٚظيفخ يمشأ اٌغٙبص اٌجغبلخ اٌزٝ رٍيٙب اٌّؾزٛيخ ػٍٝ‬
                       ‫ِؼٍِٛبد رخض اٌٛظيفخ اٌزبٌيخ ٚرغّٝ ٘زٖ ثأٔظّخ اٌجبرش‬
 ‫ٚاي ‪ٚ MultiProgramming‬لذ اعُٙ وضيشا فٝ رغٛس أظّخ اٌّؼبٌغخ ٚاداء اٌؾبعت‬
   ‫فٝ رٌه اٌٛلذ ٚفٝ ػٙذ اٌغزيٕبد رغٛسد أظّخ اٌّؼبٌغخ (اٌجبرش) فغّؾذ‬
      ‫ثبْ يمَٛ اٌؾبعت ثزشغيً اِىضش ِٓ ِّٙخ ٚ٘ٛ ِب يذػٝ ثبي(‪)MultiTasking‬‬
  ‫ٚٚلزٙب وبْ ٘زا اٌّظغٍؼ عذيذا ٌُٚ يىٓ ثمٛح اٌيَٛ ٚثىفبءٖ ٘زٖ االيبَ ٚوبْ رٌه‬
 ‫ٔزيغخ ٌّالؽظخ ِظّّٝ أظّخ اٌزشغيً (ٚاٌزٜ أرّٕٝ ثؼذ لشاءح اٌىزبة اْ رىْٛ‬
       ‫اٚ رىٛٔٝ ُِٕٙ اْ شبء اهلل) ثأٔٗ ػٕذ عٍت ٚظيفخ ِب الِش ادخبي اٚ اخشاط فبْ‬
   ‫اٌّؼبٌظ يظً فٝ ٚضغ أزظبس ٌؾيٓ رٍجيخ اٌغٍت ٌزٌه وبْ ػٍٝ ٚظيفخ اخشٜ اْ‬
 ‫رمَٛ ثبالعزفبدح ِٓ اٌٛلذ اٌخبص ثبٔزظبس اٌّؼبٌظ ار رزؼبلت اٌٛظبئف ثيٓ اٌّؼبٌظ‬
                          ‫ٚٚلذ أزظبس الِش االدخبي اٚ االخشاط ٚعّيذ ٘زٖ اٌغشيمخ‬
   ‫ثبي(‪ٚ )MultiProgramming‬ال ٕٔغٝ أٗ ػٕذِب يغزغيغ اٌّؼبٌظ ِؼبٌغخ اوضش ِٓ‬
‫ٚظيفخ فٝ ٔفظ اٌٛلذ فبٔٗ يّىٕٗ خذِخ اوضش ِٓ ِغزخذَ فٝ اْ ٚاؽذ ايضب !!!!‬
     ‫ٌىٓ اٌّشىٍخ اٌزٝ ٚاعٙزٙب االٔظّخ فٝ ٘زا اٌٛلذ ٘ٛ ِؾذٚديخ لذسح االعٙضح‬
    ‫ػٍٝ رخضيٓ اٌٛظبئف اٌزٝ عزؼًّ ػٍيٙب فٝ ٔفظ اٌٛلذ ٌٚؾً ٘زٖ اٌّشىٍخ‬
   ‫اٌىجيشح رُ اثزىبس اعٍٛة عذيذ يؼضص ِٓ لبثٍيخ االعٙضح ٌخذِخ اوضش ِٓ ِغزخذَ‬
  ‫فٝ ٚلذ ٚاؽذ ٚرغّٝ (‪ٚ )TimeSharing‬فيٙب يمَٛ اٌّؼبٌظ ثزخظيض ٚلذ ِؼيٓ‬
 ‫ٌىً ٚظيفخ ٌٍؼًّ ػٍيٙب صُ يمَٛ ثبالٔزمبي اٌٝ اٌٛظيفخ اٌزبٌيخ ٚ٘ىزا ٚاٌّذح ٘زٖ‬
 ‫فٝ ادساوٕب اٌجششٜ غيش ٍِؾٛظخ ٔٙبئيب الٔٙب رمبط ثبٌّيىشٚصبٔيخ ٌىٓ اٌّؼبٌظ فٝ‬
      ‫٘زٖ اٌّذح يّىٕٗ اٌميبَ ثبداء اػّبي وضيشح (أرشٜ وُ اْ اٌٛلذ وبٌغيف اْ ٌُ‬
                                                                  ‫رمغؼٗ لغؼه)‬

                       ‫‪ ‬اٌغجؼيٕيبد : شجىبد اٌؾبعت ٚاٌؾّبيخ‬
‫ؽزٝ ٘زا اٌٛلذ وبْ ِب يضاي وً ِب يخض ثبٔظّخ اٌزشغيً ِٚجبدئٙب وبْ ِبي صاي اثؾبصب‬
       ‫فٝ ِؼبًِ اٌششوبد ٚاٌغبِؼبد اٌىجشٜ ( 0791) ؽيش رغٛس ِجذأ رغٛيك اٌجشاِظ‬
    ‫ٚأظّخ اٌزشغيً ٚعبػذ ػٍٝ رغٛيك االٔظّخ ٘زٖ ٌٍششوبد ٚاٌغبِؼبد ٚاٌغٙبد‬
    ‫اٌؾىِٛيخ ٚايضب اٌؼغىشيخ ٘ٝ لبثٍيخ ٘زٖ االٔظّخ ٌؼًّ رٛاطً ثيٓ االعٙضح ٚٔمً‬
                                    ‫اٌجيبٔبد ٚ٘ٛ اٌّؼشٚف اٌيَٛ ثبٌجشٚرٛوٛي (‪)TCP/IP‬‬

‫ٚوبْ ٔزيغخ ٌٙزا االعزخذاَ اٌّٛعغ الٔظّخ اٌزشغيً ِٓ لجً اٌغٙبد اٌّزوٛسح عبثمب‬
        ‫ٌُٚ يىٓ اٌؾبعت لذ ػشف عشيمٗ ٌٍغّيغ ِضً االْ فمذ صادد اٌؾبعخ اٌٝ رغٛيش‬
‫شجىبد ٚوزٌه اٌٝ رغٛيش أظّخ ؽّبيخ ٚاالِٓ اٌخبطخ ثٙب فىبْ اٌٙذف فٝ ٘زٖ اٌفزشح‬
‫٘ٛ رظّيُ ٔظبَ آِ ِٚؾّٝ ضذ وال ِٓ اٌفيشٚعبد ٚاٌجشاِذ اٌضبسح ٚوزٌه اٌّزغفٍيٓ‬
 ‫ٚثبٌٕغجخ ٌؼبٌُ اعزخذاَ اٌشجىبد اٌؼغىشيخ فبالِٓ ٚاٌؾّبيخ ػبًِ ِٓ اُ٘ اٌؼٛاًِ‬
                      ‫ٚعالػ اٌؾشة االٌىزشٚٔيخ ٚاالشبسح فٝ اٜ عيش ادسٜ ِٕب ثزٌه‬
      ‫ٚفٝ ٘زٖ اٌفزشح شٙذ اٌؼبٌُ ِيالد إٌظبَ اٌؼّالق (‪ٚ )UNIX‬وبْ فٝ اٌجذايخ ٔظبَ‬
   ‫ػبدٜ يؼًّ ِضً اٜ ٔظبَ اخش ؽيش وبْ يؼزّذ ػٍٝ اٌغٙبص الٔٗ لذ رّذ وزبثزٗ ثٍغخ‬
       ‫اٌزغّيغ (‪ٚ )Assembly Language‬وبْ يؾزٜٛ ػٍٝ اٌؼيت اٌزٜ فٝ ثبلٝ أظّخ‬
        ‫اٌزشغيً ٌىٓ ثؼذ ليبَ ٔفظ اٌّؼًّ اٌزٜ رُ رغٛيشٖ فيٗ ثبثزىبس ٌغخ اٌغٝ ( ‪C‬‬
 ‫‪ٚ )Language‬وبٔذ عٛسد خظيظب ٌؾً ٘زا اٌؼيت فٝ ٔظبَ اٌيٛٔىظ فىبْ ثزٌه ٔظبَ‬
    ‫اٌيٛٔىظ اٚي ٔظبَ يزُ وزبثزٗ ثٍغخ اػٍٝ ِٓ االٌخ ٚاٌزٝ ػشفذ ثؼذ٘ب ثبعُ اٌٍغبد‬
       ‫اٌؼبٌيخ اٌّغزٜٛ (‪ِ )High-Level-Language‬غ أٔٝ ال ارفك ِغ ِٓ يمٛي ثبْ ٌغخ‬
 ‫اٌغٝ ٘ٛ ٌغخ ػبٌيخ فبٌظؾيؼ ٘ٛ أٙب ٌغخ ِزٛعغخ (‪ٚ )Mid-Level-Language‬وٕزيغخ‬
‫ٌزٌه فبْ ٔظبَ اٌيٛٔىظ وبْ يؼًّ ػٍٝ عّيغ أٛاع االعٙضح ٚوزٌه يؾزٜٛ ػٍٝ اٌىضيش‬
                   ‫ِٓ اٌّّيضاد ٚاالِىبٔيبد ػٓ أظّخ اٌزشغيً االخشٜ فٝ رٌه اٌٛلذ‬

    ‫وّب شٙذد فزشح اٌغجؼيٕيبد فٝ ٘زا اٌمشْ ايضب رغٛسا عشيؼب فٝ اٌّؼبٌغبد اٌزٝ‬
  ‫رؾزٛيٙب االعٙضح ٚرغٛسا اٌّؼبٌغبد طبؽجٗ رغٛس فٝ اِىبٔيبد اٌؾبعت ٚثبٌزبٌٝ رغٛس‬
   ‫فٝ اٌخذِبد اٌزٝ يمذِٙب ٔظبَ اٌزشغيً وّب وبْ رغٛس اٌّؼبٌغبد اٌزٝ وبٔذ إٌٛاح‬
  ‫اٌزٝ غزد فىشح اٌؾبعت اٌشخظٝ اٌزٜ أزشش أزشبسا س٘يجب فٝ اٌزغؼيٕيبد فٝ‬
  ‫ٔفظ اٌمشْ ٌٚىٓ اٌؼيت االعبعٝ فٝ اٌيٛٔىظ ٘ٛ أٗ ٔظبِب ِؼمذا فٝ اٚاِشٖ فٍُ‬
             ‫يىٓ يٕبعت اٌؾبعجبد إٌّضٌيخ ٚاٌشخظيخ فٍزٌه ٌُ يىٓ االخزيبس االِضً‬
                                                            ‫ٌٍّغزخذِيٓ اٌؼبدييٓ‬

                           ‫‪ ‬اٌضّبٔيبد : صٛسح اٌؾبعجبد اٌشخظيخ‬
     ‫ٌؼجذ ششوخ اثً ٚلزئزا دٚسا وجيشا فٝ أزشبس فىشح اٌؾبعت اٌشخظٝ ار عؼٍذ‬
 ‫أزشبسٖ ٘ذفٙب اآلعبعٝ ؽيش لذِذ فىشح اْ اٌؾبعت ػجبسح ػٓ طٕذٚق رٚ اعالن‬
    ‫وٙشثبئيخ يّىٓ ادخبٌٙب فٝ اٜ لبثظ يؾزٛيٗ إٌّضي اٌؼبدٜ ٚأزشبس فىشح اٌؾبعت‬
    ‫اٌشخظٝ غزد اٌضٛسح فٝ ِغبي أظّخ اٌزشغيً ار ٌُ يٕمض اٌؾٛاعيت اال ٔظبَ‬
  ‫رشغيً ٚاضؼ ٚعًٙ االعزخذاَ ٌغزة اٌّغزخذَ اٌؼبدٜ وّب اْ اٌّؼبٌغبد اٌخبطخ‬
 ‫ثبٌؾٛاعيت اٌشخظيخ رزغٍت ٔظُ رشغيً خبطخ ثٙب ِٓ ؽيش االِىبٔيبد اٌزٝ يّىٓ‬
                                                           ‫رمذيّٙب ٌٍّغزخذَ‬

 ‫ٚثؼذ دخٛي ششوخ ‪ِ IBM‬غبي اٌؾٛاعيت اٌشخظيخ لبِذ ثزغييش ربسيخ أظّخ اٌزشغيً‬
   ‫اٌخبطخ ثبٌؾبعت اٌشخظٝ ؽيش وبٔذ ِؼظُ اٌششوبد ِزشددح ِٚزخٛفخ ِٓ دخٛي‬
     ‫عٛق اٌؾبعجبد اٌشخظيخ ٌىٓ ثؼذ إٌغبػ اٌجب٘ش اٌزٜ اللزٗ ششوخ اثً خبطخ ثؼذ‬
    ‫دِغٙب ػذح ثشاِظ الداسح اٌجيبٔبد ٚاالػّبي اٌٝ ٔظبَ اٌزشغيً اٌخبطخ ثٙب فمذ شغغ‬
  ‫٘زا ششوخ ‪ٚ IBM‬ارخزد لشاس٘ب ثبٌٕضٚاي اٌٝ عٛق اٌؾبعجبد اٌشخظيخ ٚلبِذ ثبٔزبط‬
         ‫اعٙضح ِجٕيخ ؽٛي أعشع ِؼبٌظ فٝ رٌه اٌٛلذ (0808 ‪ٌ )Intel's 16-bit‬ىٓ وبٔذ‬
  ‫ِشىٍزٙب اٌٛؽيذح ٘ٛ اْ ٔظبَ اٌزشغيً ِغ أٙب وبٔذ وجشٜ ششوبد أزبط اٌجشاِظ فٝ‬
‫رٌه اٌٛلذ ٌىٓ خجشرٙب فٝ ِغبي أظّخ رشغيً اٌؾٛاعيت اٌشخظيخ وبٔذ لٍيٍخ عذا‬
 ‫ؽيٕٙب رؼبلذد ِغ ثيً عيزظ (ِؤعظ ِٚذيش ِيىشٚعٛفذ ؽبٌيب) ٚال يخفٝ ػٍيٕب رأصيش‬
    ‫٘زا اٌؼمذ ػٍٝ ِىبٔخ ثيً غيزظ ثيٓ اغٕيبء اٌؼبٌُ ار اشزشط ؽظٌٛٗ ػٍٝ ِجٍغ ِٓ‬
‫01اٌٝ 05 دٚالس ػٓ وً ٔغخخ رجبع ِٓ ٔظبَ اٌزشغيً اٌخبص ثٗ ٌىٓ ثيً عيزظ ٚعذ‬
     ‫ٔفغٗ ثال ٔظبَ رشغيً ٚال ِظبدس رّىٕٗ فٝ أزبط ٚاؽذ ٌٍششوخ ؽغت اٌؼمذ فمبَ‬
 ‫ثبالعزؼبٔخ ثٕظبَ رشغيً عٛسٖ (‪ٌّ )Tim PaterSon‬ؼبٌظ (0808) ٚوبْ يذػٝ (‪)QDOS‬‬
       ‫اخزظبسا ي(‪ )Quick And Dirty Opreating System‬فأٔفمذ ‪ٚ Microsoft‬ثيً عيزظ‬
     ‫أزان ِجبٌغ عبئٍخ ػٍٝ ششاء ؽمٛق ٘زا إٌظبَ ٚثؼذ اعشاء رؼذيالد ثغيغخ ػٍٝ‬
   ‫إٌظبَ رّذ رغّيزٗ ة(‪ٚ )MS-DOS‬وبْ رٌه فٝ ػبَ ( 1991) ٚفٝ ٘زا اٌٛلذ أطجؼ‬
               ‫0071 عٙبص ِٕضٌٝ ِزٛفشا ٌٍششاء ثغؼش فٝ ِزٕبٚي اآلشخبص اٌؼبدييٓ‬




                       ‫ِمذِخ ػٓ أظّخ اٌزؾغ١ً :-‬


‫فٝ ٘زا اٌدضء عٛف ٔزطشق اٌٝ اٌزؼش٠ف ثٕظبَ اٌزؾغ١ً ِٚمذِخ ػٕٗ ِٚىٛٔبرٗ اٌخ .... ِٓ ٘زٖ االِٛس ٚاٌزٝ ُِٙ خذا‬
    ‫ِؼشفزٙب لجً االعزّشاس فٝ اٌىزبة ٌزا سوض ٚفسقر وذا ِؼبٔب ِٚزٕغبػ اخٛن ِٓ دػبء فٝ اٌغ١ت ٚالخٛإٔب فٝ‬
                                                                           ‫ِقش ٚفٍغط١ٓ ٚوً اٌذٚي اٌؼشث١خ‬

     ‫ِؼظُ أظّخ اٌزؾغ١ً ٘زٖ اال٠بَ ٘ٝ أظّخ رؾغ١ً ِشئ١خ (‪ٚ )operating systems are graphical‬اٌزٝ رغّٝ‬
              ‫ثٛاخٙبد اٌّغزخذَ ٚٔسٓ عٕقً اٌٝ ثشِدخ ٘زٖ إٌمطخ فٝ اٌدضء االخ١ش ِٓ اٌذٚسح اْ ؽبء اٌشزّٓ‬

                                                                     ‫ِب ٘ٝ ٚخٗ اٌسبخخ اٌٝ أظّخ اٌزؾغ١ً ؟‬

‫اٌسبعت ثذْٚ ٔظبَ رؾغ١ً ٘ٛ ِدشد خشدح ِٓ اٌغ١ٍ١ىْٛ ( ٚ٘ٛ اٌّىْٛ اٌشئ١غٝ ٌٍذاساد االٌىزشٚٔ١خ ٚاٌىٙشثبئ١خ فٝ‬
                                                                                                 ‫اٌسبعت)‬

  ‫فٝ ػبَ 0591 وبٔذ رمش٠جب ثذا٠خ زمجخ أظّخ اٌزؾغ١ً فىبْ ٕ٘بن اٚي ٔظبَ رؾغ١ً زم١مٝ ٌٍؼًّ ػٍٝ اٌسبعت ٚوبْ‬
                                          ‫٠غّٝ ٚلزٙب ‪ّ٠ٚ GM-NAA I/O‬ىٕه اٌمشاءح ػٕٗ ِٓ ٚ٠ى١ذ٠ب ٕ٘ب‬

                                                      ‫‪http://en.wikipedia.org/wiki/GM-NAA_I/O‬‬

 ‫فىبْ ٘زا إٌظبَ ٠ذػُ رؾبسن اٌجشاِح ٚاٌزطج١مبد ٚاٌزسىُ ثبي‪ٚ buffers‬وبْ اٚي ٔظبَ رؾغ١ً ٠غّر ثزؾغ١ً اٌجشاِح‬
              ‫اٌّغزخذَ فٝ وزبثزٙب ٌغخ االعّجٍٝ >>>>> فزخ١ً إٌبط وبٔذ ػجمش٠خ ِجشِد١ٓ اٌسبعت ٚلزٙب اصاٜ‬
‫ِٚٓ ثُ وبْ ٕ٘بن ٔظبَ رؾغ١ً ٠ذػٝ ‪ SOS‬اٚ ‪ ٛ٘ٚ The SHARE Operating System‬وبْ إٌظبَ االٚي اٌزٜ ٠ز١ر‬
                  ‫اٌزسىُ اٌىبًِ ثبي ‪ٚ Buffer‬وبْ ٠ؤوذ ػٍٝ اِىبٔ١خ رؾبسن اٌجشاِح ٚوبْ ا٠ضب ٠ذػُ ثشاِح االعّجٍٝ‬

 ‫ِالزظخ : اٌزسىُ ثبي ‪ٛٔ ٛ٘ buffer‬ع ِٓ أٛاع اٌزسىُ ثبٌزاوشح زبٌ١ب ٚاٌزٜ ٠ّىٕه ِٓ اعزخذاَ اٌّىزجبد ِٓ اٌجشاِح‬
                                                                                                      ‫االخشٜ‬

             ‫ٚاٌزٜ ٔغزف١ذٖ ِٓ اٌىالَ اٌغبثك اْ ٕ٘بن ؽ١ئ١ٓ ٠دت اْ ٠ىٛٔب ِىٛٔ١ٓ اعبع١ٓ ِٓ ٔظبَ اٌزؾغ١ً ّٚ٘ب‬

                                                              ‫ٔظبَ اٌزسىُ ثبٌزاوشح ٚاٌزسىُ ثبٌجشاِح ٚاٌزطج١مبد‬


                                                    ‫063/‪1964 - DOS/360 and OS‬‬
     ‫063/‪ DOS‬اٚ ‪ Dos‬اٚ ‪ Disk Opreating System‬ثٛاعطخ ؽشوخ ‪ IBM‬فٝ اٌ١َٛ االخ١ش ِٓ ػبَ 4691‬

                                ‫ٌٚسً ثؼض اٌّؾبوً فٝ إٌظبَ ٔفغٗ لبِذ ؽشوخ ‪ IBM‬ثبطالق ػذح ٔغخ ٚ٘ٝ ...‬

                                                                  ‫1- ‪BOS/360 - 8KB Configuation‬‬

                                                   ‫2- ‪DOS/360 - 16KB Configuation with disk‬‬

                                                   ‫3- ‪TOS/360 - 16KB Configuation with tape‬‬

         ‫ٚاالؽ١بء اٌزٝ ٠دت ػٍ١ٕب اْ ٔالزظٙب فٝ اٌذٚط أٗ ٌُ ٠ىٓ ٠ذػُ ٚال ٠غّر ثزؼذد اٌّٙبَ ٚال زّب٠خ ٌٍزاوشح‬

                                  ‫ٚوبْ ٕ٘بن ٔظبَ رؾغ١ً اخش ثٕفظ اٌٛلذ ٠زُ رطٛ٠شٖ ِٓ ‪٠ IBM‬غّٝ 063/‪OS‬‬

                      ‫ٚخبء ٘زا إٌظبَ ٌ١مَٛ ثسً ثؼض اٌّؾبوً ِثً رؼذد اٌّٙبَ ثبعزخذاَ‪Fixed Base Address‬‬

      ‫ٚػٕذِب خبء ٔظبَ اٌزؾغ١ً ‪ٚ (Multiple Varable Transaction) OS/MVT‬وبْ ٠ذػُ ازدبَ اوجش ٌٍزطج١مبد‬

                                                               ‫االْ لذ روشٔب ِقطٍسبد غش٠جخ ٘ٙٙٙٙٙٙٗ ِثً‬
      ‫‪Program , Fixed Base Address , Multitasking , Memory Protection‬‬
                                     ‫‪execution , Memory Management‬‬
                                                                                              ‫أٌ١ظ وزٌه ؟‬




                                                                        ‫!‪-:1969 - Its Unix‬‬
‫فٝ ٘زا اٌؼبَ أرٝ اٌ١ٕب ٔظبَ اٌ١ٛٔىظ اٌؾٙ١ش ٚاٌّؼشٚف ٌذٜ اٌدّ١غ ٚوبْ ِىزٛة ٌغخ اٌغٝ ِٚٓ اٌّؼشٚف اْ وال ِٓ‬
                                                   ‫ٌغخ اٌجشِدخ اٌغٝ ٚٔظبَ اٌ١ٛٔىظ ّ٘ب ِٓ رطٛ٠ش ‪AT&T‬‬

          ‫ٚلذ لبَ ٠ٛٔىظ ثذػُ ٘زٖ اٌخقبئـ ‪ّ٘ٚ multiuser, Multitasking‬ب رؼذد اٌّغزخذِ١ٓ ٚرؼذد اٌّٙبَ‬

                        ‫ٚوبْ فٝ رٌه أعجك االٔظّخ فٝ خبف١خ رؼذد اٌّغزخذِ١ٓ ٚا٠ضب دػُ ٔظبَ اٌ١ٛٔىظ اٌزبٌٝ‬

              ‫إٌٛاح ٚ ٔظبَ اٌٍّفبد ٚ عطش االٚاِش ٚ اٌٛاخٙخ اٌّغزخذَ اٌشعِٛ١خ ٚوبْ ثزٌه االعجك فٝ ٘زا ا٠ضب‬


                                                      ‫‪-:1982 - Commodore DOS‬‬




                    ‫ِؼ ػبسف ٍِمزؼ غ١ش اٌقٛسح دٜ فٝ خٛخً فبػزسٚٔب ثمٝ ٚطجؼب اٌىً ٠ؼشف لقخ اٌذٚط‬




                                              ‫0.1 ‪1985 - Microsoft Windows‬‬
1987 - Microsoft Windows 2.0




1987 - Microsoft Windows 3.0
‫ٚطجؼب ثؼذ رٌه ارٝ 7.‪ٚ Windows 95 ,98 ,xp,vista‬غ١ش٘ب ٚا٠ضب ارذ اٌؼؾشاد ِٓ أظّخ اٌزؾغ١ً االخشٜ‬

                               ‫ِثً ِبن ٌٚ١ٕىظ ٚا٠ضب ارٝ ػبٌُ اٌٙٛارف إٌمبٌخ ٚأظّزٗ أذسٚ٠ذ ٚغ١شٖ‬

                                                             ‫ِب ٘ٝ اٌّىٛٔبد اٌشئ١غ١خ ٌٕظبَ اٌزؾغ١ً‬

                                                                      ‫ٔظبَ اداسح اٌزاوشح‬    ‫‪‬‬
                                                           ‫ٔظبَ اداسح اٌزطج١مبد ٚاٌجشاِح‬    ‫‪‬‬
                                                                             ‫رؼذد اٌّٙبَ‬    ‫‪‬‬
                                                                          ‫زّب٠خ اٌزاوشح‬     ‫‪‬‬
                                                                       ‫رؼذد اٌّغزخذِ١ٓ‬      ‫‪‬‬
                                                                                   ‫إٌٛاح‬   ‫‪‬‬
                                                                           ‫ٔظبَ اٌٍّفبد‬     ‫‪‬‬
                                                                           ‫عطش االٚاِش‬      ‫‪‬‬
                                                                     ‫اٌٛاخٙخ اٌشعِٛ١خ‬       ‫‪‬‬
                                                                         ‫لٛاػذ اٌج١بٔبد‬     ‫‪‬‬
                                                                         ‫‪Bootloader‬‬         ‫‪‬‬
                                                                     ‫‪Graphical Shell‬‬        ‫‪‬‬
                                                     ‫)‪Linear Block Addressing (LBA‬‬          ‫‪‬‬
    ‫٘زٖ ِىٛٔبد وث١شح ٌٍزفى١ش ف١ٙب ٚفٝ و١ف١خ رقّ١ّٙب ٚو١ف ٔبرٝ ثدذ٠ذ ف١ٙب ٌزا أب الٛي ِٓ ٕ٘ب اٌزٜ ال ٠ٍّه ِٛ٘جخ‬

                    ‫االثذاع ٚاٌزقّ١ُ ٚاالداسح ٠زشن اٌمشاءح الٕٔب ثقذد أؾبء ٍِّىخ زبعت ٌٍزؼبًِ ِغ ِىٛٔبد ِبد٠خ‬

                                                                      ‫عٛف اؽشذ وً ػٍٝ زذا ثؾئ ِٓ اٌزفق١ً‬



                                                                             ‫ٔظبَ اداسح اٌزاوشح‬


‫راوشح إداسح إٌظبَ اٌفشعٟ ٘ٛ ٚاحذ ِٓ أُ٘ أخضاء ٔظبَ اٌزشغ١ً. ِٕٚز األ٠بَ األٌٚٝ السزعّبي اٌحبسجبد، ٚوأْ‬
               ‫ب‬
     ‫ٚلذ ٚضعذ إسزشار١د١بد ٌٍزغٍت عٍٝ ٘زا اٌم١ذ .ٕ٘بن حبخخ إٌٝ ِض٠ذ ِٓ اٌزاوشح ِٛخٛد ِبد٠ُ فٟ إٌظبَ‬
                                                   ‫‪ٚ virtual memory‬أٔدح ٘زٖ ٟ٘ اٌزاوشح االفزشاض١خ‬

                                                ‫ّ‬
   ‫اٌزاوشح اإلفزشاض١خ ردعً إٌظبَ ٠جذٚ أْ ٌٙب راوشح أوثش ِ ّب ٌٗ فٟ اٌٛالع ِٓ خالي رمبسُ ِٚٓ ث١ٓ اٌعٍّ١بد‬
                                                                      ‫.اٌّزٕبفسخ وٍّب وبٔٛا ِحزبخ١ٓ إٌ١ٙب‬

‫اٌزاوشح االفزشاض١خ رفعً أوثش ِٓ ِدشد خعً ح١بره راوشح اٌىّج١ٛرش رز٘ت إٌٝ أثعذ ِٓ رٌه. راوشح إداسح إٌظبَ‬
                                                                                  ‫اٌفشعٟ رٕص عٍٝ ِب‬




                                                                                  ‫1-َ عبٌدخ اٌّسبحبد اٌىج١شح‬

‫اٌعذ٠ذ ٔظبَ اٌزشغ١ً ٠دعً إٌظبَ ٠جذٚ وّب ٌٛ أْ ٌٗ وّ١ٗ اوجش ِٓ اٌزاوشح ِّب ٌٗ فٟ اٌٛالع. ٠ّىٓ اْ رىْٛ فٟ‬
                                                          ‫.ِٓ االٚلبد اوجش ِٓ اٌزاوشح اٌغج١ع١ٗ فٟ إٌظبَ‬



                                                                                                   ‫2- اٌحّب٠خ‬

 ‫اٌعٍّ١بد ال رٕجغٟ أْ رىْٛ لبدسح عٍٝ اإلشبسح راوشح ٢خش عٍّ١خ ِٓ دْٚ اٌحصٛي عٍٝ إرْ. ٚ٘زا ِب ٠سّٝ‬
 ‫. ثزاوشح اٌحّب٠خ ، ٚ٠ّٕع سٛء أدائٙب فٟ ِذٚٔخ ٚاحذح اٌجشٔبِح ِٓ اٌزذخً فٟ رشغ١ً ثشاِح اٌزشغ١ً األخشٜ‬

  ‫ِعبٌدخ اٌفضبء االفزشاضٟ. افزشاضٟ ِعبٌدخ ٘زٖ اٌّسبحبد ٟ٘ ٚوً عٍّ١خ فٟ ٘زا إٌظبَ ٌذ٠ٙب لٕبعبرٙب فٟ‬
‫ِٕفصٍخ رّبِب عٓ ثعضٙب اٌجعض ، ٚحزٝ عٍّ١خ إداسح ٚاحذح ال ٠ّىٓ اْ ٠ؤثش عٍٝ رغج١ك آخش.ٚأخٙضح اٌزاوشح‬
  ‫االفزشاض١ٗ ٌٙب آٌ١بد رز١ح ِدبالد اٌزاوشح ٌزىْٛ ِحّ١ٗ ضذ اٌىزبثخ. ٚ٘زا اٌمبْٔٛ ٠حّٟ اٌج١بٔبد ِٓ اٌىزبثخ‬
                                                                                                   ‫فٛلٗ‬

                                                                                         ‫3- رسم اخلرائط والذاكرة‬

 ‫ٚ٠غزخذَ ٌشعُ اٌخشائط خش٠طٗ فٛس ٍِٚفبد اٌج١بٔبد اٌٝ ػٍّ١بد ِؼبٌدخ اٌفضبء. فٟ اٌزاوشح سعُ اٌخشائط‬
                                ‫.، ِٚسزٛ٠بد اٌٍّف رشرجط ِجبؽشح اٌٝ ِؼبٌدخ اٌفضبء االفزشاضٟ ٌٍؼٍّ١خ‬
                                                                               ‫4. رخق١ـ اٌزاوشح:‬
   ‫راوشح إداسح إٌظبَ اٌفشػٟ ٠غّر ٌىً ػٍّ١خ رؾغ١ً إٌظبَ فٟ زقخ ػبدٌخ ِٓ اٌزاوشح اٌّبد٠ٗ ٌٍٕظبَ .‬



                                                                                 ‫5- إٌّظّخ إٌّغم١خ :‬

‫اٌجشاِح غبٌجب ِب رىْٛ فٟ ٚحذاد إٌّظّٗ. ثعض ٘زٖ اٌٛحذاد ٠ّىٓ رمبسّٙب ث١ٓ ِخزٍف اٌجشاِح ، ٚثعضٙب‬
 ‫ٌٍمشاءح فمظ ٚرحزٛٞ عٍٝ ثعض اٌج١بٔبد اٌزٟ ال ٠ّىٓ رعذ٠ٍٙب. روشٜ االداسح ٟ٘ اٌّسؤٌٚٗ عٓ ِعبٌدخ ٘زٖ‬
‫إٌّظّٗ إٌّغمٟ اْ رخزٍف عٓ اٌّبد٠ٗ خغٝ ِعبٌدخ اٌفضبء. احذٜ اٌغشق ٌزشر١ت ٘زٖ إٌّظّٗ ٘ٛ االٔمسبَ‬



                                                                                     ‫6.اٌزٕظ١ُ اٌّبدٞ :‬

    ‫اٌزاوشح عبدح ِب رٕمسُ اٌٝ راوشح سئ١س١خ سش٠عٗ ٚثغٟءٖ اٌزخض٠ٓ اٌثبٔٛٞ. اداسح اٌزاوشح فٟ ٔظبَ اٌزشغ١ً‬
                                                ‫ِمبثض رحش٠ه اٌّعٍِٛبد ث١ٓ ٘ز٠ٓ اٌّسزٛ٠١ٓ ِٓ اٌزاوشح‬



                                                                                            ‫7.االٔزمبي :‬

  ‫فٟ إٌظُ ِع اٌزاوشح االفزشاض١ٗ ، ٚثشاِح فٟ اٌزاوشح ٠دت اْ رىْٛ لبدسح عٍٝ االلبِخ فٟ اخضاء ِخزٍفخ ِٓ‬
‫اٌزاوشح فٟ أٚلبد ِخزٍفخ. ٚ٠شخع رٌه عٕذِب ٠مَٛ اٌجشٔبِح ِجذي ح١ض اٌزاوشح اٌٝ اٌٛساء ثعذ اْ ِجذي ِٓ اصً‬
  ‫ٌجعض اٌٛلذ أٔٙب ال رسزغ١ع دائّب اْ رٛضع فٟ اٌّىبْ رارٗ. اداسح اٌزاوشح فٟ ٔظبَ اٌزشغ١ً ٌٚزٌه ٠ٕجغٟ اْ‬
 ‫رىْٛ لبدسح عٍٝ ٔمً اٌجشاِح فٟ اٌزاوشح ٚاٌزاوشح اٌزعبًِ ِع االشبساد اٌٛاسدح فٟ ِذٚٔخ اٌجشٔبِح ثح١ث أٙب‬
                                                                    ‫رش١ش دائّب اٌٝ ِٛلع اٌحك فٟ اٌزاوشح‬



                                                                     ‫ٔظبَ اداسح اٌؼٍّ١بد‬


                                                         ‫خ‬     ‫د‬                          ‫ْ َ‬
                       ‫إ ّ ٔظب َ اٌزشغ١ً ِسئٛي عٓ إٌشبعب ِ اٌزبٌ١ ِ ثبالسرجبط ‪:process management‬‬
                   ‫ً‬                           ‫َ‬
 ‫اٌ ٍَْك ٚحزف-‪ -create &delete‬وٍزب عٍّ١بد إٌظب َ - ‪ٚ -system process‬اٌّسزعّ َ-‪-user process‬‬  ‫خ‬
                                                                                ‫د‬
                                                      ‫: خذٌٚخ اٌعٍّ١ب ِ - ‪-scheduling of process‬‬
                                                                              ‫ٓ‬      ‫د‬       ‫ذ‬
                                                           ‫ٚثٕ ِ ا٢ٌ١ب ِ اٌزضاِ ِ ‪-synchronization‬‬
        ‫د‬                            ‫َ‬
     ‫ٚاالرصبي-‪ِٚ -communication‬عبٌدخ اٌدّٛد اٚ اٌزٛلف اٌزب ِ-‪ٌٍ -deadlock handling‬عٍّ١ب ِ...‬

                    ‫**عٍٝ وً ثشٔبِح فٟ حبٌخ رٕف١ز ‪٠ٚ Process‬غٍك اسُ عٍّ١خ )‪(running program‬‬

                                   ‫- ‪ ٚ-multi programming‬فٟ حبٌخ أٔظّخ اٌزشغ١ً ِزعذدح اٌجشٔبِح‬

         ‫-‪-cpu scheduling‬رمَٛ اداسحاٌعٍّ١بد ثزمس١ُ ٚلذ ٚحذح اٌزشغ١ً اٌّشوض٠خ ث١ٓ اٌجشاِح اٌّخزٍفخ‬

                                                                                               ‫ب‬
 ‫لسغ ً أوجش ِٓ اٌٛلذ ،وّب اٌزمس١ُ ٠ّىٓ أْ ٠ىْٛ ثبٌزسبٚٞ أٚ ٠ّىٓ أْ أْ رعغٝ اٌجشاِح راد األٌٚٛ٠خٚ ٘زا‬
‫اٌزشغ١ً األخشٜ ِثً عٍّ١بربإلدخبي ٚ اإلخشاج ٚ اٌٍّفبد ٚ رٕسك ٚحذح اٌعٍّ١بد اسزخذاَ اٌجشاِح ٌخذِبد ٔظُ‬
     ‫ِٓ ثشٔبِح ال رزضبسة اٌجشاِح أٚ رزسبثك عٍٜبسزخذاَ ٘زٖ اٌخذِبد اٌزٟ ال ٠ّىٓ ألوثشاٌزاوشح ( ثح١ث‬
                                                                          ‫اسزخذاِٙب فٟ ٔفس اٌٛلذ)‬


                                                           ‫*ِّب رزىْٛ اداسح اٌعٍّ١بد؟؟‬
                                                                          ‫1- اٌّعبٌح ‪process‬‬
                                                                                ‫2- ‪Threads‬‬
                                    ‫3- خذٌٚخ اٌعٍّ١بد فٟ ٚحذح اٌزشغ١ً اٌّشوض٠ٗ ‪CPU scheduling‬‬
                                                ‫4-رضآِ اٌعٍّ١بد ‪process synchronization‬‬
                                                              ‫5- حبالد اٌزٛلف اٌزبَ ‪deadlock‬‬




                                                                     ‫ٔظبَ رؼذد اٌّٙبَ‬




            ‫).‪ (Multitasking‬إٌ خًٛغ أَظًح انرشغٛم انحانٛح انًطٕسج ذذػى َظاو ذؼذد انًٓاو أٔ‬

       ‫إٌ ْزا انُظاو ٚقٕو ترُفٛز ػذج يٓاو فٙ َفس انٕقد ، فؼًهٛح انطثاػح ذرى يغ انكراتح فٙ يحشس‬
                                                                                ‫َصٕص ْٔكزا ...‬
  ‫فٙ انحقٛقح فٙ اندٓاص ٕٚخذ يؼانح ٔاحذ فقط ، فكٛف ٚقٕو انُٕٚذٔص يثال ترشغٛم ػذج ذطثٛقاخ أٔ‬
‫يٓاو فٙ َفس انٕقد ؟ ٚقٕو انُظاو داخهٛا ترقسٛى ػًم انًؼانح ػهٗ انًٓاو انفؼانح ، ٔتٓزا ٚؼطٙ نكم‬
 ‫يًٓح فرشج صيُٛح نهرُفٛز ثى ُٚرقم إنٗ انرٙ تؼذْا ْٔكزا ... ْٔزِ انؼًهٛح ذرى تسشػح فائقح ، ٔتانرانٙ‬
                                                ‫ٚالحظ انًسرخذو أٌ انثشايح ذؼًم فٙ َفس انٕقد .‬
   ‫إٌ أ٘ ذطثٛق فٙ ُٔٚذٔص ٚثذء يُز نحظاذّ األٔنٗ تًًٓح ٔاحذج ٔثشٚذ ٔاحذ أٔ انثشٚذ األساسٙ ،‬
      ‫ٔنكٍ ْزا انثشٚذ تذٔسِ يًكٍ أٌ ٚؼًم ٔٚفؼم ثشٚذ آخش ْٔكزا .. تصشاحح أكثش ال ٚقٕو انُظاو‬
  ‫ترقسٛى األػًال تٍٛ انثشايح فقط تم ٚرؼذٖ رنك إنٗ ذقسٛى األػًال تٍٛ انثشٚذ انفؼانح . أ٘ إرا كاٌ‬
  ‫فٙ تشَايدك ٔظٛفرٍٛ كم ٔاحذ فٙ ثشٚذ يُفصم فإٌ ْاذٍٛ انٕظٛفرٍٛ سٕف ذؼًال تشكم يرٕاقد‬
                                                              ‫يغ تقٛح ٔظائف انثشايح األخشٖ ..‬
‫ٔأٚعا ًٚكُٓا أٌ ذقٕو تذٔس أكثش يٍ رنك فًٛكٍ نثشٚذ يا أٌ ٚثُٙ َافزج ٔٚؼانح انشسائم انقاديح يٍ‬
                                                    ‫انُظاو . ذًايا يثم انثشٚذ األساسٙ نهثشَايح .‬



                          ‫ُْانك انكثٛش يٍ انثشايح ذرؼايم كـ ‪َ .. Multithreaded‬زكش يُٓا :‬
                                                                     ‫_ تشايح انٕٔسد‬
                ‫_ انؼذٚذ يٍ تشايح يحشس انصٕس،كانفٕذٕ شٕب كًؼاندح انصٕس فٙ انخهفٛح‬
 ‫_ تشايح انذاذا تٛس ٔيٍ تُٛٓا انـ ‪ SQL‬حٛث ٚقٕو تإَشاء ثشٚذ يُفصم نكم طهة أٔ ‪ Query‬يٍ‬
                                                              ‫أخم انثحث أٔ اإلدخال .‬



                                                      ‫ٕٚخذ َٕػٍٛ سئٛسٍٛٛ ل ‪ًْ multitasking‬ا:‬
                                                          ‫‪Preemptive multitasking‬‬         ‫1)‬

    ‫فٙ ْزا انُٕع ٚقٕو َظاو انرشغٛم تإػطاء ٔقد يحذد نكم ‪ process‬أ٘ أَّ ٚرى ذحذٚذ ٔقد يؼٍٛ‬
   ‫ٚؼشف ب ‪ ْٕ CPU time slices‬اطٕل ٔقد ٚسًح فّٛ ل ‪ process‬انثقاء فٙ ‪ٔ cpu‬تاَرٓائّ‬
               ‫ٚدة ػهٗ‪ process‬انخشٔج سٕاء اَرٓد يٍ انؼًم او ال ٔدخٕل ‪ process‬اخشٖ‬

                                                            ‫‪cooperative multitasking‬‬                 ‫2)‬

  ‫فٙ ْزا انُٕع ذسرطٛغ ‪ process‬انرحكى ب ‪ cpu‬انٕقد انز٘ ذشٚذِ أ٘ آَا الذخشج يٍ ال ‪cpu‬اال‬
     ‫ٔقذ آَد ػًهٓا ذًايا ٔنكُٓا ذسًح ل ‪ process‬اخشٖ تاسرخذاو ‪ cpu‬ػُذيا الذحراخّ يثال:ػُذ‬
                                 ‫اَرظاسْا ال ‪ I/O‬أٔ ػُذيا ذكٌٕ ذُرظش َرائح ‪process‬أخشٖ‬


                                                                     ‫ٔظبَ زّب٠خ اٌزاوشح‬
                                                                            ‫اٌّٙبَ اٌزٝ ٠مَٛ ثٙب‬

                                          ‫وزبثخ خضء اٚ اخضاء ِٓ اٌجشٔبِح اٌٝ اٌزاوشح‬     ‫‪‬‬
                             ‫ردٕت اٌمشاءح اٌخبطئخ ٌدذٚي اٌّٛاففبد فٝ اٌٛضغ اٌّسّٝ‬        ‫‪‬‬
                                                       ‫وزبثخ اٌجشٔبِح ٔفغٗ اٌٝ اٌزاوشح‬   ‫‪‬‬



                                                                     ‫ٔظبَ رؼذد اٌّغزخذِ١ٓ‬
                                                                                                   ‫اٌّٙبَ‬

                                             ‫‪ ‬رغدّ١ً اٌذخٛي ٚٔظبَ زّب٠خ اٌّغزخذَ ٚاٌخقٛف١خ‬
                                       ‫‪ ‬اػطبء اٌمذسح الوثش ِٓ ِغزخذَ ثبٌؼًّ ػٍٝ ٔفظ اٌىّج١ٛرش‬
                                              ‫‪ ‬اٌزسٛ٠ً ٚاٌزغ١١ش ث١ٓ اٌّغزخذِ١ٓ ثذْٚ فمذ اٌج١بٔبد‬
                                                                             ‫إٌٛاح (‪)Krenal‬‬
    ‫إٌٛاح ٘ٝ لٍت ٔظبَ اٌزؾغ١ً ٚاٌّزسىُ االٚي ثٗ ٚعٛف ٔمَٛ ثبٌمبء ٔظشح ػٍٝ ٔٛاح فغ١شح لش٠جب خذا فال رغزؼدً‬

                                                              ‫ٌٚمشاءح اوثش ِؼشفخ ػٓ إٌٛاح الشا ػٕٙب ِٓ ٕ٘ب‬

‫%7‪http://alrebat.tadwen.com/index.php?title=%D8%A7%D9%84%D9%86%D9%88%D8%A‬‬
                                                                    ‫9‪D8%A‬‬




                                                                                ‫ٔظبَ اٌٍّفبد‬


  ‫فٙ ذقُٛح انحٕسثح ، ٔيهف انُظاو (ٔفٙ كثٛش يٍ االحٛاٌ ذكرة اٚعا َظاو يهفاخ )ْٕٔ ٔسٛهّ نرخضٍٚ ٔذُظٛى‬
                                                                 ‫يهفاخ انكًثٕٛذش ٔانثٛاَاخ انرٙ ذرعًُٓا‬
                                                            ‫ندؼهٓا يٍ انسٓم انؼثٕس أ انحصٕل ػهٛٓا.‬


    ‫يهف انُظاو قذ ذسرخذو نرخضٍٚ انثٛاَاخ تؼط انٕسائم يثم ( ‪ ، )NFS ,SMB ,9P clients‬أٔ قذ ذكٌٕ‬
                     ‫افرشاظٛح ، ٔذٕخذ فقط تٕصفٓا طشٚقّ انٕصٕل نهثٛاَاخ االفرشاظٛح يثم ( ‪. )procfs‬‬
     ‫يهف انُظاو ْٕ يدًٕػّ يٍ إَاع انثٛاَاخ انًدشدج انرٙ ذُفز نرخضٍٚ ،ذُظٛى ْشيٙ ،ٔانرالػة ،ٔانًالحّ‬
                                                                       ‫،ٔانٕصٕل ، ٔاسرشخاع انثٛاَاخ .‬

                                                                               ‫ٔيٍ إَاع يهفاخ انُظاو :‬
                                                                                       ‫1.َظاو يهف انشثكّ‬
                                                                                      ‫2.َظاو يهف انفالش‬
                                                                             ‫3.َظاو يهف الغشاض خاصّ‬
                                                                                ‫4.َظاو نهًؼايالخ انًهف‬
                                                                               ‫5.َظاو يهف قاػذج انثٛاَاخ‬
                                                                                    ‫6.َظاو يهفاخ انقشص‬




                                                                      ‫‪Command Shell‬‬
                                                           ‫ق‬
   ‫طش٠مخ إدخبي األٚاِش ٌٍسبعٛة ثؾىً ٔ ّٟ ، أٞ ػٓ طش٠ك وزبثخ ٔـ األٚاِش ثبعزخذاَ ٌٛزخ اٌّفبر١ر ،‬
                                                                                    ‫ٚ٠غّٝ ِىبْ‬

‫اإلدخبي ٚاٌزٞ ٠ظٙش ػٍٝ اٌؾبؽخ اٌزٟ ٠ؾ١غ اْ ٠ىْٛ ٌٛٔٙب أعٛدا عطش األٚاِش. ٚ٠خزٍف عطش األٚاِش ثزٌه‬
                                                                                            ‫ػٓ‬

 ‫ٚاخٙخ اٌّغزخذَ اٌشعِٛخ )‪ٚ (GUI‬ػٓ ٚاخٙخ اٌّغزخذَ إٌق١خ اٌزٟ رغخذَ لٛائُ ٔق١خ ٠زسشن اٌّغزخذَ‬
                                                                                        ‫ث١ٕٙب.‬
                                                         ‫‪Graphical User Interface‬‬


   ‫وبْ أٚي ظٙٛس ٌٛاخٙخ اٌّسزخذَ اٌشسِٛ١خ فٟ ِعبًِ ششوخ ‪ )Xerox PARC‬ثٛاسغخ ِدّٛعخ ِٓ‬
                                               ‫(‬
                                          ‫اٌجبحث١ٓ ِٓ ث١ُٕٙ (‪.) Douglas Engelbart & Alan Kay‬‬
                                ‫ب‬
‫رزّ١ض ٘زٖ اٌٛاخٙخ ثئِىبٔ١خ اٌزعبًِ ِع صٛس ٚسِٛص ثٕبئ١خ األثعبد ( ٚأح١بٔ ً ثالث١خ األثعبد ) ٌزسٙ١ً اٌزٛاصً‬
                                              ‫ِع ٔظبَ اٌزشغ١ً ِثً ( إٌٛافز ، األ٠مٛٔبد ، ٚاٌمٛائُ إٌّجثمخ )‬
      ‫ٚ٠زُ اٌزعبًِ ِع ٘زٖ اٌشِٛص ثبسزخذاَ اٌفأسح اٌٍّحمخ ثبٌدٙبص ( ‪ ) mouse‬وّب أٔٗ ٌُ ٠زُ‬
                                   ‫االسزغٕبء عٓ اسزخذاَ ٌٛحخ اٌّفبر١ح (‪. ) keyboard‬‬
‫ثخالف ٚاخٙبد األٚاِش اٌغطش٠خ فئْ اٌزؼبًِ ِغ اٌٛاخٙبد اٌزقٛ٠ش٠خ ال ٠سزبج إٌٝ زفظ ِٚشاخؼخ األٚاِش ،‬
  ‫وّب ال ٠سزبج إٌٝ ٚلذ طٛ٠ً ِٓ اٌزذس٠ت ٌزؼٍُ طش٠مخ اٌزؼبًِ ِؼٙب ٚرٌه ألٔٙب رؾبثٗ ثطش٠مخ ِب اٌزؼبًِ ِغ‬
                                                                                     ‫اٌس١بح اٌٛالؼ١خ!!‬




                                                   ‫أِثٍخ عٍٝ أٔظّخ اٌزشغ١ً اٌزصٛ٠ش٠خ :‬

‫:‪1.KDE‬‬


                                                  ‫٘ٛ اخزقبس ٌـ(‪، ) K Desktop Environment‬‬
                                          ‫ٚ٘ٛ ػجبسح ػٓ ِؾشٚع ثذأٖ(‪ ) Matthias Ettrich‬فٟ ػبَ‬
                                ‫6991َ وٛاخٙخ ِغزخذَ سعِٛ١خ(‪ ) GUI‬ألٔظّخ(‪. ) Linux & Unix‬‬
                                 ‫٘زٖ اٌٛاخٙخ ػٕذِب رُ اعزخذاِٙب ِغ اٌؼذ٠ذ ِٓ إفذاساد وبٔذ ثذا٠خ ؽٙشح‬
                                                             ‫.) ‪ٕ١ٌ :(BSD and Solaris‬ىظ ِثً‬




‫:‪2.GNOME‬‬

‫: )‪( GNU Network Object Model Environment‬‬

                         ‫ٚ٘ٛ ػجبسح ػٓ ٚاخٙخ ِغزخذَ سعِٛ١خ ِغ رطج١مبد خبفخ ثغطر اٌّىزت‬
                               ‫فّّذ خق١قبً ٌألخٙضح اٌّؼزّذح ػٍٝ أٔظّخ رؾغ١ً اٌ١ٛٔىظ ٌزغٙ١ً رؼبًِ‬
                                                                       ‫اٌّغزخذِ١ٓ ِغ ث١ئخ اٌ١ٛٔىظ.‬
‫ًىذه الصٌره تٌضح الخط الزمني لتطٌر ًاجيات المستخدم الزسٌميو‬
                                                ‫‪Graphical Shell‬‬
‫٠غزخذَ ٌذػُ اٌف١ذ٠ٛ ٚاٌمذسح ػٍٝ اعزخذاَ ِىزجبد اٌزؼبًِ ِغ اٌقٛر١بد ٚاٌٛعبئط اٌخ .....‬
                                                            ‫‪Bootloader‬‬
‫%‪http://ar.wikipedia.org/wiki/%D8%A5%D9%82%D9%84%D8%A7%D8%B9_%28%D8%AD‬‬
                                            ‫92%8‪D8%A7%D8%B3%D9%88%D8%A‬‬

                                                                             ‫اٌشاثط‬




   ‫ساثط ٚ٠ى١جذ٠ب ٌٍؾشذ اٌزفق١ٍٝ ٔظشا الّ٘١خ اٌّؼشفخ ثٙزا اٌدضء رسذ٠ذا الٔٗ ثذا٠زٕب‬


    ‫ٚعٛف ٔزوشٖ ثبٌزفق١ً فٝ اٚي خطٛح ِٓ ثشِدخ ٚثٕبء ٔظبَ اٌزؾغ١ً اْ ؽبء اهلل‬


                                             ‫ٚاٌٝ ٕ٘ب عٕىزفٝ ثزوش ٘زٖ االعبع١بد‬


                        ‫ٚطجؼب ٕ٘بن ِىٛٔبد اخشٜ وث١شح ٌىٓ عبروش٘ب ػٕذ اٌزطٛ٠ش‬


‫ٌىٓ ٘ىزا رؼٍّٕب اعبع١بد ِٚىٛٔبد ٔظبَ اٌزؾغ١ً ِغ ِالزظخ أٗ ٠ّىٕٕب اضبفخ اٌدذ٠ذ‬


         ‫ٚاثزىبس اٌدذ٠ذ ٚ٘ٛ اٌٙذف االعبعٝ ِٓ اٌزؼٍُ فٙٛ ٌالثزىبس ٌىً ِب ٘ٛ خذ٠ذ‬
    ‫ثشِغخ ٔظُ اٌزشغيً‬
 ‫فٝ ٘زا اٌفظً عٕذسط ثؼض االعبعيبد ػٓ رظّيُ ٔظُ اٌزشغيً ٚإٌظشيبد‬
‫اٌّّٙخ ٚاالعبعيبد فٝ ثشِغخ أظّخ اٌزشغيً ٚعيٍؾك ثبٌششػ رغجيك ػٍّٝ‬
  ‫ٚعيزُ رشريت اٌخغٛاد اْ شبء اهلل ِغ ِالؽظخ أٗ إٔٝ فٝ ٘زا اٌىزبة ِغشد‬
 ‫رؼشيف ٚثذايخ ٌزظّيُ ٔظبَ اٌزشغيً ٌزا فبٕٔٝ عبلزظش ػٍٝ ثؼض االعبعيبد‬
‫فمظ ٌٚٓ ارغشق اٌٝ االِٛس االوضش رؼميذا فٝ ٔظبَ اٌزشغيً ٚارا اسدد االوّبي فٝ‬
                     ‫٘زا اٌّغبي فؼٍيه ثبٌجؾش ٚلشاءح اٌذسٚط ٚاٌّشاعغ االخشٜ‬

                                                         ‫اٌخـٛاد :-‬
         ‫ثشِغخ لـبع رؾّ١ً (‪16-bit>>>> )Boot Sector‬‬        ‫-‬                   ‫1‬
         ‫ثشِغخ لـبع رؾّ١ً (‪32-bit>>>> )Boot Sector‬‬        ‫-‬                   ‫2‬
                   ‫رظّ١ُ عذٚي اٌّٛاطفبد (‪)GDT-Table‬‬       ‫-‬                   ‫3‬
                                       ‫ثذا٠خ رظّ١ُ إٌٛاح‬ ‫-‬                   ‫4‬
         ‫اعزىّبي رـٛ٠ش إٌٛاح >>> اداسح اٌزاوشح ثأٔٛاػٙب‬  ‫-‬                   ‫5‬
                                             ‫ٔظبَ اٌٍّفبد‬ ‫-‬                   ‫6‬
                                                          ‫-‬
                                           ‫ثٕبء ٔظبَ اٌّٙبَ‬                   ‫7‬
   ‫٘زٖ ٘ٝ اٌخـٛاد ااٌزٝ عٕىًّ ثٙب ا ْ شبء اهلل ششؽٕب فٝ ٘زا اٌىزبة‬
‫ٚفٝ خزبِٗ عٕىْٛ لذ ٚطٍٕب اٌٝ فُٙ ػبٌٝ ٌّؼّْٛ ثٕبء ٔظُ اٌزشغ١ً اْ‬
                                                            ‫شبء اهلل‬
            ‫اٌخـٛح االٌٚٝ ثٕبء لـبع االٔـالق‬
‫اْ اؽذ اُ٘ االعبع١بد فٝ ثشِغخ ٔظُ اٌزشغ١ً ٘ٛ رظّ١ُ لـبع أـالق ٔبعؼ ٚفؼبي ٚ٘ٛ‬
‫اٌخـٛح االٌٚٝ فبٔٗ ٠ؼًّ ػٍٝ ٔغخ إٌٛاح ِٓ اؽذ االلشاص اٌشئ١غ١خ اٌٝ اٌزاوشح اٌزٕف١ز٠خ‬
    ‫صُ ٠ٕمً اٌزٕف١ز اٌ١ٙب ٚ٘ىزا ٠جذأ ٔظبَ اٌزشغ١ً ٚ٠جذأ ثبٌزؾىُ فٝ اٌؾبعت ٚرٍج١خ ؿٍجبد‬
                               ‫اٌّغزخذَ (اٚ اٌّغزخذِ١ٓ فٝ ؽبٌخ اٌشجىبد ٚاٌزؼذد٠خ)‬

                                                                      ‫إلالع اٌؾبعت :‬

  ‫الالع اٌؾبعت (‪ ٛ٘ )boot strapping‬اٚي خـٛح ٠مَٛ ثٙب اٌؾبعت ثؼذ اْ ٠ؼغؾ اٌّغزخذَ‬
   ‫ػٍٝ صس اٌفزؼ ٚٚطٍٗ ثبٌىٙشثبء ؽ١ش ٠زُ اسعبي اشبسح اٌىزشٚٔ١خ اٌٝ اٌٍٛؽخ االَ ( ‪Mother‬‬
   ‫‪ٚ )Board‬اٌزٝ ثذٚس٘ب رمَٛ ثبسعبٌٙب اٌٝ ِضٚد اٌـبلخ (‪ٚ )Power Supply‬ثؼذ٘ب ٠أرٝ دٚس‬
‫ٚؽذح (‪ٚ )PSU‬اٌزٝ رمَٛ ثّّٙخ اِذاد اٌؾبعت ٍِٚؾمبرٗ ثبٌـبلخ اٌىٙشث١خ ثبٌىّ١خ اٌّـٍٛثخ‬
    ‫ٚاٌىبف١خ ٌ١ؼًّ اٌٍّؾك اٚ اٌؾبعت وىً ٚ٠مَٛ ثبسعبي سعبٌخ (‪ )Power Good‬اٌٝ ٔظبَ‬
  ‫(‪ٚ )Bios‬رذي ٘زٖ االشبسح ػٍٝ ٔغبػ ػٍّ١خ االِذاد ثبٌـبلخ ٚأٔٗ رُ اٌزضٚ٠ذ ثبٌـبلخ اٌىبف١خ‬
 ‫ِٚٓ فٛس٘ب ع١جذأ ٔظبَ اٌفؾض اٌزارٝ (‪ٚ )Power On Self Test‬اٌزٜ ٠خزظش (‪٠ٚ )POST‬مَٛ‬
‫ثفؾض ِىٛٔبد اٌؾبعت ٍِٚؾمبرٗ ِضً (ٌٛؽخ اٌّفبر١ؼ ٚاٌّبٚط ٚاٌزاوشح ....اٌخ) ٚارا رأوذ‬
   ‫ِٓ عالِزٙب فبٔٗ ٠مَٛ ثٕمً اٌزؾىُ اٌٝ ٔظبَ (‪٠ٚ )BIOS‬مَٛ اي(‪ )POST‬ثزؾّ١ً اي(‪)BIOS‬‬
      ‫اٌٝ ٔٙب٠خ اٌزاوشح (0‪ٚ )0Xffff‬ع١مَٛ ا٠ؼب ثٛػغ رؼٍ١ّخ لفض (‪ )jump‬فٝ اٚي ػٕٛاْ ِٓ‬
      ‫اٌزاوشح اٌٝ اخش ػٕٛاْ ٚا٠ؼب ٠مَٛ ثزظف١ش اٌّغغٍ١ٓ ‪٘ٚ CS:IP‬زا ٠ؼٕٝ ا ٔبٚي رؼٍ١ّخ‬
      ‫ع١مَٛ اٌّؼبٌظ ثزٕف١ز٘ب ٘ٝ اٌمفض اٌٝ ٔٙب٠خ اٌزاوشح ٚثبٌزؾذ٠ذ اٌٝ (‪ )BIOS‬وّب عجك‬
   ‫ٚروشٔب ٚػٕذِب ٠ّزٍه ٔظبَ اٌج١ٛط اٌزؾىُ فبٔٗ ٠مَٛ ثؼًّ عذٚي ٌٍّمبؿؼبد ( ‪Interrput‬‬
    ‫‪ٚ )vector table‬رٛف١ش اٌؼذ٠ذ ِٓ اٌّمبؿؼبد ٚ٠مَٛ ثؼًّ ِض٠ذ ِٓ فؾض ِىٛٔبد اٌؾبعت‬
    ‫ٚثؼذ رٌه ٠مَٛ إٌظبَ اٌجـً اٌّٙبَ ثبٌجؾش ػٓ ٔظبَ اٌزشغ١ً ٌزؾّ١ٍٗ ػّٓ االػذادد‬
    ‫اٌخبطخ ثٗ ٚالظذ ٕ٘ب ؽغت اٌزشر١ت فٝ اٌزؾّ١ً اٌّٛعٛد ِغجمب ػّٓ اػذادرٗ ٚاٌزٝ‬
  ‫٠ّىٓ ٠ذٚ٠ب رغ١١ش٘ب ِٓ لبئّخ اٌزؾىُ ثبي(‪ٚ )Mother Board‬اٌزٝ رزغ١ش ِٓ عٙبص الخش ؽغت‬
                                                             ‫اٌششوخ إٌّزغخ ٌٍؼزبد ٚٔٛػٗ‬

   ‫ٚفٝ ؽبٌخ ارا ٌُ ٠غذ ٔظبَ اٌج١ٛط لـبػب لبثال ٌٍزؾّ١ً فٝ وً لبئّزٗ فبٔٗ ٠مَٛ ثبظٙبس‬
     ‫سعبٌخ خـأ ِٚٓ فٛس٘ب ٠مَٛ ثب٠مبف ػًّ اٌؾبعت (‪ )Halt‬اِب فٝ ؽبٌخ رٛفش عٙبص لبثً‬
 ‫ٌاللالع فبْ ‪ bios‬ع١مَٛ ثزؾّ١ً اٌمـبع االٚي ِٕٗ ٚ٘زا اٌمـبع ٠ؾزٜٛ ػٍٝ ِؾًّ إٌظبَ‬
                                                                  ‫(‪>>> )Boot Sector‬‬

                                                               ‫الؽظ اٌفشق ا٢رٝ >>>>‬

                                                   ‫1 - لـبع اٌزؾّ١ً (‪)Boot Sector‬‬
                                                   ‫2 - ِؾًّ إٌظبَ (‪)Boot Loader‬‬

  ‫ٚع١مَٛ ثٕمً اٌزؾّ١ً اٌٝ اٌؼٕٛاْ اٌف١ض٠بئٝ (00‪ٚ )0x07c‬ع١مَٛ ثٕمً اٌزٕف١ز اٌٝ ِؾًّ‬
   ‫إٌظبَ ٚخالي ٘زٖ اٌّّٙخ ٠ٛفش ٌٕب اٌج١ٛط اٌؼذدٞ ِٓ اٌّمبؿؼبد ػٍٝ عذٚي اٌّمبؿؼبد‬
   ‫ٚاٌزٜ ٠زُ أشبئٗ اثزذائب ِٓ اٌؼٕٛاْ (0‪٘ٚ )0x‬زٖ اٌّمبؿؼبد ٘ٝ خذِبد ٠مذِٙب ٌٕب ٔظبَ‬
‫اٌج١ٛط الداء ٚظبئف ِؼ١ٕخ ِضً ِمبؿؼخ وزبثخ ؽشف ػٍٝ اٌشبشخ ِٚمبؿؼخ اٌجؾش ػٓ عٙبص‬
   ‫الالع (91‪ٚٚ )int 0x‬ظ١فزٙب ٘ٝ اٌجؾش ػٓ ٘زا اٌغٙبص ِٚٓ صُ رٕمً اٌزؾّ١ً اٌ١ٗ >>>>‬

 ‫ِالؽظخ : ٘زٖ اٌّمبؿؼبد اٌزٝ ٠ٛفش٘ب ٌٕب ٔظبَ اٌج١ٛط رغزخذَ فمؾ اصٕبء اٌٛػغ اٌؾم١مٝ‬
‫(‪ٚ )16-bit( )Real Mode‬ال ٠ّىٕٕب اعزخذإِب ثؼذ رؾٌٕٛب ٌٍؼًّ فٝ اٌٛػغ اٌّؾّٝ (‪protected‬‬
    ‫‪ٚ )32-bit..etc( )mode‬ارا رُ اعزخذاِٙب فغ١زُ ؽذٚس اعزضٕبءاد رزغجت فٝ رؼـً ػًّ‬
                                                                             ‫اٌؾبعت‬
                                                                  ‫ِؾًّ إٌظبَ‬
‫ِؾًّ إٌظبَ ٘ٛ ثشٔبِظ ٚظ١فزٗ االعبع١خ ٘ٝ رؾّ١ً ٔٛاح ٔظبَ اٌزشغ١ً ٚٔمً اٌزؾىُ‬
                                          ‫اٌ١ٙب ٚ٠غت اْ رزٛفش ف١ٗ اٌششٚؽ االر١خ‬

                                ‫ؽغُ اٌجشٔبِظ ال ٠زؼذٜ 215 ثب٠ذ ثبٌزّبَ ٚاٌىّبي‬     ‫1-‬
 ‫رٛاعذٖ ػٍٝ اٌمـبع االٚي ٌٍمشص : اٌمـبع سلُ 0 , اٌشأط 0 , اٌّغبس 0 ٚأْ ٠ؾًّ‬        ‫2-‬
                                                                 ‫اٌزٛل١غ اٌّؼشٚف‬
                                  ‫اْ ٠ؾٜٛ شفشح رؾّ١ً إٌٛاح ٚٔمً اٌزٕف١ز اٌ١ٙب‬     ‫3-‬
                       ‫اْ ٠ىْٛ اٌجشٔبِظ (‪ )Object Code‬أٜ خبٌٝ ِٓ اٜ اػبفبد‬         ‫4-‬
                   ‫(‪٠ ٛ٘ٚ )Header,symboltable…etc‬ؼشف ا٠ؼب ثبعُ (‪)Flat Binary‬‬

       ‫ٌغخ اٌجشِغخ اٌزٝ رغزخذَ فٝ ثٕبء ِؾًّ إٌظبَ ٘ٝ ٌغخ اٌزغّ١غ (‪)Assembly16-bit‬‬
‫٢عجبة ػذ٠ذح ِٓ اّ٘ٙب ِٕٙب ػٕذِب ٠ؼًّ اٌؾبعت ٚ٠جذأ ػٍّٗ ِغ اٌّؼبٌظ ٠ىْٛ فٝ اٌٛػغ‬
‫اٌؾم١مٝ رؾم١مب الغشاع اٌزٛافم١خ ِغ االعٙضح اٌغبثمخ ٚاعزخذاَ ٌغخ اٌزغّ١غ ‪٠ 16-bit‬ز١ؼ‬
    ‫اعزذػبء خذِبد ِٚمبؿؼبد اٌج١ٛط ٚرٌه لجً االٔزمبي اٌٝ ث١ئخ ‪ٚ 32-bit‬وزٌه فال ؽبعخ‬
     ‫ٌٍّفبد ث١ئخ اٌزشغ١ً (‪ )Run-Time Files‬ؽ١ش اْ ٌغخ اٌزغّ١غ وّب عجك ٚروشٔب ٘ٝ فمؾ‬
    ‫اخزظبساد ٌٍغخ االٌخ (‪ِ )Machine Language‬غ رٌه فىً ٘زٖ االِٛس ال رغؼً وزبثخ ِؾًّ‬
‫إٌظبَ ثٍغخ اٌغٝ ِغزؾ١ال فٕٙبن ِؾّالد ػذ٠ذح رغزخذَ ٌغزٝ اٌغٝ ٚاٌزغّ١غ ِؼب ِضً‬
   ‫اٌّؾًّ اٌشٙ١ش ( ‪ٌ ) GRUB.etc‬ىٓ لجً ثشِغخ ٘زٖ اٌّؾّالد ٔؾزبط اٌٝ ثٕبء ثؼغ ٍِفبد‬
   ‫ث١ئخ اٌزشغ١ً (‪ٌ )RUN TIME‬زٛف١ش ث١ئخ ٌىٝ رؼًّ ػٍ١ٙب ٌغخ اٌغٝ ٚ٠غت وزبثخ (‪)Loader‬‬
                             ‫ٌىٝ ٠مَٛ ثمشاءح ط١غخ رؼٍ١ّبد ٌغخ اٌغٝ ٚ٠جذأ اٌزٕف١ز ِٕٙب‬




                           ‫ِخـؾ اٌزاوشح ػٕذ ِشؽٍخ االلالع‬
                                       ‫ثشِغخ ٚثٕبء ِؾًّ إٌظبَ :-‬
   ‫عٕمَٛ ِؼب االْ اْ شبء اهلل ثجٕبء ٚثشِغخ ِؾًّ ٔظبَ طغ١ش وزغشثخ اٌٚٝ اْ شبء‬
   ‫اهلل ٚثبٌزٛاصٜ ِغ اٌىزبة عٕـٛسٖ ثبعزّشاس اْ شبء اهلل ٚثزٛف١مٗ عٕٕغؼ اْ شبء‬
‫اهلل ٚعٕمَٛ ثبعزخذاَ اٌّغّغ )‪ (MASM‬أصٕبء اٌششػ ٚ٘ٛ ِزؼذد إٌّظبد ٚ٠ٛفش ِ١ضح‬
                                       ‫ِّٙخ ٚ٘ٝ اٌٍّفبد اٌضٕبئ١خ (‪)Object-files‬‬
                  ‫اٌىٛد اٌّقذسٜ ٌّسًّ إٌظبَ اٌجغ١ط‬
              ‫.‪;Simple Bootloader do nothing‬‬
              ‫.‪bits 16 ; 16-bit real mode‬‬
              ‫.‪start: ; label are pointer‬‬
              ‫.‪cli ; clear interrupt‬‬
              ‫.‪hlt ; halt the system‬‬
              ‫.‪times 510-($-$$) db 0 ; append zeros‬‬
              ‫.)00‪; $ is the address of first instruction (should be 0x07c‬‬
              ‫.‪; $$ is the address of current line‬‬
              ‫.‪; $-$$ means how many byte between start and current‬‬
              ‫‪; if cli and hlt take 4 byte then time directive will fill‬‬
              ‫.‪; 510-4 = 506 zero's‬‬
               ‫55‪; finally the boot signature 0xaa‬‬
              ‫.‪db 0x55 ; first byte of a boot signature‬‬
              ‫‪db 0xaa ; second byte of a boot signature‬‬




      ‫ٚػٕذِب ٠جذأ اٌؾبعت اٌؼًّ ثؼذ رؾّ١ً ٘زا اٌّؾًّ اٌجغ١ؾ ٚٚػؼٗ وأٚي عٙبص‬
 ‫00‪٠ٚ 0x0000:0x7c‬جذأ ثزٕف١زٖ ٚفٝ‬     ‫ٌاللالع فبٔٗ ٠مَٛ ثٕغخ اٌّؾًّ اٌٝ اٌؼٕٛاْ‬
 ‫ِضبٌٕب ٘زا فبْ إٌظبَ ع١ىْٛ فٝ اٌٛػغ اٌؾم١مٝ ٚال ٠مَٛ ثبٜ فبئذح ؽ١ش أٗ ٠جذأ‬
 ‫٠ٍ١ٗ االِش ‪ٚ halt‬اٌزٜ ٠ٛلف ػًّ‬     ‫ثزٕف١ز االِش ‪ cli‬اٌزٜ ٠ٛلف ػًّ اٌّمبؿؼبد‬
 ‫اٌّؼبٌظ ٚثبٌزبٌٝ ٠زٛلف إٌظبَ ػٓ اٌؼًّ ٚثذْٚ ٘زا االِش فبْ اٌّؼبٌظ ع١ظً ٠ٕفز‬
‫اٚاِش ال ِؼٕٝ ٌٙب ( ‪ٚ )grabage‬اٌزٝ عزؤدٜ اٌٝ عمٛؽ ( ‪ٌٍٕ )Crash‬ظبَ ٚالْ ؽغُ‬
  ‫اٌّؾًّ ٠غت اْ ٠ىْٛ ‪ 512 byte‬وّب عجك ٚروشٔب عبٌفب ٚا٠ؼب ٠غت اْ ٠ىْٛ اخش‬
                          ‫ثب٠ز١ٓ ٌزا ٠ىْٛ اٌجب٠ذ 015 ٚ 115 ٠ؾًّ اٌزٛل١غ 55‪0xxaa‬‬
                                   ‫>>>> الؽظ اْ اٌزشل١ُ ٠جذأ ِٓ (0) ٌٚ١ظ (1)‬
  ‫ٚاعخذِٕب اٌّٛعٗ ‪ٌ times‬ىٝ ٔمَٛ ثٍّئ اٌّزجمٝ ِٓ اٚي ‪ 510 byte‬ثبٌم١ّخ طفش‬
          ‫(ٚ٠ّىٕٕب اعزخذاَ اٜ ل١ّخ اخشٜ ) ٚرٌه ٌٍزؼشف ػٍ١ٗ ِٓ لجً ٔظبَ (‪)Bios‬‬
‫االْ ٔش٠ذ وزبثخ سعبٌخ رشؽ١ج١خ ثغ١ـخ ػٍٝ اٌشبشخ ٌزىْٛ اٚي ِخشط ٌٕظبِٕب فبالِش‬
        ‫ثغ١ؾ ثّب إٔب ِب صٌٕب فٝ اٌٛػغ اٌؾم١مٝ ف١ّىٕٕب اعزخذاَ ِمبؿؼبد اٌج١ٛط‬
                 ‫ٚخذِبرٗ ٌّغبػذرٕب فٝ ٘زا االِش ٚعٕـجغ اٌغٍّخ (‪)salam alikom‬‬



                                                                             ‫اٌىٛد‬
;Hello Bootloader
bits 16 ; 16-bit real mode.
org 0x0 ; this number will added to all addresses (relocating).
start:
jmp main ; jump over data and function to entry point.
; *************
; data
; **********
hello msg db "Welcome to ArabicOS, Coded by MohamedIBrahim",0xa,0xd,0
; _____________________________________________
; puts16: prints string using BIOS interrupt
; input:
; es: pointer to data segment.
; si: point to the string
; _____________________________________________
puts16:
lodsb ; read character from ds:si to al ,and increment si if
df=0.
cmp al,0 ; check end of string ?
je end puts16 ; yes jump to end.
mov ah,0xe ; print character routine number.
int 0x10 ; call BIOS.
jmp puts16 ; continue prints until 0 is found.
end puts16:
ret
; ******************************
; entry point of bootloader.
; ******************************
main:
;____________________________
; intit registers
;_____________________
; because bootloader are loaded at 0x07c00 we can refrence this
location with many different combination of segment:offset
addressing.
; So we will use either 0x0000:0x7c000 or 0x:07c0:0x0000 , and in
this example we use 0x07c0 for segment and 0x0 for offset.
mov ax,0x07c0
mov ds,ax
mov es,ax
mov si,hello msg
call puts16
cli ; clear interrupt.
hlt ; halt the system.
times 510�� $�� ) db 0 ; append zeros.
              ( $$
; finally the boot signature 0xaa55
db 0x55
db 0xaa




‫) ِٚمـغ اٌج١بٔبد‬Code Segment      ( ‫اٌّالؽظ ِٓ اٌّضبي اٌغبثك ٘ٛ أْ ِمـغ اٌىٛد‬
‫ 215) ٌزٌه‬Byte‫) ِزٛاعذاْ فٝ ٔفظ اٌّىبْ ػٍٝ اٌزاوشح ( داخً اي‬Data Segment(
     ْ‫٠غت رؼذ٠ً ل١ُ ِغغالد اٌّمبؿغ ٌالشبسح اٌٝ اٌّىبْ اٌظؾ١ؼ ٚثذا٠خ ٔزوش ا‬
    ٝ‫اٌجب٠ٛط ػٕذِب ٠ٕمً اٌزٕف١ز اٌٝ ثشٔبِظ ِؾًّ إٌظبَ اٌزٜ لّٕب ثىزبثزٗ فبٔٗ ف‬
‫ ٌزٌه ال‬CS:IP ‫ ٚاٌزٝ ٠ٕزظ ِٕٙب رظؾ١ؼ اٌم١ّخ‬far jump ‫ؽم١مخ االِش ٠مَٛ ثؼٍّ١خ‬
   ً‫داػٝ ٌٍمٍك ؽٛي ٘ز٠ٓ اٌّغغٍ١ٓ ٌىٓ ٠غت رؼذ٠ً ف١ُ اٌّغغالد االخشٜ ِض‬
ٓ‫0 ٠ّى‬x07c00       ٛ٘ َ‫) ٚوّب ٔؼٍُ اْ اٌؼٕٛاْ اٌف١ض٠بئٝ ٌّؾًّ إٌظب‬ds,ss,fs,es,gs(
 َ‫اٌٛطٛي اٌ١ٗ ثبوضش ِٓ 0004 ؿش٠مخ ( 6904 ) ٌىٓ ٕ٘ب عٛف ٔمزظش ػٍٝ اعزخذا‬
    ‫0 ٔظشا الْ ٘زٖ اٌم١ُ اٌفؼٍ١خ‬x0 : 0x07c00 ْ‫0 أٚ اٌؼٕٛا‬x07c0 : 0x0 ْ‫اٌؼٕٛا‬
                                                ‫اٌّغزخذِخ ِٓ لجً ٔظبَ اٌج١ٛط‬
‫ٚفٟ ؽبٌخ اعزخذاَ اٌؼٕٛٔخ االٌٚٝ فبْ ِغغالد اٌّمبؿغ ٠غت أْ رؾٛٞ اٌم١ّخ‬
                    0x0 ْ‫0 (وّب ثبٌّضبي ) اَ ثبلٝ اٌّزغ١شاد فزجذأ ِٓ اٌؼٕٛا‬x07c00
ٓ٠ٚ‫ٚوّب ٘ٛ ِؼشٚف أٗ ػٕذِب رمَٛ اٌّغّؼبد ثؼٍّ١خ اٌزشعّخ فبٔٙب رجذأ ثزشل١ُ اٌؼٕب‬
  ٓ٠ٚ‫ ٘ٝ اػبدح رؼ١١ٓ ٌٍؼٕب‬org        ٗ‫0 ٌزٌه وبٔذ ٚظ١فخ اٌّٛع‬x0 ْ‫ثذأ ِٓ اٌؼٕٛا‬
 ‫0 أِب فٝ ؽبٌخ‬x0        ٝ٘ ‫ثبٌم١ّخ اٌزٝ رُ وزبثزٙب ٚفٝ اٌّضبي اٌغبثك وبٔذ اٌف١ّخ‬
0x0 ‫اعزخذاَ اٌـش٠مخ اٌضبٔ١خ ٌٍؼٕٛٔخ فبْ ِغغالد اٌّمبؿغ ٠غت اْ رؾزٜٛ اٌم١ّخ‬
‫0 ٚ٘زا ال ٠ّىٓ ثبٌٛػغ‬x7c00 ‫ث١ّٕب اٌّغغالد االخشٜ ٠غت اْ رجذأ ل١ّٙب ِٓ اٌم١ّخ‬
org ٗ‫0 ٌزٌه ٠غت اعزخذاَ اٌّٛع‬x0 ْ‫اٌـج١ؼٝ ٢ْ اٌّغّؼبد عزجذأ ِٓ اٌؼٕٛا‬
                                              0x7c00 ‫ ثبٌم١ّخ‬recloate ‫ٚرؾذ٠ذ ل١ّخ‬

              ‫ اٌٝ ِب الٔٙب٠خ‬loop ًّ‫االْ عألَٛ ثىزبثخ ِؾًّ ٔظبَ ثغ١ؾ ٠مَٛ ثغ‬


;
; A simple boot sector program that loops forever.
;
loop :              ; Define a label , " loop ", that will allow
; us to jump back to it , forever.
jmp loop           ; Use a simple CPU instruction that jumps
; to a new memory address to continue execution.
; In our case , jump to the address of the current
; instruction.
times 510 -($-$$) db 0       ; When compiled , our program must fit into 512 bytes ,
; with the last two bytes being the magic number ,
; so here , tell our assembly compiler to pad out our
; program with enough zero bytes (db 0) to bring us to the
; 510 th byte.
dw 0 xaa55             ; Last two bytes ( one word ) form the magic number ,
; so BIOS knows we are a boot sector.
                   ٌٝ‫ٌٚزشعّخ اٌّضبي اٌغبثك ثبعزخذاَ اٌّغّغ ٔغزخذَ االِش اٌزب‬

$nasm boot sect.asm -f bin -o boot sect.bin

ً‫ ٚعٕؼؼٗ داخ‬boot sect.asm ُ‫ؽ١ش عٕمَٛ ثؾفظ اٌّضبي اٌغبثك فٝ ٍِف ثبع‬
   َ‫ ٚ٘ٛ اٌٍّف اٌزٕف١زٜ ٌٍٕظب‬boot sect.bin ُ‫ ٚع١ٕزظ ٍِف ثبع‬nasm ‫ِغٍذ ثشٔبِظ‬



      ‫>>>ِالؽظخ : ٌُ رمُ ثبٌزؾّ١ً ِٓ ػٍٝ عٙبصن ثً اعزخذَ ِؾبوٝ ٌالٔظّخ‬
          ‫ٚاالعٙضح ٚعٛف اروش ٘زا اٌشئ ثبٌزفظ١ً فٝ ٔٙب٠خ اٌىزبة اْ شبء اهلل‬
                 ‫:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::‬
                 ‫<<<<<<اٌٛػغ اٌؾم١مٝ (‪>>>>>> )16-bit‬‬
                 ‫:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::‬




‫٘زا إٌّؾ ٘ٛ اٌزٞ ٠جذأ اٌغٙبص اٌؾبعت ثبٌؼًّ ػٕذِب ٠مٍغ ٚ٘زا ثغجت أْ ؽٛاع١ت‬
‫68‪ x‬رُ رظّ١ّٙب ثؾ١ش رذػُ األعٙضح اٌمذ٠ّخ ٚؽزٝ رؾبفظ أزً ػٍٝ رٌه فبْ ٘زا‬
                                          ‫ِب عؼٍٙب رذع اٌّؼبٌظ ٠جذأ ثبٌّٕؾ اٌؾم١مٟ‬
                                                                 ‫ب‬
‫ػٕذ اإللالع رٛافم ً ِغ اٌؾٛاع١ت اٌمذ٠ّخ ، ٚثؼذ رٌه ػٕذِب ٠غزٍُ ٔظبَ اٌزشغ١ً‬
                                                              ‫صِبَ اٌزؾىُ ثبٌؾبعت‬
                                                                        ‫ش‬
‫فبٔٗ ِخ١ ٌ ِب ث١ٓ اإلعزّشاس ثبٌؼًّ فٟ ٘زا إٌّؾ ٚثبٌزبٌٟ ٠غّٝ ٘زا إٌظبَ ٔظبَ‬
 ‫رشغ١ً 61 ثذ ٚث١ٓ رؾٛ٠ً اٌٝ إٌّؾ اٌّؾّٝ ( ‪ٚ )Protected Mode‬ثبٌزبٌٝ ٠غّٝ‬
‫ٚ فٟ ٘زا إٌّؾ ٠غزخذَ اٌّؼبٌظ‬           ‫إٌظبَ ثٕظبَ 23 ثب٠ذ (ٚ٘ٛ اٌشبئغ ؽبٌ١ب )‬
‫ِغغالد ِٓ ؿٛي 61 ثذ ِضً ( ‪٠ٚ )ax,dx,bx,cx……etc‬غزخذَ ػٕٛٔخ اٌّمـغ:اإلصاؽخ‬
‫(‪ٌٍٛ )Segment :offest‬طٛي اٌٝ اٌزاوشح اٌؾم١م١خ ٚأ٠ؼب ٠ذػُ راوشح ثؾغُ 1 ِ١غبثب٠ذ‬
‫ٚال ٠مذَ أٞ دػُ ٌؾّب٠خ اٌزاوشح ٚاٌزاوشح اٌزخ١ٍ١خ (‪ٚ )Virtual Machine‬ال ٠ٛفش ؽّب٠خ‬
                                                   ‫ٌٍزاوشح ِٓ ثشِغ١بد اٌّغزخذَ.‬



           ‫ٚا٢ْ عٕزذسة ػٍٝ اعزخذاَ ِمبؿؼبد اٌج١ٛط فٝ اٌٛػغ اٌؾم١مٝ ٚرٌه‬
   ‫ثبعزخذاَ ِمبؿؼبد اٌج١ٛط ٌـجبػخ ٔظٛص ػٍٝ اٌشبشخ ٚربثغ ِؼٝ ٌزؼشف اوضش‬
                         ‫ٚاظٓ أٗ ؽزٝ االْ اٌٛلذ ِٕبعت عذا ٌىٛة اٌمٙٛح االٚي‬
                             ‫ٌىٓ لجً رٌه عألَٛ ثششػ عش٠غ ٌّب٘١خ االٔمبؿؼبد‬
 ‫اٌّمبؿؼبد ٟ٘ ؿش٠مخ إل٠مبف اٌّؼبٌظ ثشىً ِؤلذ ِٓ رٕف١ز ػٍّ١خ ِب ٚاٌجذء‬
‫ثزٕف١ز أٚاِش أخشٜ . ٚوّضبي ػٍٝ رٌه ٘ٛ ػٕذ اٌؼغؾ ػٍٝ أٞ ؽشف فٟ ٌٛؽخ‬
‫اٌّفبر١ؼ فبْ ٘زا ٠ٌٛذ ِمبؿؼخ ( ‪ )Interrput‬رأرٝ وئشبسح اٌٝ اٌّؼبٌظ ثأْ ٠ٛلف ِب‬
‫٠ؼًّ ػٍ١ٗ ؽبٌ١ب ٚ٠ؾفظ وً اٌم١ُ اٌزٟ ٠ؾزبعٙب ٌىٟ ٠غزـ١غ ِٛاطٍخ ِب رُ لـؼٗ ،‬
  ‫ٚفٟ ؽبٌخ ٚعٛد داٌخ ٌٍزؼبًِ ِغ ٘زٖ اٌّمبؿؼخ (ِمبؿؼخ ٌٛؽخ اٌّفبر١ؼ) ٚرغّٝ‬
‫فبْ اٌزٕف١ز (‪ )Interrupt Service Rountine‬أٚ داٌخ خذِخ اٌّمبؿؼخ (‪)Interrupt Handler‬‬
                                                            ‫داٌخ ِؼبٌغخ اٌّمبؿؼخ‬
‫٠زٕمً اٌ١ٙب رٍمبئ١ب ، ٚ ٠زُ ف١ٙب ِؼبٌغخ ٘زٖ اٌّمبؿؼخ (ِضال ٠زُ لشاءح اٌؾشف اٌزٞ رُ‬
                                                           ‫ادخبٌٗ ِٓ ِزؾىُ ٌٛؽخ‬
‫اٌّفبر١ؼ ِٚٓ صُ اسعبٌٗ اٌٝ ِزغ١ش فٟ اٌزاوشح) ٚػٕذِب رٕزٟٙ داٌخ ِؼبٌغخ‬
                                        ‫ُ‬
‫اٌّمبؿؼخ ِٓ ػٍّٙب فبْ اٌّؼبٌظ ٠ؼٛد ٌ١ىًّْ رٕف١ز اٌؼٍّ١خ اٌزٟ وبْ ٠ؼًّ ػٍ١ٙب.‬
                       ‫ٚاٌّمبؿؼبد إِب رىْٛ ِمبؿؼبد ػزبد٠خ (‪)Hardware Interrupt‬‬
‫ٚرظذس ِٓ خالي اٌجشاِظ ػٓ ؿش٠ك رؼٍ١ّخ(‪ٚ )int n‬رظذس ِٓ ػزبد اٌؾبعت أٚ رىْٛ‬
                                                      ‫ثشِغ١خ (‪)Software Interrupt‬‬
‫وزٌه ٕ٘بن ِمبؿؼبد ٠ظذس٘ب اٌّؼبٌظ ٔفغٗ ػٕذ ؽذٚس خـأ ِب ( ِضال ػٓ اٌمغّخ‬
                                                                      ‫ػٍٝ اٌؼذد .‬

                                                                  ‫::::::::::::::::::::::::::::::::‬
                                                                        ‫اٌّمبؿؼبد اٌجشِغ١خ‬
                                                                  ‫::::::::::::::::::::::::::::::::‬

‫اٌّمبؿؼبد اٌجشِغ١خ ٟ٘ ِمبؿؼبد ٠زُ اؿاللٙب ِٓ داخً اٌجشٔبِظ ٌٕمً اٌزٕف١ز اٌٝ‬
                              ‫داٌخ اخشٜ رؼبٌظ ٘زٖ اٌّمبؿؼخ ،(‪)Interrupt handler‬‬
‫ٚغبٌجب ِب رغزخذَ ٘زٖ اٌّمبؿؼبد فٟ ثشاِظ اٌّغزخذَ (‪)Ring3 user mode‬‬
     ‫ٌالعزفبدح ِٓ خذِبد إٌظبَ (ِضال ٌٍمشاءح ٚاٌىزبثخ فٟ أعٙضح اإلدخبي ٚاإلخشاط‬
                            ‫ؽ١ش ال رٛعذ ؿش٠مخ اخشٜ ٌزٌه فٟ ّٔؾ اٌّغزخذَ).‬




                                                         ‫:::::::::::::::::::::::::::::::::::::::‬

                                                         ‫اٌّمبؿؼبد فٟ إٌّؾ اٌؾم١مٟ‬

                                                         ‫:::::::::::::::::::::::::::::::::::::::‬

‫فٟ إٌّؾ اٌؾم١مٟ ػٕذِب ٠زُ رٕف١ز أِش اٌّمبؿؼخ ( ٚ٘ٛ ِب ٠غّٝ ثـٍت رٕف١ز اٌّمبؿؼخ‬
                                                             ‫(‪)Interrupt Request‬‬

‫فبْ اٌّؼبٌظ ٠أخز سلُ اٌّمبؿؼخ اٌّـٍٛة رٕف١ز٘ب ٚ٠ز٘ت ? ا اٌٝ عذٚي اٌّمبؿؼبد ٚرخزظش‬
                                                                         ‫ة (‪)IRQ‬‬

      ‫ٚ٠ؾٛٞ وً عغً 0 ‪ٕ٠ٚ x3ff‬زٟٙ ػٕذ اٌؼٕٛاْ ‪٘ x‬زا اٌغذٚي ٠جذأ ِٓ اٌؼٕٛاْ اٌؾم١مٟ‬

‫ٚاٌزٟ ٠غت رٕف١ز٘ب ٌزخذ٠ُ اٌّمبؿؼخ اٌّـٍٛثخ. ؽغُ اٌؼٕٛاْ ٘ٛ أسثغ (‪ )IR‬ف١ٗ ػٍٝ ػٕٛاْ‬
                                                              ‫داٌخ ِؼبٌغخ اٌّمبؿؼخ‬

                                                                      ‫ثب٠ذ ٚرىْٛ وبٌزبٌٟ:‬
       _ Byte 0: Low offset address of IR.
       _ Byte 1: High offset address of IR.
       _ Byte 2: Low Segment address of IR.
       _ Byte 3: High Segment Address of IR.


1024 ٛ٘ ‫ٚ٠زىْٛ اٌغذٚي ِٓ 652 ِمبؿؼخ ( ٚثؾغجخ ثغ١ـخ ٠ىْٛ ؽغُ اٌغذٚي‬
                                                       ِٓ ‫ثب٠ذ ٟٚ٘ ٔبرغخ‬
‫(ػشة ػذد اٌّمبؿؼبد فٟ ؽغُ وً عغً ) ، ثؼغ ِٕٙب ِؾغٛص ٚاٌجؼغ االخش‬
                                                  ‫٠غزخذِٗ اٌّؼبٌظ ٚاٌجم١خ‬
                       ‫ا‬
‫ِزشٚوخ ٌّجشِظ ٔظبَ اٌزشغ١ً ٌذػُ اٌّض٠ذ ِٓ اٌّكؿؼبد. ٚثغجت أْ اٌغذٚي‬
                                               ‫٠زىْٛ فمؾ ِٓ ػٕبٚ٠ٓ ٌذٚاي‬
ِٓٚ ‫ِؼبٌغخ اٌّمبؿؼبد فبْ ٘زا ٠ّىٕٕب ِٓ ٚػغ اٌذاٌخ فٟ أٞ ِىبْ ػٍٝ اٌزاوشح‬
                                                  ‫صُ ٚػغ ػٕٛأٙب داخً ٘زا‬
،)‫ اٌغغً ( ٠زُ ٘زا ػٓ ؿش٠ك ِمبؿؼبد اٌجب٠ٛط‬IVT .ٗ١‫ٚاٌّمبؿؼبد اٌّٛعٛدح ف‬
                                                ‫ٚاٌغذٚي اٌغبثك ٠ٛػؼ رٌه‬



                                                      :::::::::::::::::::::::::::::::::::::::::
                                                        ّٟ‫اٌّمبؿؼبد فٟ إٌّؾ اٌّؾ‬
                                                      :::::::::::::::::::::::::::::::::::::::::

                                        ‫ب‬      ‫ال‬
‫فٟ إٌّؾ اٌّؾّٟ ٠غزخذَ اٌّؼبٌظ عذٚ ً خبط ً ٠غّٝ ثغذٚي ٚاطفبد اٌّمبؿؼبد‬
                                                            ))Interrupt Descriptor Table(
، IVT‫ؽ١ش ٠زىْٛ ِٓ 652 ٚاطفخ وً ٚاطفخ ِخظظخ ٘زا اٌغذٚي ٠شبثٗ عذٚي‬
                                                                           IDT‫ٚ٠خزظش ة‬
ٞٛ‫ٌّمبؿؼخ ِب ( ارً اٌغذٚي ٠ؾٛٞ 652 ِمبؿؼخ) ، ؽغُ وً ٚاطفخ ٘ٛ 8 ثب٠ذ رؾ‬  ‫ا‬
                                                           ‫ػٕٛاْ داٌخ ِؼبٌغخ اٌّمبؿؼخ‬
)selector type: code or data( ‫ فٟ عذٚي‬GDT ‫اٌزٞ رؼًّ ػٍ١ٗ داٌخ ِؼبٌغخ اٌّمبؿؼخ‬
                                                                       )IR( ‫ٚ ٔٛع إٌبخت‬
‫، ثبالػبفخ اٌٝ ِغزٜٛ اٌؾّب٠خ اٌّـٍٛة ٚاٌؼذ٠ذ ِٓ اٌخظبئض رٛػؾٙب اٌزشو١جخ‬
                                                                                  .‫اٌزبٌ١خ‬
      _ Bits 0-15:
{ Interrupt / Trap Gate: Offset address Bits 0-15 of IR
{ Task Gate: Not used.
      _ Bits 16-31:
{ Interrupt / Trap Gate: Segment Selector (Useually 0x10)
{ Task Gate: TSS Selector
      _ Bits 31-35: Not used
      _ Bits 36-38:
{ Interrupt / Trap Gate: Reserved. Must be 0.
{ Task Gate: Not used.
      _ Bits 39-41:
{ Interrupt Gate: Of the format 0D110, where D determins size
      _ 01110 - 32 bit descriptor
      _ 00110 - 16 bit descriptor
{ Task Gate: Must be 00101
{ Trap Gate: Of the format 0D111, where D determins size
      _ 01111 - 32 bit descriptor
      _ 00111 - 16 bit descriptor
      _ Bits 42-44: Descriptor Privedlge Level (DPL)
‫0 ‪{ 00: Ring‬‬
‫1 ‪{ 01: Ring‬‬
‫2 ‪{ 10: Ring‬‬
‫3 ‪{ 11: Ring‬‬
     ‫)‪ _ Bit 45: Segment is present (1: Present, 0:Not present‬‬
     ‫:26-64 ‪ _ Bits‬‬
‫‪{ Interrupt / Trap Gate: Bits 16-31 of IR address‬‬
‫‪{ Task Gate: Not used‬‬


‫ٚاٌّضبي اٌزبٌٟ ٠ٛػؼ أشبء ٚاطفخ ٚاؽذح ثٍغخ اٌزغّ١غ ؽزٝ ٠غًٙ رزجغ اٌم١ُ ،‬
                                    ‫ٚع١زُ وزبثخ ِضبي وبًِ الؽمب ثٍغخ اٌغٟ.‬




                          ‫اعزخذاَ ٔظبَ االلالع اٌشٙ١ش ‪-: GRUB‬‬

‫٠ّىٕٕب ثبعزخذاَ ِؾًّ إٌظبَ ‪ GRUB‬رؾّ١ً ٔظبِٕب اٌخبص ثىً عٌٙٛخ ؽ١ش ٠مَٛ‬
 ‫ثزٛف١ش وً ِب ٔش٠ذ فٝ ِشؽٍخ االلالع ٚوزٌه ٠غزـ١غ اٌزؼبًِ ِغ اٌؼذ٠ذ ِٓ االٔظّخ‬
‫ٚ٘ٛ اٌّؾًّ اٌّغزخذَ فٝ الالع ٔظبَ اٌزشغ١ً اٌشٙ١ش ‪ّ٠ٚ LINUX‬ىٕٕب رؾّ١ً‬
                                            ‫ٔغخخ ِٓ إٌظبَ ِٓ اٌشاثؾ اٌزبٌٟ‬
                                      ‫‪http://www.gnu.org/software/grub‬‬
                        ‫االْ عٕأرٝ اٌٝ روش ثؼغ ِٓ خظبئض اٌّؾًّ ‪: GRUB‬‬




                        ‫٠غزـ١غ اٌزؼشف ػٍٝ اٌؼذ٠ذ ِٓ اٌٍّفبد اٌزٕف١ز٠خ (‪)Formats‬‬            ‫‪‬‬
                                                  ‫٠ذػُ اٌؼذ٠ذ ِٓ ِزغ١شاد ‪ELF ٚ a.out‬‬       ‫‪‬‬
                                                           ‫٠ذػُ االٔٛ٠خ اٌّزؼذدح االلالع‬   ‫‪‬‬
   ‫‪ِ 32-bit‬ضً‬                              ‫٠ذػُ اٌؼذ٠ذ ِٓ أظّخ الالع الٔظّخ رشغ١ً‬         ‫‪‬‬
                                              ‫(.…‪)FREEBSD,NETBSD,OpenBSD.etc‬‬
                                                    ‫٠ذػُ رؾّ١ً (‪)multiples modules‬‬         ‫‪‬‬
                                                            ‫رؾّ١ً (‪)configuration file‬‬     ‫‪‬‬
                                               ‫ٚاعٙخ ٌٍزؼبًِ ِؼٗ (‪)Menu Interfance‬‬         ‫‪‬‬
                             ‫٠ّزٍه عـش ٌالٚاِش ٌٍزؼبًِ (‪)command-line interface‬‬            ‫‪‬‬
                                                   ‫٠ذػُ أٛاع ػذ٠ذح ِٓ أظّخ اٌٍّفبد‬       ‫‪‬‬
                                 ‫٠ذػُ اٌؼغؾ اٌزٍمبئٝ (‪)automatic decompression‬‬             ‫‪‬‬
                                                            ‫اٌٛطٛي ٌٍج١بٔبد ِٓ اٜ عٙبص‬     ‫‪‬‬
                                         ‫وشف عّ١غ راوشح اٌٛطٛي اٌؼشٛائٟ اٌّضجزخ‬            ‫‪‬‬
                                          ‫٠ذػُ (‪)Logical Block Address mode‬‬     ‫‪‬‬
                                                ‫٠ذػُ االلالع ػٓ ؿش٠ك اٌشجىخ‬     ‫‪‬‬
                                                    ‫٠ذػُ اي ‪remote terminals‬‬    ‫‪‬‬
   ‫ثبالػبفخ اٌٝ اٌؼذ٠ذ ِٓ اٌخظبئض االخشٜ ٠ّىٕه اٌزؼشف ػٍ١ٙب ِٓ خالي طفؾزٗ‬       ‫‪‬‬
  ‫اعزخذاَ ‪ٔ GRUB‬مَٛ ثبٌز٘بة اٌٝ طفؾخ اٌّٛلغ اٌخبص ثٗ ٚاٌزٝ ثبالػٍٝ ِٚٓ صُ ٔخزبس‬
   ‫رؾّ١ً خ١بس ( ‪ٚ )Obtaining GRUB‬رمَٛ ثزؾّ١ً اٌؾضِخ ِٚٓ صُ رمَٛ ثفىٙب ػٍٝ اٌمشص‬
                                                       ‫اٌظٍت فٝ ِىبْ رخزبسٖ أٔذ‬

‫ٕ٘بن ثؼغ االِٛس اٌزٝ ٠غت اْ رؼٍّٙب لجً اْ رمَٛ ثؼًّ ( ‪ٚ )GRUB boot floppy‬أب ٌٓ‬
‫الَٛ ثبعزؼشاع ٚششػ وً اٌؾضِخ ثبٌـجغ الْ ٘زا ٠ؾزبط ِشعغ ٌٍزؾذس ف١ٗ ٚ٠ّىٕه اْ رغذ‬
 ‫ششػ وبًِ ٌىً ٘زٖ االِٛس فٝ ( ‪ٚ )GRUB Manuels‬اٌزٜ عٛف الَٛ ثششؽٗ ٘ٛ ِغشد‬
                         ‫ششػ ِٚغبػذره فٝ ِؼظُ ٍِفبد ‪)Stage2ٚ Stage 1( GRUB‬‬

‫اي(1‪ )Stage‬عٛف رمَٛ ثبٌٕغخ اٌٝ ‪ٚ Boot Loader‬رّغٝ ٘زٖ اٌّشؽٍخ ة ‪Stage Boot‬‬
‫‪ ِٓٚ BIOS‬صُ رمَٛ ثزؾّ١ً اي 2‪٘ٚ Stage‬زا‬       ‫‪ ٝ٘ٚ Loader‬اٌزٝ رزغٍُ اٌزؾىُ ِٓ اي‬
  ‫اٌٍّف ٠زىْٛ ِٓ إٌٛاح اٜ ثّؼٕٝ اطؼ اي2‪ِ Stage‬غئٌٛخ ػٓ رؾّ١ً إٌٛاح اٌٝ اٌزاوشح‬
                                                                   ‫ٚاٌجذء ثزٕف١ز٘ب‬

                                                                       ‫خـٛاد اٌؼًّ :‬

‫عٕمَٛ ثبعزخذاَ اداح ( ‪ )Virtual Floppy Disk Driver‬ثزمَٛ ثؼًّ ِؾبوبح ٌّؾشن االلشاص‬
   ‫اٌّشٔخ ثذْٚ اعزخذاَ اٌّؾشن ِبد٠ب ٚ٠ّىٕه رؾّ١ٍٗ ِٓ ٘زا اٌشاثؾ ٚوزٌه عزغذ دسط‬
                                                            ‫عش٠غ ٌى١ف١خ اعزخذاِٗ‬

                                              ‫‪https://sourceforge.net/projects/vfd‬‬

                                   ‫1 - عٕمَٛ ثفزؼ اداح ِؾبوبح االلشاص اٌّشٔخ (‪)VFS‬‬
 ‫2 - عٛف ٔمَٛ ثزمغ١ُ ‪ Letters‬اٌٝ 0‪ٚ Drive1 ٚ Drive‬وزٌه رأوذ ِٓ أٔه ٔغؾذ فٝ‬
                                                                      ‫٘زٖ اٌخـٛح‬
‫3 - لُ ثظٕغ ‪ RAM floppy image‬فٝ وال ِٓ 0‪ ِٓٚ Drive1 ٚ Drive‬صُ لُ ثبػبدح رٙ١ئخ‬
                                                                        ‫ًٌ0‪Drive‬‬
‫4 - لُ ثؼًّ ِغٍذ فشػٟ رؾذ االعُ /‪ /boot/grub‬ػٍٝ اي 0‪ٚ Drive‬لُ ثٕغخ ٍِفٝ‬
  ‫1‪ٌٍٕ Stage 2 ٚ Stage‬ظبَ اٌزٜ لّذ ثزـٛ٠شٖ اٌٝ اٌّغٍذ ٚوزٌه لُ ثؼًّ ٍِف‬
                                                                  ‫ثبعُ ‪menu.lst‬‬
             ‫5 - ٌّغزخذِ١ٓ اٌٛ٠ٕذٚص ٠غزخذَ ا٢ِش >‪copy /b stage1 + stage2 boot‬‬
    ‫6 - ٌّغزخذِ١ٓ ٔظبِٝ اي‪٠ Linux/Unix‬غزخذَ ا٢ِش >‪cat stage1 stage2 >boot‬‬
                                   ‫7 - ػٍ١ه االْ وزبثخ ٍِف الالع ِجبششح اٌٝ 0‪Drive‬‬
   ‫‪ ِٓٚ PartCopy‬صُ اعزخذاَ االِش >‬      ‫8 - ٌّغزخذِٝ اٌٛ٠ٕذٚص ٠ّىٕٕب اعزخذاَ اداح‬
 ‫2‪ّ٠ٚ boot 0 200000 –f‬ىٕه اعزجذاي 2‪ –f‬ة %‪٘ٚ Drive‬زا لذ ٠ؼـ١ه سعبٌخ خـأ‬
                                                              ‫ثغجت اٌؾغُ اٌىج١ش‬
                        ‫9 - ٌّغزخذِٝ اٌٍ١ٕىظ اعزخذاَ االِش 2‪cat boot >/dev/fd‬‬
                      ‫01 - اثذء اٌّؾبوٟ اٌخبص ثه ٚ٠غزؾغٓ اْ ٠ىْٛ ‪Bochs/QEMU‬‬
‫11 االْ لُ ثزغ١١ش اٌزؾىُ ِٓ 0‪ Drive‬اٌٝ 1‪ Drive‬ارا وٕذ ِٓ ِغزخذِٟ اٌٛ٠ٕذٚص فبْ‬   ‫-‬
  ‫‪ٌٚ physical floppy drive‬ؼًّ رٌه ارشن‬      ‫رؾمك ٘زا ِغزؾ١ً اال ارا وٕذ رّزٍه‬
‫0‪ ِٓٚ Drive‬صُ لُ ثؼًّ اػبدح رٙ١ئخ ًٌ ‪ِ virtual floppy‬غ رىشاس اٌخـٛح اٌشاثؼخ ِٓ‬
        ‫عذ٠ذ ٚاعزخذاَ ‪ِ virtual floppy‬غ اٌّؾبوٟ ِٓ عذ٠ذ ٚع١ؼًّ ثبرْ اٌجبسٞ‬
           ‫21 ارا لبَ ثبٌزؾّ١ً ِٚٓ صُ ظٙش ‪ GRUB‬فبوزت اٌزبٌٝ فٝ ٔبفزح عـش االٚاِش‬‫-‬
                                                                   ‫)0‪Setup(fd‬‬
‫عٛف ٠أخز ثؼغ اٌٍؾظبد ٌزٕف١ز االِش ٚثؼذ أزٙبء اٌزٕف١ز 1 ‪ Drive‬ع١ىْٛ ‪Bootable‬‬
   ‫‪ ٛ٘ Drive‬اٌٍّف‬                ‫اٌٍّف اٌٛؽ١ذ اٌزٜ ال ٠غت ػٍ١ه رغ١١شٖ اثذا فٝ‬
    ‫/2‪٠ ٗٔ٢ boot/grub/stage‬ؾزٛٞ ػٍٝ ِذخً رؾّ١ً اٌّشؽٍخ اٌضبٔ١خ ِٓ ِؾًّ‬
 ‫إٌظبَ ‪ٚ GRUB‬ثذٚٔٗ ٌٓ ٠غزـ١غ ٔظبِه اٌزؾٛي اٌٝ ٘زٖ إٌمـخ ٚعٛف ٠غجت ِب‬
                                                   ‫٠غّٟ ػٍّ١ب ة‪System Crash‬‬



                                                      ‫لبئّخ االلالع : (‪)boot Menu‬‬



‫ػٕذِب ٔغزخذَ ‪ GRUB‬فؼٍ١ٕب اْ ٔمَٛ ثزؾؼ١ش ( ‪ )Multiboot standard‬فٝ اي( ‪)disposal‬‬
‫اٌخبص ثٕب ٚ٘زا ٠ؼٕٟ اْ اٌّغزخذَ ٠غزـ١غ رٕض٠ً اوضش ِٓ ٔظبَ رشغ١ً ػٍٟ اٌؾبعت فٝ‬
  ‫أْ ٚاؽذ ٚاخز١بس اٜ ِٕٙب ع١زُ االلالع ِٕٙب ِٓ خالي لبئّخ االلالع رٍه (ً٘ رززوشْٚ اطذاس‬
‫رغشثخ اٌمذسح فٝ ِششٚع ٔظبَ اٌزشغ١ً ‪ Arab-OS‬فٝ إٌغخخ اٌضبٔ١خ وبْ ٘زا االِش ثشىً‬
‫‪ GRUB‬اٌٝ‬      ‫ػٍّٟ ) ٚفٝ ؽبي ٚعٛد ٔظبَ رشغ١ً ٚاؽذ فمؾ ػٍٝ اٌؾبعت ف١ّىٕه اخجبس‬
‫ػذَ ػشع ٘زٖ اٌمبئّخ ِٓ خالي ٍِف ‪ٚ Menu. Lst‬اٌزٞ ٔؾزبط اٌ١ٗ ا٠ؼب ػٍٝ اي( ‪)Floopy‬‬
               ‫ٚٔخجشٖ ثباللالع ِجبششح ِٓ ٘زٖ إٌٛاح ٚاالٚاِش اٌزبٌ١خ رغزخذَ داخً اٌمبئّخ‬



‫‪ ( default n‬إٌٛاح االفزشاػ١خ اٌزٟ ٠زُ اٌزؾّ١ً ِٕٙب ِجبششح ٚ٘ٝ إٌٛاح االٌٟٚ‬

  ‫فٝ ٍِف ‪ٚ menu.lst‬رىْٛ ٌٙب اٌم١ّخ 0‪ٚ index‬اٌضبٔ١خ ٌذ٠ٙب اٌم١ّخ 1‪... Index‬اٌخ)‬
  ‫‪( timeout s‬ػذد اٌضٛأٟ اٌزٟ ٠ٕزظش ف١ٙب ‪ GRUB‬اٚاِش اٚ سدٚد اٌّغزخذَ لجً‬

        ‫رؾّ١ً إٌٛاح االفزشاػ١خ ٚارا ٌُ رىٓ ِؼ١ٕخ فبٔٗ ٠زُ االلالع رٍمبئ١ب ِٚجبششح )‬
  ‫‪٘( Hiddenmenu‬زا االِش ٠مَٛ ثبخفبء اٌمبئّخ اٚ رخزفٟ ِجبششح رٍمبئ١ب ثؼذ أزٙبء‬

                               ‫اٌضٛأٟ اٌّؾذدح ٌشد اٌّغزخذَ ٚ٠جذأ االلالع ٌٍٕٛاح )‬
‫‪ ( fallback n‬ارا ٌُ ٠ٕغؼ ‪ GRUB‬فٝ رؾّ١ً إٌٛاح االفزشاػ١خ اٚ اٌزٟ رُ رؾذ٠ذ٘ب‬

                    ‫٘زا االِش ٠ؾذد ثذي ؽشف ‪ِ n‬ب ٘ٛ اٌخ١بس اٌزٞ ٠مَٛ ثباللالع ِٕٗ )‬

   ‫ٚا٠ؼب ٠ٛعذ اٌؼذ٠ذ ٚاٌّض٠ذ ِٓ االٚاِش ٚششػ اٌزؼبًِ ِؼٙب ٌّٚؼشفزٙب أظؼ‬
   ‫‪ِٛ ِٓ GRUB‬لؼٗ اٌشعّٟ‬          ‫ثمشاءح اي ‪ Manuels‬اٌخبص ثٕظبَ االلالع‬
                                                           ‫اٌغبثك روشٖ‬



                                                        ‫ٔظبَ اٌزشغ١ً االٚي :‬

 ‫االْ ثؼذِب رؼٍّٕب و١ف١خ اعزخذاَ ٔظبَ االلالع اٌشٙ١ش ‪ٚ GRUB‬اٌزٞ عٕزؼٍُ ِٓ‬
    ‫خالٌٗ اْ شبء اهلل فٝ ٘زا اٌىزبة عٕمَٛ االْ ثزغشثخ وزبثخ ٔظبَ رشغ١ً ثغ١ؾ‬
‫٠ؼشع اٌغٍّخ "‪ٚ " Mohamed Is Arabian Young man‬ع١ىْٛ ثؼغ اٌششػ ٚثؼذ٘ب‬
‫عٕخزُ ثبرْ اهلل اٌغضء االٚي ٚثؼذ٘ب عأٔزمً ِؼىُ اٌٝ روش ِب ع١زُ اعزؼشاػٗ فٝ‬
  ‫االعضاء اٌمبدِخ اْ شبء اهلل ِٓ ٘زا اٌىزبة فبٌغضء االٚي اسدرٗ اْ ٠ىْٛ ثغ١ـب اٌٝ‬
                                                                    ‫دسعخ وج١شح‬
   ‫ع١مٛي ٌىٟ اؽذوُ ٌّبرا عٕمَٛ ثبػبدح ِب فؼٍٕبٖ فٕؾٓ لّٕب ِغجمب ثىزبثخ ٔظبَ‬
                                                  ‫رشغ١ً ثغ١ؾ ٠مَٛ ثبٌـجبػخ ?‬
‫ ِّب‬BIOS ‫ ٔفغٗ ثبعزخذاَ ِمبؿؼبد اي‬Loader ِٓ ‫االعبثخ ثغ١ـخ وبٔذ اٌـجبػخ‬
 ٝ‫ رغبػذ وض١شا ف‬INT 0X13       ‫٠غًٙ ٘زٖ اٌؼٍّ١خ ثشىً وج١ش ؽ١ش اْ اٌّمبؿؼخ‬
ٞ‫ػٍّ١خ ؿجبػخ إٌض ػٍٝ اٌشبشخ ثً ٘ٝ رىْٛ ِغئٌٛخ ػٓ ٘زٖ اٌؼٍّ١خ ٌىٓ اٌز‬
‫عٕخزُ ثٗ االْ اْ شبء اهلل ٘ٛ ٠ّىٓ اٌمٛي ثأٔٙب ٔٛاح ثغ١ـخ عذا ٕٚٔزمً اٌٝ اٌٛػغ‬
ْ‫) ٚوزٌه فبْ لشاءح اٌىٛد عزىْٛ عٍٙخ عذا ا‬VIDEO ( ‫اٌّؾّٟ ٚاٌىزبثخ اٌٝ راوشح‬
  ‫ ٌزؾّ١ً ٘زٖ إٌٛاح اٌجغ١ـخ ٚ٘زا ِب‬GRUB ًّ‫شبء اهلل ٚوزٌه ٠ّىٓ دِظ اٌّؾ‬
    ْ‫عٕجذأ ثٗ رفظ١ال فٝ اٌغضء اٌضبٟٔ ِٓ ٘زا اٌىزبة اٌزٞ ع١ىْٛ ؿٛ٠ال ِٚفظال ا‬
                                                                       ‫شبء اهلل‬


Source

]BITS 32[
]ORG 0x1000[

define VIDEO_MEM 0xB8000 ; Adress of text mode video %
memory
define VIDEO_LENGTH 80*25 ; Adress of text mode video %
memory

:main
call clear_screen
mov esi,msg
call print
call end

:clear_screen
mov ebx, 0xB8000
mov ecx, VIDEO_LENGTH
lx.
' ' ،]mov byte [ebx
inc ebx
mov byte [ebx], 00010001b
inc ebx
loop .lx
ret

:print
xor eax, eax
xor edi, edi
mov ebx, 0xB8000
:begin
mov al, [esi+edi] ; mov the char number 'ebx' in msg
cmp al, 0
je .rx ; reached end of msg
mov byte [ebx], al ; for putting a charachter in screen, we must put
1-the char ascii cpde
:inc ebx ; and 2- the char color attribute
mov byte [ebx], 01001111b; here 0x7 means : foreground blank &
background white
inc ebx
inc edi
jmp begin
‫.‪:rx‬‬
‫‪ret‬‬
‫‪:end‬‬
‫‪jmp end; infinite loop‬‬



‫‪msg db "Now, we are in proected mode, Mohamed Is An Arabian‬‬
‫0 ,"): ‪Young Man‬‬
‫0 ‪times 512-($-$$) db‬‬



                         ‫ٚأ٠ؼب ٘زا اٌىٛد عٕغذٖ ِشفمب ِغ اٌىزبة ثبعُ ‪print.asm‬‬

 ‫اٌٝ ٕ٘ب ٠ٕزٟٙ اٌغضء االٚي ِٓ اٌىزبة ٚفٝ االعضاء اٌمبدِخ عٕزىٍُ اْ شبء اهلل ػٓ‬



                                                                 ‫1 - ٔظبَ االلالع‬
        ‫ً٘ ٔؾزبط ًٚ٘ عزٕغزخذَ ٌغخ اي‪ C‬أَ ‪ Assembley‬أَ ++‪C‬‬                            ‫‪‬‬
      ‫ِب ٘ٝ اٌٍغبد ِٚب ٘ٝ االعبٌ١ت اٌزٟ رغزخذَ فٝ رظّ١ُ ٔظُ‬                          ‫‪‬‬
                                                        ‫اٌزشغ١ً‬
              ‫و١ف ٠ّىٕٕب رشعّخ االعضاء اٌّخزٍفخ ٚسثـٙب ِغ ثؼؼٙب‬                      ‫‪‬‬



                                                              ‫2 - اٌٛضغ اٌّسّٟ‬
        ‫و١ف ٠ّىٕٕب رؾذ٠ذ طالؽ١بد عًّ اٌزاوشح ٚو١ف١خ ؽّب٠خ اٌزاوشح‬                    ‫‪‬‬
                                                  ‫رٕظ١ت عذٚي ‪GDT‬‬                     ‫‪‬‬
                                                       ‫ِب ٘ٛ ‪? LDTs‬‬                  ‫‪‬‬
                                ‫ِب ٘ٛ ‪? )LDT( Handling interrupts‬‬                    ‫‪‬‬
             ‫ٌّبرا ٠غت اْ رىْٛ إٌٛاح خبٌ١خ ِٓ اٜ رؼٍ١ّبد رٕف١ز٠خ ?‬                  ‫‪‬‬



                                                        ‫3 - اٌّٙبَ ٚرؼذد٠خ اٌّٙبَ‬
                                      ‫ٔظش٠خ اٌّٙبَ ٚفىشرٙب اٌؼبِخ‬                    ‫‪‬‬
                ‫عًّ اٌزؾىُ ٚؽبالد ثبٌّٙبَ (‪)Task State Segments‬‬                      ‫‪‬‬
                                         ‫دساعخ رظّ١ُ ٔظبَ ِٙبَ‬                       ‫‪‬‬
                                              ‫رٛل١ذ اٌّٙبَ (‪)PIT‬‬                     ‫‪‬‬



                                                    ‫رسّ١ً اٌزؼٍ١ّبد اٌزٕف١ز٠خ‬   ‫4-‬
                                      ‫ػًّ ِذخً عذٚي ‪ LDT . GDT‬عذ٠ذ‬                   ‫‪‬‬
                                        ‫اػبفخ ِّٙخ عذ٠ذح (‪)Task State‬‬                ‫‪‬‬
                                                       ‫رؾّ١ً اٌزؼٍ١ّبد‬               ‫‪‬‬
                                         ‫رٕف١ز اٌزؼٍ١ّبد اٌزٟ رُ رؾّ١ٍٙب‬             ‫‪‬‬
                             ‫5 - رفبػً اٌّغزخذَ (ثذا٠خ ثغ١طخ)‬
  ‫ِبرا ٠ؾذس ػٕذِب رمَٛ ثبٌؼغؾ ػٍٝ صس ِب فٝ اٌؾبعت ?‬             ‫‪‬‬
    ‫ِبرا رش٠ذ اْ ٠ؾذس ػٕذِب رمَٛ ثبٌؼغؾ ػٍٝ صس ِؼ١ٓ ?‬           ‫‪‬‬
                                    ‫ِمبؿؼبد اٌخذِبد‬             ‫‪‬‬
‫أؽذاس رمبؿغ ٌٛؽخ اٌّفبر١ؼ (‪)Handling keyboard events‬‬            ‫‪‬‬
                              ‫‪Handling system keys‬‬              ‫‪‬‬
              ‫خش٠ـخ ٌٛؽخ اٌّفبر١ؼ ٚاٌخشائؾ ثشىً ػبَ‬             ‫‪‬‬



                                            ‫6 - اٌٛضغ إٌقٟ‬
              ‫ِب اٌّفزشع اْ ٠مَٛ اي‪ CONSOLE‬ثؼٍّٗ ?‬              ‫‪‬‬
                   ‫ِب اٌشىً اٌزٞ ٠ٕجغٟ اْ ٠ىْٛ ػٍ١ٗ ?‬           ‫‪‬‬
              ‫رؼٍ١ّبد إٌٛاح أَ رٕف١ز رؼٍ١ّبد اٌّغزخذَ‬          ‫‪‬‬
                              ‫اٌزٛاطً ػجش اٌٛػغ إٌظٟ‬           ‫‪‬‬
                                       ‫ِٛاػغ إٌظٛص‬             ‫‪‬‬
                      ‫رظّ١ُ ٚاعٙخ ٔظ١خ ِزؼذدح اٌّٙبَ‬            ‫‪‬‬
                                       ‫رمغ١ُ اٌشبشخ‬             ‫‪‬‬
        ‫اٌشبشبد اٌّزؼذدح (‪)graphical memory paging‬‬              ‫‪‬‬
                            ‫اسعبي اؽذاس ٌٛؽخ اٌّفبر١ؼ‬           ‫‪‬‬
                                           ‫ِذ٠ش اٌّٙبَ‬          ‫‪‬‬



                               ‫7 - ِؼبٌدخ إٌقٛؿ ٚاٌّخشخبد‬
                                  ‫اٌمض ٚإٌغخ ٚاٌٍظك‬            ‫‪‬‬
                                     ‫اٌجؾش ػٓ إٌظٛص‬            ‫‪‬‬
                                          ‫رغ١١ش اي‪CASE‬‬          ‫‪‬‬
                                                   ‫[…]‬          ‫‪‬‬
                                            ‫داٌخ ‪printf‬‬         ‫‪‬‬
                                              ‫‪Aligning‬‬          ‫‪‬‬
                   ‫اٌغـٛس اٌغذ٠ذح ٚاٌّغبفبد ٚاي‪Taps‬‬             ‫‪‬‬
                                         ‫رٕغ١ك االسلبَ‬          ‫‪‬‬
                 ‫اعززخذاَ ‪ِ parameters‬غ اٌذاٌخ ‪Printf‬‬           ‫‪‬‬
                    ‫ؽشٚف اٌٙشٚة (‪)Escape-characters‬‬             ‫‪‬‬



                     ‫8 - ٔظبَ اٌٍّفبد ٚاٌذخٛي اٌٝ اٌمشؿ اٌقٍت‬
                        ‫٘١ىٍ١خ اٌمشص اٌظٍت اٌف١ض٠بئ١خ‬           ‫‪‬‬
                              ‫رخض٠ٓ اٌج١بٔبد ٚاٌّؼٍِٛبد‬         ‫‪‬‬
                         ‫أظّخ اٌٍّفبد اٌّٛعٛدح ؽبٌ١ب‬           ‫‪‬‬
                                        ‫61‪FAT12/FAT‬‬             ‫‪‬‬
                                                ‫‪Ext2fs / ext3fs‬‬                 ‫‪‬‬
                              ‫0669‪١٘ٚ ISO‬ىٍ١خ االلشاص اٌّشٔخ‬                    ‫‪‬‬
                                  ‫لشاءح ٚوزبثخ اٌٍّفبد ٚاٌّغٍذاد‬                ‫‪‬‬
                                                           ‫أِضٍخ‬                ‫‪‬‬



                              ‫9 - اٌّىزجبد اٌثبثزخ ٚاٌذ٠ٕبِ١ى١خ ٚث١ئخ اٌزٕف١ز‬
                                ‫أعجبة اٌؾظٛي ػٍٝ راوشح فبسغخ‬                    ‫‪‬‬
               ‫ؿشق رؾذ٠ذ اعزخذاَ عضء اٚ اعضاء ِؼ١ٕخ ِٓ اٌزاوشح‬                  ‫‪‬‬




     ‫ٚ٘زا ِب خــذ اْ شبء اهلل ٌ١ىْٛ فٝ االعضاء اٌمبدِخ ٕٚ٘بن رفبط١ً‬
   ‫عزىْٛ ثٙب اْ شبء اهلل ٌُٚ اروش٘ب ٌؼذَ االؿبٌخ ػٍ١ىُ ٌىٓ اْ شبء اهلل‬
‫عأظً اوزت ٘زٖ االعضاء ؽزٟ ٌٛ أؿٍذ ػٍ١ىُ فٝ االعضاء ِضً اٌغضء اٌضبٟٔ‬
‫اٌزٞ أػززس ع١ىْٛ اٌفبسق اٌضِٕٟ ث١ٕٗ ٚث١ٓ ٘زا اٌغضء وج١شا ٔظشا الٔشغبٌٟ‬
 ‫ؽبٌ١ب فٝ ِششٚع ٔظبَ اٌزشغ١ً ٚ٠ّىٓ ا٠ؼب ٌٍغّ١غ االؿالع ػٍ١ٗ ِٓ ٕ٘ب‬



‫‪http://www.arab-pd.com‬‬

   ‫ٚرؾ١برٟ ٌٍغّ١غ ٚعّ١غ اٌؾمٛق ِؾفٛظخ ٌّؤٌف اٌىزبة ِؾّذ اثشا٘١ُ‬
                          ‫ٚاٌىزبة رؾذ سخظخ االعزخذاَ اٌؼبِخ ‪GNU‬‬



   ‫ٚاٌغالَ ػٍ١ىُ ٚسؽّٗ اهلل ٚثشوبرٗ ٚاعزٛدػىُ اهلل اٌزٞ ال رؼ١غ ٚدئبػٗ‬
                                 ‫ٚفٝ اِبْ ٚسػب٠خ ٚؽفظ اهلل اْ شبء اهلل‬




    ‫عّ١غ اٌؾمٛق ِؾفٛظخ ® ِؾّذ اثشا٘١ُ ٚ ِذٚٔخ إٌظبَ اٌؼشثٟ‬
All rights reserved © MohamedIBrahim

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:19
posted:1/11/2012
language:Arabic
pages:46