לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #2  
ישן 21-04-2005, 00:32
צלמית המשתמש של fat fish
  fat fish fat fish אינו מחובר  
 
חבר מתאריך: 20.06.03
הודעות: 5,616
טוב....
בתגובה להודעה מספר 1 שנכתבה על ידי dudielad שמתחילה ב "מצב מוגן (protected mode) מישהו שמבין..."

מהספרים שלי לא הצלחתי למצא מידע שיוכל לתת לך תשובה כלשהי...(:
אני כותב ב-protected mode כי אני מהדר אסמבלי לעבודה ישירות עם מעבד (קרנל) אני לא משתמש במערכת הפעלה להריץ את הקובץ, אז אין לי מידע בדוק בנושא שלך..

אם אתה רוצה לכתוב תוכניות באסמבלר ללא חציצה של מערכת ההפעלה, אני ממליץ לך לעבוד עם מדמה כלשהוא של סביבת PC.
אני משתמש לצורך זה ב Bochs שהוא פרוייקט קוד פתוח למערכת המדמה PC (מחשב וירטואלי) ואני מריץ על המערכת הזו את קוד האסמבלי שלי...

אם תרצה עזרה בקומפילציה מתקדמת עבור עבודה ישירה עם ה-PC, אני אשמח.
_____________________________________
[ זיו ]
[ fat fish ]


נערך לאחרונה ע"י fat fish בתאריך 21-04-2005 בשעה 11:34.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #6  
ישן 21-04-2005, 23:50
צלמית המשתמש של fat fish
  fat fish fat fish אינו מחובר  
 
חבר מתאריך: 20.06.03
הודעות: 5,616
או.....עכשיו אני יכול לעזור
בתגובה להודעה מספר 5 שנכתבה על ידי dudielad שמתחילה ב "תגובהה"

בוודאי שאתה לא אמור להריץ גרעין של מערכת הפעלה תחת מערכת ההפעלה שלך, אפילו לא תחת דוס.
כשאתה כותב גרעין למערכת הפעלה אתה לא אמור להסתמך על פסיקות וקריאות של מערכת ההפעלה (כמו פסיקות 21H) אלא להשתמש ישירות בפסיקות של ה-bios.

הנה כמה צעדים למתחילים לכתיבת גרעין של מערכת הפעלה (אני בעצמי עובד על פרוייקט כזה):

1. תוריד את התוכנה Bochs על מנת שתוכל להריץ PC וירטואלי על המחשב שלך ולא תצטרך לבצע restart כל דקותיים. אני משתמש בתוכנה זו כי היא קוד פתוח.
http://bochs.sourceforge.net/

2. אתה צריך תכנה כלשהי ליצירת image של כונן לשימוש עם התוכנה Bochs, אני אישית משתמש ב- EditDisk.

3. מהדר assembly, אני משתמש ב-nasm, שוב כי זה קוד פתוח.

4. כלי חשוב נוסף exe2bin, על מנת להפוך קבצי exe לקבצי com (קבצים ברי הרצה ללא header)

5. אם אתה מתכוון לכתוב קוד גם ב-C אז כמובן מהדר שיודע להדר קבצים "שטוחים" ותוכנת קישור.
(אני משתמש למערכת אחת ב-TC של בורלנד, ולמערכת אחרת ב-GCC)

עד כאן כלים....

עכשיו ללמוד קצת על ה-mbr, על boot loader, לבנות shell בסיסי........ואז לקפוץ למים העמוקים של protected mode.

(יכול להיות שעשית כבר את הכל ואני סתם כותב)
(:


בכל מקרה, ספר מומלץ, מס 1 - ספרו של מוחמד עלי מזידי:
The 80x86 IBM PC and Compatible Computers
(Volume I & II)
Assembly Language, Design and Interfacing
_____________________________________
[ זיו ]
[ fat fish ]

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #9  
ישן 22-04-2005, 12:57
צלמית המשתמש של fat fish
  fat fish fat fish אינו מחובר  
 
חבר מתאריך: 20.06.03
הודעות: 5,616
תגובה לשניכם
בתגובה להודעה מספר 8 שנכתבה על ידי cyberia_2ooo שמתחילה ב "בנושא הזה אני לא כלכך מבין,..."

דבר ראשון, לגבי פסיקות.
רוב הלימוד של assembly נעשה בכלים שנכתבו עבור סביבת DOS, לכן נוהגים ללמד את השפה עם פסיקות שנועדו לסביבה זו, כמו הפסיקה 21H, בעוד שלמעשה אנו מעוניינים (לפחות במקרה שלנו) לעבוד ישירות עם החומרה, ולא עם "מעטפת" במקרה שלנו, מערכת ההפעלה DOS, שמספקת לנו אמצעי גישה משלה לחומרה.

לגבי האמולטור Bochs, ממתי אמולטור ל-PC, משנה אם מריצים עליו לינוקס או לא?? (:
זהו אמולטור למחשב PC (או בשם שאנו מכירים פלטפורמה x86) ואתה יכול להריץ עליו כל מערכת הפעלה שרצה על פלטפורמה כזו.

השימוש בפסיקות bios מבטיחות ניידות מוחלטת באותה פלטפורמה (x86) כי מדובר על אותו סט פקודות. כלומר מה שרץ על ה-PC שלי ירוץ גם על ה-PC שלך.

שים לב שהחל מסידרה 386, כשנחשפנו ל-portected mode של אינטל - ובכלל סדרת pentium המהפכנית הביאו סטים חדשים של פקודות שלא היו קיימים עד כה. סדרות המעבדים היום רחוקות מלהקרא x86, אך הן עדיין תומכות במכלול הפקודות.

אני ממליץ לפני הקפיצה למים העמוקים של protected mode, מערכת קבצים וכו, לבצע את השלבים הבאים:
1. ללמוד boot loaders - מאוד חשוב.
2. לכתוב תכנית שתציג סתם מלל על המסך.
3. לכתוב סביבה לקבלת קלט מהמשתמש (תחילתו של shell).

על מנת להגיע לזה, אתה למעשה צריך להתחיל לכתוב את הספריות של C לבד!, פה אין לך מי שיעשה בשבילך הקצאת זיכרון באמצעות פונקציה, או יוציא פלט למסך.
את הספריות (שאתה מכיר כסטנדרטיות) - אתה תצטרך לכתוב לבד...אך אל דאגה, אם תסתבך, תתקשה או תמצא חוסר כלשהו - תמיד תוכל להציץ בקוד המקור של linux. למעשה כשכתבתי את ספריית string.h שלי, ובדקתי פונקציה מסויימת בקוד של linux, נדהמתי לראות איך פונקציה שאני כתבתי ב5 שורות מבולבלות הוא כתב בחצי שורה אלגנטית, מאוד עוזר ללמידה ההשוואה הזו.

לכתיבת הספריות הסטנדרטיות, כמובן שתצטרך assembly, לדוגמה:
הפונקציה putch שאני כתבתי לספרייה stdio
קוד PHP:
 void putch(char cp)
{
     
asm{
            
mov ah0fh
            int 10h
            mov ah
0eh
            mov al
cp
            mov bl
02h
            int 10h
     
}


הערות לקוד:
1. putch הוא הגרסה שלי ל-putchar.
2. ב-stdio מוגדרת putchar ככה:
קוד:
int (putchar int c)


זה תחביר של assemly שמתאים ל-TC, אם תעדיף להשתמש ב-GCC, תמצא שיטה מעט שונה לכתיבת assemly, שבהתחלה אולי תראה לך יותר מסובכת, אך היא הרבה יותר מסודרת ומפרידה את הקלט והפלט מקוד הביצוע.

אני שוב חוזר על ההמלצה להשיג את הספר שאני משתמש בו, הספר דן בכל סדרת המעברים x86 עד וכולל פנטיום, בתכנות עבורם, בתכנות ועבודה עם מערכת קבצים, ניהול זיכרון, עבודה ב-protected mode (זיכרון וירטואלי וסגמנטציה) ועוד...
ניתן למצא אותו בכל הספריות האוניבסיטאיות של פקולטות להנדסה חשמל/תוכנה.

רק הערה לגבי fat32....
הספר מכיל גם חומר על ניהול קבצים כמו שאמרתי. רק אל תשכח שלנהל את הקבצים שלך לא אומר שזה חייב/צריך להיות fat32. אתה יכול ליצור מערכת קבצים משלך....


בהצלחה.
_____________________________________
[ זיו ]
[ fat fish ]


נערך לאחרונה ע"י fat fish בתאריך 22-04-2005 בשעה 13:45.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #15  
ישן 22-04-2005, 15:01
  dudielad dudielad אינו מחובר  
 
חבר מתאריך: 01.04.05
הודעות: 113
שלח הודעה דרך ICQ אל dudielad שלח הודעה דרך MSN אל dudielad
תגובה..
בתגובה להודעה מספר 1 שנכתבה על ידי dudielad שמתחילה ב "מצב מוגן (protected mode) מישהו שמבין..."

שוב תודה..
מה שהתכוונתי זה שמהאתר הבאת לי האמולטור הוא מכווץ בתוכנה שיש ללינוקס לפתוח אותם..
tar משהו כזה..
אני צריך את זה מכווץ בזיפ או exe. זה הכוונה הייתה...
ושוב לגבי קבצים שטוחים שדיברת עליהם.. איך אני יכול ליצור קובץ שטוח (FLAT) בעזרת TC?
מאיפה ניתן להוריד את EDITDISK?

ציטוט:
במקור נכתב על ידי cyberia_2ooo
בנושא הזה אני לא כלכך מבין, אבל עדיין מעניין אותי...
איך בדיוק ניסית לכתוב בדיוק לחומרה?
הרי, עד כמה שאני מכיר את מבנה המחשב,
הצורך בbios הוא לשם קישור לחומרה...
היש דרך אחרת לתקשר עם חומרה לא דרך הביוס?


בדרך שבה הביוס משתמש לתקשר עם החומרה.. כתיבה ישירה לחומרה...
בעזרת IN ו- OUT וכתיבה ליציאה של אותה חומרה...

ל-FAT FISH .. אני ממש מודה לך.. ודרך אגב אני כבר מבין ויודע לכתוב תוכניות מורכבות כמו BOOT LOADER ולהיכנס למצב מוגן וכמה שטויות כאלה בגלל זה יש לי את השאיפה ללכתוב גרעין מערכת הפעלה..

יש לי בעיה במקצת עם מערכת קבצים כמו שרשמתי לך מקודם ויש לי בעיה עם תיכנות גרפי..
אני יודע להשתמש בVESA אבל זה מטריד אותי בגלל שאני שונא להיות תלוי.. מה גם שזה פחות מהיר מכתיבה ישירה..

תודה. דודי.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #16  
ישן 22-04-2005, 16:31
צלמית המשתמש של fat fish
  fat fish fat fish אינו מחובר  
 
חבר מתאריך: 20.06.03
הודעות: 5,616
הגיע הזמן לעשות הכרות עם תוכנות הכיווץ והפריסה
בתגובה להודעה מספר 15 שנכתבה על ידי dudielad שמתחילה ב "תגובה.."

מספר אחת !!!
והכוונה כמובן ל-RAR, יש גם את גרסת WinRar שמספקת ממשק ל-windows.
התוכנה יודעת לפתוח גם קבצי tar ועוד רבים וטובים אחרים....(כולל כמובן ZIP)

לגבי TC, כשאני עבדתי איתו, השתמשתי בגרסה 3.

הנה דוגמה ללהפיכת מספר קבצים לקובץ BN להרצה:
נתונים לנו הקבצים שכתבנו: kernel.c , shell.c , video.c
(סתם דוגמה לשלושה קבצים כשאחד משמש לקלט/פלט למסך, אחד אלו הפונקציות של ה-shell, ואחד זה הליבה)

נקמפל אותם כך:
קוד:
tcc -c -r- -mt kernel.c tcc -c -r- -mt video.c tcc -c -r- -mt shell.c

כתוצאה מתהליך זה קיבלנו שלושה קבצי אובייקטים שכעת עלינו לקשר אותם (כמובן שכבר יש לי קובץ מקומפל של הloader שקמפלתי ב-nasm):
קוד:
tlink /x loader kernel video chell , os.exe

קיבלנו קובץ exe שעלינו להפוך לגרסה ללא headers:
קוד:
exe2bin os.exe os.bin

יש לנו קובץ מוכן להרצה ע"י המעבד הנקרא os.bin


בקשר לeditdisk (או יותר נכון DiskExplorer) ניתן למצא חינם פה:
http://hp.vector.co.jp/authors/VA01...sk/index_e.html
יש תוכנות נוספות בתחום חלקן חינמיות וחלקן לא, אני הלכתי על הפשטות...

בהצלחה,
_____________________________________
[ זיו ]
[ fat fish ]

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 04:43

הדף נוצר ב 0.06 שניות עם 11 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר