מהו קרנל? (Kernel)

    מהו קרנל? (Kernel)

    פורסם ב 15-10-2019

    הקרנל (באנגלית: Kernel, בעברית: ליבה), מהווה את הלב של מערכת ההפעלה בעולם מערכות המחשוב.

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

    מערכת ההפעלה מתחלקת לשלושה חלקים עיקריים:

    1. ליבה (kernel)- זוהי שכבת תוכנה “שהכי קרובה” לצד החומרה ולטיפול במשאבי המחשב ביחס לדרישות המגיעות ממערכת ההפעלה והתוכנות השונות שרצות במערכת ודורשות משאבים.
    2. ממשק תכנות יישומים (API)– בהקשר שלנו,  מאפשר למשתמש הקצה להריץ פקודות אל תוך מערכת ההפעלה.
    3. מנהל ההתקנים (driver)– זו תוכנת מחשב שאחראית על האינטראקציה של מערכת ההפעלה לבין רכיבי חומרה חיצוניים והתוכנות שלהם (כגון מדפסת, עכבר וכו’).

     

    על ההבדל שבין מערכות Microsoft ל Linux

     

    מערכות ההפעלה הנפוצות היום במחשבים ובשרתים מתחלקות בעיקר בין  Microsoft ל linux.

    מערכות ההפעלה של Microsoft נחשבות למערכות קוד סגור לעומת מערכות ה linux שנחשבות לקוד פתוח.

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

     

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

    ליבת מערכת ה linux נוצרה ע”י המייסד לינוס טורבאלדס בשנת 91 ועם השנים אלפי מפתחי תוכנה מרחבי העולם תרמו ותורמים את חלקם בשימור ושיפר ליבת המערכת. עולם מערכות ה linux ומערכות הקוד הפתוח מאוד דינמיים וחדשים לבקרים יוצאים עדכוני תוכנה וחומרה ברמות שונות בהיררכיית המערכת (עדכוני ליבה/מודולים/תוספים וכו’).

     

    ליבת המערכת אחראית על ניהול התהליכים (process), ניהול משאבים (resources), ניהול ההתקנים (ציוד היקפי למשל) וניהול הזיכרון (RAM). המערכת עובדת ע”פ בקשות בשם “system call” המגיעות מרכיבי המחשב/שרת אל הליבה של מערכת ההפעלה והיא מספקת את המענה לפי היכולת וסדרי העדיפות.

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

     

    נעבור לקצת פרקטיקה

     

    לאחר שהתקנתי ליבת לינוקס יש צורך להמשיך בהתקנת Kernel Modules בהתאם לצרכים שלי.

    בעזרת ממשק הפקודות (זהו ה- shell המוכר גם כ Bash) והתקנת חבילות נוספות כגון yum-install או apt-get ניתן לבצע את הליכי הורדת החבילות והתוכנות הנדרשות. גרסאות הקרנל נמצאות במלואם באתר הרשמי: https://www.kernel.org/ (ניתן להתקין מספר גרסאות ליבה במערכת מסויימת)

     

    פקודות ונתיבים בנושא הקרנל:

     

    תיקיית האם בנתיב /proc/ היא האחראית  לכל מה שקשור לקרנל בשרת הלינוקס.

    תיקייה זו מכילה את כל מבנה הקרנל, לוגים, הגדרות, כלים ועוד…

    קבצי הקונפיגורציה של הקרנל נמצאים בנתיב:  /proc/sys/kernel/

    המודולים המהווים את הדרייברים לקרנל נמצאים בנתיב: /lib/modules/

     

    פקודת   uname -r  # תספק מידע על גרסת הקרנל הקיימת במערכת.

    פקודת  lsmod # תתן לנו נתונים על כל המודולים הקיימים במערכת.

    פקודת sysctl -a # תספק את הנתונים על הגדרות הקרנל הנוכחי

    השותפים שלנו

    • js-partners-02
    • js-partners-03
    • js-partners-04
    • js-partners-06
    • mariadb-icon
    • docker-icon
    • nodejs
    Skip to content