מה ההבדל בין גרעין מונוליטי למיקרו ליבנה?


תשובה 1:

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

במיקרו ליבנים, הגרעין מתפרק לתהליכים נפרדים, המכונים שרתים. חלק מהשרתים פועלים במרחב גרעינים וחלקם פועלים במרחב משתמשים. כל השרתים מוחזקים בנפרד ופועלים בחללי כתובות שונים. שרתים קוראים "שירותים" האחד מהשני על ידי שליחת הודעות באמצעות IPC (תקשורת פרובייס). להפרדה זו יש את היתרון שאם שרת אחד נכשל, שרתים אחרים עדיין יכולים לעבוד ביעילות. דוגמאות למערכות הפעלה מבוססות מיקרו ליבנה: Mac OS X ו- Windows NT.

1) גרעין מונוליטי ישן בהרבה ממיקרו-קרנל, הרעיון הגה בסוף שנות השמונים.

2) משתמשים בגרעינים מונוליטיים ביוניקס ובלינוקס. גרעינים מיקרו משמשים ב- QNX, L4 ו- HURD. זה שימש בתחילה במאץ '(לא ב- Mac OS X) אך לאחר מכן הוסב לגרעין היברידי. אפילו Minix אינו גרעין טהור מכיוון שמנהלי התקנים מורכבים כחלק מהגרעין.

3) גרעינים מונוליטיים הם מהירים יותר מאשר מיקרו ליבנים. מאץ המיקרו-kernel הראשון היה 50% יותר איטי מהגרעין המונוליטי, ואילו הגרסאות המאוחרות יותר כמו L4 היו איטיות של 2% או 4% בלבד מהגרעין המונוליטי.

4) גרעינים מונוליטיים בדרך כלל מגושמים. מיקרו-קרנל טהור צריך להיות קטן בגודל, בכדי להשתלב במטמון ה- L1 של המעבד (מיקרו-ליבנה מהדור הראשון).

5) בגרעינים מונוליטיים, מנהלי ההתקנים שוכנים במרחב הגרעינים ואילו במיקרו-ליבנה מנהלי ההתקנים שוכנים במרחב המשתמשים.

6) מכיוון שמנהל ההתקן שוכן בחלל הגרעין, הוא הופך את הגרעין המונוליטי פחות מאובטח ממיקרו ליבנה, וכישלון במנהל ההתקן עלול להוביל לקרסול. גרעינים מיקרו בטוחים יותר מהגרעין המונוליטי, ולכן משתמשים בהם במכשירים צבאיים מסוימים.

7) גרעינים מונוליטיים משתמשים באותות ושקעים כדי להבטיח IPC, גישה מיקרו-ליבנה משתמשת בתורי הודעות. המיקרו-גרננים הראשונים ל- IP שהוטמעו בצורה IPC בצורה גרועה, כך שהיו מתגים בהקשר איטי.

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


תשובה 2:

הנה סרטון קצר שהכנתי כדי לעזור לך להבין טוב יותר!

קרנל מונוליתי

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

MICROKERNEL

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

תשובה 3:

הנה סרטון קצר שהכנתי כדי לעזור לך להבין טוב יותר!

קרנל מונוליתי

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

MICROKERNEL

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