PlusMagi's Blog By Pitt Phunsanit

OrbStack: ทำงานแบบ vm หรือ lxc

OrbStack ใช้ทั้งคู่ร่วมกัน (Hybrid) เป็น vm และ lxc โดยใช้โมเดลสถาปัตยกรรมแบบเดียวกับ WSL 2 ของ Windows ครับ ถ้าแยกตามโครงสร้างการทำงานจะเป็นแบบนี้ครับ


1. ชั้นนอกสุดบน macOS: มันคือ VM (Virtual Machine)

เนื่องจาก macOS ไม่ใช่ Linux และมี Kernel คนละตัวกัน (macOS ใช้ XNU Kernel) ดังนั้นการที่จะรัน Linux Container หรือคำสั่ง Linux บน Mac ได้ จำเป็นต้องมี VM มารองรับก่อนเสมอ

2. ชั้นใน (เวลาเราสั่งสร้าง Linux Machine): มันคือ LXC (Linux Containers)

ความเจ๋งของ OrbStack ที่ต่างจากแอปอื่น (เช่น Multipass หรือ UTM) อยู่ตรงนี้ครับ


สรุปโครงสร้างการทำงานของ OrbStack

  1. macOS / Apple Silicon Hardware
    ชั้นล่างสุด
    เครื่อง Mac ของเราที่เป็น Host หลัก
  2. 2OrbStack Linux VM
    ชั้น Hypervisor (VM)
    OrbStack ใช้ Virtualization Framework ของ Apple บูต Linux VM ตัวเล็ก ๆ ขึ้นมา 1 ตัวเพื่อเป็นตัวจัดการระบบ (คล้าย ๆ สถาปัตยกรรม WSL 2 บน Windows)
  3. 3LXC / Docker Engine
    ชั้น Container (LXC)
    ภายใน VM ตัวนั้น OrbStack จะรัน Docker Engine และระบบ LXC Container แยกย่อยออกมา
  4. 4Linux Machines / Docker Containers
    ชั้นบนสุดที่ผู้ใช้ใช้งาน
    เวลาเราสั่งสร้าง Ubuntu, Debian หรือรัน Docker Container… ระบบจะสร้างแอปเหล่านั้นขึ้นมาในรูปแบบ Container ที่แชร์ Kernel ร่วมกันใน VM หลัก ทำให้เบาและเร็วมาก

สรุป

ถ้ามองจาก Mac ของเรา OrbStack คือ VM ตัวหนึ่งที่คอยจัดการระบบให้ แต่ถ้ามองลึกลงไปในระบบจัดการเครื่อง Linux (Linux Machines) ที่เราสร้างขึ้นมาใช้งานใน OrbStack พวกนั้นทำงานในฐานะ LXC ครับ


อ่านเพิ่มเติม

Exit mobile version