logo

מה זה קרנל?

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

מערכת הפעלה

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

מהו קרנל במערכת ההפעלה?

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

פונקציות של גרעין

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

    ניהול התקנים
    כדי לבצע פעולות שונות, תהליכים דורשים גישה למכשירים היקפיים כגון עכבר, מקלדת וכדומה, המחוברים למחשב. ליבה אחראית לשליטה בהתקנים אלה באמצעות מנהלי התקנים. הנה, א מנהל התקן היא תוכנת מחשב המסייעת או מאפשרת למערכת ההפעלה לתקשר עם כל התקן חומרה.
    ליבה שומרת רשימה של כל ההתקנים הזמינים, וייתכן שהרשימה הזו כבר ידועה, מוגדרת על ידי המשתמש או מזוהה על ידי מערכת ההפעלה בזמן ריצה.ניהול זיכרון
    לקרנל יש שליטה מלאה על הגישה לזיכרון המחשב. כל תהליך דורש קצת זיכרון כדי לעבוד, והקרנל מאפשר לתהליכים לגשת בבטחה לזיכרון. כדי להקצות את הזיכרון, השלב הראשון ידוע בשם כתובת וירטואלית, מה שנעשה על ידי דפדוף או פילוח. פנייה וירטואלית הוא תהליך של מתן מרחבי כתובת וירטואליים לתהליכים. זה מונע מהאפליקציה להתרסק אחד בשני.ניהול משאבים
    אחת הפונקציות החשובות של Kernel היא שיתוף המשאבים בין תהליכים שונים. עליו לחלוק את המשאבים באופן שכל תהליך ניגש באופן אחיד למשאב.
    הקרנל מספק גם דרך לסנכרון ו תקשורת בין תהליכים (IPC). הוא אחראי למעבר ההקשר בין תהליכים.גישה למשאבי מחשב
    ליבה אחראית על גישה למשאבי מחשב כגון זיכרון RAM והתקני I/O. זיכרון RAM או זיכרון גישה אקראית משמש להכיל נתונים והוראות. כל תוכנית צריכה לגשת לזיכרון כדי להפעיל ובעיקר רוצה יותר זיכרון מהזמין. במקרה כזה, Kernel ממלא את תפקידו ומחליט באיזה זיכרון ישתמש כל תהליך ומה לעשות אם הזיכרון הנדרש אינו זמין.
    הקרנל גם מקצה את הבקשה מיישומים להשתמש בהתקני I/O כגון מקלדות, מיקרופונים, מדפסות וכו'.

סוגי קרנל

ישנם בעיקר חמישה סוגים של קרנל, המפורטים להלן:

ls פקודת לינוקס
מה זה קרנל

1. גרעינים מונוליטיים

בגרעין מונוליטי, ה אותו שטח זיכרון משמש ליישום שירותי משתמש ושירותי ליבה.

מה זה קרנל

זה אומר שבסוג זה של ליבה, אין זיכרון שונה המשמש עבור שירותי משתמש ושירותי ליבה.

מכיוון שהוא משתמש באותו שטח זיכרון, גודל הליבה גדל, ומגדיל את הגודל הכולל של מערכת ההפעלה.

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

דוגמאות של גרעינים מונוליטיים הם Unix, Linux, Open VMS, XTS-400 וכו'.

יתרונות:

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

חסרונות:

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

2. מיקרוקרנל

מה זה קרנל

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

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

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

רק חלק מהשירותים החיוניים מסופקים על ידי מיקרוקרנלים, כגון הגדרת מרחבי כתובות בזיכרון, IPC (Interprocess Communication) וניהול תהליכים. שירותים אחרים כגון רשתות אינם מסופקים על ידי Kernel ומטופלים על ידי תוכנית מרחב משתמש המכונה שרתים .

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

דוגמאות של Microkernel הם L4, AmigaOS, Minix, K42 , וכו.

יתרונות

  • ניתן לנהל מיקרוקרנלים בקלות.
  • ניתן להוסיף שירות חדש בקלות מבלי לשנות את מערכת ההפעלה כולה.
  • במיקרו-קרנל, אם תהליך ליבה קורס, עדיין ניתן למנוע מהמערכת כולה לקרוס.

חסרונות

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

3. גרעין היברידי

מה זה קרנל

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

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

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

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

דוגמאות ל-Hybrid Kernel הן Windows NT, Netware, BeOS וכו'.

יתרונות:

  • אין דרישה לאתחול מחדש לצורך בדיקה.
  • ניתן לשלב טכנולוגיה של צד שלישי במהירות.

חסרונות:

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

4. ננוקרנל

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

דוגמאות של ננוקרנל הם EROS וכו'.

יתרונות

  • הוא מספק הפשטות חומרה אפילו בגודל קטן מאוד.

חסרונות

  • לננוקרנל חסרים שירותי מערכת.

5. אקסוקרנל

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

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

יתרונות:

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

חסרונות:

  • העיצוב של האקסוקרנל מורכב מאוד.

מהי פאניקה של קרנל?

כפי שכבר דנו, הקרנל הזה שולט על כל מערכת המחשב; מכאן שאם זה קורס, זה יכול להפיל את כל המערכת. ב-MacOS ו-Linux, אירוע בלתי רצוי כזה ידוע בשם ' פאניקה של גרעין.' כדי להתאושש מ-kernel Panic, עלינו להפעיל מחדש את המערכת.

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