yodasatla

Untitled

Jan 7th, 2018
413
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
CSS 8.26 KB | None | 0 0
  1. עבודת גמר במדעי המחשב – עבודת בחירה - הצעה
  2.  
  3. כתובת בית הספר: הכפר הירוק, רמת השרון, מיקוד: 4780000
  4. שם מלא: דניאל ניל אליעד
  5. תעודת זהות: 318851276
  6. בית ספר: תיכון הכפר הירוק
  7. טלפון של בית הספר: 03-6455621 או 03-6455651
  8. פקס של בית הספר: 03-6455671
  9. שם המנחה: יהודה אור
  10. תעודת זהות: 023098007
  11. תואר אקדמי: מהנדס. מוסמך הטכניון בהנדסה, הסבה אקדמאית למחשבים מטעם המדינה מאז שנת 2000. תעודות הסמכה מטעם Microsoft.
  12. מקום העבודה: מכון וויצמן, מכללת ג'והן ברייס, הכפר הירוק, תיכון עירוני ד', ת"א.
  13.  
  14. תחום העבודה (מקצוע): מדעי המחשב
  15. טלפון: 050-7344457
  16. אי-מייל: [email protected]
  17. מספר יחידות לימוד: 5 יחידות
  18.  
  19. נושא העבודה:
  20. בניית מערכת   הפעלה של 32 ביט בשפת אסמבלי ו - C.
  21.  
  22. מטרת העבודה:
  23. מחקר והבנה נרחבת במערכות הפעלה
  24. מחקר על מעבדי אינטל x86
  25. מחקר על מערכת הBIOS ותהליך הboot
  26. מחקר והבנה נרחבת בניהול הזיכרון במחשב - ובשפות תכנות באופן כללי.
  27. לימוד שפת C
  28. לימוד שפת אסמבלי
  29. למידה על עבודה עם קומפיילרים ולינקרים באופן ידני (ללא סביבת עבודה מוגדרת המפשטת את התהליך)
  30. מימוש המחקר לכדי יצירת מערכת הפעלה 32 bit
  31.  
  32. הבעיה לחקירה/בדיקה:
  33.  
  34. כיצד לגרום לBIOS להריץ קוד משלי
  35. מה הופך device לbootable device
  36. אילו מגבלות יכולות להיות על הקוד הראשוני שלי
  37. גודל
  38. מצב המעבד בשלב זה בתהליך הboot
  39. איך הקוד הראשוני שלי יטען את המשך התוכנה
  40. איך לבנות boot loader
  41. איך להחליף את מצב המעבד מreal mode לprotected mode
  42. איך לטעון את שאר מערכת ההפעלה מהboot loader
  43. איך לבנות kernel
  44. איך לתקשר עם הdevice drivers
  45. איך לנהל מערכת קבצים
  46. איך ליצור פונקציונליות של multi-tasking
  47. איך ליצור GUI - ממשק גרפי עם המשתמש
  48.  
  49. הצגת הבסיס התיאורטי(ספרות) ודרך הכנת העבודה:
  50. למידת שפת אסמבלי 16 ביט מספר האסמבלי של גבהים, הנכתב על ידי ברק גונן: http://cyber.org.il/assembly/gvahim_assembly_book.pdf
  51. למידת C מהאתר: http://c.learncodethehardway.org/book/
  52. למידה מהאתר כוללת בנוסף מעבר על לינקרים וקומפיילרים של C
  53. ללמוד כיצד להשתמש בקומפיילרים ולינקרים ועל תהליך הקומפילצייה וקישור של שפות תכנות באופן כללי ושל C בפרט מהאתר: http://www.lurklurk.org/linkers/linkers.html
  54. למידה על כתיבת הkernel והboot loader ובנוסף על הפורמט של שמירת מדיה בתוך מחיצות, מהספר:https://www.gitbook.com/book/samypesse/how-to-create-an-operating-system/details
  55. למידה על כתיבת הkernel לעומק - כולל יצירת מערכת הפעלה עם פונקציוליות כגון - multi tasking וfile systems, מהספר: https://littleosbook.github.io/book.pdf
  56. למידה על כתיבת boot loader מסדרת הכתבות באתר http://www.tldp.org/LDP/LG/issue77/krishnakumar.html
  57. למידה על כתיבת boot loader מהאתר http://www.independent-software.com/writing-your-own-toy-operating-system-first-and-second-stage-bootloaders-together/
  58. למידה על מערכות הפעלה - רקע תיאורטיftp://ftp.cs.uky.edu/cs/manuscripts/vade.mecum.2.pdf
  59.  
  60. עיקרי ההיבט המחקרי של העבודה:
  61.  
  62. שימוש בידע שרכשתי על ארכיטקטורת מעבדי אינטל x86 על מנת להעביר את מצב המעבד מreal mode לprotected mode
  63. הדבר גורם להחלפה מקוד האסמבלי הנכתב ב16 ביט לקוד הנכתב ב32 ביט
  64. שימוש בידע שרכשתי על תהליכי הboot של המחשב על מנת לטעון את מערכת ההפעלה שכתבתי
  65. כתיבת multi stage bootloader שיחליף את מצב המעבד מ - real mode ל -protected mode, ובנוסף לפעולות נוספות, יטען את הkernel הכתוב ב  - C לתוך ה -  RAM, ויבצע אותו.
  66. שימוש נכון של מערכת הBIOS ובinterrupts שהיא מעמידה ברשותי
  67. שימוש בידע שרכשתי על sectors הנמצאים על הדיסק( לדוגמה -  Boot sector הוא הsector הראשון והוא 512 הבתים הראשונים על הדיסק) על מנת לכתוב את מערכת ההפעלה שלי למקומות הנכונים על הדיסק
  68. שימוש בידע שרכשתי על קומפיילרים ולינקרים כדי לקמפל את מערכת ההפעלה שלי
  69. קומפיילר gcc לשם קימפול קוד הc, nasm assembler לשם הרכבת קוד האסמבלי ו – GNU linker ( ld) לשם קישור הקבצים המקומפלים לשם קובץ בינארי אחד.
  70. אשתמש במהלך כתיבת הפרוייקט בתוכנות qemu וvirtualbox כדי להריץ ולבדוק את הקוד שלי בשלבים
  71.  
  72.  
  73.  
  74. רשימה ארעית של פרקי העבודה:
  75. מבוא
  76. מבוא לC ולאסמבלי - רקע תיאורטי, היסטוריה, קונספטים עיקריים ושימוש במערכות הפעלה
  77. מבוא למערכות הפעלה
  78. מהו תהליך הboot
  79. מהו הBIOS
  80. תפקידיו של הboot loader
  81. תפקידיו של הkernel
  82. תיאוריה ומחקר
  83. עקרונות הBIOS
  84. פעולה ראשונית כאשר המחשב נדלק - בדיקת POST - power-on-self-test
  85. מהו bootable device
  86. הסברה על הsectors הנמצאים על הדיסק - ביניהם הmaster boot record, MBR
  87. מהן הinterrupts העומדות לרשותנו בזכות הBIOS
  88. עקרונות הboot loader
  89. תפקיד הboot loader, טעינת מערכת ההפעלה עצמה לאחר השלמת בדיקת POST, שינוי מצב המעבד מreal mode לprotected mode
  90. השוואה מפורטת בין single stage boot loader לבין multi stage bootloader - לבסוף הסברים מפורטים לבחירתי בmulti stage boot loader
  91. עקרונות הkernel
  92. תפקיד הkernel, קישור בין הCPU, זיכרון, והdevices (דרך device drivers)
  93. עיקרון מערכת ניהול קבצים
  94. עיקרון הmulti tasking
  95. חלק מעשי
  96. הצגת מבנה התוכנה והזרימה בה
  97. הצגת קוד בסיסי המדגים את הפוטנציאל של התוכנה בפשטות
  98. הצגת הרעיון מאחורי הקוד הבסיסי ואת הפונקציונליות שבו
  99. הצגת הקוד עם הסברים על מימושים
  100. הצגת הboot loader
  101. מעבר על הBIOS interrupts המשומשות
  102. מעבר על השלבים השונים של הboot loader, חשיבותם ותפקידם
  103. הצגת הkernel
  104. מעבר על מנגנוני Input Output עם הdevice drivers
  105. מעבר על מערכת ניהול הקבצים
  106. מעבר על multi tasking
  107. מעבר על הממשק הגרפי של המשתמש עם מערכת ההפעלה - GUI
  108. הצגת שימושים במערכת ההפעלה
  109. סיכום - מסקנות, סקירה של התוצר והאם הוא ענה על הקריטריונים שבו הוצב
  110. ביבליוגרפיה
  111. הוראות הפעלה
  112. נספחים
  113. קוד מערכת ההפעלה
  114. קישור להורדת מערכת ההפעלה
  115. דיסק שעליו מערכת ההפעלה
  116.  
  117.  
  118. לוח זמנים להכנת העבודה:
  119.  
  120. ינואר
  121. הגשת הצעת עבודה
  122. ינואר - פברואר
  123. למידת C, אסמבלי
  124. פברואר - מרץ
  125. קריאת חומר תיאורטי ומעשי רלוונטי
  126. אפריל
  127. כתיבת פרוייקט בסדר גודל קטן יותר כproof of concept
  128. מאי- נובמבר
  129. כתיבת הפרוייקט הסופי תוך כדי מתן תשובה לכל הבעיות שהצבתי
  130. נובמבר - דצמבר
  131. ליטושים אחרונים
  132. כתיבת עבודת החקר
Advertisement
Add Comment
Please, Sign In to add comment