نحو بناء نظام تشغيل عربي
halwa كتب:هلنبدأ الدرس التالي ام لا؟ :huh:
بالطبع تفضل اخى ننتظر منك دروسا اكثر واكثر
جزاك الله خيرا على مجهوداتك وربنا يوفقك لكن نتمنى ان تضع شرح تفصيلى ان امكن
بسم الله الرحمن الرحيم
اعرف انت انتظاركم قد طال كثيراً وارجوا قرأه قرأه كتاب الخوارزمي الجزء 5 قبل قراءه هذا الجزء لان الشرح الموجود هنا يشرح المبم فقط و من الان فصاعداً سوف اشرح الفكره وعليكم بكتابه الكود من نفسكم وسوف اعرض بعض الامثله ايضاً وعليكم بإكتشاف الافكار الموجوده اي كود لانه بعد هذا الدرس سوف تكملون معي اي انه بعد هذا الدرس تكونون قد وسلتم للمستوي الذي انا فيه وسوف نختار احد الانظمه انكمل دراستنا عليه ونضيف في نظامنا لنكمله :happy: .
الدرس الحالي يتكلم عن تدبيرالذاكره الحقيقيه (اتبع منهج الخوارزمي)
اولاً لابد وان البعض قد راوده سؤال وهو ما الهدف من تدبير الذكير الحقيقه؟ ونحن بالمقابل نستطيع الكتابه في اي مكان في الذكره الحقيقه كما نريد؟
- اولا سوف اذكر مثال تمهيدي للإجابه ولنقل انك قمت بعمل مؤشر ولكن هذا المؤشر يشير إلي منطقه توجد خارج حدود الذاكره وقمت بالكتايه في تلك المنطقه ما
اكيد سوف يحدث استثناء او سوف يعيد احاسب التشغيل. غّا فأول هدف من تدبير الذاكره هو معرفه حدود الذاكره ثاني هدف هو عدم الكتابه في مكان بيانات
النواه والثالث عدم الكتابه في عناوين الفيجا(من 0xa0000 إلي 0xbf000 تقريباً) حتي لا يتغير محتوي الشاشه والهذف الاخير هو عدم كتابه المعلومات
في نفس المكان اكثر من مره
==============================================================================
ولن نقم بأول امثلتنا وهي طلب تخصيص مساحه من الذاكره
يطلب البرنامج التخصيص --> يقوم المخصص بالبحث في القائمه او القوائم التي يملكها
ويبحث ما إذا كان هناك مساحه فارغه يقوم بتخصيصها --> ابعاد عنوان بدايه هذه المساحه من القائمه --> إرسال العنوان إلي البرنامج الذي طلب التخصيص
ولنقم بشرح الخطوه رقم 2 وهي البحث في القوائم
اي مخصص للذاكره يمتلك قائمه بالعنواين ولكن مال المقصود بالقائمه في الحقيقه القائمه هي عباره عن متغير اوي مؤشر إلي مكان ما يحتفظ فيه بالعناوين او .....إلخ
سؤال ماهي الطريه الانسب لإستخدام الاقئمه؟
المتغير : سوف يكون صعب لانه سوف يأخذ مساحه كبيره من ملف النواه ثانياً ولنفرض ان العنواين الموجوده في الذاكره كانت اكبر مساح هذا المتغير الطبيعي الذي
سوف يحدث هو تخذين اقصي كم من العناوين يمكن لهاذا المتغير احتماله وبقيه العناوين سوف تضيع
المصفوفه: نفس السابق بالإضافه إلي ان البحث فيها صعب نسابياًز
المؤشر : في الحقيقه انسب الطرق لان باللإضافه إلي انه لا يأخذ مساحه كبيره من ملف النواه إلي انه يمتخصيص اي كم من العناويه
فيه ولنأتي لنذكر اول مشاكل استخدام المؤشر وهي كيف سحنحدد المساحه المستعمله له هذه يتطرف بنا إلي امور اضافيه
اولأ علينا التفريق بين متغيرات النواه ومتغيرات البرامج متغيرات النواه سوف نجعل لها مساحه بعد بيانات النواه في الذاكره
لا يمكن التخصيص فيها ولكي نقوم بذالك سوف نقوم بذالك سوف نقوم بعمل داله اسمها kalloc ومحتواها كالتالي
extern "C" uchar end; //استيراد متغير يشير إلي نهايه النواه تذكر شرح ملف االربط
uint knl_end = (uint)&end; // متغير يحتوي عنوان نهايه النواه
vod *kalloc(uint size)
{
uint add = knl_end;
uint newend = add + size; حساب الحد الجديد للنواه
if(memory_size <= end) إذا كان اكبر من حجم الذاكره يعود ب صفر
{
return 0;
}
knl_end= newend; تحديد نهايه النواه
return(void *)addr; العوده بعنواالبدايه للمساحه المخصصه
}ومن هذه الداله بات بإمكاننا صناعه ال new ببساطه
inline void * oprator new(uint size)
{
void *tmp = kalloc(size)
return tmp;
}تم تعديل هذه المشاركة بواسطة halwa في 2 أكتوبر 2008 في 14:36
my new site click here
وعن طريق المعامل new يمكننا حجز مساحه للمؤشر الذي بدوره سوف يحمل العنواين
ومن هنا نكون قد انتهينا من القائمه نأتي للكلمه المواليه وهي التخصيص
سؤال : ما معني التخصيص؟
سؤال جيد التخصيص بمعني عام هو جعل شخص ما يمتلك شئ ما ما اي الامتلاك وفي حالتنا بالسبه للذاكره معناها جعل مساحه
حجمها x للبرنامج y كي يستخدمها كما يشاء
سؤال: هل هناك طريقه معينه لتخصيص؟
في الحقيقه اود ان اقول ابدع اي ابتدع اي طريقه يمكنك من خلالها التخصيص فهناك من يقوم بعمل 4 قوائم 2 لحفظ المساحات التي تم
تخصيصها و 2 للمساحات التي لم يتم تخصيصها(سنسميها الحره)
ونأتي لنذكر الطريه التي سنستعملها هي صراحه شبيهه بعمل المكدس اي اننا سنملك قائمه واحده تحفظ الصفحات الحره عندما يطلب
برنامج تخصيص مساحه له فإننا نطردها من القائمه وعندما يتم غلق البرنامج او يخبرنا بأنه لم يعد يحتاجها نقوم بإضافه عنوانها إليها
******
لماذا خارطه البيتات المعروضه في الخوارزمي سيئه bitmap
لنقل انك تبحث في صوره كلها الوان قريبه من اللون الازرق عن نقطه حمراء صغيره جداً جداً
كم سيكفيك من الوقت لإيجاد هذه النقطه إذا كانت ابعاد الصوره متر × متر
والان الصوره صارت 4متر × 4متر ثم 8متر ×8متر ثم 12×12 ثم 20 ×20 لابد وانك ستصاب بالجنون
هكذا هي خارطه البيتات فهذا النوع من المخصصات يقوم بالبحث في بتات القائمه وليس في ارقام بل بتات ولنقل ان حجم القائمه 1 كيلو تتوقع كم من الوقت سوف يحتاجه ليجد بت فارغ ليقوم بتخصيص مساحته ولنقم بتشبيهها بالمثال السابق اي ان النخصص سوف يبحث عن النقطه الحمراء بين 10485760 نقطه زرقاء وقت طويل جداً
في النهايه احب ان اقول سبب عمل تشكيله شبه مبهمه من المعلومات هنا وجعلك تقرأ من كتاب الخوارزمي الذي لم تكن معتاد علي اسلوبه في الكتابه الهذف من هذا كله هو التعرف علي طرق مختلفه في الشرح ومختلفه في التفكير
بالنسبه لي لكي افهم فكره ما استخدم برنامج الرسام وال notepad :lol: هناك من يستخدم الورقه والقلم وهناك من لايستخدم شئ بل بدماغه
والسبب الثاني هو اننا سوف نكمل مع بعض اي ان معلوماتنا صارت واحده
my new site click here
احييك على مجهودك الرائع وجعلة الله فى ميزان حسناتك ان شاء الله
واريد ان اسالك هل خطتك التعليمية تشمل الطريق الى وقت صنع النواة
وان لم تكن خطتك تشمل هذة فهذة المعلومات مفيدة وتعطيك خلفية قوية فى المستقبل عند تعلمك صنع النواة
وانصح بكتاب operating system concept
فهو يشرح التقنيات والنسخ الحديثة تشمل تدريس منهجية لويندوز 2000 و انظمة لنكس وبعض الانظمة الاخرى
وقام صاحب الكتاب (بمساعدة مبرمج زميلة ) بانشاء نظام اسمة minix3
وهو 4000 سطر فقط (بمقابل ملايين الاسطر لباقى الانظمة ) وهو نظام قوى ومستقر وامن
وقابل للبرمجة علية باى لغة بشرط برمجة كومبيلر لهذة النظام وهو مفتوح المصدر ويمكنك دراستة
:D بالتوفيق :D
بسم الله الرحمن الرحيم
اخي احب ان اعرفك ام شرحي يشمل صنع النواه فكل ما نصنعه هو جزء من النواه ونوانتا مثل نواه لينكس تماماً فعند عدم اكتمال شئ ما تتوقف النواه بأكملها
***
اول مره سوف اضع فيها الكود الخاص بالنواه والنواه
لكي تجرب النواه قم بنسخها إلي القرص الوهمي وتشغيل برنامجك الخاص بالحاسب الوهمي (ملحوظه اختر اي برنامج خلاف microsoft virtual pc وعندي برنامج اخر وهو qemu manger هذا البرنامج سهل جداً ولا يحتاج لشرح )
ايضاً قمت بإلرفاق السورس كود بما اننا سنعمل معاً وارجو عدم فتح السورس كود قبل إنهائك للدرس الخاص بالذاكره الوهميه
my new site click here
بسم الله الرحمن الرحيم احب انا اعرف إلي اين انتهي الموضوع هل سينتهي إلي مخصص الذاكره الحقيقه فقط وبهذا يكون كل شئ قد انتهي :blink: ام اننا سنكم وقد وضعت خطه لنتواصل مع بعضنا وهي
مثلاً اني قمت بإنجاز مدبر القرص المرن اقوم بإرفاق الكود وبشرح شبه تفصيلي عن الكود
انتم تستقبلونه ومن يستطع تطويره يقوم بتطويره وإرسال الكود إلي الاخرين
ربما هذه الخطه قد تكون مفيده نوعاً ما
my new site click here
ما شاء الله عمل رائع
اذا هل تم الانتهاء الان من النواة ؟؟ ام هذا جزء بسيط منها ؟؟ ولكن يعمل بدون مشاكل ؟
اريد ان اعرف إلى اين سنصل بالعمل هذا
دولة الخلافة الاسلامية في المخاض الاخير وميلادها قريب
حزب التحرير : التزم الطريق الصحيح الشرعي الوحيد لاعادة دولة الخلافة الاسلامية .
الامة الاسلامية متعطشة لقيادة مخلصة لتذوق حلاوة النصر ولن يكون ذلك الا بعودة الخلافة الاسلامية
الامة الاسلامية تحتاج لاحداث تسحقها سحقا وتمعسها معسا لتفكر تفكيرا جماعيا بالتغير لان وحدة المشاعر لوحدها لاتكفي وهذة الاحداث كلها خير
السلام عليكــم ورحمـة الله وبركاتــه
بســم الله الـرحمــن الرحيــم
اولاً إن مايشغلني عن الموضوع هو الدراسه وتلاحظونها حيث كنت اضع الكتاب بعد اسبوع من الذي قبل اما الان لم اضع اي كتب بعد
ثانياً احاول إيجاد اي مصدر متكامل عن الجرافيك وقريباً إن شاء الله سوف اضع
الجزء الجديد من الكتاب
ثانياً النواه النواه في الحقيقه هي خدمات يقوم تظام التشغيل بتقديمها للمستخدم
السلام عليكــم ورحمـة الله وبركاتــه
تم تعديل هذه المشاركة بواسطة halwa في 19 نوفمبر 2008 في 15:21
my new site click here
شكرا لك اخى halwa على استمرارك وبارك الله فيك وفى مجهوداتك وانى حزين جدا لعدم البدء معك بسبب انشغالى بالدراسة وفقك الله اخى وبارك الله فيك
والله شيء جيد ومآشآء الله الاعضآء مآقصروآ لكن لمآذآ توعيدون كل شيء من جديد ..
يوجد هنآك سورس كآمل مجآني ومفتوح المصدر وتسطيع اخذ الكود او الفكرة العامة وتختصر الوقت :
انظر هنآ وحمل سورس اليونكس :http://www.kernel.org
رآبط الكيرنل : في نفس الموقع T_T"
سلآآم
تم تعديل هذه المشاركة بواسطة redfalcon464 في 22 نوفمبر 2008 في 15:36
هناك الكثير ممن يقولون ذالك ولكنت نحن ننبيه من الصفر حتي إذا اردنا تعديل شئ نكون فاهمين احنا بنعدل ايه؟
2-علي ما نفهم الكود بتاع لينكس هنأخذ وقت اكثر من ان احنا بنتعلم إذاي نبرمج نظام تشغيل
my new site click here
لدى سؤال بسيط هل اصبحت النواة كامله ؟؟؟؟
لتصبح نواة نظام ؟ ام انها مغلفة لتطبيق بعض الاوامر النصية فقط لا غير ؟؟
-----------
سؤال اخر اعتقد انه ليس فى وقته اصلا بس الصراحة اريد ان اعرف الاجابة
لماذا تم اللجوء الى الاسمبلي فى عمل النواة ؟
لماذا لم تختاروا السى او حتى السى بلس بلس ؟
اسهل من حيث التصميم اما من حيث السرعة فالصراحة ما اقدر افتي :) واقول اسرع
بس اعقتد ليس بفارق كبير ؟
السلام عليكــم ورحمـة الله وبركاتــه
بســم الله الـرحمــن الرحيــم
أخ (HARD) هكذا يكون النقاش فكثره الاسئله تزيد من المعرفه لماذا انت مستعجل :happy:
1- النواه لم تصبح كاملة بعد فنحن إذا اردنا ان نصل إلي الشاشه الرسوميه فعلنا دعم الفيجا ............................الموس الاله الكاتبه
وإذا اردنا ان تكون مغلقه فلا داعي لذالك كله ولكن مبتغانا هو الشاشه الرسوميه التي اعمل فيها الان
**************
لا بل هذا وقته عندي ملحوظه انت اخطأت في طرحه :wub: فنحن نستخدم السي/سي++ وعند استخدام اوامر الجهاز نفسها نستخدم فيها الاسمبلي مثل تعليمه الإخراج out لا يمكن عملها عن طريق السي/سي++
*************************************
بدأت الان في كتابه الجزء الخاص بالذاكره الوهميه اجوا اعلامي بإنتهائكم من الذاكره الحقيقيه
my new site click here
اشكرك اخوى على الاجابة على اسئلتى :)
والله كان ودى اساعد بس خبرتي فى الانظمة للاسف ضعيفه جدا
وكمان انا هذه الفترة احاول انى اركز فى الخوارزميات
ولكنى من المتابعين للموضوع وبشدة ايضا
بالتوفيق لنا ولكم ان شاء الله
my new site click here
hopefully to get a helpful info man
السلام عليكم
بارك الله بك على هذا المجهود
وأحب أن أنوه إلى أنني متشوق لأن اري الشرح الخاص بالشاشة الرسومية
دولة الخلافة الاسلامية في المخاض الاخير وميلادها قريب
حزب التحرير : التزم الطريق الصحيح الشرعي الوحيد لاعادة دولة الخلافة الاسلامية .
الامة الاسلامية متعطشة لقيادة مخلصة لتذوق حلاوة النصر ولن يكون ذلك الا بعودة الخلافة الاسلامية
الامة الاسلامية تحتاج لاحداث تسحقها سحقا وتمعسها معسا لتفكر تفكيرا جماعيا بالتغير لان وحدة المشاعر لوحدها لاتكفي وهذة الاحداث كلها خير
بســم الله الـرحمــن الرحيــم
السلام عليكــم ورحمـة الله وبركاتــه
شباب اليوم انتهيت من امتحانات نصف العام سوف نكمل ام لا؟ وهل انتهيتم من الدرسين السابقين ام لا؟
السلام عليكــم ورحمـة الله وبركاتــه
my new site click here
اخي الكريم نحن بانتظار المزيد
اخي الكريم
الرجاء الإنتباه
المرفقات في المشاركة رقم 42 تحتوي على فايروس
تم تعديل هذه المشاركة بواسطة mandareka في 29 يناير 2009 في 21:13
دولة الخلافة الاسلامية في المخاض الاخير وميلادها قريب
حزب التحرير : التزم الطريق الصحيح الشرعي الوحيد لاعادة دولة الخلافة الاسلامية .
الامة الاسلامية متعطشة لقيادة مخلصة لتذوق حلاوة النصر ولن يكون ذلك الا بعودة الخلافة الاسلامية
الامة الاسلامية تحتاج لاحداث تسحقها سحقا وتمعسها معسا لتفكر تفكيرا جماعيا بالتغير لان وحدة المشاعر لوحدها لاتكفي وهذة الاحداث كلها خير
قد يفيد هذا الرابط
السلام عليكــم ورحمـة الله وبركاتــه ،
بســم الله الـرحمــن الرحيــم
اليوم انتهت امتحانات العام الدراسي :happy: :happy: :happy:
وإن شاء الله سنعاود العمل
بريدي الاليكتروني ahmed_ali_halawa@yahoo.com
سوف اقوم بفتح البريد الاليكتروني ايام السبت والاثنين والاربعاء والجمعه الساعه 2 ظهراً بتوقيت القاهره
ليقدم كل من له استفسار سؤاله
السلام عليكــم ورحمـة الله وبركاتــه ،
my new site click here
szerf كتب:بسم الله الرحمن الرحيمأعتقد أن الكثير من المبرمجين العرب يتمنون ظهور نظام تشغيل عربي 100% وقد قرأت في هذا المنتدى عدة مقالات عن ذلك ووجدت أن:
-بعض الناس يعتقدون أن الأمر صعب بحيث يكاد يكون مستحيلا
-و بعضهم يعتقدون أنهم يمكن أن يصمموا نظام تشغيل قادر على أن يتفوق على وندوز ولينكس
-وبعضهم لا يرون فائدة من تصميم نظام تشغيل عربي
أنا شخصيا أرى أن الأمر ليس مستحيلا وأيضا لا يمكن لهذا النظام أن يتفوق بسهولة على الأنظمة الأخرى
ولكن...
يمكننا أن نحاول...
قد يقول البعض ان الأمر صعب جدا ومن غير المنطقي ان يقوم شخص ببرمجة نظام تشغيل يفي بحاجيات المستخدم اليوم
هذا صحيح
ولكن لينوس تورفالدز لم يصمم الأوبنتو 8.04 لكنه صمم نواة اللينكس التي تعمل من سطر الأوامر !!!
أي أن نظام التشغيل العربي يجب أن يبدأ من سطر الأوامر
ربما سطر الأوامر غير محبذ للكثيرين ولكن رحلة الألف ميل تبدأ بخطوة
والخطوة الأولى هي التعلم:-تعلم لغة الأسمبلي
-تعلم المقاطعات(interruption) الخاصة بالمعالج والبيوس
-الإطلاع على نظام تشغيل سابق
و أرجو من كل متخصص في هذا الأمر الإفادة ببعض الروابط أو كتب من تأليفه أو ترجمة بعض كتب أجنبية وتبسيطها أو حتى تقديم دروس عبر هذا المنتدى(الحسنة بعشر أمثالها)
{الكتب التي تتحدث حاليا عن لغة الأسمبلي باللغة العربية قديمة ومعظمها موجه لتعليم السطو على البرامج أما الخاصة بتعليم المقاطعات فهي منعدمة}
ويجب أن يدخل الموضوع في حيز الجدية..
ولذلك أبدأ بهذا الملف الذي يحتوي على كيفية تصميم نظام تشغيل بسيط
والسلام عليكم
