מלאו פרטים לקבלת יעוץ

קורס Linux Kernel and Device Drivers


Linux Kernel and Device Drivers-image

אודות הקורס Linux Kernel and Device Drivers

Linux Kernel and Device Drivers

מה זה Linux Kernel

לינוקס קרנל, הליבה של מערכת ההפעלה לינוקס, תפקידה לאפשר לתוכנית ב User-Space את כל הכלים והשירותים הנדרשים בכדי שזאת תוכל לבצע את עבודתה במהירות ויעילות, בין השאר, גישה יציבה ל "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 ואינו דורש ידע ראשוני בפיתוח 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 Modules ,
Platform Device Drivers
Devices, drivers, and bus matching
Device tree mechanism
Delay and timer management
Kernel locking mechanism

תיאור הקורס

  • קורס זה הנו קורס מעשי הכולל הרצאות פרונטליות ותרגול מעשי.
  • משך הקורס הינו כ 90 שעות אקדמיות – 60 שעות מעשיות + 30 שעות תרגול במעבדה.
  • הקורס כולל :
    • לימוד Linux Kernel and Device Drivers תרגילים ופתרונות
    • תרגילי כיתה המלווים בהסברים, שיעורי בית ופתרונות באתר
    • חוברת קורס
    • סרטונים ומצגות באתר הקורס
    • שימוש בכרטיסי פיתוח לצורך עבודה ב Embedded Systems
  • לקראת סיום הקורס כל סטודנט יבצע פרויקט מעשי המסכם את הידע הנרכש במהלך הקורס.
  • ההרצאות מתקיימות פעם בשבוע בשעות הערב או בוקר.

 

מבנה הקורס

Linux Kernel overview- Main characteristics
Kernel Basic data structures
Scheduling in Linux
Developing Kernel Modules
Character Device Drivers as LKMs
Pin Control and GPIO Subsystem
Kernel object model
Sysfs Devices/buses/drivers/subsystems
Udev
Memory management
Platform Device Drivers
Linux Device Tree
I/O memory and ports
Wait Queues
Interrupts and Exceptions
Work deferring mechanism
Kernel Synchronization

קהל יעד

  • ארכיטקטים, מהנדסי תוכנה, מפתחים, מתכנתים המעוניינים ללמוד פיתוח ב Kernel בשילוב עם פיתוח מנהלי התקנים (Device Drivers).
  • מהנדסי Embedded Bare-Board המעוניינים ללמוד לפתח מנהלי התקנים תחת מערכת הפעלה לינוקס .
  • מהנדסי חומרה, תוכנה, מדעי המחשב המעוניינים בידע מעשי בעולם ה לינוקס קרנל.

תנאי קדם

1. ידע וניסיון במערכות הפעלה לינוקס.
2. ידע וניסיון בתכנות User Mode Applications במערכות הפעלה לינוקס.
3. אנגלית ברמה גבוהה.
4. בעלי רקע ו/או ניסיון בפיתוח שפת ++C / C – (הכרחי עבור מסלול הסבה מקצועית).

קורסי המשך

מומלץ לבחור קורסי המשך בהתאם למסלול ההכשרה הרצוי.