כיצד אני בונה מערכת הפעלה?? - עמוד 2 - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

כיצד אני בונה מערכת הפעלה??


B0necrack3R

Recommended Posts

בהודעה הראשונה ממש נקרעתי מצחוק! לבנות מערכת הפעלה מ0? למתכנת הבכיר ממיקרוסופט יקח משהו כמו 20 שנה

לעשות משהו חמוד, בוינדוז יש יותר ממיליארד שורות קוד! (בלי קובצי הHELP) איך אתה חושב שתוכל לבנות משהו כזה?

אתה צריך לבנות מערכת קבצים, IO, גישה ישירה לזיכרון ולמעבד לכרטיס הגרפי וחלק עם אסמבלי ככה שלא ניראה לי אפשרי, ממש לא!

אבל זה וואחד הצחיק אותי ;D ;D ;D.

עכשיו: מזה מערכת הפעלה שתלויה בחלונות? אין כזה דבר! היא מערכת הפעלה ואתה לא יכול לבנות מערכת הפעלה עליה.

אתה יכול ליצור... מן מעטפת כזאת ואתה תעצב את הGUI אבל אל תחשוב שהתוכנית שלך תתירסק פחות משימוש רגיל בחלונות.

מה שאני כן חושב, תוריד גירסה של , ותתחיל לשחק עם הSOUCE CODE, כמובן שלא תבנה מערכת הפעלה, אבל תיהיה

לך את המערכת הפעלה שלך מבוססת על שזה גם משהו אבל גם זה לא קצת עבודה.

קישור לתוכן
שתף באתרים אחרים

מה זה משהו דמוי מערכת הפעלה? חלונות שיראו לו את מבנה הספריות על הדיסק? שיתנו לו לראות את הקבצים בכל ספריה? שיתנו לו להעביר קבצים ממקום למקום? למחוק? לשנות שם? וכן הלאה.....

זה בולשיט.......

מה עם לטפל באיך הקובץ נשמר לדיסק? איך יודעים איפה הוא מתחיל איפה הוא נגמר? איפה ממוקם כל ביט שלו על הדיסק? וזה עוד כלום. צא מהבועה בן אדם, מערכת ההפעלה זה לא החלונות שאתה רואה על המסך, זה רק הממשק בשבילנו האהבלים. מאחורי הקלעים רצים אלגוריתמים מטפלים בדברים כמו STARVATION DEADLOCKS ועוד 1001 דברים, זה לא פשוט "לבנות דגם ב-VB" כי אתה לא בונה כלום חוץ מ-GUI.

כל השטויות האלה של טיפול בקובץ זה לא באחריות של מערכת ההפעלה

זה בטיפול מערכת הקבצים

כשאתה מפרמט הרדיסק בפורמט של FAT32 אתה מגדיר לו מערכת קבצים שמאפשרת לך לבצע כתיבה/קריאה של קובץ מההרדיסק

מערכת הפעלה בונים בדרך כלל ב-C עם שילוש של אסמבלר בחלקים שפשוט אי אפשר לממש ב-C כי צריך לגשת למחסניות ולהתקני קלט/פלט.

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

דרך אגב XINU היא עלוקת DOS כלומר היא עובדת תחת דוס.

קישור לתוכן
שתף באתרים אחרים

כל השטויות האלה של טיפול בקובץ זה לא באחריות של מערכת ההפעלה

זה בטיפול מערכת הקבצים

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

קישור לתוכן
שתף באתרים אחרים

  • 2 שבועות מאוחר יותר...

לכתוב מערכת הפעלה,

אני אוהב את הדברים שאני שומע כאן זה פשוט נפלא.

ועכשיו ברצינות,

לבנות מערכת הפעלה "בסיסית" דורש המון אבל ממש המון ידע.

אני מצרף כאן קישור לספר "בסיסי" על המודולים הבסיסיים שמרכיבים מערכת הפעלה (זה ספר שלמדנו איתו באונ')

ספר מאוד נחמד ונוח לקריאה אבל מצריך ידע והבנה באלגוריתמים, מבני נתונים ועוד דברים בסיסיים כאילו.

http://www.amazon.com/exec/obidos/ASIN/0130313580/qid=1057670228/sr=2-1/ref=sr_2_1/002-9577558-8796052

וקישור להרצאות מאתר הקורס באונ' בן גוריון

http://www.cs.bgu.ac.il/~os002/lectures_with_amnon.htm

בבסיס אתה צריך להבין שלומר מערכת הפעלה זה בעצם לומר הרבה ולא לומר כלום,

מערכת ההפעלה היא הבסיס שעליו עובדת המערכת ולכן לפי מימוש מערכת ההפעלה אתה בעצם מגדיר איך המחשב יוכל לפעול

אילו שירותים הוא יספק ובאיזה רמה הוא יתן את השירותים האילו.

מערכות הפעלה מודרניות (LINUX/UNIX וגם - NT/2000/XP ) בנויות במבנה של CORE

אשר בתוכה מרוכזים כל התהליכים הקריטיים.

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

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

1. מודול I/O שיאפשר תקשורת עם המערכת. לפחות ברמה של מקלדת ומסך

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

בנוסף אתה צריך להכיר את המבנה של פסיקות ומה בדיוק קורה, ברמת החומרה, כאשר מקש כלשהו במקלדת נלחץ, איזה סגנל נשלח, לאן, ואיך אתה יכול לתפוס אותו ולהגיב לו.

2. אני מבין שאתה מעוניין גם במערכת קבצים, תן לי להסביר ראשית שמערכת קבצים (FS) לדוגמת "פירמוט ב NTFS " כמו שמישהו כתב כאן

זו רק מסגרת - כלומר זו רק הדרך שבה הדיסק מחולק - מערכת ההפעלה היא זו שמנהלת את הטבלאות עצמן,

יודעת למצוא קובץ מסויים בסקטור מסויים על הדיסק, להוסיף לו מידע או למחוק ממנו מידע ..

כמובן שאתה גם צריך להבין טוב את תהליך איתחול המחשב, לדעת איפה אתה אמור לשים את התוכנית שלך (MBR) על תחילת הדיסק שמוגדר כ טואו PRIMARY או שאולי אתה רוצה לכתוב את זה כמו בדוס לקריאה מדיסקט/דיסק ??

טוב אני שם לב שאני כותב הרבה ומבין שאני לא ממש אתן לך סקירה אפילו לא בסיסית.

הספר שהמלצתי עליו הוא מקום טוב להתחיל, אמנם לא תמצא בו שום דבר מעשי אבל חשוב שתבין ראשית את הקונספט,

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

הערה אחרונה לסיום.

לא לחינם אבל כתיבת מערכת ההפעלה היא בין האפליקציות היותר מסובכות לכתיבה ככה שאולי אם אתה מעוניין ללמוד תמצא פרויקט יותר פשוט.

בכל מקרה המון בהצלחה - ותשאל אולי נוכל לעזור.

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...