1 คะแนน โดย GN⁺ 2025-06-13 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • QEMU เป็นซอฟต์แวร์อีมูเลตเครื่องและยูสเซอร์สเปซสำหรับสถาปัตยกรรมที่หลากหลาย
  • เมื่อไม่นานมานี้ มีการเปิดเผยโปรเจ็กต์อีมูเลชัน Apple Silicon และ iPhone 11 ที่ทำงานบน QEMU
  • QEMU รองรับทั้ง ประสิทธิภาพที่ยอดเยี่ยม ด้วยการแปลงแบบไดนามิก และ ความสามารถในการเชื่อมต่อกับไฮเปอร์ไวเซอร์ อย่าง KVM, Xen เป็นต้น
  • สามารถใช้งานได้บน หลายระบบ เช่น Linux, OS-X, Windows และมีการวางกระบวนการมีส่วนร่วมแบบโอเพนซอร์สไว้อย่างเป็นระบบ
  • มีการสนับสนุนด้าน เอกสารและคอมมูนิตี้ อย่างคึกคัก พร้อมระบบติดตามบั๊กและการส่งแพตช์ที่จัดการได้อย่างมีประสิทธิภาพ

แนะนำโอเพนซอร์ส QEMU และโปรเจ็กต์อีมูเลชัน Apple Silicon

QEMU เป็นอีมูเลเตอร์เครื่องและยูสเซอร์สเปซแบบโอเพนซอร์สอเนกประสงค์ รวมถึงเป็นเครื่องมือด้านเวอร์ชวลไลเซชันด้วย โปรเจ็กต์สำหรับอีมูเลต Apple Silicon และ iPhone 11 ได้ดำเนินการบนพื้นฐานของ QEMU ซึ่งมอบข้อดีหลายด้านเมื่อเทียบกับโซลูชันเวอร์ชวลไลเซชันอื่น ๆ เช่น ความสามารถในการขยายตัว การสนับสนุนจากคอมมูนิตี้ และความเข้ากันได้ข้ามสถาปัตยกรรม

ภาพรวมของ QEMU

  • QEMU สามารถรันเครื่องหลากหลายประเภทด้วยซอฟต์แวร์ผ่านความสามารถด้าน การอีมูเลตทั้งระบบ โดยไม่ต้องพึ่งฮาร์ดแวร์เวอร์ชวลไลเซชัน
  • ใช้เทคโนโลยี dynamic translation เพื่อเพิ่มประสิทธิภาพของการอีมูเลต
  • สามารถรองรับฮาร์ดแวร์ในระดับไฮเปอร์ไวเซอร์ได้ผ่านการทำงานร่วมกับ Xen และ KVM
  • ด้วยการอีมูเลต CPU โดยตรง จึงช่วยให้การพอร์ตและการทดสอบระบบปฏิบัติการข้ามอุปกรณ์เป็นไปได้ (เช่น สภาพแวดล้อม ARMv7 → x86_64)
  • มี API virtualization ในระดับยูสเซอร์สเปซ ทำให้สามารถรันไบนารีโดยตรงข้ามสภาพแวดล้อมสถาปัตยกรรมต่างชนิดได้

การใช้งานหลักและคุณลักษณะเด่น

  • ผู้ใช้สามารถควบคุมการตั้งค่าและพฤติกรรมการทำงานโดยละเอียดได้ผ่าน ตัวเลือกบรรทัดคำสั่ง โดยตรง
  • ยังถูกนำไปใช้เพื่อการผสานรวมกับเลเยอร์การจัดการโอเพนซอร์สระดับสูงอย่าง oVirt, OpenStack, virt-manager และ libvirt
  • มี อินเทอร์เฟซบรรทัดคำสั่ง และ Monitor API ที่เสถียร
  • ซอร์สโค้ดทั้งหมดเผยแพร่ภายใต้ไลเซนส์ GNU GPL v2

เอกสาร

  • เอกสารทางการมีให้ใช้งานออนไลน์บน เว็บไซต์ (https://www.qemu.org/documentation/)
  • เอกสารสำหรับเวอร์ชันพัฒนาล่าสุดถูกเก็บไว้ในโฟลเดอร์ docs/ ภายในซอร์ส และสร้างด้วยเครื่องมือ Sphinx

สภาพแวดล้อมการบิลด์

  • QEMU รองรับ การบิลด์ข้ามแพลตฟอร์ม บน Linux รุ่นใหม่, OS-X, Win32 (Mingw64 toolchain) และสภาพแวดล้อม UNIX อื่น ๆ
  • โฟลว์การบิลด์หลักประกอบด้วยขั้นตอน configure และ make
  • วิธีบิลด์ของแต่ละแพลตฟอร์มสามารถดูได้จาก QEMU Wiki (https://wiki.qemu.org/Hosts/Linux เป็นต้น)

แนวทางการส่งแพตช์

  • ซอร์สของ QEMU ใช้ระบบควบคุมเวอร์ชัน Git
  • เมื่อส่งแพตช์ แนะนำให้ใช้ git format-patch และ git send-email
  • ทุกแพตช์ต้องมีบรรทัด Signed-off-by และต้องปฏิบัติตามสไตล์ไกด์สำหรับนักพัฒนา (https://www.qemu.org/docs/master/devel/style.html)
  • สามารถใช้ยูทิลิตี git-publish เพื่อทำให้ขั้นตอนการส่งแพตช์ซ้ำ ๆ หรือจำนวนมากง่ายขึ้น
  • สามารถติดตามซีรีส์แพตช์ได้ง่ายพร้อมการจัดการเวอร์ชันของแต่ละแพตช์ (v1, v2)

การรายงานบั๊ก

  • มีระบบรายงานบั๊กทางการผ่าน GitLab issue tracker (https://gitlab.com/qemu-project/qemu/-/issues)
  • หากใช้งานดิสทริบิวชันแบบแพ็กเกจ แนะนำให้รายงานผ่านตัวติดตามของผู้พัฒนา OS นั้นก่อน
  • QEMU Wiki มีข้อมูลเพิ่มเติม เช่น วิธีเขียนบั๊กรายงาน

ประวัติการเปลี่ยนแปลง

  • ประวัติและรายละเอียดการเปลี่ยนแปลงของ QEMU สามารถตรวจสอบได้จาก Wiki ทางการ (https://wiki.qemu.org/ChangeLog/) หรือผ่าน Git history

ช่องทางติดต่อคอมมูนิตี้

  • มี ช่องทางคอมมูนิตี้ที่หลากหลาย เช่น mailing list (qemu-devel@nongnu.org) และ IRC (#qemu, irc.oftc.net)
  • ข้อมูลเพิ่มเติมเกี่ยวกับการมีส่วนร่วมในคอมมูนิตี้และคำแนะนำสำหรับผู้เริ่มต้นสามารถดูได้จาก QEMU Wiki

บทสรุป

QEMU สามารถนำไปใช้อย่างกว้างขวางกับ การอีมูเลตสถาปัตยกรรมและระบบปฏิบัติการที่หลากหลาย เวอร์ชวลไลเซชัน และการทำงานอัตโนมัติด้านการพัฒนา/ทดสอบ และ Apple Silicon (เช่น iPhone 11) ก็ถูกรวมอยู่ในโปรเจ็กต์ QEMU ด้วย จุดเด่นสำคัญคือเอกสารที่แข็งแรง กระบวนการมีส่วนร่วมที่ชัดเจน การจัดการบั๊กที่คึกคัก และการสนับสนุนจากคอมมูนิตี้

1 ความคิดเห็น

 
GN⁺ 2025-06-13
ความคิดเห็นบน Hacker News
  • มีการแชร์เธรด Hacker News เกี่ยวกับ upstream repository ลิงก์ และ “Emulating an iPhone in QEMU” ที่กล่าวถึงโปรเจกต์นี้ ลิงก์

    • ถ้าดู issue tracker จะเห็นว่าหลังจากนั้นก็ยังมีความคืบหน้าเพิ่มขึ้นมากพอสมควร
  • การที่มันบูตได้จริงและอย่างน้อยขึ้นไปถึง Springboard ได้ ถือว่าเป็นผลงานที่น่าทึ่งมากจริงๆ

  • อยากเรียกว่านี่คือสุดยอดงานแฮ็กด้าน emulation ของจริง ขอแสดงความยินดีกับผู้มีส่วนร่วมทุกคน ความสำเร็จนี้เป็นสัญญาณเชิงบวกต่อโปรเจกต์ Hackintosh ด้วย แม้ตอนนี้ยังอีกไกล แต่ถ้า ARM PC แพร่หลายขึ้น ก็พอจะคาดหวัง emulation ที่มีประสิทธิภาพได้จริง

    • แต่ ARM ก็ไม่ได้เป็นแพลตฟอร์มเปิดเท่ากับ IBM PC อย่างไรก็ตาม ถ้ายกตัวอย่างโทรศัพท์ Android ก็จะเห็นว่ามีทั้ง custom Linux kernel และชิ้นส่วนที่ไม่มีเอกสารจำนวนมาก ทำให้ขาดทั้งความเปิดกว้างและการเข้าถึง
  • สงสัยว่ารองรับ trollstore และความสามารถในการถอดรหัส IPA ด้วยหรือไม่

    • คำถามสำหรับคนที่ไม่ค่อยรู้เรื่องนี้: ช่วยอธิบายได้ไหมว่าหมายถึงอะไร
    • ฉันก็มาถามเรื่องเดียวกัน ถ้ารองรับได้จริงก็คงเป็นฟีเจอร์ที่แรงมาก
  • คิดว่าควรมีความพยายามอย่างน้อยในการนำบางส่วนเข้า upstream ไม่อย่างนั้นก็อาจหายไปในที่สุดเหมือนความพยายามในอดีต

  • รู้สึกประทับใจมากที่สามารถบูต iPhone 11 บน QEMU ได้จนสุดทาง ขอชื่นชมทีม ChefKissInc และผู้มีส่วนร่วมทุกคนที่พามาถึงจุดนี้

  • ในฐานะมือใหม่ อยากรู้ว่าวิธีนี้สามารถติดตั้งแอป iOS ได้หรือไม่

  • ตอนนี้ยังไม่สะดวกเพราะเอกสารทางการเกี่ยวกับการใช้ qemu บน Windows ทั้งวิธีใช้ ตัวเลือก และอาร์กิวเมนต์ ยังไม่ดีพอ ต้องอาศัยอ่านบทความกระจัดกระจายตามอินเทอร์เน็ต หรือดึงตัวอย่างฝั่ง Linux มาปรับใช้ถึงจะพอแก้ปัญหาได้

    • ที่จริงคนส่วนใหญ่ที่ทดลองกับ qemu มักใช้ระบบตระกูล unix กันอยู่แล้ว เพราะบน Windows มีทางเลือกด้าน virtualization ที่ใช้งานง่ายกว่าอยู่มาก เช่น virtualbox, vmware, hyper-v, WSL ดังนั้นการใช้ qemu บน Windows จึงมักเป็นกรณีพิเศษจริงๆ
  • สงสัยว่านี่คือการ emulation ของ iOS ทั้งระบบจริงๆ หรือแค่รัน iOS binary เท่านั้น และทำไมถึงระบุเจาะจงว่าเป็น iPhone 11

    • น่าจะเป็นเพราะมันเป็น binary สำหรับ iPhone 11
  • อยากถามว่า Qemu m68k รันระบบปฏิบัติการ Mac แบบคลาสสิกได้ดีแค่ไหน

    • คุณภาพไม่ได้ดีนัก แนะนำ Mini vMac
    • แต่ก็ยังพอใช้งานได้ มีข้อมูลอ้างอิงเกี่ยวกับการรัน Classic Macintosh ด้วย Qemu m68k รวมถึงข้อมูลการรัน Mac OS 7-8 ดูได้ที่นี่