PracticU

KERNEL מיסודות ועד לעדכונים ידניים

בלי כתוביותעם כתוביות
PracticU › קורס לינוקס למתקדמים - הסמכה בינלאומית - Linux - Red Hat - RHCSA / RHCE › KERNEL מיסודות ועד לעדכונים ידניים
מילון מושגים:
קרנל - ליבת מערכת ההפעלה, שמנהלת את החומרה, הזיכרון והתהליכים ומתווכת בינם לבין התוכנות.
עדכון - שינוי שמביא תוכנה או מערכת לגרסה חדשה יותר, כדי לתקן תקלות, לסגור חולשות אבטחה או להוסיף יכולות.
מדפסת - התקן פלט שמדפיס על נייר מידע דיגיטלי מהמחשב.
דיסק - התקן לאחסון קבוע של נתונים, כמו כונן קשיח (HDD) או כונן מבוסס זיכרון מהיר (SSD).
זיכרון - רכיב מהיר ונדיף שבו המחשב שומר נתונים ותוכניות בזמן ריצתם. תוכנו נמחק עם כיבוי המחשב.
מעבד - יחידת העיבוד המרכזית של המחשב, שמבצעת את הפקודות של התוכניות ומנהלת את החישובים.
LVM - מנגנון ב-Linux לניהול גמיש של אחסון, שמאפשר לשלב דיסקים ולשנות גודל של כרכים לוגיים.
מסד נתונים - אוסף מאורגן של נתונים המאוחסן כך שאפשר לשמור, לחפש, לעדכן ולשלוף אותו ביעילות, לרוב באמצעות שפת שאילתות.

KERNEL מיסודות ועד לעדכונים ידניים
בסרטון מוסבר מה זה קרנל (Kernel) של לינוקס, איך מזהים איזה קרנל רץ במערכת, איך הוא מנהל את המשאבים, ואיך מעדכנים אותו בלי לסכן את המערכת.
למה צריך קרנל
בתחילת הדרך לא היה קרנל. התוכנה פנתה ישירות לחומרה, וכל תוכנה דיברה עם המדפסת או הדיסק בעצמה. כשכמה תוכנות רצו במקביל, הפלט שלהן התערבב במדפסת, ואף תוכנה לא ידעה מה השנייה עושה. הקרנל נכנס כדי לנהל את המשאבים בין התוכנות.
תפקידי הקרנל
1. ניהול משאבים: אפליקציה מבקשת זיכרון מהקרנל, והקרנל נותן לה חלק מהזיכרון הפנוי. גם המעבד, הדיסקים והמדפסות מנוהלים על ידיו.
2. הפרדה ואבטחה: אפליקציה אחת לא קוראת את הזיכרון של אחרת. תוכנה שנופלת מפילה את עצמה, ולא את כל המערכת.
3. צריכת חשמל: כשאין עומס, הקרנל מוריד את מהירות המעבד. בשרתים זה חוסך כסף, כי כל וואט חשמל דורש גם קירור.
בדיקה ומידע
1. גרסה: הפקודה uname -a מציגה את גרסת הקרנל, שם השרת והארכיטקטורה, למשל x86_64.
2. מידע מהקרנל: מערכת הקבצים /proc מציגה את מה שהקרנל רואה, למשל /proc/cpuinfo ו-/proc/meminfo.
3. מודולים: הקרנל מודולרי. הפקודה lsmod מציגה את המודולים הטעונים, כלומר הדרייברים. כשמחברים דיסק עם ext3, המודול של ext3 נטען אוטומטית.
עליית המערכת
בעליית המערכת ה-boot loader טוען את הקרנל מתיקיית /boot, ואת קובץ ה-initramfs, שמכיל את הדרייברים הדרושים לעלייה. את initramfs יוצרים מחדש בעזרת הפקודה mkinitrd, לדוגמה אחרי שינוי בקובץ של ה-LVM.
עדכון קרנל
1. התקנה בצד הישן: מתקינים את הקרנל החדש עם install ולא עם update, כך שהקרנל הישן נשאר במערכת. בתפריט ה-boot בוחרים איזה קרנל לעלות.
2. חזרה לאחור: אם הקרנל החדש לא עולה, בוחרים את הקרנל הישן מהתפריט. בקובץ grub.conf קובעים איזה ערך ייבחר כברירת מחדל.
3. תאימות: במהדורה ארגונית הקרנל נשאר באותה גרסה לאורך כל המהדורה, כך שיצרני התוכנה יכולים לסמוך עליו. השינויים הגדולים נכנסים רק במהדורה הבאה.
שימו לב
היצרן מקמפל את הקרנל ובודק אותו מול התוכנות שרצות עליו, ולכן בשרתי ייצור לא מומלץ לקמפל את הקרנל בעצמכם. כדי לבדוק אם נטען מודול חיצוני, בודקים את הערך של /proc/sys/kernel/tainted.
לכוונון ביצועים, למשל עבור מסד נתונים כמו Oracle, מגדירים פרמטרים בקובץ sysctl.conf, והם נטענים בעלייה או בעזרת sysctl.
השיעור הבא בקורס: קימפול ידני של קרנל - kernel
לחץ כאן להורדת הורדת קבצי Script של לינוקס שהיו בסרטים
מילון מושגים:
דיסק - התקן לאחסון קבוע של נתונים, כמו כונן קשיח (HDD) או כונן מבוסס זיכרון מהיר (SSD).
תיקייה - מכל במערכת הקבצים שמשמש לארגון קבצים ותיקיות אחרות בתוך מבנה היררכי.
מחיצה - חלוקה לוגית של דיסק פיזי לאזורים נפרדים, שכל אחד מתפקד כאילו הוא כונן עצמאי.
זיכרון - רכיב מהיר ונדיף שבו המחשב שומר נתונים ותוכניות בזמן ריצתם. תוכנו נמחק עם כיבוי המחשב.
דומיין - תחום ניהולי משותף של מחשבים ומשתמשים ברשת ארגונית, המנוהל מרכזית. גם שם ייחודי של אתר באינטרנט.
אימות - תהליך שמוודא שהמשתמש או המערכת הם מי שהם טוענים שהם, בדרך כלל באמצעות סיסמה, קוד או תעודה.
Active Directory - שירות מדריך של מיקרוסופט לניהול מרכזי של משתמשים, מחשבים והרשאות ברשת ארגונית מבוססת דומיין.
GPO - אובייקט מדיניות קבוצתית ב-Active Directory, שמכיל הגדרות ומדיניות המוחלות על משתמשים ומחשבים.


מבנה ושמות דיסקים ומחיצות בלינוקס:


(Sda (disk0): זה הדיסק הפיזי הראשון (SATA DISK)

(Sda1,Sda2 (Partitions in disk): אלו הן המחיצות בתוך הדיסק הפיזי הראשון.

(Sdb (disk1): זה הדיסק הפיזי השני כמו בוינדוס Disk1

(Sdb1,Sdb2 (Partitions in disk): אלו הן המחיצות בתוך הדיסק הפיזי השני.

מחיצת השורש הראשונה:

וינדוס: C

לינוקס: /

מחיצות נוספות:

וינדוס: D: / E:

לינוקס: /data /example כמו תיקיות.

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

מטרת צירוף לינוקס לדומיין הינה לאימות משתמשים מתוך Active Directory בלבד ואין GPO  ללינוקס דרך AD.


הוכן ע"י התלמיד המצטיין: אברהים אבו שיכה

פרקי ההרצאה: KERNEL מיסודות ועד לעדכונים ידניים

  1. 00:00

    מבוא: מה זה קרנל ולמה הוא נחוץ

  2. 01:19

    מולטי-טאסק וחלוקת משאבי המחשב

  3. 02:38

    הקרנל כמתווך בין החומרה ליישומים

  4. 03:38

    הפרדת אפליקציות ואבטחת מידע בקרנל

  5. 04:42

    בדיקת גרסת הקרנל ב-Windows ולינוקס

  6. 05:27

    פקודת uname: גרסה וארכיטקטורה

  7. 09:46

    קרנל מונוליטי מול מודולים

  8. 10:42

    מודולים של הקרנל ופקודת lsmod

תמלול ההרצאה: KERNEL מיסודות ועד לעדכונים ידניים

הטקסט המלא של הדקות הראשונות בהרצאה «KERNEL מיסודות ועד לעדכונים ידניים» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

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

  2. 00:15

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

  3. 00:44

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

  4. 01:04

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

  5. 01:23

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

  6. 01:52

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

  7. 02:20

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

  8. 02:45

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

  9. 03:12

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

  10. 03:34

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

  11. 03:59

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

  12. 04:20

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

  13. 04:38

    הקרנל הוא רכיב שכתוב ב-C וב-C++, הוא הראשון שניתן והוא קיים בכל מערכת הפעלה. גם ב-Windows קיים הקרנל. עכשיו כשפותחים Shell כבר אפשר לראות את הגרסה של הקרנל, וגם אם רושמים את ההודה Ver מקבלים את הגרסה של הקרנל.

  14. 05:01

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

  15. 05:27

    U-NAME מינוס A תראה לי את הגרסה המדויקת של הקרנל ביחד עם השם של השרת וביחד עם הארכיטקטורה עם סוג המעבד שהקרנל רץ אליו. הקרנל הוא בעצם נבנה כדי לעבוד על סוג מעבד מסוים וככה הוא יודע לנצל בצורה המיטבית את היכולות של אותו המעבד ולהעביר את היכולות האלה לאפליקציה.

  16. 06:02

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

  17. 06:20

    אני אעשה למשל ls על slashproc ואני אוכל לראות פה כל מיני דברים מעניינים. למשל, אני יכול לראות proc, אני רוצה רגע cut על קבצים שנמצאים, cut proc cpu info, כאן אני אוכל לראות את המידע על המעבדים שיש לי במערכת, כמו שהקרנל רואה אותם, אוקיי?

  18. 06:53

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

  19. 07:07

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

  20. 07:34

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

  21. 08:04

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

  22. 08:42

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

  23. 09:04

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

  24. 09:32

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

  25. 09:53

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

  26. 10:06

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

  27. 10:29

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

  28. 10:50

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

  29. 11:08

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

  30. 11:32

    כדי להוסיף לו דיסק, השרת יורד. אני הולך למכונה הווירטואלית, אז ל-settings, storage, ומוסיף דיסק חדש, דיינמיקה ליאלוקטד, נגיד בגודל של 1 ג'יגה בייט, מעולה.

  31. 12:18

    הוספנו דיסק, עכשיו אני מעלה את השרת, אוקיי? כרגע הוא ניסה לעלות מהדיסק שהוספתי, אני הולך לשנות את ההגדרות, כנראה בגלל שהוספתי אותו על הבקר הראשון ולא על הבקר השני,

לקורס המלא: קורס לינוקס מתקדם אונליין

ההרצאה הקודמת: שליחת דוח ב-EMAIL בסיום ההתקנה

ההרצאה הבאה: קימפול ידני של קרנל - kernel

הרצאות קשורות מקורסים אחרים

  • מעקב אחר הליבה של וונדוס - Kernel - SilkETW
  • העלאת הרשאות על ידי ניצול באגים בדרייבר - Kernel Driver

קורסים נוספים במסלול

  • קורס AWS - ניהול מכונה וירטואלית בענן
  • קורס Terraform - DevOps - Azure & AWS
  • קורס קוברנטיקס - Kubernetes
  • קורס Docker - עם Swarm Cluster
  • קורס DevOps - Ansible
  • קורס PowerShell