Glibc 2.36 מגיע עם תכונות חדשות ללינוקס, שיפורים ועוד

לאחר שישה חודשים של פיתוח, הוכרזה שחרור הגרסה החדשה של glibc 2.36, אשר עומדת במלואה בדרישות תקני ISO C11 ו-POSIX.1-2017 ובה הגרסה החדשה כוללת תיקונים מ-59 מפתחים. .

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

התכונות החדשות העיקריות של Glibc 2.36

בגרסה החדשה הזו שמוצגת, מודגש כי נוספה תמיכה בפורמט חדש של כתובת רילוקיישן יחסית DT_RELR, המאפשר לך להקטין את הגודל של העברות יחסיות באובייקטים משותפים ובקובצי הפעלה מקושרים במצב PIE (Position Independent Executables). השימוש בשדה DT_RELR בקבצי ELF דורש תמיכה באפשרות "-z pack-relative-relocs" בקישור, שהוצגה ב-binutils 2.38.

שינוי נוסף שבולט בגרסה החדשה הוא זה עבור לינוקס את הפונקציות pidfd_open, pidfd_getfd ו-pidfd_send_signal יושמו כדי לספק גישה לפונקציונליות pidfd מה שעוזר לטפל במצבי שימוש חוזר ב-PID כדי לזהות בצורה מדויקת יותר את התהליכים הניגשים לקבצים המנוטרים (pidfd משויך לתהליך ספציפי ואינו משתנה, בעוד שניתן לצרף את ה-PID לתהליך אחר לאחר שהתהליך מסתיים). התהליך הנוכחי הקשור לזה PID).

חוץ מזה, גם בלינוקס מגיע process_madvise()כי מאפשר לתהליך לבצע קריאת מערכת madvise() בשם תהליך אחר, זיהוי תהליך היעד באמצעות pidfd. באמצעות madvise(), אתה יכול ליידע את הליבה על המאפיינים של עבודה עם זיכרון כדי לייעל את ניהול הזיכרון של התהליך, למשל, בהתבסס על המידע המועבר, הליבה יכולה להתחיל לשחרר זיכרון פנוי נוסף.

יצוין גם שהפונקציה נוספה process_mrelease(), המאפשר לך להאיץ את שחרור הזיכרון עבור תהליך שמסיים את ביצועו. בנסיבות רגילות, שחרור משאבים וסיום תהליך אינם מיידיים ויכולים להתעכב מסיבות שונות, מה שמפריע למערכות האזהרה המוקדמת של מרחב המשתמש כגון oomd (מסופק על ידי systemd). על ידי קריאה ל-proces_mrelease, מערכות אלו יכולות להתחיל בצורה צפויה יותר אחזור זיכרון עבור תהליכים שהופסקו בכוח.

מנגד, מצוין כי הוא נוסף תמיכה באפשרות "no-aaaa". ליישום המשולב של רזולוציית DNS, המאפשרת לך לבטל שליחת בקשות DNS עבור רשומות AAAA (קביעת כתובת IPv6 לפי שם מארח), אפילו בעת הפעלת פונקציות NSS כמו getaddriinfo(), כדי לפשט את פתרון הבעיות. אפשרות זו אינה משפיעה על הטיפול בקשרי כתובות IPv6 המוגדרות ב-/etc/hosts וקריאות ל-getaddriinfo() עם הדגל AI_PASSIVE.

עבור לינוקס, הוסיפו את הפונקציות fsopen, fsmount, move_mount, fsconfig, fspick, open_tree ו-mount_setattr סעיף לספק גישה ל-API חדש של ליבה כדי לשלוט על אופן ההרכבה של מערכות קבצים מבוסס על מרחבי שמות. הפונקציות המוצעות מאפשרות עיבוד נפרד של שלבי הרכבה שונים (עיבוד הסופרבלוק, קבלת מידע על מערכת הקבצים, הרכבה, הצמדה לנקודת ה-mount), אשר בוצעו בעבר באמצעות פונקציית ה-common mount() .

נוספו הפונקציות arc4random, arc4random_buf ו-arc4random_uniform לספק כריכות על קריאת המערכת אקראי והממשק / dev / urandom, החזרת מספרים פסאודו אקראיים באיכות גבוהה.

כאשר פועל על לינוקס, ניתנת תמיכה בארכיטקטורה. מערכת ההוראות LoongArch בשימוש במעבדי Loongson 3 5000 ו-RISC ISA חדש הדומה ל-MIPS ו-RISC-V מיושם. בצורתו הנוכחית, רק תאימות זמינה עם גרסת 64 סיביות מ-LoongArch (LA64). זה דורש לפחות Binutils 2.38, GCC 12 ו- Linux Kernel 5.19 כדי לפעול.

משאר השינויים הבולטים:

  • מנגנון הקישור מראש, כמו גם משתני הסביבה ותכונות הקישור המשויכים LD_TRACE_PRELINKING ו-LD_USE_LOAD_BIAS, הוצאו משימוש ויוסרו במהדורה עתידית.
  • הוסר הקוד כדי לבדוק את גרסת ליבת לינוקס ולטפל במשתנה הסביבה LD_ASSUME_KERNEL. גרסת הליבה המינימלית הנתמכת בעת קומפילציה של Glibc נקבעת על ידי שדה ELF NT_GNU_ABI_TAG.
  • משתנה הסביבה LD_LIBRARY_VERSION הוצא משימוש בפלטפורמת לינוקס.

לבסוף, אם אתה מעוניין לדעת יותר על כך, תוכל להתייעץ עם הפרטים בקישור הבא.


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

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

*

*

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