PracticU

קימפול ידני של קרנל - kernel

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

קימפול ידני של קרנל - kernel
בשיעור מורידים את קוד המקור של קרנל לינוקס, מקמפלים אותו ידנית עם רכיבים שנבחרו בעצמנו, ומוודאים שהוא עולה בתפריט האתחול.
השלבים העיקריים
1. הורדה: בודקים שיש מקום פנוי בדיסק (בהרצאה כ-17 ג'יגה), מתקינים את wget, ומורידים את קובץ הקרנל מאתר kernel.org. בהרצאה הורדה גרסה 4.7.
2. חילוץ: פותחים את קובץ ה-tar.gz בתיקייה נפרדת. בקובץ יש את קוד המקור: ארכיטקטורות, דרייברים, מערכות קבצים ותיעוד.
3. הגדרות: מתקינים את כלי הקימפול, כולל gcc ו-OpenSSL, ואז מריצים make menuconfig. בתפריט בוחרים לכל רכיב אם הוא יהיה מובנה בקרנל (built-in), מודול שנטען לפי הצורך, או מושבת.
4. קימפול: make מקמפל את הקרנל ואת המודולים. בהרצאה התהליך לקח כחצי שעה.
5. התקנה: make modules_install מעתיק את המודולים לתיקייה לפי גרסת הקרנל, ו-make install מתקין את הקרנל עצמו.
6. תפריט האתחול: הקרנל החדש מופיע בתפריט GRUB. מומלץ לשנות את ההגדרות דרך הכלים של GRUB ולא לערוך את הקובץ ידנית.
7. בדיקה: אחרי אתחול מחדש, uname -r מציג את הגרסה החדשה.
איך זה עובד
המחשב מתחיל מה-BIOS, שמעביר את השליטה לסקטור ה-MBR. שם יושב GRUB, שמציג את התפריט ומעלה את הקרנל שנבחר. מכיוון ש-GRUB פשוט מאוד, הקרנל והקבצים שלו נשמרים בתיקיית boot רגילה, שהקרנל יודע לקרוא גם לפני שהוא מכיר את LVM.
טעויות נפוצות
- קרנל שנבנה בלי דרייבר לכונן הדיסק הראשי לא יעלה, ולכן בוחרים בזהירות מה נשאר בתוכו.
- אם המודולים לא מותקנים, הקרנל החדש לא ימצא את הדרייברים שלו.
שימו לב
קימפול ידני מאפשר להתאים את הקרנל לחומרה מסוימת ולהוציא רכיבים שלא צריך, אבל בלי כלי שמכיר את המערכת כדאי להשתמש בקרנל מוכן.
לחץ כאן להורדת הורדת קבצי 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:00

    התקנת wget והורדת קובץ הקרנל

  3. 01:47

    בחירה ידנית של דרייברים ומודולים

  4. 02:44

    מבנה קוד המקור: ארכיטקטורות ודרייברים

  5. 03:55

    קובץ ההגדרות (config) של הקרנל

  6. 05:15

    קימפול הקוד לשפת מכונה

  7. 06:29

    תהליך ה-Boot: מה קורה בהפעלה

  8. 08:12

    MBR קטן ותפריט GRUB

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

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

  1. 00:02

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

  2. 00:21

    עושים קופי לינק אדרס שזה הקרנל, גם נוריד אותו לדיסק שלנו, לראות איך הוא נראה ונרשום w, בואו ניכנס לאיזושהי תיקייה, בואו נראה כמה מקום יש לנו קודם כל שאין לנו בעיה של מקום יש לנו 17 ג'יגה פנוי אני רואה 17 ג'יגה available זה מספיק לי אוקיי אני אעשה תיקייה לא יודע מה

  3. 00:47

    temp סתם המצאתי עכשיו שם temp kernel ונעשה wget לתוך הנתיב הזה או בלינק אדרס ונעשה wget ונוריד את ה... אין לנו פקודת wget yam install -y wget אנחנו מתקינים את ה-wget סיימנו להתקין את ה-wget ועכשיו אפשר לקחת את הקובץ הזה wget זה מוריד מהאינטרנט קובץ ואני רואה שהוא מוריד לי מתוך https של

  4. 01:36

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

  5. 02:02

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

  6. 02:21

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

  7. 02:40

    למעשה קרנל הזה זה open source, יש לנו את קוד מקור שלו. אנחנו יכולים ממש לטייל בפנים ולראות את הקודים שלו לדוגמה יש לנו ארכיטקטורה שזה שמה יש לנו בארכיטקטורה לדוגמה קוד איך להפעיל נניח x86 זה מחשבים כמו שאנחנו מכירים אותם power pc למי שמכיר איטניום שהיו פעם מחשבי איטניום ארם שזה כל מיני טאבלטים מעבדי ארם ופלאפונים זאת אומרת

  8. 03:16

    יש לנו פה קוד איך להפעיל משהו ספציפי חוץ מארכיטקטוריות יש לנו פה לדוגמה security ויש לנו דרייברים לדוגמה דרייברים ובדרייברים יש לנו דוגמה cd-rom את הדרייבר של cd-rom ולכל דרייבר יש לנו את הקוד שלו בשפת c ואיך לקמפל אותו makefile זה הוראות לקומפיילר כשהוא ירצה להפוך את זה לשפת מכונה איך הוא הופך את שפת c הזאת לשפת מכונה איזה אופציות צריך בקמפול לדוגמה אם

  9. 03:53

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

  10. 04:30

    If define do y לולאות, כמובן שצריך להבין בשפת C, ויותר נכון בפקודות שצריך להוריד למכונה ברמת הביטים, מה מצפה הסידירון מקבל.

  11. 04:45

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

  12. 04:55

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

  13. 05:32

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

  14. 05:55

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

  15. 06:20

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

  16. 06:34

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

  17. 06:47

    סקטור 0 בדיסק, יושב שם MBR או GPT, זה MBR זה הישן ו-GPT זה החדש, אבל זה לא משנה באיזה שיטה זה מנוהל, בסופו של יום בסקטור 0 של דיסק יושב, זה נקרא בוטלואודר, אוקיי?

  18. 07:04

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

  19. 07:17

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

  20. 07:40

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

  21. 08:06

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

  22. 08:43

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

  23. 08:58

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

  24. 09:25

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

  25. 09:43

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

  26. 10:10

    ולכן, בגלל שהקרנל לא יודע להבין את ה-LVM, אז שמו אותו בתיקייה פשוטה, ואחרי שקרנל עלה לאוויר עם כל הקוד שלו, אז הוא כבר יודע להתין את ה-LVM. זאת אומרת שה-bootloader, הנה, בואו נראה פה את התמונה, יש לנו סטארט-אפ, יש לנו את ה-bootloader שיושב ב-MBR, סטארט-אפ שיושב ב-BIOS הפיזי של המחשב, Stage 1 יושב בתוך ה-bootloader,

  27. 10:45

    MBR, MBR עולה ובעצם נותן לי את התפריט של ה-GRUB, שזה השלב השני, שמבחינתנו זה אותו אחד, ואחרי שאני בוחר מה אני רוצה זה מעלה את הקרנל, אוקיי?

  28. 11:01

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

  29. 11:17

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

  30. 11:29

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

  31. 11:40

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

  32. 12:27

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

  33. 12:59

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

  34. 13:25

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

  35. 13:43

    עכשיו כשסיימנו את ההורדה של הקובץ אנחנו יכולים לפתוח אותו לעשות לו unzip tar x פותח f קובץ שם של קובץ ולאן אנחנו רוצים לפתוח אותו יש לנו תיקייה של user עם כל source code כל מה שלפני הקמפול ולשם אנחנו עושים לו tar אם היינו עושים מינוס v היינו מוסיפים עוד v

  36. 14:10

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

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

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

ההרצאה הבאה: ממשק גרפי חדש של Red Hat 7

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

  • יצירת VPC ידני - ב-AWS
  • יוצרים חלון ידני מ-console application
  • אישור ידני למסמכים חדשים - ב-Sharepoint
  • מעקב אחר הליבה של וונדוס - Kernel - SilkETW

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

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