מפתחי גוגל רוצים לפתח libc משלהם עבור LLVM

LLVM_לוגו

אחד ממפתחי גוגל הציג ברשימת התפוצה של LLVM את נושא הפיתוח ספריית C סטנדרטית חוצה פלטפורמות (Libc) במסגרת פרויקט LLVM.

מכמה סיבות, גוגל לא מרוצה מה libc הנוכחי (glibc, musl) והחברה בדרך לפתח יישום חדש, שהוא מתכוון לפתח כחלק מ- LLVM. התפתחויות LLVM שימשו לאחרונה כבסיס לבניית כלים של גוגל.

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

לאחר הגעה לרמה מסוימת של פונקציונליות, ה- Libc החדש יכול לשמש כתחליף מלא למערכת Libc.

מתוכנן להתחיל בתמיכה בארכיטקטורת x86-64, לינוקס ומחייב סטטי (טעינה דינמית, אריזה וארכיטקטורות נוספות יושמו שניה).

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

  • מודולריות ופיתוח בהתאם לפילוסופיה של אספקת ספרייה גרעינית, ולא אנסמבל מונוליטי.
  • תמיכה בקישור סטטי במצבי PIE (הפעלות בלתי תלויות עמדה) וללא PIE. ספק CRT (C Runtime) ומעמיס PIE עבור קבצי הפעלה מקושרים סטטית.
  • תומך ברוב פונקציות הספרייה C סטנדרטי עם תוספי POSIX וכמה סיומות ספציפיות למערכת המתבקשות ביישומים קיימים.
  • יחס זהיר להרחבות ספציפיות מהספק והוספתם רק במידת הצורך. לתמיכה בהרחבות צד שלישי, מוצע להשתמש בגישת הפרויקט Clang ו- libc ++.
  • שימוש בשיטות עבודה מומלצות בפיתוח באמצעות כלים LLVM, כגון מריחת חומרי חיטוי וחיסול הבדיקות מההתחלה.

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

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

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

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

והקשיים ביישום הממשק, בהתחשב במאגר היישומים הענק שנכתב ב- C / C ++, כמו גם ביישומים בשפות אחרות ש- Libc משתמש בהן בזמן הריצה.

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

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

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

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

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

מקור: http://lists.llvm.org


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי על הנתונים: AB Internet Networks 2008 SL
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.