אנדרואיד FS מצטבר

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

מערכת קבצים מצטברת על ידי גוגל

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

מערכת קבצים וירטואלית המכונה "incfs"

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

Image ee3856bcadf8

Image 8372e503efa4

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

יתרון של מערכת קבצים וירטואלית

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

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

Image b66896f09bca

האתגר מתמודד על ידי יצירת אינדקס מותאם אישית ב- "incfs". כל קובץ אמיתי מתקשר ישירות לישות במערכת הקבצים הווירטואלית, גם כאשר שמו של הקובץ המקורי שונה.

Image f14b7aa11bdd

קיצור נוסף שנקרא "ioctl"

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

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

שימוש מעשי

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

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

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

הצעות

קשור

נספח

שפות