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

نظام تشغيل عربي !!!

مغلقرائج
بدأه neo في 2 أبريل 2003 · 203 رد · 36,693 مشاهدة · في هندسة البرمجيات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

نظام تشغيل عربي !!!

بسم الله الرحمن الرحيم

كنت أفكر أن نبدأ فى تصميم نظام تشغيل عربي

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

و سنبدأ بالدراسة و هى تحديد الكتب و المراجع التى سوف نحتاجة

كما أود أيضاَ أن يتعرف الأعضاء الموجودون فى نفس الدولة فمثلا الموجودون فى مصر يتقابلون و يعملوا كفريق عمل و كذلك فى كل الدول الأعضاء المشاركين لذيادة التفاعل

و اليكم بعض الخطوات

1- الدراسة

2- تخطيط نظري للمشروع

3- توزيع المهام

4- تجميع المشروع

5- تطوير المشروع

و الأن يجب أن نعرف أننا لن نقوم بتصميم ويندوز فى أول تجميع للمشروع بل سنبدأ البداية الطبيعية

و هى تصميم نظام تشغيل يعمل بالـCommand line ( سطر الأوامر ) و سوف يكون فى بداية الأمر باللغة الأنجليزية و بعد ذلك يتم تعريبة و سوف يتم التطوير بعد ذلك على هذا الأساس

و بعد ذلك نقوم بالدخول للـgraphice mode و نقوم بعمل مكتبات و دوال لتصميم أو دوال شبيه بدوال الـAPI فى ويندوز

و الأن أرجوا من الأعضاء ذوى الخبرة الأشتراك و أرشادنا الى المراجع و الكتب التى سوف تفيد الموضوع بالأضافة الى بعض المواقع التى تدعم هذا الموضوع

و لنبدأ بهاتبن الوصلتين و هما لنظم تشغيل صغيرة و بها بعض الوصلات لكتب و مراجع بالأضافة الى الشيفرة المصدرية الى النظام

http://users.rcn.com/eaj.pizzi/pizzios/res...rces/index.html

http://v2os.v2.nl

و الأن لابد أن نعرف خطوات التصميم العملية لنظام

  • المترجمات ( تحديد المترجمات التى سوف نعمل عليها )
  • الروابط ( LINKERS )
  • المجمعات ( ASSEMBLERS )
  • تحديد نسق الملفات التنفيذية
  • التعامل مع الوحدات الطرفيه
  • الشبكات
  • طرق العرض على الشاشة
  • نوع النواه
  • التنقل بين المهام
  • تعدد المستخدمين
  • تعدد المهام

( مأخوذ من كتاب OS-FAQ( WRITE YOUR OWN OPREATION SYSTEM ) )

أخوكم أحمد عصام ( مصر )

Nothing to mention except that I am Muslim

Using your brain is not bad as you think

My Blog

logo.jpg

#2

http://www.nondot.org/sabre/os/articles

هذه الوصلة لموقع ( OS center )

Nothing to mention except that I am Muslim

Using your brain is not bad as you think

My Blog

logo.jpg

#3

الأن و بعد البداية المبسطة

أود أن أضيف بعض الأشياء و هو أن هناك أكثر من طريق لتصميم نظام التشغيل فيمكننا مثلا تركيبة مثلا

أذا قمنا بأحضار boot loader جاهز مثل lilo أو grub

و قمنا بأحضار الكرنال الخاص بلينكس

لن يتبقى سوى تصميم الوجهات الرسومية لتسهل التعامل مع المستخدم أو أذا لم نقم بتصميم الواجهه أن يتعامل المستخدم مع النظام بطريقة shell command و هى طريقة صعبة على المستخدم المبتدئ

و يمكننا عمل شئ أخر وهو عمل أكثر من فريق عمل

1 - فريق الـboot loader

2 - فريق الكرنل

3 - فريق الـGUI

4 - فريق الشبكات

5 - فريق التوثيق ( documention )

6 - فريق لعمل تعديل على الكرنل لتلائم التعامل مع برامج لينيكس و ويندوز و apple ( ليس ضرورى و لكنة مهم )

و يجب أن نضع فى الأعتبار أن windows مسيطر على المستخدمين بنسبة 90 % و لذلك يجب أن يكون التصميم شبية لـwindows بنسبة على الأفل 80 % مثل التعامل مع القوائم و التنقل بين الأقراص بالأضافة الى خاصية plug and play و هى مهم جدا و يمكننا عمل شئ شبية بلينكس من حيث ماذا ؟

من حيث تعدد الوجهات الرسومية فمثلا يكون هناك عدة وجهات رسومية مثل

واجه محاكية لـGnome و الـKDE و Windows 98 و Windows XP

و أقترح عمل فريق لكل من هذه الوجهات فسوف يتفرع من فريق الـGUI هذه الفرق

1- فريق واجهة Windows 98

2- فريق واجهة Windows XP

3- فريق واجهة KDE

4- فريق واجهة Gnome

بالأضافة الى نظام الملفات فيجب أن ستعامل التظام مع أكثر من نظام مثل FAT 16 ,FAT 32 ,NTFS ,LINUX NATIVE ,LINUX SWAP PARTATION

بحيث أذا أراد المستخدم التعديل فيها يتم بسهولة

أسف لعدم أكتمال الموضوع و لكنى مشغول الأن

أخوكم أحمد عصام ( مصر )

Nothing to mention except that I am Muslim

Using your brain is not bad as you think

My Blog

logo.jpg

#4

اخي الكريم

اعتقد ان المبرمجين العرب في هذا المجال قلة

لذلك من الصعب البداية بعمل نظام التشغيل الان

لكن رايي الشخصي هو تكوين فريق من المهتمين في الامر

والذي سيكون غالبيتهم مثلي لايعرفون عن نظم التشغيل

لكن عندهم خلفية عن البرمجة في بعض اللغات

ارى انه بعد تشكيل الفريق من المهتمين

نحدد ماذا نريد من لغات لتصميم

واذا كان احد اللغات غير معروفة لدى احد اعضاء الفريق

يحرص على ان يتعلمها

بعد ذلك يوكن لدينا فريق من ذوي القدرة البرمجية

لكن الغالبية لايعرفون عن تصميم نظم التشغيل

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

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

وايضا لو كان في الفريق ممن هم يجيجون الانجليزية

فمن الممكن ان يتم اختيار بعض الكتب ومصادر المعلومات لترجمتها

لن مؤكد انه سيكون هناك اشخاص مثلي لا يجيدون الانجليزية

اريد اخذ رايكم بالموضوع

وشكرا للجميع

#5

أنا ذكرت فى بداية الموضوع أن نبدأ بالدراسة

و شكرا على الرد

Nothing to mention except that I am Muslim

Using your brain is not bad as you think

My Blog

logo.jpg

#6

قريبا سوف أضع نسخة من برنامج boot loader + شرحة و برنامج نسخ النظام الى الأقراص الصلبة و المرنة ( أمهلونى بعض الوقت )

Nothing to mention except that I am Muslim

Using your brain is not bad as you think

My Blog

logo.jpg

#7

السلام عليكم ورحمة الله وبركاته

ارى ان نبدا بتكوين فريق ليس فريق عمل وانما فريق من المهتمين

لنرى من معنا

بعد ذلك نحدد مذا على مصمم النظم ان يتعلم

من لغات وبرامج وهكذا

ثم نتساعد في معرفتها

بعد ذلك نبدا بالتصميم بإذن الله

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

اريد رايك بتكوين فريق من المهتمين

فقط كل من يريد المشاركه يقول انا معكم

لكي نحدد العدد

وشكرا

#8

أنا أرى أنه لا يوجد أى أحد مهتم الموضوع بقالة أكثر من أسبوع و محدش رد

Nothing to mention except that I am Muslim

Using your brain is not bad as you think

My Blog

logo.jpg

#9

أخيرا كود الأقلاع هاهو جربوة أن ألحقت معه الـnasm الذى يتجم البرنامج برنامج الأقلاع مصمم بالأسيمبلي

[BITS 16]      ; بدء العمل مع البيوس بنظام16 بت

[ORG 0]	; أنزياح البيانات = 0



jmp start      ; القفز لبداية البرنامج 



[BITS 16]      ;  بدء العمل مع البيوس بنظام16 بت

[ORG 0]	;  أنزياح البيانات = 0



jmp start      ; القفز لبداية البرنامج 


; -------------------------------------
; البانات المستخدمة فى عملية الأقلاع و بعض الرسائل
; ------------------------------------------------------------------------

        bootdrv         db 0

        bootmsg         db 'Ahmed Essam system ',39,' -> Boot Sector Example',13,10,0



        rebootmsg    db 'Ahmed Essam Boot loader Press to reboot',13,10,0



        processormsg    db 'Ahmed Essam OS Checking for 386+ processor: ',0

        need386         db 'Sorry... 386+ required!',13,10,0

        found386        db 'Found!',13,10,0



	whatever	db 'in the name of ALLAH -> good Bluss us Arab',13,10,0


;*******************************************
; بعض الدوال المستخدمة
;*******************************************

        detect_cpu:

                mov si, processormsg   ; أخبار المستخدم بما نقوم به

                call message



               ; أختبار ما أذا كان المعالج 80386 أما لا

                pushf                  ; حفظ القيمة الأصلية للأعلام

                

                xor ah,ah              ; ah = 0

                push ax                ; نسخ ax فى الأعلام

                popf                   ; مع مسخ 15-12بت

                

                pushf                  ; قراْة الأعلام الخارجة من ax

                pop ax       

                and ah,0f0h            ; أختبار البت 12- 15 م أذا وضعت أم لا

                cmp ah,0f0h

                je no386               ; فى حالة عدم وجدو المعالج 386



               ; أختبار 286

                mov ah,0f0h            ; وضع البت 12-15

                push ax                ;نسخ الـ ax فى الأعلام

                popf

                

                pushf                  ; نسخ العلم فى ax

                pop ax

                and ah,0f0h            ; أختبار ما أذا كانت البت 12-15 تم مسحها

                jz no386               ; فى حالة عدم وجدو المعالج 386

                popf                   ; أرجع القيم الأصلية للأعلام

                

                mov si, found386     ; نقل محتوى المتغير found386 الى si

                call message	; أظهار ما يوجد فى si

                

                ret                    ; عدم وجود 386

         no386:

                mov si,need386         ; نقل محتوى المتغير need386 الى si

                call message	; أظهار ما يوجد فى si

                jmp reboot             ; أعادة التشغيل عند الضغط على أى مفتاح

                     
;       الدالة message و التى تظهر أى قيمة موجودة فى si

        message:                       ; 

                lodsb                  ; تحميل الحروف الموجودة فى الـsi

                or al,al               ; أختبار ما أذا كان الحرف 0 موجود

                jz done

                mov ah,0eh             ; وضع الحروف

                mov bx,0007            ; 

                int 0x10               ; نداء البيوس و مجموعة الدوال الـ21

                jmp message

        done:

                ret
;       أخذ المفتيح 

        getkey:

                mov ah, 0              ; الأنتظار حتى الضغط

                int 016h

                ret


;       أعاة التحميل

        reboot:

                mov si, rebootmsg      ; وضع قيمة rebootmsg فى الـsi

                call message  ; عرض ما هو موجود فى الـsi

                call getkey            ; الأنتظار حتى الضغط على أى زر



                db 0EAh                ; أعادة التحميل



                dw 0000h

                dw 0FFFFh

                
; *******************************************
; بداية الكود الأساسى
; *******************************************

start:

        mov ax,0x7c0   ; البيوس فى العنوان 0:07C00h, يجب وضعها فى الـDS

        mov ds,ax      ; نقل مختويات الـax الى الـds

data



        mov [bootdrv], dl;



        cli            ; مسح المقاطع 

        mov ax,0x9000   

        mov ss,ax

        mov sp,0xffff   

        sti            ; أعادة المقاطع

                

        mov si,bootmsg ; عرض رسالة الأقلاع

        call message



        call detect_cpu; أختبار المعاج 386



.386   ;أستخدام التعليمات الخاصة بالمعالج 286



        mov si,whatever  

        call message

        call getkey



	call reboot



        times 510-($-$$) db 0

        dw 0xAA55

و هذا هو برنامج نسخ برنامج الأقلاع على الـقرص المرن مصمم بالسي وهو بسيط جدا

#include <bios.h>   

#include <stdio.h> 



void main() 

{ 

        FILE *in; // حجز متغير مؤشر من النوع file

        unsigned char buffer[520]; // حجز متغير buffer



        if((in = fopen("bootsect", "rb"))==NULL) //  أختبار ما أذا كان الملف bootsect موجود أم لا و أذا كان موجود يفتحة على الأساس الثنائي 

        { 

                printf("Error loading filen"); // عرض رسالة خطاء فى حالة عدم القدرة على قراءة الملف أو خطأ فى الفتح



        } 



        fread(&buffer, 512, 1, in); // وضع مختويات الملف فى العنوان الخاص بالمتغير buffer



        while(biosdisk(3, 0, 0, 0, 1, 1, buffer)); // نسخ محتويات العنوان buffer فى القرص المرن على 

// المقطع 1

//  القرص 0

// الرأس 0

// و على مساحة 512 حرف فقط



        fclose(in); // أغلاق الملف 

} 



/*

أرجوا فتح الـhelp الخاص بالسي و معرفة أكثر عن الدوال الأتية



abswrite

absread

biosdisk

_biosdisk



 */

أنتظروا قريبا الكثير

لقد أرفقت الكود و برنامج الترجمة و لكن تواخوا الحذر لان برنامج النسخ هذا من الممكن أن يضيع كل البيانات من على القرص الصلب أذا قمتم يتغيير القيم لأنه يقوم بمسح القديم و نسخ الجديد لذا أكرر تواخوا الحذر فى تعديل البرنامج

للعلم لن أستطيع البحث أو أى محاولة أخرى لحين أنتهائي من الأمتحانات

أخوكم أحمد عصام

Nothing to mention except that I am Muslim

Using your brain is not bad as you think

My Blog

logo.jpg

#10

بسم الله الرحمن الرحيم

مشكورين ياخوان على هذا الموضوع

ولو كان كبداية كما تفضلتم ونتمى العمل والمشاركة في هذا المشروع

ولكن

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

فارجوا ان لا يتوقف هذا المشروع

#11

أن شاء الله سوف يكتمل

و لكن بعد الامتحانات و أن حاليا أقوم بجمع بعض الأخوة المصريين ليشاركونا فى هذا المشروع

Nothing to mention except that I am Muslim

Using your brain is not bad as you think

My Blog

logo.jpg

#12

انا معكم

احمد من مصر

alhofy2@hotmail.com

#13

السلام عليكم ورحمة الله وبركاته

إخوتي الأعزاء أرى أن ما تفعلونه شيء رائع

ولكن أرى أنه من الأحسن أن نتوحد مع من قد بدؤوا هذا المشوار منذ فترة ليست بالقصيرة.

أقصد الإخوة في موقع www.arabeyes.org فانهم في أشد الحاجة الى المبرمجين مثلكم. أو على الأقل ترجمة البرامج . على كل ففي الموقع ستجد كل المعلومات عن طريقة العمل والمهام الموزعة.(clock)

#14

السلام عليكم

كيف اجعل رسالة الترحيب بالعربي

ومشكورين

#15

للأسف لايمكن جعلها بالعربي

أذا أردنا ذلك فسوف نحتاج الى تغيير شكل الحروف داخل الذاكرة ( لا أعرف أين بالضبط )

و لكن سوف نحتاج الى تعريف شكل الخط كما هو فى الدوس

نحتاج لملفات معينة و طريقة معينة للعرض

بالأضاة الى بعض الصعوبات و هى أن اللغة العربية من اليمين لليسار

+ أن للحرف ثلاثة أشكال

1- فى أول الكلمة

2- فى وسط الكلمة

3- فى أخر الكلمة

Nothing to mention except that I am Muslim

Using your brain is not bad as you think

My Blog

logo.jpg

#16

أخوانى أعتقد أن فرصتنا قد جائت لأثبات مهاره الشباب العربى فى البرمجه و تصميم أنظمة التشغيل فأرجوا ألا نضيعها

يجب علينا البدء خطوه خطوه فى عمل نظام التشغيل و لا نبداء بدايه أكبر من قدرتنا حتى لا يتوقف العمل فنبداء بترتيب الذى ذكره الاخ neo

بداية من نظام يتعامل مع سطر الاوامر ثم نطوره بالتدريج لأن عمل نظام تشغيل كامل بواجهه رسوميه سوف يأخذ الكثير من الوقت و الجهد و الذى قد يجعل بعض من الفريق يمل و يتوقف العمل

لذلك يجب علينا العمل بالتدريج و أعتقد انه بمجرد البدء سيتجمع كثير لينضم ألى الفريق و أطلب من المشرف أنشاء قسم (منتدى) لنظام التشغيل الذى سنبداءه إن شاء الله و نبداء فى كتابة الاكواد الازمه في هذا المنتدى

و أرى أن طريقة الاقلاع التى كتبها الاخ نيو تكون أول موضوع فى المنتدى الجديد

و أرى ان ما كتبه يحتاج لقليل من الشرح

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

و شكرا رجاء أن يضيفنى الاخوه المهتمون فى المسنجر الخاص بهم أو يكتبوا بريدهم و انا أضيفهم

programmer90@hotmail.com

ملاحظه البريد به2 mmقواعد اللغه هكذا :)

أو

egysec20002hotmail.com

و انا مازن محمد من مصر

و شكرا مره أخرى

#17

اود ان اكون معكم

#18

لكن هناك مشكلة أن معظمنا طلبة و الفترة الحالية فترة أمتحانات و لذلك سوف نؤجل المشروع الأن أنا سوف أنتهى فى 25/6 أن شاء الله

و أرجوا المعذرة أن متحمس جدا و هو حلم حياتي لذلك أود أن نكملة للنهاية و أود أن تعذروني أنا أسف جدا جدا جدا جدا

Nothing to mention except that I am Muslim

Using your brain is not bad as you think

My Blog

logo.jpg

#19

بريدى الموضوع بأعلى خطاء

egysec2000@hotmail.com

خى نيو أو الاخوه

كود السى الذى و ضعه الاخ نيو أفهمه و أستطيع أن أترجمه و لكن

الكود الموجود بأعلاه حق البوت لا أفهم ماذا أفعل به و كيف أحوله ألى ملف

مطلوب بعض التفاصيل عن كود البوت

و شكرا

#20

سلام،

لدي بعض الملاحظات و أرجو أن تؤخذ بعين الاعتبار هنا. فكرة كتابة نظام تشغيل من لا شيء قد تكون جميلة و لكنها لا تخرج عن النطاق الأكاديمي. فالنكن صريحين مع أنفسنا، اذا لم توجد الحاجة فلن يوجد المستخدم - هذا باعتبار أن هذا المشروع ليس أكاديميا بحتا.

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

أدعوكم أيها الاخوة الكرام بالتعاون معنا فأنتم من النوع الذي يكون له دور فعال.

و شكرا.

#21

:)

أهلا بك أخي الزبير في الموقع.

#22

فكرة رائعة ولو أنها صعبة التحقيق

ولكن رحلة الألف ميل تبدأ بخطوة ولاتنسو ان مصممي نظم التشغيل

لم يقفزوا الى ويندوز مباشرة ولكن بدؤوا بنظم بدائية ثم طوروها

فلا تجعلوا الخوف من الصعوبة والفشل يثبط من عزيمتكم

أنا أرغب بالمشاركة ولكن بعد الامتحانات,وأنا أدرس هندسة حاسبات

وقد درسنا مادة حول نظم التشغيل وبنيتها وكذلك لدي بعض المعلومات

في البرمجةوإن شاء الله سأبذل ما في وسعي لمساعدتكم

ومن الرائع أن نرى شباب في وطننا العربي يكسرون حاجز الدونية

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

واذالم ننجح فيكفينا شرف المحاولة والله ولي التوفيق

#23

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

أنا شوفت الـSOURCE CODE بتاع نظام التشغيل مينيكس و هو يعتبر مثال بسيط للدراسة الأكاديمية و كان مكون من 27000 سطر برمجي و ده للأصدار الثانى

بالنسبة للدراسة أحنا محتكين نكون كلنا نقرأ الكتب دية

ــــــــــــــــــAndrew S. Tanenbaumــــــــــــ

| Opreating system : design and implementation |

| Modern opreating system |

| distributed opreating system |

| Computer networks |

ـــــــــــــــــــــــــــــــــــــــــــــــــ

opreating concepts --> Galven

Introduction to opreating system --> Addison wesly

DEVELOIPING YOUR OWN 32BIT OPREATION SYSTEM --> REACHERD BRUGSS - أهم كتاب

بالأضافة الى السي و الأسيمبلي

و شكرا أخوكم أحمد عصام

Nothing to mention except that I am Muslim

Using your brain is not bad as you think

My Blog

logo.jpg

#24

شكرا علي مجهودك

أطلع علي

www.nu2.nu

#25

ممتــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــاز و رائع

Nothing to mention except that I am Muslim

Using your brain is not bad as you think

My Blog

logo.jpg

هذا الموضوع مغلق.

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