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

نقاش حول بناء نظام تشغيل

مغلقرائج
بدأه Mohammed27 في 16 أغسطس 2005 · 133 رد · 9,487 مشاهدة · في ارشيف قسم C/C++
مشاركة: واتساب X فيسبوك تيليجرام
#51

انا ذكرت ان C++ ولغه C هما من نفس العائله وانهما تطورات للغه معنيه .. فهم مقروء بس من هذا النص بيوحي ان C تختلف عن C++ لكن ضمن نطاق معين اي وبكلمات اخرى متشابهه في بعض الاشياء.. ولا يمكن لأي احد نفيان ذلك اكبر اثبات :

<include stdio.h>

int main (void)

{

printf("----");

return 0;

}

خذوا هذا الكود وضعوه على C++ Compiler اذا لم يعمل فعندها انا المخطئى بهذا الشأن ..

على فكره حسب معلوماتي .. - على ما يبدو كل معلوماتي في السوفت وير ناويين تخطؤوها اليوم - حسب معلوماتي ان هذا نص C اي انه حسب رأي البعض من المفروض ان يعمل فقط على C Compiler وليس C++ Compiler

... بالنسبه للاخ بشمهندس .. الرجاء عدم التهرب من السؤال المطروح .. انني سألت هل انه اذا قمنا بوضع C او C++ ستحل المشكله ..

رد اخر بالنسبه لقولي Unix بلغه C++ المقصود لغه عليا فقط من عائله السي ويمكن ان يكون كلامك صحيح لانني لست طالب تاريخ احفظ التواريخ بل مبرمج اهتم بما عندي فقط

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

محمد وليد - عرب 48 - Admirer4@Gmail.com

مهندس كهرباء والكترونيكا (B.Sc)- متخصص بقنوات الاتصال عن بعد , والدوائر الكهربائيه المعقده VLSI .

محترف برمجه(B.A) في لغه باسكال , سي , ...

#52

الجافا لا تعمل إلا على Vm

و كل نظام و له vm مختلفه تبنيها شركة sun

إزاى بقه هتصمم نظام بالجافا فين الvm اللى هتعتمد عليها

وبالنسبه للسى و السى ++ ف system down و ضح

و الأسمبلى هى أساس الوصول للذاكره و الأجهزه بشكل مباشر إزاى بقه هتستغنى عنها

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

إزاى بقه هتستغنى عن الأسمبلى

لا تراجع و لا إستسلام

#53

نعم C و ++C فيهما تشابه و لكن هذا أيضاً لا يعني أنهما نفس اللغة، هذا مثلاً كود بالـC

int subtract(subtrahend, minuend) 
            int subtrahend;
            int minuend;
            {
             return(subtrahend-minuend);
             }

و لكن لا يمكن عمل تجميع له بكومبايلر ++C

(المصدر موسوعة wikipedia)

و نيابة عن الباشمهندس أقول أن الغالبية العظمى من أنظمة التشغيل (بدءاً من يونيكس و مروراً بويندوز و حتى لينوكس) تتم برمجتها بالأسيمبلي و الـC

يمكن طبعاً استخدام لغة أخرى و لكن بتحفظات. للمزيد اقرأ هذا:

http://www.mega-tokyo.com/osfaq2/index.php...r%20than%20C%3F

#54

سؤال ايه؟

هو فين السؤال اساسا؟؟؟

بالطبع ال Memory Management لل ++C/C افضل بمراحل من ال Java و هذا ليس سؤال

و أيضا الWindows لا تستخدم Java لأنها لو فرضنا نفس الفرض الغبي انها تستخدم Java بدلا من ال C فستستهلك اضعافا مضاعفة من الذاكرة التي تستخدمها

ببساطة يكفي ان تقارن مثلا بين ال Net Beans و Visual Studio فNet Beans مكتوب بال Java من الاساس الى النهاية و ال Visual Studio مكتوب ++C/C من الاساس الى النهاية ستجد ان ال Netbeans يستهلك في المتوسط حوالي 100 ميجا من الRam بينما لا يتعدى الVS اكثر من 30 ميجا و ضع في حساباتك ال VS أقوى من الNetBeans في الكثير حيث انه يدعم أكثر من لغة و أكثر من نوع تطبيق و و و و ............. فمابالك لو كان النظام كله مكتوب بالJava لأصبح استخدام 3 GB من الRAM لا يكفي جهاز منزلي

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#55

حاول تقرأ عن أنظمة التشغيل أكتر يا محمد

لا تراجع و لا إستسلام

#56

ولو أنت فعلا مؤهل لكتابة نظام

أكيد كتبت ولو شئ بسيط ولو للتجربه

ياريت تطرحه هنا

علشان تبقى المناقشه عملى مش نظرى

لا تراجع و لا إستسلام

#57

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

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

محمد وليد - عرب 48 - Admirer4@Gmail.com

مهندس كهرباء والكترونيكا (B.Sc)- متخصص بقنوات الاتصال عن بعد , والدوائر الكهربائيه المعقده VLSI .

محترف برمجه(B.A) في لغه باسكال , سي , ...

#58

اقرأ اللنكة التي وضعتها قبل قليل. فيها إجابات الكثير من أسئلة المبتدئين في مجال أنظمة التشغيل.

#59

من فضلك أتكلم كويس

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

لا تراجع و لا إستسلام

#60
Mohammed27 كتب:
ثالثا هدفي هو الابتعاد عن البرمجه بلغه اسمبلر وعدم البقاء فيها طويلا لانها متعبه جدا وتقوم بتتضيع الوقت سدى .

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

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

اقتباس
اود ان اشير انني اعمل في SUN في قسم Hardware Developping ولست مبرمج جافا او انني لا اعمل في قسم السوفت كما انني ذكرت ان الشهاده التي حصلت عليها او بالاحرى التي اعمل بها هي شهاده مهندس الكترونيات واتصال !! ليست مبرمج جافا

يا أخي اذا كنت انت اعترفت ان مالكش في البرمجة أو خبرتك فيها قليلة يبقى أول ماتحب تعمل حاجة تقوم تعمل نظام تشغيل؟؟؟؟؟؟؟

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#61

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

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

#62

رد حول مشاركه 60 :

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

بالنسبه عن قولك اني بفهمش بالبرمجه .... ما شاء الله ... انت اللي بتفهم .... ذكرت قبل 25 سنه يعني من حوالي هيك لما فتحت الموضوع انو معي برضو B.A في برمجه الحاسوب .... مشان الله افهموا بقا بكفي هبل ....

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

محمد وليد - عرب 48 - Admirer4@Gmail.com

مهندس كهرباء والكترونيكا (B.Sc)- متخصص بقنوات الاتصال عن بعد , والدوائر الكهربائيه المعقده VLSI .

محترف برمجه(B.A) في لغه باسكال , سي , ...

#63

ياجماعة أرجو الالتزام بأخلاق الإسلام

ما ينفعش اللى بيحصل دة واحد يشتم والتانى يرد علية

أنتوا نسيتوا إن إحنا فى منتدى علم

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

وشكرا لكم

Muhammad Allam

Computer Science

@Resource(MappedURL="My Blog" )

#64

كل اناء ينضح بما فيه.

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

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

ملحوظة

انا حاصل على بكالوريوس هندسة الحاسب الالي من كلية الهندسة جامعة القاهرة بجمهورية مصر العربية.

و انا لا أضع هذا هنا للتباهي و لكن لأرد على كلامك.

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#65

اود الرد على العضو العزيز NET_CODE

اقتباس
و كل نظام و له vm مختلفه تبنيها شركة sun

إزاى بقه هتصمم نظام بالجافا فين الvm اللى هتعتمد عليها

وبالنسبه للسى و السى ++ ف system down و ضح

و الأسمبلى هى أساس الوصول للذاكره و الأجهزه بشكل مباشر إزاى بقه هتستغنى عنها

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

إزاى بقه هتستغنى عن الأسمبلى

كيف لايمكن الاستغناء عن الاسمبلى انت تتحدث عن الاسمبلى وكان لا يوجد بديل لها

انا اعلم تماما ان لايمكن الاستغناء عنها فى حالات ضرورية جدا وهى كتابة قطاع الاقلاع

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

ولكن اذا كان العمل بالاسمبلى فقط لاستخدام مقاطعات البيوس

فا لغة السى تدعم ذاللك ومن خلالها تقدر تستدعى اى مقاطعة سواء دوس او بيوس

سواء كنت تبرمج داخل النظام او خارجه

شكرا اخى NET_CODE

الكلام الان عام :

ولكن الاعتراض على UNIX كتب بايتها لغة ده يدل على انكم ناس فاضية

ما الفرق بين سى وسى ++

UNIX كتب بالسى

هل توجد مشكلة تمنع كتابته بالسى ++

اعتقد انها امكانيات واحدة المشكلة انكم كل واحد حابب يفرد معلوماته والمناقشة

تحولت الى ان كل منكم

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

دائما تعترض ولا تقول اين الخطاء وكيف نعالجه

بل تفرح انك كشفت خطاء من احدى الاعضاء ولكن لا توجه الى ماذا يفعل

او ما هى الطريقة صحيحة

اما لا يمكن الاستغناء عن الاسمبلى فكيف وانتم معظم ردودكم تقولون ان مترجمات

الاسمبلى تصمم من لغة السى

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

واذا كانت السى تقدر تصمم مترجم الاسمبلى كيف لا تستطيع انشاء

ملف بوت او بينرى او قطاع اقلاع

ولكنى زهقت من الكلام

ما الذى ادخل الجافا فى الموضوع

الجافا يا اعزائى الاعضاء لا يمكن يصمم بها الانظمة لانها لغة تترجم لغة السى فى

الاصل

يعنى ليست كمثل السى تترجم لاسمبلى على طول

انظر الطريقة

جافا ...........>> .....JVM......>> السى

..........>> الاسمبلى .......>> لغة الالة

واذا كانت لديك اللغة سى الذى كتبت UNIX لماذا تجرى وراء الجافا

هى نقصة دوخة

كفاية دوخة تصميم النظام نفسه

المهم النهاية :

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

ولكنى فى خارج اطار الموضوع

لدى طلب اخير من الادارة :

كده مش حلو لكم كاكبر منتدى برمجة عربى

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

عاصفة وتبرد ويبقى الحال كما هو عليه

لا اعرف لماذا ارجوكم كادارة المنتدى حافظو على المنتدى من التاخر بين اللمنتديات

الاخرى

انظرو

اقتباس
-_________________________________________

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

...........................................

...............................

اولا - نحتاج لملف كامل عن البيوس وكل مقاطعته

ثانيا - كتابة قطاع اقلاع

ثالثا - كتابة النواة ( اساسيات كتابة اى نواة والتعامل معها وما هو امتدادها وما الملفات

التى تستخدم لانتجها )

رابعا - كتابة قطاع تحميل النواة الى الذاكرة ( كيف يتم تصميمه )

___________________________________________

_____________

المطلوب : عدم الردود المستفذة وهى " هذا مستحيل "

وارجو من ادارة المنتدى ان تقوم تلقائيا بحذف المشاركات الذى يوجد بها ردود سخيفة لا تقدم

ولا توخر فى الموضوع بل هى فقط لاحباط

بس خلاص

لكن لا شىء حدث

حاجة حلوة

انا حنزل وروح فى اى حتة اشوف اى حد عندوه استعداد للشغل كويس

ايه المشكلة انك لسه بتتعلم السى

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

وكيف تقول تحاتج عشرين سنة وانت خبير لينوكس فكيف لم تستطيع انشاء نظام واحد بكل معلوماتك وخبرتك الفظيعة فى لينوكس

ولكنى لا احب ان ادخل معك فى مناقشات لانك لا بتقدم ولا بتاخر فى الموضوع

تم تعديل هذه المشاركة بواسطة hamada hassan ali في 18 أغسطس 2005 في 16:30

_____________________________

C Language && Windwos_API

_____________________________

#66

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

أن مينفعش حد يصمم نظام دون معرفه بالمقاطعات

مش مهم دلوقتى أنت بتستخدم المقاطعه بالسى و لا الأسمبلى

بس أنا كان قصدى التوضيح علشان معظم كتب السى مبتوضحش حكاية المقاطعات و اللى بتوضحها كتب الأسمبلى

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

لكن طالما هيستخدم الأسمبلى فى حدود و السى فهذا هو الصحيح

أما عن كتابة boot loader بالسى فبصراحه مش عارف ياريت حد يفيدنا

و إلى الأمام

لا تراجع و لا إستسلام

#67

هنا بوت اقلاع الرجاء الرد وبموضوعيه :

;==============================================================================

; LIFE OS BOOT 2005, For Developping version 1.0.0 . Life Os Team 2005.

;===============================================================================

.386p

;MODEL flat, stdcall

;MASM51

jumps

LOCALS

PART_STRU STRUC

boot db ?

beg_head db ?

beg_cylsect dw ?

par_type db ?

end_head db ?

end_cylsect dw ?

lba_addr dd ?

lba_size dd ?

ENDS

PART_TYPE_SOL EQU 0DDh ;0EBh

boot16 segment PARA USE16 private

ENDS boot16

boot16 SEGMENT

assume cs:boot16,ds:boot16,ss:boot16,es:boot16

Boot_Start:

jmp boot02

nop

;----------------------------------------

; data zone, variables we may need

;----------------------------------------

drive_crt db 0 ; drive number we where loaded from :)

track_crt dw 555 ;start load from this track

head_crt db 0 ;start load_from this head

sector_crt db 2 ;start load from this sector

addr_crt dw 07E0h ;start load at this segment

hdd_max_dev db 0

hdd_max_head db 15

hdd_max_sect db 63

hdd_max_track dw 1023

os_size dw 918

os_size_crt dw 0

;------------------------------------------------------------

; MBR or Boot loader

; loads this first 512bytes sector at 0000:7C00h

; our task is to read the MBR and decide from where

; to load the next part of the OS, then load it.

;-------------------------------------------------------------

boot02:

cli ; please no interupts

mov ax,cs

mov ds,ax

mov es,ax ; es same as ds

mov [drive_crt],dl ; save drive #

;------------------------------------------------------

; here we make our own stack

; just under the A000h video memory

;------------------------------------------------------

mov ax,09000h ; segment for stack

mov ss,ax

mov sp,0F800h ; offset for stack

sti ; enable ints again

;-------------------------------------

; clear direction flag

; repetitive string operations

; will increment SI/DI from now on

;-------------------------------------

cld

;---------------------------------

; print a short wellcome message

; before anything else

; so we know we are ok until here

;---------------------------------

mov si,offset msg_001

call Print_Msg

;------------------------------

; print code selector

;------------------------------

;mov ax,cs

;mov dx,ax

;Call Print_Hex16

; Get HDD params from BIOS

Call HDD_Params_Get

; read and interpret MBR

Call HDD_MBR_Read

.IF ax==-1

;------------------------------------------------------

; we have not found our own Life OS partition

; how did we ever got here?

;------------------------------------------------------

boot_hang:

mov si,offset msg_no_part

Call Print_Msg

xor ah,ah

int 16h

jmp boot_hang

.endif

;-------------------------------------

mov [addr_crt],07E0h

mov ax,[os_size]

dec ax

mov [os_size_crt],ax

inc [sector_crt] ;boot is already here

load_setup:

xor cx,cx

xor ah,ah ; func.no.0 = reset FDC

mov dl,[drive_crt] ; drive.no=0 ie disk a:

int 013h ; use bios call

load_next:

mov ax,[addr_crt]

mov es,ax ;segment for loading

mov bx,0 ;offset of loading = 0

mov dl,[drive_crt] ; drive

mov dh,[head_crt] ; head

mov cl,[sector_crt] ; sector+track high part : TT SSSSSS

mov ax,[track_crt]

mov ch,al ; track low part

and ah,3 ; 0000 00TT

shl ah,6 ; TT00 0000

or cl,ah ; TTSS SSSS

mov ah,2 ; func.no.2=read sectors

mov al,1 ; one sector at a time

int 013h ; read sector via BIOS INT13 call

jnc ok_load_setup ; if ok - continue

;Call HDD_Print_Error

jmp load_setup

ok_load_setup:

; Call HDD_Print_Info

; Call Print_dot

;-----------------------------

; update size

;-----------------------------

mov ax,[os_size_crt]

dec ax

mov [os_size_crt],ax

test ax,ax

jz load_is_done

mov ax,[addr_crt]

add ax,20h

mov [addr_crt],ax

mov al,[sector_crt]

inc al

mov [sector_crt],al

cmp al,[hdd_max_sect]

jbe load_next

mov [sector_crt],1

mov al,[head_crt]

inc al

mov [head_crt],al

cmp al,[hdd_max_head]

jc load_next

mov [head_crt],0

mov ax,[track_crt]

inc ax

mov [track_crt],ax

cmp ax,[hdd_max_track]

jc load_next

load_is_done:

-

mov si,offset msg_002 ; print happy message...

call Print_Msg

mov al,[drive_crt]

;jmp $

DB 0EAh ; jump to sector 02 start

DW 08000h ; offset

DW 00000h ; segment

;***************************************

; Utility routines for the bootsector

;***************************************

HDD_Params_Get PROC

pusha

mov dl,[drive_crt]

mov ah,08h ; BIOS INT 13h function 08 = get disk parameters

int 13h

mov [hdd_max_dev],dl

mov [hdd_max_head],dh

mov al,cl

and al,3fh

mov [hdd_max_sect],al

mov ah,cl

mov al,ch

shr ah,6

mov [hdd_max_track],ax

popa

ret

ENDP

HDD_MBR_Read PROC

push es

;------------------------------

; read MBR at 0:0800

;------------------------------

xor ax,ax

mov es,ax ; segment for loading

mov bx,0800h ; offset of loading = 0800h

mov dl,[drive_crt] ; drive

mov dh,0 ; head

mov cl,1 ; sector+track high part : TT SSSSSS

mov ch,0 ; track low part = 0

mov ah,2 ; BIOS INT 13h / Function:2 = Read Sectors

mov al,1 ; one sector

int 013h ; read sector via BIOS INT13 call

.IF CARRY?

pop es

mov ax,-1

ret

;Call HDD_Print_Error

.endif

mov si,0800h

add si,01BEh

mov bl,4

@@loop_part:

; xor dx,dx

; mov dl,[si.PART_STRU.boot]

; Call Print_Hex16

; Call Print_Space

;

; xor dx,dx

; mov dl,[si.PART_STRU.par_type]

; Call Print_Hex16

; Call Print_Space

mov al,[si.PART_STRU.boot]

cmp al,80h

jnz @@next_part

mov al,[si.PART_STRU.par_type]

cmp al,PART_TYPE_SOL

jnz @@next_part

;---------------------------------

; found our partition, get info

;---------------------------------

; Call Print_Space

; Call Print_Space

;-----------------------

; Start Track

;-----------------------

mov dx,[si.PART_STRU.beg_cylsect]

mov al,dh ;TTTT_TTTT

mov ah,dl ;TTSS_SSSS

shr ah,6 ;0000_00TT

mov dx,ax ;0000_00TT TTTT_TTTT = Track max=1024

mov [track_crt],dx

; Call Print_Hex16

; Call Print_Space

;--------------------

; Start Head

;--------------------

mov dl,[si.PART_STRU.beg_head]

mov [head_crt],dl

; xor dh,dh

; Call Print_Hex16

; Call Print_Space

;-------------------------

; Start Sector

;-------------------------

mov dx,[si.PART_STRU.beg_cylsect]

and dx,03fh

mov [sector_crt],dl

; xor dh,dh

; Call Print_Hex16

; Call Print_Space

;

;

; xor ah,ah

; int 16h

;-----------------

; exit OK

;-----------------

pop es

xor ax,ax

ret

@@next_part:

add si,16

dec bl

jnz @@loop_part

;-------------------------

; no partition found

;-------------------------

pop es

mov ax,-1

ret

ENDP

Print_Msg PROC

lodsb ; al=[ds:si], si=si+1 ;)

or al,al

jz @@finish

;------------------------------------------------------

; BIOS int 0x10 function 0x0E = write char to console

;------------------------------------------------------

push si

mov ah,0Eh ; ah=0x0E al=ascii code of char to output

int 10h

pop si

jmp Print_Msg

@@finish:

ret

ENDP

;====================================

; Print newline to Screen

; CR and LF are actually a newline

;===================================

Print_CRLF PROC

mov ax,0E0Dh ; al=CR=0x0D, ah=0x0E=print char fn

int 10h

mov ax,0E0Ah ; al=LF=0x0A

int 10h

ret

ENDP

;Print_dot PROC

; mov ah,0Eh

; mov al,"#"

; int 10h

; ret

;ENDP

Print_Space PROC

mov ah,0Eh

mov al," "

int 10h

ret

ENDP

Print_Hex16 PROC

mov cx, 4 ; 4 hex digits

PrintDigit:

rol dx, 4 ; rotate so that lowest 4 bits are used

mov ax, 0E0Fh ; ah = request, al = mask for nybble

and al, dl

add al, 90h ; convert al to ascii hex (four instructions)

daa

adc al, 40h

daa

int 10h ; call BIOS to print char

loop PrintDigit

ret

ENDP

COMMENT ~

HDD_Print_Error:

push ax ;save error code

mov esi,offset msg_003

Call Print_Msg

pop ax ; retrive error code

mov dx,ax

call Print_Hex16 ; print error code

mov ah,0Eh ; print separator

mov al,":"

int 10h

mov dx,[track_crt]

call Print_Hex16 ; print track

mov ah,0Eh ; print separator

mov al,":"

int 10h

mov dl,[head_crt]

mov dh,0

call Print_Hex16 ; print head

mov ah,0Eh ; print separator

mov al,":"

int 10h

mov dl,[sector_crt]

mov dh,0

call Print_Hex16 ; print sector

mov ah,0Eh ; print separator

mov al,":"

int 10h

mov dx,[addr_crt]

call Print_Hex16 ; print buff address

;---------------------------

; wait a key to pause

;---------------------------

mov ah,0

int 16h

ret

~

COMMENT ~

;======================================

; Show Err_code:Trk:Head:Sector:Address

;======================================

HDD_Print_Info:

mov esi,offset msg_004

Call Print_Msg

mov ah,0Eh ; print separator

mov al,":"

int 10h

mov dx,[Trk_crt]

call Print_Hex16 ; print track

mov ah,0Eh ; print separator

mov al,":"

int 10h

mov dl,[Head_crt]

mov dh,0

call Print_Hex16 ; print head

mov ah,0Eh ; print separator

mov al,":"

int 10h

mov dl,[sec_crt]

mov dh,0

call Print_Hex16 ; print sector

mov ah,0Eh ; print separator

mov al,":"

int 10h

mov dx,[Addr_crt]

call Print_Hex16 ; print buff address

;---------------------------

; wait a key to pause

;---------------------------

mov ah,0

int 16h

ret

~

;========================================================

; some messages i use in boot sector

;========================================================

msg_001: db ">Loading LIFE OS version 1.00",13,10,0

;msg_001: db "Life Os",13,10,0

msg_002: db ">OK!",0

;msg_003: db 13,10,"Read Error!(code,trk,head,sect,addr)",13,10,0

;msg_004 db 13,10,"Read:",0

msg_no_part db 13,10,"No Part.",0

;========================================

; boot disk signature is required

; at end of Sector 1 Track 0

; or else BIOS will not execute this

; as a valid boot sector

;

; warn:take care that boot sector code

; is not greater than 510 bytes!

;========================================

BootSignature:

ORG Boot_Start+510

db 055h,0AAh

ENDS

end

;*******************************************

; HERE sector 01 Physically ends

;*******************************************

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

محمد وليد - عرب 48 - Admirer4@Gmail.com

مهندس كهرباء والكترونيكا (B.Sc)- متخصص بقنوات الاتصال عن بعد , والدوائر الكهربائيه المعقده VLSI .

محترف برمجه(B.A) في لغه باسكال , سي , ...

#68

انت عملت النظام من ورايا يا حمووووووووووووووا

_____________________________

C Language && Windwos_API

_____________________________

#69
hamada hassan ali كتب:
اود الرد  على العضو  العزيز  NET_CODE 

ولكن  الاعتراض على  UNIX  كتب  بايتها لغة  ده  يدل على انكم  ناس فاضية 

ما الفرق  بين سى  وسى ++

UNIX  كتب بالسى

هل توجد  مشكلة  تمنع كتابته  بالسى ++

اعتقد انها امكانيات واحدة  المشكلة  انكم  كل واحد  حابب  يفرد  معلوماته  والمناقشة 

تحولت  الى  ان كل منكم

واذا كانت  لديك  اللغة  سى الذى كتبت  UNIX  لماذا تجرى وراء  الجافا

هى نقصة  دوخة

كفاية  دوخة تصميم النظام نفسه

و الله عاوز تكتب الUNIX تاني بال ++C اتفضل ورينا شطارتك.....................:lol:

اقتباس
اما  لا يمكن الاستغناء عن الاسمبلى  فكيف  وانتم معظم  ردودكم تقولون  ان مترجمات

الاسمبلى تصمم من لغة السى

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

  واذا كانت السى تقدر تصمم مترجم الاسمبلى  كيف لا تستطيع  انشاء

ملف  بوت او بينرى  او قطاع اقلاع

ولكنى زهقت من الكلام

سيادتك ببتكلم في إيه بالضبط حضرتك تفقه اي شيء في اي شيء؟؟؟؟؟؟؟؟؟؟

اللي بتتكلم فيه ده علم المترجمات و اللغات و سيادتك للاسف الشديد اخر من يتكلم عن هذا يا مصمم اللغات و انظمة التشغيل :lol:

و ياريت حد يفكرني اشرحلكم إزاي ممكن تعمل Compiler باستخدام Compiler اخر لأن دي نقطة جميلة جدا و فيها مبدأ هام جدا من مبادئ علم اللغات و المترجمات و هو مايسمى Compiler of Compilers

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

دائما تعترض  ولا تقول  اين الخطاء  وكيف نعالجهبل  تفرح  انك  كشفت خطاء من احدى الاعضاء  ولكن لا توجه  الى ماذا يفعل 

او ما هى الطريقة  صحيحة 

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

"إيه يا حق ماجعلت لي صاحبا"

فالناس دائما تغضب عندما تجد نفسها على خطأ بل و يتمادون فيه محاولين ان يثبتوا الباطل,

اقتباس
جافا ...........>>  .....JVM......>>  السى 

..........>>  الاسمبلى .......>>  لغة الالة

ياعم ما تتكلمش في اللي مالكش فيه بس و الحق اجري قبل ماحد من الاخوة بتوع الجافا يشوف الحته دي و يقتلك و ينتحر.

Java ايه اللي بتتحول للC دي اخر نكته

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#70

العضو الباشمهندس

من حقك الأعتراض على الخطأ و ليس الأستهزاء بالآخرين

و يايرت الأداره تشوف أيه الحكايه دى

محمد

أنت بديت بدايه حلوه

بس أدينا فرصه ندرس البووت و نقولك رأينا

لا تراجع و لا إستسلام

#71
اقتباس
وكيف تقول تحاتج عشرين سنة وانت خبير لينوكس فكيف لم تستطيع انشاء نظام واحد بكل معلوماتك وخبرتك الفظيعة فى لينوكس

مين قالك اني خبير Linux انا نفسي معرفش الموضوع ده :lol: أنا يا سيدي على قدي و خبرتي في الLinux ليست لدرجة خبير و ماتدخلناش في كلام مع اصدقائي في الLinux

و كمان جبت منين عشرين سنة دي؟

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#72
hamada hassan ali كتب:
وكيف  تقول  تحاتج عشرين سنة  وانت  خبير  لينوكس  فكيف لم تستطيع انشاء نظام واحد  بكل معلوماتك وخبرتك الفظيعة فى لينوكس

ولكنى  لا احب ان ادخل معك  فى مناقشات  لانك  لا بتقدم  ولا بتاخر فى الموضوع 

قيادة السيارات و صناعة السيارات شيئان مختلفات تماماً :)

#73

الكلام كلله موجه الى الباس مهندش

اوكى صدقت انك لا تقدم ولا تاخر شىء

انا عضو بالمنتدى

المستوى متوسط بالسى

تعاملت مع الاسمبلى كتير وانشاءت بها برامج صغيرة

الظاهر انك ل ولدت الى الحياة وانت خير لينوكس

انت تعتقد انك الواحيد اللى فاهم

بس انا اعترف ان لا افقه شىء فى اى شىء

وكما قولتلك انا مستوى متوسط

وعمرى ماتعاملت مع الجافا

لانى لا اطيقها

اه

وياريت تقولى كيفية كتابة الكرتنل بالطريقة الصحيحة

ولا بلاش

كفاية تقولى طريقة بناء البرامج بالجافا عشان يمكن انا كنت فاهم غلط

واحب اقلك حاجة انت ملكش لازمة اصلا

لعن الله البخيل

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

رايك تحتفظ به لنفسك بعد الان لانى بصراحة مش بقتنع بك

وانا اعترف انى مازلن عضو متوسط الخبرة لالا لالا عضو مبتدىء يزعلك الموضوع ده

_____________________________

C Language && Windwos_API

_____________________________

#74

المهم نعتبر ان كل المشاركات السابقة تم حذفها من ادارة المنتدى نود العمل بجد

ونتفحص البوت بتاع حبيبى حمووووووووووا اتمنى ارائك اخى العزيز NET CODE والاخ NEO و SYSTEM BOWEN نتمنى العمل

انتو ماتعبتوش من الكلام ونفسكو توصلو لحاجة

_____________________________

C Language && Windwos_API

_____________________________

#75

أحب أدافع عن الأخ باشمهندس. نعم كانت طريقته غير لبقة نوعاً و لكنه لم يقل أي شئ خطأ. و نقده (و إن كان لاذعاً) في مكانه 100%. صحيح لم يقدم الكثير من الحلول و لكه هذا لأنه (كما عاد و كرر) ليس في مستوى تقديم هذه الحلول. و لكن هذا لا يعني أبداً أنه لا يستطيع الإشارة الى الأخطاء الواضحة. تعلموا تقبل النقد يا جماعة.

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

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