פרנסיסקו פרנקו מראיון פרנקו קרנל חלק 1

חלק 1 של ראיון עם פרנסיסקו פרנקו, המפתח של פרנקו קרנל ואפליקציות אחרות למכשירים רבים ושונים.

לאחרונה היה לי העונג לראיין את האיש מאחורי אחד מגרעיני האנדרואיד הפופולריים ביותר אי פעם, גרעין פרנקו. נכון לעכשיו, הליבה זמינה במכשירים רבים ושונים, כולל מכשירי Nexus ו-OnePlus שונים ו-Google Pixel / Pixel XL.

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


אני אדם קונווי כאן ב-XDA כדי לראיין את פרנסיסקו פרנקו, מפתח גרעין פרנקו! אתה רוצה להציג את עצמך?

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

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

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

בְּדִיוּק מה שרציתי. אז דיברתי עם ההורים שלי, והם היו מודעים לכך שאני לא מאוד מרוצה מזה. במהלך חג המולד של 2010, קיבלתי את הטלפון האנדרואיד הראשון שלי. LG P500, זה טלפון תקציבי, זול מאוד, אבל ידעתי שהוא מריץ לינוקס, והמקצוע האהוב עליי באוניברסיטה היה ארכיטקטורת מחשבים או משהו, מערכות הפעלה. ולמדנו קצת מעטפת ודיברנו קצת על ליבת לינוקס, ומה היה חלק מהקרנל ומכל הקישוריות בקרנל, וממערכת ההפעלה בפועל, וזה היה מַקסִים בשבילי. ואז התחלתי לבנות מחדש את ליבת לינוקס עבור המחשב הנייד הישן שלי יחד עם חבר. הרסנו את המחשבים הניידים שלנו בערך 100 פעמים כשעשינו את זה, אבל למדנו תוך כדי התהליך. ואז התחלתי לשחק עם ה-LG שלי, ואני מניח שהדבר הראשון שעשיתי היה לנסות לדחוף קצת יותר ביצועים כי המכשיר הזה היה למעשה די מחורבן. אז הדבר הטוב ביותר שיכולתי לעשות היה פשוט לעבור על הפרמטרים הסטנדרטיים של ליבת לינוקס עבור המציאות ניהול זיכרון וכאלה, ופשוט תנסה למצוא משהו קצת יותר טוב ממה שהיה כבר שם. היה לי קצת כיף אז.

אני חושב שלא סיפרתי את זה בעבר בראיונות קודמים, אבל אז המכשיר הזה השתמש במערכת קבצים ישנה בשם YAFFS - זה אומר עוד פלאש מערכת קבצים, אבל זה היה די איטי כשניסינו לעלות כמו דיסק החלפה מגובה RAM אז אני לא זוכר פרטים, אבל עשינו כל מיני ניסויים עם זה ובסופו של דבר הרכבנו את ה-Dalvik על גבי זיכרון RAM הזיכרון שהיה צריך להיבנות מחדש בכל אתחול מחדש כי, כידוע, זיכרון ה-RAM נעלם כל זמן שאנחנו אתחול מחדש. אבל זה הפך את פתיחת האפליקציות והרצת המדדים למהיר למדי אז היינו מרוצים. אז אחרי זה, התחלתי ללכת קצת יותר לעומק, ולנסות להרכיב את מקורות הקרנל של LG למכשיר, ועשיתי כל מיני רעים שיפוטים וכל מיני טעויות - רשת Wi-Fi, מה שלא יהיה - כל מה שאתה יכול לדמיין ממישהו ללא ניסיון. זה היה כיף, למדתי הרבה. אני מניח שאחרי שנה או שישה חודשים שעשיתי את זה הייתי קצת יותר מרוכז, וידעתי קצת יותר טוב מה יש לי כדי להשיג את ההורדות. זה מה שכולנו רוצים בסופו של יום. לאחר מכן, הצלחתי לקבל כמה תרומות ולעבור למכשירים אחרים. אני מניח שה-Nexus S, אחר כך ה-Galaxy Nexus ואחרי התקופה ההיא, הצלחתי להוציא את האפליקציה הראשונה שלי. אני מניח שהתמזל מזלי והצלחתי לממן את עצמי בקניית מכשירים חדשים, ומשם זה התפוצץ. אז אני מניח שבסופו של יום אני חייב הכל, לא הייתי אומר XDA אבל הפלטפורמה ש-XDA מספק לנו.

והקהילה קצת מאחורי זה וכל זה.

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

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

חחח, כן אבל מישהו יגיד שמשלמים לי כדי להגיד את זה אז אני פשוט אגיד את זה! אבל כן, כן, זו הייתה פלטפורמה נפלאה עבורי לבנות דברים מגניבים, ללמוד הרבה, למדתי שם הכל בעיקר על ידי ביצוע טעויות ובלמידה אני עדיין עושה את חלק ניכר מהבעיות. הרסתי את ה-Xiaomi Redmi Note 3 שלי, אה, טוען האתחול פשוט נהרס. אז אני צריך לחבר אותו שוב למחשב הווינדוס שלי שיושב שם מאחור וצריך לחדש הכל והוא יושב כאן כבר שלושה חודשים. אני מקבל כל מיני שנאה מכולם שאני לא שם לב למכשיר הזה, ולכן אני עדיין עושה [טעויות] אני מניח, אז גם אחרי כל השנים האלה עדיין יש מה ללמוד והתמזל מזלי שעברתי את המסע הזה וזה היה מדהים.

ובכן, אני מניח שכאשר התחלת עם ה... LG P500 היה זה?

כן כן.

לפני כמה שנים זה היה? כי זה בטח היה סביב הגרסאות המקוריות של אנדרואיד נכון? סביב פרויו או משהו?

כן, זה נשלח עם Froyo והוא שודרג ל-Gingerbread כמה חודשים לאחר מכן. המכשיר הזה לדעתי היה 2010, תחילת 2011, כנראה מוקדם יותר. אני יודע שהחשבון שלי ב-XDA נוצר בדצמבר 2010 אבל היה לי את המכשיר לפני כן. אז כנראה שבסביבות הזמן הזה, כן.

איך אנדרואיד התפתחה מבחינת ביצועים מאז? כאילו איך זה השתנה עבורך לכתוב גרעינים אז וכתיבת אותם עכשיו? ואני מניח מה הדעות שלך על השינויים.

מבחינת הליבה, אני חושב שהתפתחנו עם ליבת לינוקס בפועל וכל השינויים שצוות אנדרואיד בעצם רצה לעשות ליישם עבור מהדורת אנדרואיד מסוימת, כך שהם מכתיבים את רוב התכונות המיוחדות שיהיו הליבה, על סמך מה שהם רוצים לשלוח. אבל אני מניח שביצועים בפועל, יותר ליבות ממש עוזרות מאוד כי אז לא הייתה לך דרך אמיתית לעשות זאת העבר את השרשור הזה (sic), או דמיינו בקשות רשת דרך שרשור רקע, או לפחות בזמן אמת הַשׁחָלָה. אני חושב שזה היה השינוי הגדול ביותר לאורך השנים, שיש לי יותר דרכים להפיץ את העבודה שלך, ולא ש-Android פשוט יאט כי כולם מנסים לתפוס את החלק הקטן הזה של המעבד. יותר מכל אני חושב ריבוי ליבות וממשי ריבוי שרשורים מגובה על ידי לינוקס. חשבתי שזה השינוי הגדול ביותר.

אה אוקיי, אז מה דעתך על HMP לעומת EAS? כי ברור ש-EAS הוא רק חדש ונמצא בשימוש רק במכשירים בודדים -- כמו שאתה משתמש ב-Google Pixel נכון?

כן, כרגע אני משתמש בגלקסי S8, אבל יש לי גם פיקסל. אני לא מכיר את שניהם בפירוט הזה, הם רק יישומים שונים של האופן שבו מכשיר מרובה אשכולות צריך לפעול בהתבסס על מה שקורה במכשיר בזמנים מסוימים. להפעיל שני אשכולות שונים עם שתי צריכת חשמל שונות, זה די קשה. אתה צריך לעמוד בציפיות של משימות זזות למעלה ולמטה, ויש חביון מעורב שם וה-HMP היה היישום האמיתי הראשון של ארכיטקטורת ריבוי אשכולות אמיתית עבור ARM, כי אם אני זוכר נכון, לפני שה-HMP היה בשימוש בעולם האמיתי, לסמסונג היה התחלה יישום שבו השתמשת בארבע הליבות הראשונות, כמו ליבות בהספק נמוך, או ארבע ליבות בעלות ביצועים גבוהים אבל הן מעולם לא פעלו ב אותו זמן. אבל אז לאחר מכן עם HMP הליבות היו מוכנות לשימוש בכל עת ומשימות פשוט עברו מאשכול אחד למשנהו ולהיפך וזה עבד החוצה, אבל לא היה לך כל כך הרבה מידע מהמתזמן כדי להראות את זה למושל כדי להחליט באיזה סוג של תדר ישמש באותו זמן זמן ספציפי, אז היית צריך להתמודד עם, כמו, לנסות להבין מה קורה תוך [בערך] 20 שניות ואז על סמך מה שקרה שם, אתה מחליט מה לעשות לַעֲשׂוֹת. EAS, זה יותר [על] להבין מה הולך לקרות בעתיד ולהחליט בזמן אמת על סמך תפוקות הכוח של כל ליבה, ואז זה חבורה של חישובים ודברים מסובכים ב- רקע כללי

כמו מודלים של אנרגיה וכן הלאה כדי לגבות את הכל.

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

אז אתה צריך לדעת בדיוק מה אתה עושה, זה לא סוג של עבודה של איש אחד?

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

אז אתה רואה בזה שיפור?

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

אני מניח שאם כן, אם יהיה אימוץ נוסף בעתיד של EAS, איך אתה רואה את זה משפיע על הפיתוח שלך לגבי הגרעינים? האם היית עדיין נשאר עם HMP או שהיית הולך עם מודלים של אנרגיה שכבר שוחררו? לדוגמה ב-OnePlus 3, [מפתחי ROM] עושים שימוש חוזר במודל האנרגיה מ-Google Pixel עבור EAS. היית רואה את עצמך עושה משהו כזה?

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

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

לא היו כל כך הרבה שינויים בצד הקרנל ב-Nexus 6P וב-Nexus 5X, רק תיקונים קטנים פה ושם. ב-Google Pixel, הם חזרו על הטמעת EAS, והם השקיעו זמן מה בשיפור קטע הקלסר, כי עכשיו הקלסר, יחד עם Project טרבל, זה כמו לפצל חבילות שונות, אז הם צריכים לעבור 50 או 100 תיקונים שונים כדי לשפר את הקלסר ולהפריד אותו תהליכים. חוץ מזה, זו הייתה עבודה רגילה עבור מהדורה גדולה. כשיש מהדורת פלטפורמה חדשה, אתה בדרך כלל לא מתעסק כל כך עם הליבה, כי מתעסק עם ה קרנל למעשה צריך הרבה QA, אם לפעמים אתה משנה דבר אחד אתה שומע שזה משפיע על משהו באחר תת מערכת. זה מה שהם עושים בדרך כלל, בגלל זה אין לך חבטה בגרסת הקרנל בין שדרוגי הפלטפורמה. זה פשוט הרבה עבודה. בדרך כלל לא שווה את זה אבל כן, זה היה בעיקר חומרי קלסר, קצת מתזמן, ותיקוני האבטחה הרגילים. עברתי על כולם, אבל שום דבר לא ממש תפס את דעתי. תשומת לבי הובאה רק לקלסר.

אה אוקיי, אז רק הדברים הסטנדרטיים באמת.

כן, הם די מסובכים ואל תבקשו ממני פרטים!

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

אני גם לא יודע [על] פרטים כי מערכות קבצים הן די קשות, יש הרבה חלקים נעים פה ושם. אני רק אצטט מהנדס גוגל שאומר שבהתבסס על הבדיקה שלהם, F2FS לא מתפקד מהר יותר מה-ext4, ובנוסף לכך כאשר הם בדקו דברים עבור Google Pixel, F2FS לא סיפקו תמיכה עבור... אני חושב שזו הייתה הצפנת בלוק קבצים, בעוד ext4 עבור תומך זה. אז זה לבד אומר - פשוט תבטל את זה. אתה צריך לחשוב על שני דברים, על ext4 עובדים כבר 20 שנה עם הרבה מהנדסים מאוד חכמים מחברות שונות והם יודעים מה הם עושים. F2FS יושם, אם אני זוכר נכון, על ידי סמסונג. זו מערכת קבצים חדשה למדי, כך שלדברים מסובכים כמו אלה לוקח זמן לשפר ולחזור, כמוך יכולים לראות ממערכת הקבצים של Apple שזה עתה שוחררה ב-iOS, והם הולכים לעשות את אותו הדבר עבור Mac מערכת הפעלה. דברים לוקחים זמן, אתה צריך צוות ענק כדי לעשות את הדברים האלה בצורה נכונה. אני תומך גדול של "אם זה עובד, אל תיגע בזה" ובמה שיש לנו עכשיו -- זה עובד, ואני לא חושב שזה נותן לך בעיות ביצועים אז אני לא רואה סיבה להתעסק עם זה.

אה אוקיי, זה מספיק הוגן! מה לגבי SDCardFS עוברים אל מ-FUSE? מה תהיה דעתך בעניין?

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


בדוק את חלק 2 על ידי לחיצה על כפתור זה!