קורס זה מעמיק בארכיטקטורת הקרנל של Linux ובפיתוח דרייברים. הקורס מכסה את מבנה הקרנל, מערכת הקבצים, ניהול תהליכים וזיכרון, ומנגנוני סנכרון. דגש מיוחד מושם על פיתוח דרייברים לחומרה שונה, כולל character devices, block devices, ו-network devices. המשתתפים ילמדו כיצד לפתח, לדבג ולתחזק דרייברים תוך הבנת השכבות השונות של הקרנל.
מה זה Linux Kernel?
לינוקס קרנל, הינו קורס במסגרתו לומדים את הליבה של מערכת ההפעלה לינוקס, תפקידה לאפשר לתוכנית ב User-Space את כל הכלים והשירותים הנדרשים בכדי שזאת תוכל לבצע את עבודתה במהירות ויעילות.
קורס Linux Kernel (ניהול הליבה של LINUX) מקנה בין השאר, גישה יציבה ל "Kernel Blocks"- חלקי הקרנל השונים, כגון: File Systems, Networking Stacks, Scheduler, Kernel Device Drivers Kernel Entities \ Objects, וזאת באמצעות System Calls.
חלק מהפונקציונליות של לינוקס קרנל הנה השליטה על החומרה באמצעות מנהלי התקנים (Linux Kernel Device Drivers). מנהלי התקנים אלו חייבים להיות יציבים ולעיתים אף לשמש כמודולים בעבור הליבה – LKMs) Loadable Kernel Modules). משמעות הפיתוח בסביבת Kernel היא מלהיבה וייחודית.
בשלבי הפיתוח יש להתחשב במספר רב של נושאים לרבות Kernel Processes נוספים, HW\SW Interrupts , Synchronization, ועוד.
לשם השוואה לפיתוח תכניות כ-Processes בסביבת User Space : במידה ולתוכנית יש באג או בעיה שלא זוהתה, אזי רק אותו ה- Process יושפע, כמובן שזה חמור מאוד אך סביר שההשפעה לא תגרום לקריסת המערכת הפעלה וסיום אותו Process יפתור את המערכת הפעלה מהבעיה.
לעומת זאת, באג בKernel ישפיע מן הסתם על כל המערכת הפעלה – ובמקרה הטוב יגרום לקריסת כלל ה Processes ב Kernel.
מטרת קורס ניהול שרתי linux kernel
קורס לינוקס קרנל מתמקד בכל הנושאים הנדרשים לפיתוח מודלים ומנהלי התקנים בסביבת שרתי Linux Kernel ואינו דורש ידע ראשוני בפיתוח Kernel.
מטרת הקורס היא להעניק למהנדסים בתעשיית ההייטק את הידע התאורטי והמעשי בתחום לרבות הכלים והממשקים הנדרשים, ניהול המשאבים שמעניקה מערכת ההפעלה, שימוש באובייקטים ושירותים, שימוש בכלי בדיקה (Debug Tools), פתרון תקלות בעבור הבעיות אופייניות, פיתוח Board Support Package (BSP), ועוד.
לקראת סיום הקורס נקדיש פרק בעבור פיתוח Linux Kernel & User Space בסביבת YOCTO.
הקורס מתמקד בארכיטקטורות ARM ו- Intel, תוך שימוש בכרטיסי פיתוח מבוססי Cortex A-8 / i.MX-8 והוא מתמקד בפיענוח ה "Kernel Blocks", פיתוח נכון ואופטימלי של Kernel Device Drivers תוך שימוש עדכני של Linux Kernel APIs .
במהלך קורס זה ילמד הסטודנט:
- Kernel Development Environment setup
- Loadable Kernel Module
- Platform Device Drivers
- Devices, drivers, and bus matching
- Device tree mechanism
- Delay and timer management
- Kernel locking mechanism