กระวนกระวายใจกลายเป็นส่วนหนึ่งของโครงการ GNU อย่างเป็นทางการ

เมื่อไม่กี่วันที่ผ่านมา มีการประกาศว่าโครงการ Jitter ได้กลายเป็นโครงการภายใต้เครือข่าย GNU อย่างเป็นทางการและกำลังได้รับการพัฒนาภายใต้ชื่อ GNU Jitter โดยใช้โครงสร้างพื้นฐานของ GNU และเป็นไปตามข้อกำหนดของโครงการ

สำหรับผู้ที่ไม่คุ้นเคยกับ Jitter มันคือเครื่องมือที่ช่วยให้คุณสร้างเครื่องเสมือนแบบพกพาและรวดเร็วมากสำหรับภาษาโปรแกรมใดๆ ก็ได้ ซึ่งประสิทธิภาพการประมวลผลโค้ดนั้นเหนือกว่าตัวแปลภาษาอย่างเห็นได้ชัด และเข้าใกล้โค้ดที่คอมไพล์แบบดั้งเดิม

Jitter เป็นแบบพกพาสูงและ VM ที่ถูกต้องจะแสดงพฤติกรรมเดียวกันทุกประการบนแพลตฟอร์มใด ๆ ที่มีเพียงคอมไพเลอร์และไลบรารี C มาตรฐาน อย่างไรก็ตาม ประสิทธิภาพจะดีกว่าเมื่อใช้สถาปัตยกรรมที่รองรับ (ปัจจุบัน: M68k, MIPS, PowerPC, RISC-V, SPARC, x86_64; ระดับที่ 64: Aarch390, Alpha, ARM, SXNUMXx) บนระบบ ELF ที่มี GCC แน่นอน Jitter เป็นส่วนหนึ่งของโครงการ GNU และได้รับการออกแบบมาเพื่อใช้กับระบบ GNU เป็นหลัก

Jitter รับข้อมูลเข้าเป็นข้อกำหนดระดับสูงของคำสั่งที่รองรับโดยเครื่องเสมือนและสร้างผลลัพธ์เป็นการใช้งานเครื่องเสมือนที่พร้อมใช้งานเพื่อดำเนินการตามคำสั่งที่กำหนด

ตรรกะของคำสั่งแต่ละข้อในข้อกำหนดนั้นระบุไว้โดยใช้โค้ดภาษาซีคุณสมบัติเพิ่มเติมได้แก่ การสนับสนุนการดำเนินการแยกสาขาแบบมีเงื่อนไข ซึ่งยากต่อการใช้งานในภาษาซีและเป็นคุณสมบัติที่มีอยู่ในภาษาการเขียนโปรแกรมแบบไดนามิก เช่น การตรวจสอบค่าป้ายกำกับและการตรวจสอบการโอเวอร์โฟลว์

รันไทม์ของ Jitter ยังมีการรองรับอย่างมีประสิทธิภาพสำหรับการดำเนินการแตกแขนงตามเงื่อนไขที่ยากต่อการใช้งานโดยใช้ภาษา C เท่านั้น เช่น การตรวจสอบแท็กค่าตามที่กำหนดโดยภาษาที่พิมพ์แบบไดนามิก และเลขคณิตพร้อมการตรวจสอบโอเวอร์โฟลว์ รหัส VM เข้าถึงการเรียกใช้โพรซีเดอร์และการดำเนินการส่งคืน ในกรณีส่วนใหญ่ต้องอาศัยกลไกฮาร์ดแวร์ที่มีประสิทธิภาพ

เครื่องเสมือนที่ได้นั้นถูกจัดรูปแบบด้วยภาษา C โดยมีการแทรกโค้ดแอสเซมเบลอร์เพียงเล็กน้อยมีการกำหนดค่าต่างๆ เพื่อให้สามารถใช้งานการปรับแต่งและเลือกกลไกการจัดส่งได้หลากหลาย ทำให้ง่ายต่อการย้ายเครื่องเสมือนไปยังแพลตฟอร์มต่างๆ

รองรับการใช้รีจิสเตอร์ สแตก และเข้าร่วมสถาปัตยกรรมการดำเนินการ เช่นเดียวกับความสามารถในการมิเรอร์โครงสร้างข้อมูลเครื่องเสมือนในการลงทะเบียนฮาร์ดแวร์ของ CPU และเชื่อมต่อตัวรวบรวมขยะ

โค้ดที่สร้างขึ้นประกอบด้วย C API อย่างง่ายเพื่อแทนที่และรันโค้ดแบบไดนามิกในเครื่องเสมือน เช่นเดียวกับโปรแกรมควบคุมเพื่อรันโค้ดแยกจากไฟล์ข้อความในเครื่องเสมือน

รหัส C ที่สร้างขึ้นนั้นมีเงื่อนไขอย่างมากและสามารถกำหนดค่าให้ทำงานโดยใช้เทคนิคการแจกจ่ายที่แตกต่างกันของความซับซ้อนที่แตกต่างกัน เทคนิคการจัดส่งที่มีประสิทธิภาพที่สุดขึ้นอยู่กับการสนับสนุนแอสเซมบลีเฉพาะสถาปัตยกรรม แต่ไม่ใช่เฉพาะ VM ที่สนับสนุนโดย Jitter โมเดลการจัดส่งทั้งหมด แต่รุ่นหนึ่งใช้ส่วนขยาย GNU C ด้วย

สุดท้ายนี้ สำหรับผู้ที่สนใจเรียนรู้เพิ่มเติม โค้ดต้นฉบับของ Jitter เขียนด้วยภาษา C และเผยแพร่ภายใต้ใบอนุญาต GPLv3 สามารถดูข้อมูลเพิ่มเติมได้ที่ลิงก์ต่อไปนี้

จะรับ Jitter ได้อย่างไร?

สำหรับผู้ที่สนใจจะทดสอบ Jitter สามารถรับซอร์สโค้ดได้โดยเปิดเทอร์มินัลแล้วพิมพ์คำสั่งต่อไปนี้ลงไป:

git clone http://git.ageinghacker.net/jitter

เมื่อเสร็จแล้ว ตอนนี้เราเข้าสู่โฟลเดอร์ที่มีรหัส เราจะดำเนินการสคริปต์เริ่มต้นที่ใช้ในการสร้างไฟล์ที่จำเป็นในการกำหนดค่าและสร้าง Jitter รวมถึงสคริปต์การกำหนดค่า เราทำสิ่งนี้ด้วย:

cd jitter && ./bootstrap

เป็นมูลค่าการกล่าวขวัญว่า Jitter ปฏิบัติตามอนุสัญญา GNU สำหรับการกำหนดค่าและการก่อสร้าง และสนับสนุนการก่อสร้างจากไดเร็กทอรีต้นทาง อันที่จริงแล้ว รองรับการคอมไพล์ข้ามและแม้กระทั่งการรันชุดทดสอบในการคอมไพล์ข้ามผ่านอีมูเลเตอร์

./configure && make

สุดท้ายในการดำเนินการ เพียงพิมพ์:

make check


เพิ่มเป็นแหล่งข้อมูลที่ต้องการใน Google