
חדש גרסה 2.43 של ספריית גנו C (glibc) זמין כעת העדכון, שיוצא כעדכון חצי שנתי, מגיע עם שורה של שינויים טכניים משמעותיים עבור מפתחי לינוקס ומנהלי מערכת באירופה ובשאר העולם. למרות שמדובר בספריית מערכת שבדרך כלל פועלת ברקע, השינויים במהדורה זו יכולים להשפיע ישירות על הביצועים, האבטחה והתאימות של יישומים רבים.
למרות שהלוח שנה ציין את תחילת פברואר כתאריך היעד, glibc 2.43 שוחרר אפילו מוקדם מהמתוכנן.מהדורה זו מדגימה כי פיתוח הפרויקט מתקדם בהתמדה. היא משלבת תכונות חדשות התואמות לתקן C23, אופטימיזציות מתמטיות משמעותיות ושיפורים ספציפיים עבור ארכיטקטורות כגון AArch64 ומעבדי אינטל ו-AMD מודרניים.
glibc 2.43 מציג תכונות חדשות המותאמות לתקן ISO C23
אחת התרומות הבולטות ביותר של glibc 2.43 היא התקדמות בתאימות עם ISO C23, התקן החדש לשפת C (בהתאם לשיפורים שהחלו ב- glibc 2.30הספרייה משלבת פונקציות כגון גודל_חופשי, בגודל_מיושר_חופשי, memset_explicit ושירותים הקשורים ליישור זיכרון, שנועדו לניהול משאבים עדין ובטוח יותר.
בנוסף, הם הוצגו שינויים בפונקציות קיימות כדי להתאים אותן לדרישות C23זה מקל על פרויקטים המאמצים את התקן החדש לקמפל ולרוץ עם פחות חיכוך. במקביל, תמיכה בבסיסי זמן אופציונליים כגון TIME_MONOTONIC, TIME_ACTIVE y TIME_THREAD_ACTIVEפתיחת הדלת למדידות זמן מדויקות יותר המותאמות לתרחישי ביצוע שונים.
שיפורי אבטחה ב-glibc 2.43: איטום זיכרון עם mseal
מבחינת אבטחה, glibc 2.43 מוסיף תמיכה לפונקציה mseal במערכות לינוקסקריאה זו מאפשרת "לאטום" מיפויי זיכרון מסוימים במהלך ביצוע תהליך, כך שהם מוגנים מפני שינויים בהרשאות, ביטול מיפוי, מיקום מחדש או הקטנת גודל.
גישה זו של הקשחת זיכרון מעניינת במיוחד עבור יישומים רגישים, כגון שירותי תשתית, תוכנות בנקאיות, פתרונות תעשייתיים או סביבות בהן מזעור משטח התקיפה ברמת מרחב הכתובות הוא קריטי. בעוד שהשפעתו עשויה שלא להיות נראית לעין למשתמש הקצה, היא תורמת לחיזוק החוסן של מערכות לינוקס בשרתים ובתחנות עבודה.
openat2: גמישות רבה יותר בגישה לקבצים
העדכון משלב גם תמיכה בשיחות מערכת openat2הרחבה מתקדמת יותר של openat זמין בלינוקס. תכונה זו מציעה בקרות נוספות בעת פתיחת קבצים, ומאפשרת מדיניות מחמירה יותר וניהול מפורט יותר של נתיבים והרשאות.
עבור סביבות בהן אבטחה ומעקב אחר גישה למערכת הקבצים הן קריטיות, openat2 מספק כלים חזקים יותר למפתחים, ועוזרים להפחית שגיאות תכנות ולנהל טוב יותר תרחישים מורכבים של ספריות וקישורים סמליים.
תאימות ניסיונית עם Clang וארכיטקטורות חדשות
נקודה רלוונטית נוספת היא תמיכה ניסיונית עבור קומפילציה של glibc עם מהדר LLVM Clangזה תקף כל עוד גרסאות 18 ומעלה וארכיטקטורות AArch64 או x86_64 נמצאות בשימוש על לינוקס. למרות שעדיין נחשב לתכונה ניסיונית, היא מייצגת צעד חשוב לקראת גמישות רבה יותר בכלי בנייה.
מהלך זה יכול להיות שימושי במיוחד עבור אלו שכבר משתמשים בו סביבות מבוססות LLVM באירופה, הן במחקר והן בייצור, שכן הוא מאפשר שילוב הספרייה הסטנדרטית של המערכת בזרימות עבודה הומוגניות עם Clang וכלים נלווים.
שיפור ביצועי המתמטיקה ב-glibc 2.43 עם CORE-MATH
מבחינת ביצועים מספריים, glibc 2.43 משלב פונקציות מתמטיות אופטימליות חדשות מפרויקט CORE-MATH, ביניהם acosh, asinh, atanh, erf, erfc, lgamma y tgammaיישומים אלה מחפשים איזון עדין יותר בין דיוק למהירות, דבר קריטי בתחומים מדעיים, פיננסיים או סימולציה.
לצד אלה, היישומים של פעולות כגון fma, fmaf, remainder, remaindef, frexpf, frexp והווריאציות של frexpl עבור פורמטים בינאריים מתקדמים כגון binary128 e intel96המימוש החדש של FMA (התמזגות multiply-add) בולט בזכות היותו מהיר יותר באופן ניכר, דבר שניתן לראות בעומסי עבודה עתירי חישוב מאוד.
שיפור ביצועים במעבדי AMD Zen
בהקשר לאמור לעיל, גרסה 2.43 מביאה שיפורים ספציפיים עבור משפחת מעבדי AMD Zenאופטימיזציה של פעולות FMA על מעבדים אלה יכולה לגרום לעלייה ניכרת בביצועים ביישומים העושים שימוש אינטנסיבי בסוג זה של הוראה, כגון מנועי סימולציה, ניתוח נתונים או כלי למידת מכונה.
במרכזי נתונים אירופאים רבים שבהם AMD Zen ביססה את מעמדה כבחירה נפוצההתאמות ברמה נמוכה אלו עוזרות להפיק ביצועים טובים יותר מחומרה קיימת מבלי לדרוש שינויים ביישומים, שכן התועלת מגיעה דרך ספריית המערכת עצמה.
שקיפות זיכרון: 2 מגה-בייט של דפי ענק ב-AArch64
שינוי בולט נוסף הוא ש glibc מאפשר כעת דפי ענק שקופים בגודל 2MB כברירת מחדל במנהל הזיכרון malloc עבור ארכיטקטורת AArch64. "hugepages" מאפשרים עבודה עם דפי זיכרון גדולים יותר, ובכך מפחיתים את התקורה הקשורה לניהול מרחב הכתובות.
התאמה זו עשויה לכלול שיפורי ביצועים עבור עומסי עבודה עתירי זיכרוןבמיוחד בשרתים ומכשירים מבוססי ARM בעלי ביצועים גבוהים, אשר צוברים תאוצה באירופה, הן במרכזי נתונים והן בתשתיות ענן וסביבות פיתוח.
תמיכה בדורות חדשים של מעבדי אינטל
גם חנות הספרים מוסיפה זיהוי עבור מעבדי Intel Nova Lake ו-Wildcat Lakeתמיכה זו מאפשרת ל-glibc לזהות נכון את משפחות המעבדים החדשות הללו, מה שמאפשר יישום של אופטימיזציות ספציפיות או נתיבי קוד המותאמים ליכולותיהם.
במבט קדימה לשנים הבאות, ועם החידוש המתקדם של מערכות המחשוב בחברות ובמנהלים הציבוריים, שיהיה glibc מוכן לדורות אלה של מעבדים זה עוזר להבטיח שמערכות לינוקס מודרניות יפעלו ביעילות על חומרה חדשה עם כניסתה לשוק האירופי.
תאימות מורחבת: יוניקוד 17.0
בחלק הבינלאומי, glibc 2.43 משלב תמיכה ביוניקוד 17.0, הגרסה העדכנית ביותר של תקן קידוד התווים. התוצאה היא זיהוי מקיף יותר של סמלים, כתב ושימושים לשוניים חדשים.
עבור יישומים המטפלים טקסט בשפות מרובות והקשרים תרבותייםבמיוחד בסביבות אירופאיות רב-לשוניות, ספריית C מעודכנת עם הגרסה העדכנית ביותר של יוניקוד מסייעת במניעת בעיות תאימות ובייצוג נכון של תווים וגופנים עדכניים.
עם כל השיפורים הללו, glibc 2.43 מבסס את עצמו כעדכון משמעותי המשלב התקדמות בתאימות C23, שיפורי אבטחה, שיפורי ביצועים ומוכנות רבה יותר לדרישות החומרה והטקסט העדכניות ביותר, מה שהופך אותו למרכיב מפתח בהתפתחות מערכות לינוקס בספרד, אירופה ואזורים אחרים שבהם ספרייה זו מהווה את הבסיס לסביבת זמן הריצה.