Yocto Project הינו פרויקט קוד פתוח המספק תשתית וכלים ליצירת הפצות Linux מותאמות אישית לEmbedded Systems. הקורס מעמיק בארכיטקטורת המערכת ומלמד כיצד להשתמש ב-OpenEmbedded Build System ליצירת מערכות הפעלה מותאמות לפלטפורמות חומרה ספציפיות. המשתתפים ילמדו את מבנה השכבות (Layers), מערכת הבנייה BitBake, ויצירת recipes להתאמה מלאה של המערכת. דגש מיוחד יושם על אופטימיזציה של גודל המערכת, זמני טעינה וביצועים.
מהו Yocto
פרויקט Yocto מספק שכבות מתוחזקות היטב ומעודכנות, שתומכות במגוון רחב של ארכיטקטורות מובילות לרבות ARM, MIPS, PowerPC ו- x86 / x86 64.
מדובר בפרויקט שיתוף פעולה בקוד פתוח המסייע למפתחים ליצור מערכות מבוססות לינוקס מותאמות אישית ללא קשר לארכיטקטורת החומרה.
פרויקט Yocto מספק סט גמיש של כלים וחלל שבו מפתחים ברחבי העולם יכולים לשתף טכנולוגיות, מחסניות תוכנה, תצורות ושיטות עבודה מומלצות שניתן להשתמש בהן ליצירת תמונות לינוקס מותאמות למכשירי לינוקס מוטבעים ו- IOT, או בכל מקום בו נדרשת מערכת הפעלה מותאמת אישית של לינוקס.
פרויקט Yocto הוא פרויקט קוד פתוח במיוחד עבור השטח המוטבע. בעוד תוכנות לינוקס אחרות בנויות עבור שרתים ותחנות עבודה ארגוניים ולאחר מכן (אולי) מותאמות למקרי שימוש מוטבעים. פרויקט Yocto מאפשר בניית הפצות מותאמות אישית עבור התקנים מוטבעים. בשוק שונה עם דרישות הטרוגניות, הפרויקט מבקש להגדיר מכנה משותף לפיתוח משובץ, ללא תלות בארכיטקטורה הבסיסית של החומרה.
פרויקט Yocto התפתח והפך לאחת הקהילות הגדולות תחת מטריית לינוקס של פרויקט קוד פתוח שיתופיים. הוא אוסף את השמות המובילים בתעשייה, מיישם שיטות עבודה מומלצות עבור קוד פתוח, ומגדיר את התכונות של פיתוח מערכת הפעלה משובצת ומחזורי חיים של מוצרים עם הכלים שהיא מציעה.
הפרויקט מספק תקן לאספקת תמיכה בחומרה וערימות תוכנה, המאפשר חילופי תצורות תוכנה ובנייה.
הכלים מאפשרים למשתמשים לבנות ולתמוך בהתאמות אישיות עבור פלטפורמות חומרה מרובות וערימות תוכנה באופן ניתן לתחזוקה ומדרגית.
מבחינה היסטורית הפרויקט צמח, ועובד עם פרויקט Open Embedded שבו נגזרים מערכת הבנייה וחלק מהמטא-נתונים.
פרויקט Yocto משלב, מתחזק ומאמת 3 רכיבי פיתוח מרכזיים:
ערכה של כלים משולבים להצלחת עבודה עם Linux מוטבעת, כולל כלים לבנייה ובדיקה אוטומטיים, תהליכים לתמיכה בלוח ותאימות לרישיונות ומידע רכיבים עבור מערכות הפעלה מוטבעות מבוססות לינוקס מותאמות אישית
הפצה מוטבעת של הפניה (הנקראת Poky)
מערכת הבנייה OpenEmbedded, מתוחזקת בשיתוף עם פרויקט OpenEmbedded
ישנם רכיבי קוד פתוח רבים ושונים בתוך מטריית פרויקט Yocto.
Poky, מערכת ההפעלה המוטמעת התייחסות היא למעשה BUILD EXAMPLE עובד אשר תבנה מערכת הפעלה מוטבעת קטנה עם מערכת הבנייה הכלולה (BitBake, מנוע הבנייה ו OpenEmbedded-Core, מטה-נתונים של מערכת בניית הליבה).
מערכת הבנייה מורדת עם Poky לבנות הוראה "קבצים" הנקראים מתכונים ושכבות (מוגדר להלן). באפשרותך לשנות, להעתיק או להשתמש בפרטי הבנייה של Poky בכל דרך שתצטרך כדי ליצור את Linux המוטבע המותאם אישית.
מודל השכבות - המפתח להתאמה אישית
לפרויקט Yocto יש מודל פיתוח ליצירת לינוקס משובצת המבדילה אותו ממערכות בנייה פשוטות אחרות. הוא נקרא מודל השכבות.
מודל השכבות מיועד לתמוך הן בשיתוף פעולה והן בהתאמה אישית בו-זמנית. שכבות הן מאגרים המכילים ערכות קשורות של הוראות אשר אומרות למערכת הבנייה מה לעשות. משתמשים יכולים לשתף פעולה, לשתף ולעשות שימוש חוזר בשכבות. שכבות יכולות להכיל שינויים בהוראות או בהגדרות קודמות בכל עת.
יכולת עקיפה רבת עוצמה זו מאפשרת לך להתאים אישית שכבות קודמות שסופקו על-ידי שיתוף פעולה או קהילה כך שיתאימו לדרישות המוצר .
השתמש בשכבות שונות כדי להפריד באופן לוגי מידע במחשב כדוגמה, יכולה להיות שכבת BSP, שכבת ממשק משתמש גרפי, תצורת הפצה, תוכנת ביניים או יישום. הצבת כל ההנפשה. במגבלות שכבה אחת ומסבך
את ההתאמה האישית והשימוש החוזר בעתיד. בידוד מידע לשכבות, לעומת זאת, מסייע לפשט התאמות אישיות עתידיות ולהפוך את השימוש החוזר. השתמש בשכבות BSP מספקי סיליקון במידת האפשר.
הכירו את מדד השכבות התואם לפרויקט YOCTO . יש גם את אינדקס השכבות OpenEmbedded המכיל יותר שכבות אך התוכן מאומת פחות באופן אוניברסלי.
תכונות פרויקט YOCTO
מלבד היכולות המובנות, לפרויקט Yocto יש תכונות פרויקט המוצגות במהדורה אחת, ובדרך כלל מורחבות ומושלמות במהלך מספר מהדורות. מידע מעמיק על התכונות ניתן למצוא בקבצי "readme" המשויכים במהדורות ובכלים. אזור זה מספק סקירה ברמה גבוהה של עדכוני תכונות ל-3 המהדורות האחרונות ולתכונות הפרויקט הכלליות.
יתרונות מרכזיים של פרויקט יוקטו
צובר תשתית, מתכונים וכלים הטובים מסוגם לבניית חלוקה מפחית שכפול של מאמץ
הגברת שיתוף הפעולה והשימוש החוזר בין קהילות מסחריות וקהילות קוד פתוח
מנוף היתרונות של פרויקטים אחרים בקוד פתוח, כגון OpenEmbedded ו-Eclipse
Yocto project הוא פרויקט קוד פתוח שמטרתו לייצר כלים ותהליכים המאפשרים יצירת הפצות לינוקס עבור embedded products
שאינן תלויות בארכיטקטורה הבסיסית של החומרה המשובץ.
פרויקט Yocto מספק כלים, metadata ותהליכים המאפשרים הפעלה הדדית מהירה של מערכות embedded linux,
שבהן ניתן להתאים אישית כל היבט של תהליך הפיתוח.
גם היכולת ליצור כלי עבודה toolchain for cross compilation and a software development kit SDK המאפשרת פיתוח:
- User Space Applications
- Kernel Space Modules and Device Drivers
- Boot Loaders
בקורס זה נלמד כיצד להשתמש בכלי קוד פתוח תחת ה - Yocto project כדי ליצור מערכת ההפעלה linux מותאמת אישית.
הקורס יכלול שימוש משולב של עבודה במכונה וירטואלית (באמצעות QEMU) וכמובן עבודה מול כרטיס פיתוח מבוססי Cotrex-A.