
wget, ומורידים את קובץ הקרנל מאתר kernel.org. בהרצאה הורדה גרסה 4.7.gcc ו-OpenSSL, ואז מריצים make menuconfig. בתפריט בוחרים לכל רכיב אם הוא יהיה מובנה בקרנל (built-in), מודול שנטען לפי הצורך, או מושבת.make מקמפל את הקרנל ואת המודולים. בהרצאה התהליך לקח כחצי שעה.make modules_install מעתיק את המודולים לתיקייה לפי גרסת הקרנל, ו-make install מתקין את הקרנל עצמו.uname -r מציג את הגרסה החדשה.מבנה ושמות דיסקים ומחיצות בלינוקס:

הטקסט המלא של הדקות הראשונות בהרצאה «קימפול ידני של קרנל - kernel» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם, בהרצאה הזאת אנחנו הולכים להתקין ידנית קרנל חדש ללינוקס שלנו להבין איך מקמפלים את הקרנל הזה, איך מתקינים את הקרנל הזה זאת הולכת להיות הרצאה מאוד מעניינת ומאוד חשובה בואו נתחיל מזה שנוריד את הקרנל הזה ללינוקס,
עושים קופי לינק אדרס שזה הקרנל, גם נוריד אותו לדיסק שלנו, לראות איך הוא נראה ונרשום w, בואו ניכנס לאיזושהי תיקייה, בואו נראה כמה מקום יש לנו קודם כל שאין לנו בעיה של מקום יש לנו 17 ג'יגה פנוי אני רואה 17 ג'יגה available זה מספיק לי אוקיי אני אעשה תיקייה לא יודע מה
temp סתם המצאתי עכשיו שם temp kernel ונעשה wget לתוך הנתיב הזה או בלינק אדרס ונעשה wget ונוריד את ה... אין לנו פקודת wget yam install -y wget אנחנו מתקינים את ה-wget סיימנו להתקין את ה-wget ועכשיו אפשר לקחת את הקובץ הזה wget זה מוריד מהאינטרנט קובץ ואני רואה שהוא מוריד לי מתוך https של
kernel.org את הגרסה 4.7 שזה מה שיש עכשיו אתם תורידו מה שגרסה האחרונה שיש לכם. עכשיו קרנל אפשר דרך ים להתקין אותו בקלות מוכן. אנחנו לא לוקחים קרנל מוכן, אנחנו רוצים לבד לקבוע מה נכנס פנימה ומה לא נכנס, איזה מודולים יהיו בפנים ואיזה דרייברים הולכים להיות בפנים.
זה עוד מעט אנחנו נראה אחרי שנוריד את זה. ניתן לו להוריד, זה ייקח לו כמה דקות. עד שהוא מוריד קובץ בוא נראה מה הוריד לנו הקרנל.אורג. אני רואה שהקובץ של לינוקס 47 כבר ירד לי ואני יכול לראות מה יש לנו בפנים.
יש לנו בפנים קובץ targz ואם אנחנו ניכנס לתוכו פנימה אנחנו נראה שהוא מכיל המון המון קבצים בפנים. בואו נסתכל מה יש לנו בתוך, ממה מורכב הקרנל.
למעשה קרנל הזה זה open source, יש לנו את קוד מקור שלו. אנחנו יכולים ממש לטייל בפנים ולראות את הקודים שלו לדוגמה יש לנו ארכיטקטורה שזה שמה יש לנו בארכיטקטורה לדוגמה קוד איך להפעיל נניח x86 זה מחשבים כמו שאנחנו מכירים אותם power pc למי שמכיר איטניום שהיו פעם מחשבי איטניום ארם שזה כל מיני טאבלטים מעבדי ארם ופלאפונים זאת אומרת
יש לנו פה קוד איך להפעיל משהו ספציפי חוץ מארכיטקטוריות יש לנו פה לדוגמה security ויש לנו דרייברים לדוגמה דרייברים ובדרייברים יש לנו דוגמה cd-rom את הדרייבר של cd-rom ולכל דרייבר יש לנו את הקוד שלו בשפת c ואיך לקמפל אותו makefile זה הוראות לקומפיילר כשהוא ירצה להפוך את זה לשפת מכונה איך הוא הופך את שפת c הזאת לשפת מכונה איזה אופציות צריך בקמפול לדוגמה אם
אם אנחנו ניקח ונפתח את זה, בואו נעשה פה דאבל קליק פשוט ונפתח אותו, אתם תוכלו לראות שהקובץ של סידי רום, בואו נעשה, שהקובץ של סידי רום, אתם תוכלו לראות שחוץ מהרבה הסברים שיש לנו פה בירוק, בואו נוריד קצת את ההסברים האלו, חוץ מההסברים יש לנו את הקוד עצמו.
If define do y לולאות, כמובן שצריך להבין בשפת C, ויותר נכון בפקודות שצריך להוריד למכונה ברמת הביטים, מה מצפה הסידירון מקבל.
אבל הקוד שלו כתוב פה בצורה מאוד ברורה ואנחנו יכולים לשנות אותו. אחרי שאנחנו משנים אותו אנחנו מקמפלים אותו לשפת מכונה.
זאת אומרת שאם יהיה לי באג באיזשהו קוד אנחנו יכולים לשנות אותו לבד ולקמפל מחדש וזה מה שאנחנו הולכים לעשות. הולכים לקמפל מחדש את הדרייברים ואת כל הקרנל אוקיי אז ראינו מה זה קוד מקור שהוא כתוב בשפת c וכשמקמפלים אותו הופכים אותו לשפת מכונה ספציפית שימו לב יש הרבה מאוד מכונות בגלל זה קרנל נכתב בשפת c וכל קומפיילר הופך
את זה לשפת מכונה הספציפית אוקיי ואנחנו יכולים לראות שיש פה המון המון המון המון דרייברים אנחנו בתיקי הדרייברס כרגע אם אתם רואים כרטיסי מסך, הכל הכל הכל יש פה.
אוקיי, מה יש לנו חוץ מדרייברס? יש לנו פייל סיסטמס. לדוגמה שהקרנל, שאנחנו נקמפל ידע להתחבר ולעשות מאונט לרות ולהתחיל את התהליך של הבוט, אז אנחנו רואים פה את כל הקרנלים שהוא יודע לתמוך בהם, אתם רואים XT2, 4, לדוגמה FAT,
כל הפייל סיסטמס שהוא יודע לתמוך בהם. הרי איך מתבצע תהליך הבוט? בואו נכתוב בגוגל לינוקס בוט ונראה כמה תמונות איך מתבצע תהליך הבוט שנבין את זה.
גם ככה אנחנו מחכים שהקובץ ירד. שימו לב איך מתבצע תהליך הבוט. קודם כל נדלק המחשב והביוס שלו נדלק ובודק שהכל תקין, מעביר את השליטה לסקטור 0 בדיסק שהגדרנו לו בביוס.
סקטור 0 בדיסק, יושב שם MBR או GPT, זה MBR זה הישן ו-GPT זה החדש, אבל זה לא משנה באיזה שיטה זה מנוהל, בסופו של יום בסקטור 0 של דיסק יושב, זה נקרא בוטלואודר, אוקיי?
הבוטלואודר הזה שיושב ב-MBR הוא נותן לי את התפריט מה אני רוצה להעלות, מערכת ההפעלה הראשונה, השנייה, איזה קרנל אני רוצה להעלות. התפריט הזה נקרא גרב, אוקיי?
גרב זה בעצם המערכת הזאת שיש בה את הבוטלואודר ואני בוחר מהתפריט מה אני רוצה. מי שמכיר בווינדוס זה נקרא BCD Edit ואז הגרב בעצם הבוט לואודר מעביר שליטה לקרנל.
אני בוחר איזה קרנל אני רוצה להטעין, עוד מעט תראו שיש לי כמה קרנלים. קרנל מתחיל בעצם את התהליך של הטעינה, אנחנו יכולים לראות שהקבצים של הקרנל יושבים בסלאש בוט, בסלאש בוט הוא מתחיל את הטעינה ואחרי שהוא מטעין את הבסיס שלו ומשתלט על החומרה הוא מתחיל להטעין בעצם את התוכנות, את הסרוויסים על ידי אינית.
בעצם תהליך של אינית זה בעצם להתחיל את כל הסרוויסים ותוכנות עזר, קרנל זה מה ששולט על הברזל ואחרי זה מטעינים כבר את כל שאר התוכנות. עכשיו בגלל ש-MBR, הבוטלוודר הוא לא, הוא מאוד קטן, יש שם רק ממש קצת מקום, 512 בייט והכניסו שם, דחפו שם בעוד מקום, הוסיפו לו שם עוד איזה מקום סודי שנקרא שלב אחד וחצי, עוד קצת מידע, עדיין הוא נורא פרימיטיבי,
רוט לואודר נורא פרימיטיבי וכל התפקיד שלו זה שאני אבחר איזה מערכת הפעלה אני רוצה להטעין והוא יעביר את השליטה לקרנל שלו. קרנל הוא כבר הרבה יותר חכם.
עכשיו, מה זה אומר שהוא פרימיטיבי? זה אומר שהוא לא יודע לדוגמה לקרוא את כל מערכות הקבצים. הוא לא יודע לקרוא את כל מערכות הקבצים, בגלל שהוא לא יודע לקרוא את כל מערכות הקבצים, אתם תראו, בואו נפתח עוד סשן, נעשה פה New Session, רוט, פסוורד.
תראו, אם אנחנו ניקח מונט, ואתם יודעים מה, lsblk או מונט, זה לא משנה, אתם תראו שהדיסק הראשון מחולק לשתי מחיצות, והמחיצה הראשונה היא בבוט, והמחיצה השנייה היא ב-LVM החכם.
עכשיו, למה עשו את המחיצה הראשונה לא ב-LVM? כי בתיקיית הבוט יושב הקרנל. שימו לב, הנה שיהיה לכם פה תמונה. בתיקיית הבוט יושב הקרנל, ובגלל ש-MBR הוא לא מספיק חכם, כן, אז הוא צריך לגשת לקרנל בתיקייה פשוטה, הוא לא יודע להבין לדוגמה LVM.
ולכן, בגלל שהקרנל לא יודע להבין את ה-LVM, אז שמו אותו בתיקייה פשוטה, ואחרי שקרנל עלה לאוויר עם כל הקוד שלו, אז הוא כבר יודע להתין את ה-LVM. זאת אומרת שה-bootloader, הנה, בואו נראה פה את התמונה, יש לנו סטארט-אפ, יש לנו את ה-bootloader שיושב ב-MBR, סטארט-אפ שיושב ב-BIOS הפיזי של המחשב, Stage 1 יושב בתוך ה-bootloader,
MBR, MBR עולה ובעצם נותן לי את התפריט של ה-GRUB, שזה השלב השני, שמבחינתנו זה אותו אחד, ואחרי שאני בוחר מה אני רוצה זה מעלה את הקרנל, אוקיי?
יפה. אז בגלל שה-bootloader זו תוכנה מאוד קטנה, קרנל חייב לשבת במשהו שהוא מאוד פשוט, כמו תיקיית בוט. פשוט זה מבחינת דרייברים, להבין איך לתקשר איתו.
קרנל עצמו זה קובץ, יכול להיות כבר גדול, ואז אין בעיה שהוא יבין גם את ה-LVM, יש בו מספיק מקום לראות את הקוד שלו. אתם מבינים, זה עניין של כמה מקום יש לך לכתוב קוד.
אז אמרנו, בוטלואודר בסקטור 0 מעביר שליטה לתיקיית בוט, ובתיקיית בוט אנחנו רואים את הקרנל שלי, שזה אביא עם לינוס, זה הקרנל שלי.
אנחנו רואים אותו פה וזה רסקיו שזה כמו סייף מוד אז יש לי פה שני קרנלים ברגע שאנחנו נסיים תהליך של התקנה אנחנו נראה עוד קרנל אוקיי אנחנו נראה שמתווסף לנו עוד קרנל כל התפריט הזה של ההתחלה אנחנו יכולים לראות אותו ב-etc grabd נראה לי זה נקרא grab2cfg ופה אנחנו רואים את כל התפריט בואו נראה אותו ביחד וי.איי זה התפריט של הגרב שיש לנו בהתחלה,
אתם יכולים לראות פה לדוגמה בתפריט הזה, הנה בבקשה, אתם יכולים לראות מניו אנטרי שכתוב על המסך סנטו s7 קרנל 3.1 ואז כשאני בוחר את האנטרי הזה הוא מבצע את הפקודות הבאות, זה הפקודות שהוא מבצע, אנחנו רואים שהוא מטעין איזה שהם דרייברים, הוא עושה סט רוט, הוא מפעיל את הקרנל של v עם לינוס, זוכרים שלפני שנייה ראינו אותו?
הוא מפעיל את הווים לינוס. יפה מאוד. אז אנחנו לא נוגעים בקובץ הזה. אם רוצים לשנות את הקובץ ואת הגדרות של הגרב של התפריט של הבוט צריך לעשות את זה עם כלים אחרים אנחנו נראה את זה בהמשך.
טוב אז הבנו איך תהליך הבוט מתבצע בואו נחזור חזרה ונראה עדיין הוא מוריד לנו את הקבצים טוב ניתן לו להוריד את הקבצים ואז נמשיך הלאה.
עכשיו כשסיימנו את ההורדה של הקובץ אנחנו יכולים לפתוח אותו לעשות לו unzip tar x פותח f קובץ שם של קובץ ולאן אנחנו רוצים לפתוח אותו יש לנו תיקייה של user עם כל source code כל מה שלפני הקמפול ולשם אנחנו עושים לו tar אם היינו עושים מינוס v היינו מוסיפים עוד v
אז הוא היה גם נותן לנו verbs information כאילו מידע מפורט כולל רשימה של שמות של קבצים עכשיו הוא עושה אנזיפ בלי להציג לנו את השמות הוא סיים לעשות את האנזיפ ואנחנו יכולים לראות שיש לנו בתיקיית מקור הוא פתח את זה לתוך תיקיית לינוקס 47 ואנחנו רואים פה את כל הקבצים של הזיפ יפה מאוד עכשיו נשאר לנו להגדיר מה אנחנו רוצים בעצם לקחת