לפני מספר ימים הוכרז כי פרויקט ה-Jitter הפך רשמית לפרויקט תחת חסות פרויקט GNU וכעת הוא מפותח תחת השם GNU Jitter תוך שימוש בתשתית GNU ובהתאם לדרישות הפרויקט.
למי שלא מכיר את ג'יטר, זהו יישום המאפשר ליצור מכונות וירטואליות ניידות ומהירות מאוד עבור עיצובים של שפת תכנות שרירותית, שביצועי ביצוע הקוד שלהן עולים משמעותית על אלו של מפרשים ומתקרבים לקוד מקורי שעבר קומפילציה.
Jitter הוא נייד מאוד ו-VM תקין יציג בדיוק את אותה התנהגות בכל פלטפורמה שיש בה רק מהדר וספריית C סטנדרטית; עם זאת, הביצועים יהיו טובים יותר באמצעות אחת מהארכיטקטורות הנתמכות (כרגע: M68k, MIPS, PowerPC, RISC-V, SPARC, x86_64; רמה שנייה: Aarch64, Alpha, ARM, S390x) במערכות ELF עם GCC. כמובן, Jitter הוא חלק מפרויקט GNU והוא מיועד בעיקר לשימוש על מערכת GNU.
ג'יטר מקבל כקלט מפרט ברמה גבוהה של הוראות הנתמכות על ידי מכונה וירטואלית, ובפלט יוצר יישום מוכן לשימוש של מכונה וירטואלית לביצוע ההוראות הנתונות.
הלוגיקה של כל הוראה במפרט מוגדרת באמצעות קוד C. תכונות נוספות כוללות תמיכה בפעולות הסתעפות מותנות שקשה ליישם ב-C והן הטמונות בשפות תכנות דינמיות, כגון בדיקת ערכי תוויות ובדיקת גלישה.
זמן הריצה של Jitter כולל גם תמיכה יעילה בפעולות הסתעפות מותנות שקשות ליישום תוך שימוש ב-C בלבד, כגון בדיקת תגי ערך כנדרש על ידי שפות מוקלדות דינמיות וחשבון עם בדיקת הצפה. קוד VM ניגש לפעולות קריאה והחזרה של הליך, ברוב המקרים בהסתמך על מנגנוני חומרה יעילים.
המכונה הווירטואלית המתקבלת מעוצבת ב-C עם מספר קטן של קבצי אסמבלר. תצורות מסופקות כדי לאפשר אופטימיזציות שונות ולבחור מנגנוני משלוח, מה שמקל על העברת מכונה וירטואלית לפלטפורמות שונות.
הוא תומך בשימוש בארכיטקטורות ביצוע רישום, מחסנית והצטרפות, כמו גם ביכולת לשקף מבני נתונים של מכונות וירטואליות באוגרי חומרת CPU ולחבר אוספי אשפה.
הקוד שנוצר כולל C API פשוט להחלפה דינמית ולביצוע קוד במכונה וירטואלית, כמו גם תוכנית בקר לביצוע בנפרד קוד מקבצי טקסט במכונה וירטואלית.
קוד C שנוצר מותנה בכבדות וניתן להגדיר אותו לפעול באמצעות טכניקות הפצה שונות בתחכום משתנה; טכניקות השיגור היעילות ביותר מסתמכות על תמיכת הרכבה ספציפית לארכיטקטורה, אך לא ספציפית ל-VM, המסופקת על ידי Jitter; כל דגמי השיגור, אבל אחד מהם מבוסס גם על הרחבות GNU C.
לבסוף, למעוניינים ללמוד עוד, קוד הג'יטר המקורי כתוב בשפת C וזמין תחת רישיון GPLv3. ניתן למצוא מידע נוסף בקישור הבא.
איך להשיג ריצוד?
למי שמעוניין להיות מסוגל לבדוק את Jitter, הוא יכול להשיג את קוד המקור על ידי פתיחת מסוף והקלדת הפקודה הבאה בו:
git clone http://git.ageinghacker.net/jitter
לאחר שהדבר נעשה, כעת נמשיך להיכנס לתיקיה שבה יש את הקוד, אנו הולכים להפעיל את סקריפט האתחול המשמש ליצירת הקבצים הדרושים להגדרה ובניית Jitter, כולל סקריפט תצורה. אנחנו עושים את זה עם:
cd jitter && ./bootstrap
ראוי להזכיר ש- Jitter עוקב אחר מוסכמות GNU לתצורה ובנייה ותומך בבנייה מספריית המקור; למעשה, הוא תומך בקומפילציה צולבת ואפילו בהפעלת חבילת הבדיקה בהידור צולב באמצעות אמולטור.
./configure && make
לבסוף, כדי לבצע, פשוט הקלד:
make check