מהו קרנל? (Kernel)

    מהו קרנל? (Kernel)

    פורסם ב 15-10-2019

    information-security

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

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

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

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

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

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

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

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

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

    במערכות Linux יש שימוש בשיטת הליבה המונוליטית (Monolithic Kernel), אשר מאפשרת מצב של ריצה מקבילה של שירותים מרובים במקביל לשירות הליבה העיקרי. מצב זה מקנה גישה נרחבת וניצול מיטבי של משאבי השרת.

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

    לאחר התקנת ליבת Linux, יש צורך להמשיך בהתקנת Kernel Modules בהתאם לצרכים המשתמש.
    בעזרת ממשק הפקודות (shell) וממשקי התקנת חבילות כגון yum-install או apt-get, ניתן להתקין את החבילות והתוכנות הנדרשות. גרסאות הקרנל נמצאות במלואן באתר הרשמי (ניתן להתקין מספר גרסאות ליבה במערכת מסויימת).

    נתיבים עיקריים במערכת:
    תיקיית האם בנתיב /proc/ היא האחראית לכל מה שקשור לקרנל בשרת ה-Linux.
    תיקייה זו מכילה את כל מבנה הקרנל, לוגים (logs), הגדרות, כלים ועוד.
    קבצי הקונפיגורציה של הקרנל נמצאים בנתיב: /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