ไฮเปอร์ไวเซอร์
ไฮเปอร์ไวเซอร์หรือที่รู้จักกันในชื่อมอนิเตอร์เครื่องเสมือน ( VMM ) เป็น ซอฟต์แวร์เฟิ ร์ มแวร์หรือฮาร์ดแวร์คอมพิวเตอร์ประเภทหนึ่งที่สร้างและเรียกใช้เครื่องเสมือนคอมพิวเตอร์ที่ไฮเปอร์ไวเซอร์เรียกใช้เครื่องเสมือนตั้งแต่หนึ่งเครื่องขึ้นไปเรียกว่าเครื่องโฮสต์หรือเซิร์ฟเวอร์เวอร์ชวลไลเซชันและเครื่องเสมือนแต่ละเครื่องเรียกว่าเครื่องเกสต์ ไฮเปอร์ไวเซอร์นำเสนอแพลตฟอร์มการทำงานเสมือนให้กับระบบปฏิบัติการเกสต์และจัดการการทำงานของระบบปฏิบัติการเกสต์ ซึ่งแตกต่างจากอีมูเลเตอร์เกสต์จะเรียกใช้คำสั่งส่วนใหญ่บนฮาร์ดแวร์ดั้งเดิม[ 1 ]ระบบปฏิบัติการหลายอินสแตนซ์อาจใช้ทรัพยากรฮาร์ดแวร์เสมือนร่วมกัน ตัวอย่างเช่น อินสแตนซ์ Linux , WindowsและmacOSสามารถทำงานบนเครื่องx86 ทางกายภาพเครื่องเดียว ได้ ซึ่งแตกต่างจากเวอร์ชวลไลเซชันระดับระบบปฏิบัติการที่อินสแตนซ์ทั้งหมด (โดยปกติเรียกว่าคอนเทนเนอร์ ) ต้องใช้เคอร์เนลเดียวกัน แม้ว่าระบบปฏิบัติการเกสต์จะแตกต่างกันในพื้นที่ผู้ใช้เช่นการแจกจ่าย Linux ที่แตกต่างกัน แต่มีเคอร์เนลเดียวกัน
คำว่าhypervisorเป็นคำที่มาจากsupervisorซึ่งเป็นคำดั้งเดิมที่ใช้เรียกเคอร์เนลของระบบปฏิบัติการ : hypervisor คือ supervisor ของ supervisors [ 2 ]โดย ใช้ hyper-เป็นคำที่มีความหมายเข้มข้นกว่าsuper- [ a ] คำนี้มีมาตั้งแต่ประมาณปี 1970 [ 3 ] IBM เป็นผู้บัญญัติศัพท์นี้ให้กับซอฟต์แวร์ที่รันOS/360และอีมูเลเตอร์ 7090 พร้อมกันบน360/65 [ 4 ]และต่อมาได้นำมาใช้กับตัวจัดการ DIAG ของ CP-67 ใน ระบบ CP/CMS (1967) รุ่นก่อนหน้า จะใช้คำว่าControl Programแทน
เอกสารบางฉบับ โดยเฉพาะใน บริบท ของไมโครเคอร์เนลจะแยกความแตกต่างระหว่างไฮเปอร์ไวเซอร์และมอนิเตอร์เครื่องเสมือน ( VMM ) โดยทั้งสองส่วนประกอบนี้ประกอบกันเป็นสแต็กการจำลองเสมือน โดยรวม ของระบบใดระบบหนึ่ง ไฮเปอร์ไวเซอร์หมายถึง ฟังก์ชันการทำงาน ในพื้นที่เคอร์เนลและ VMM หมายถึง ฟังก์ชันการทำงาน ในพื้นที่ผู้ใช้โดยเฉพาะในบริบทเหล่านี้ไฮเปอร์ไวเซอร์คือไมโครเคอร์เนลที่ใช้โครงสร้างพื้นฐานการจำลองเสมือนซึ่งต้องทำงานในพื้นที่เคอร์เนลด้วยเหตุผลทางเทคนิค เช่นIntel VMXไมโครเคอร์เนลที่ใช้กลไกการจำลองเสมือนยังถูกเรียกว่าไมโครไฮเปอร์ไวเซอร์ด้วย[ 5 ] [ 6 ]เมื่อนำคำศัพท์นี้มาใช้กับLinux KVMก็คือไฮเปอร์ไวเซอร์และQEMUหรือ Cloud Hypervisor ก็คือ VMM ที่ใช้ KVM เป็นไฮเปอร์ไวเซอร์[ 7 ]
การจำแนกประเภท

ในวิทยานิพนธ์ปี 1973 ของเขาเรื่อง หลักการทางสถาปัตยกรรมสำหรับระบบคอมพิวเตอร์เสมือน Robert P. Goldbergได้จำแนกไฮเปอร์ไวเซอร์ออกเป็นสองประเภท: [ 1 ]
- ไฮเปอร์ไวเซอร์ประเภทที่ 1 แบบเนทีฟหรือแบบแบร์เมทัล
- ไฮเปอร์ไวเซอร์เหล่านี้ทำงานโดยตรงบนฮาร์ดแวร์ของโฮสต์เพื่อควบคุมฮาร์ดแวร์และจัดการระบบปฏิบัติการแขก ด้วยเหตุนี้ บางครั้งจึงเรียกว่า ไฮเปอร์ไวเซอร์ แบบ bare-metalไฮเปอร์ไวเซอร์รุ่นแรกที่ IBM พัฒนาขึ้นในช่วงทศวรรษ 1960 เป็นไฮเปอร์ไวเซอร์แบบเนทีฟ[ 8 ]ซึ่งรวมถึงซอฟต์แวร์ทดสอบSIMMONและ ระบบปฏิบัติการ CP/CMS ซึ่งเป็นรุ่นก่อนหน้า ของตระกูลระบบปฏิบัติการเครื่องเสมือน VM ของ IBM ตัวอย่างของไฮเปอร์ไวเซอร์ประเภทที่ 1 ได้แก่Hyper-V , XenและVMware ESXi
- ไฮเปอร์ไวเซอร์ประเภท 2 หรือไฮเปอร์ไวเซอร์แบบโฮสต์
- ไฮเปอร์ไวเซอร์เหล่านี้ทำงานบนระบบปฏิบัติการ (OS) ทั่วไปเช่นเดียวกับโปรแกรมคอมพิวเตอร์อื่นๆ ตัวตรวจสอบเครื่องเสมือนจะทำงานเป็นกระบวนการบนโฮสต์ เช่นVirtualBoxไฮเปอร์ไวเซอร์ประเภทที่ 2 จะแยกส่วนระบบปฏิบัติการของเครื่องเสมือนออกจากระบบปฏิบัติการของโฮสต์ ทำให้เกิดระบบที่แยกต่างหากซึ่งโฮสต์สามารถโต้ตอบได้ ตัวอย่างของไฮเปอร์ไวเซอร์ประเภทที่ 2 ได้แก่VirtualBoxและVMware Workstation
ความแตกต่างระหว่างสองประเภทนี้ไม่ชัดเจนเสมอไป ตัวอย่างเช่นKVMและbhyveเป็นโมดูลเคอร์เนล[ 9 ]ที่แปลงระบบปฏิบัติการโฮสต์ให้เป็นไฮเปอร์ไวเซอร์ประเภท 1 ได้อย่างมีประสิทธิภาพ[ 10 ]
ที่มาของเมนเฟรม
ไฮเปอร์ไวเซอร์รุ่นแรกที่ให้การจำลองเสมือนอย่างสมบูรณ์คือเครื่องมือทดสอบSIMMONและ ระบบวิจัย IBM CP-40ซึ่งเริ่มใช้งานจริงในเดือนมกราคม 1967 และกลายเป็นระบบปฏิบัติการ IBM CP/CMS เวอร์ชันแรก CP-40 ทำงานบนS/360-40ที่ได้รับการดัดแปลงที่ ศูนย์วิทยาศาสตร์เคมบริดจ์เพื่อรองรับการแปลที่อยู่แบบไดนามิกซึ่งเป็นคุณสมบัติที่ทำให้สามารถจำลองเสมือนได้ ก่อนหน้านี้ ฮาร์ดแวร์คอมพิวเตอร์ได้รับการจำลองเสมือนเพียงในระดับที่อนุญาตให้แอปพลิเคชันของผู้ใช้หลายตัวทำงานพร้อมกันได้ เช่นในCTSSและIBM M44/44X ด้วย CP-40 สถานะการควบคุมของฮาร์ดแวร์ก็ได้รับการจำลองเสมือนเช่นกัน ทำให้ระบบปฏิบัติการหลายระบบสามารถทำงานพร้อมกันในบริบทเครื่องเสมือน ที่แยกจากกันได้
ในไม่ช้าโปรแกรมเมอร์ก็ได้นำ CP-40 (ในชื่อCP-67 ) มาใช้กับIBM System/360-67ซึ่งเป็นระบบคอมพิวเตอร์สำหรับการผลิตเครื่องแรกที่สามารถจำลองเสมือนได้อย่างสมบูรณ์ IBM จัดส่งเครื่องนี้ในปี 1966 โดยมีฮาร์ดแวร์ตารางการแปลหน้าสำหรับหน่วยความจำเสมือนและเทคนิคอื่นๆ ที่ช่วยให้สามารถจำลองเสมือนงานเคอร์เนลทั้งหมดได้อย่างสมบูรณ์ รวมถึงการรับส่งข้อมูลและการจัดการการขัดจังหวะ (ระบบปฏิบัติการ "อย่างเป็นทางการ" คือTSS/360 ที่ล้มเหลว ไม่ได้ใช้การจำลองเสมือนอย่างสมบูรณ์) ทั้ง CP-40 และ CP-67 เริ่มใช้งานจริงในปี 1967 CP/CMSมีให้ลูกค้าของ IBM ใช้งานได้ตั้งแต่ปี 1968 ถึงต้นทศวรรษ 1970 ในรูปแบบซอร์สโค้ดโดยไม่มีการสนับสนุน
CP/CMSเป็นส่วนหนึ่งของความพยายามของ IBM ในการสร้าง ระบบ แบ่งเวลา ที่แข็งแกร่ง สำหรับคอมพิวเตอร์เมนเฟรม ของตน โดยการเรียกใช้ระบบปฏิบัติการหลายระบบพร้อมกัน ไฮเปอร์ไวเซอร์จะเพิ่มความแข็งแกร่งและความเสถียรของระบบ: แม้ว่าระบบปฏิบัติการหนึ่งจะล่ม ระบบอื่นๆ ก็จะยังคงทำงานต่อไปได้โดยไม่หยุดชะงัก อันที่จริง สิ่งนี้ยังช่วยให้สามารถใช้งานและแก้ไขข้อบกพร่อง ของระบบปฏิบัติการเวอร์ชันเบต้าหรือเวอร์ชันทดลองหรือแม้แต่ฮาร์ดแวร์ ใหม่[ 11 ]ได้โดย ไม่กระทบต่อระบบการผลิตหลักที่เสถียร และไม่ต้องใช้ระบบพัฒนาเพิ่มเติมที่มีราคาแพง
IBM ประกาศเปิดตัว ซีรี่ส์ System/370ในปี 1970 โดยไม่มี คุณสมบัติ หน่วยความจำเสมือนที่จำเป็นสำหรับการจำลองเสมือน แต่ได้เพิ่มคุณสมบัตินี้ในการประกาศฟังก์ชันขั้นสูงในเดือนสิงหาคม 1972 การจำลองเสมือนได้ถูกรวมอยู่ในระบบรุ่นต่อๆ มาทั้งหมด ทำให้เมนเฟรมของ IBM ในปัจจุบันทั้งหมด รวมถึง ตระกูล zSeriesยังคงรักษาความเข้ากันได้กับตระกูล IBM S/360 ในยุคปี 1960 การประกาศในปี 1972 ยังรวมถึงVM/370ซึ่งเป็นการนำCP/CMS มาเขียนใหม่ สำหรับ S/370 แตกต่างจากCP/CMSตรงที่ IBM ให้การสนับสนุนเวอร์ชันนี้ (แม้ว่าจะยังคงเผยแพร่ในรูปแบบซอร์สโค้ดอยู่หลายรุ่น) VMย่อมาจากVirtual Machineซึ่งเน้นย้ำว่าอินเทอร์เฟซฮาร์ดแวร์ทั้งหมด ไม่ใช่แค่บางส่วน ถูกจำลองเสมือน ทั้ง VM และ CP/CMS ได้รับการยอมรับและการพัฒนาอย่างรวดเร็วจากมหาวิทยาลัย ผู้ใช้ในองค์กร และ ผู้จำหน่าย ระบบแบ่งเวลาใช้งานรวมถึงภายใน IBM เอง ผู้ใช้มีบทบาทอย่างแข็งขันในการพัฒนาอย่างต่อเนื่อง โดยคาดการณ์แนวโน้มที่พบในโครงการโอเพนซอร์ส สมัยใหม่ อย่างไรก็ตาม ในการต่อสู้ที่ดุเดือดและขัดแย้งกันหลาย ครั้ง ระบบ แบ่งเวลาใช้งาน (time-sharing) พ่ายแพ้ให้กับระบบประมวลผลแบบกลุ่ม (batch processing)เนื่องจากการแย่งชิงอำนาจทางการเมืองภายในของ IBM และ VM ก็ยังคงเป็นระบบปฏิบัติการเมนเฟรม "อีกระบบหนึ่ง" ของ IBM มานานหลายทศวรรษ จนพ่ายแพ้ให้กับMVSในที่สุด แต่ก็กลับมาได้รับความนิยมและการสนับสนุนอีกครั้งตั้งแต่ปี 2000 ในฐานะ ผลิตภัณฑ์ z/VMเช่น ในฐานะแพลตฟอร์มสำหรับLinux บน IBM Z
ดังที่กล่าวมาข้างต้น โปรแกรมควบคุม VM ประกอบด้วย ตัวจัดการ การเรียกไฮเปอร์ไวเซอร์ที่ดักจับคำสั่ง DIAG ("Diagnose", รหัสการทำงาน x'83') ที่ใช้ภายในเครื่องเสมือน ซึ่งช่วยให้สามารถเข้าถึงระบบไฟล์และการดำเนินการอื่นๆ ได้อย่างรวดเร็วโดยไม่ต้องใช้การจำลองเสมือน (DIAG เป็นคำสั่งพิเศษที่ขึ้นอยู่กับโมเดล ไม่ได้ใช้ในการเขียนโปรแกรมปกติ ดังนั้นจึงไม่ถูกจำลองเสมือน แต่สามารถใช้เป็นสัญญาณไปยังระบบปฏิบัติการ "โฮสต์") เมื่อนำมาใช้ครั้งแรกในCP/CMSเวอร์ชัน 3.1 การใช้ DIAG นี้ได้ให้ส่วนต่อประสานระบบปฏิบัติการที่คล้ายคลึงกับ คำสั่ง System/360 Supervisor Call (SVC) แต่ไม่จำเป็นต้องเปลี่ยนแปลงหรือขยายการจำลองเสมือนของ SVC ในระบบ
ในปี 1985 IBM ได้เปิด ตัวไฮเปอร์ไวเซอร์ PR/SMเพื่อจัดการพาร์ติชั่นเชิงตรรกะ (LPAR)
การสนับสนุนระบบปฏิบัติการ
ปัจจัยหลายประการนำไปสู่การกลับมาใช้เทคโนโลยีเวอร์ชวลไลเซชัน อีกครั้งในช่วงปี 2548 ในระบบ Unix , Linuxและระบบปฏิบัติการที่คล้าย Unix อื่นๆ: [ 12 ]
- การขยายขีดความสามารถของฮาร์ดแวร์ ทำให้เครื่องแต่ละเครื่องสามารถทำงานพร้อมกันได้มากขึ้น
- ความพยายามในการควบคุมต้นทุนและลดความซับซ้อนในการบริหารจัดการผ่านการรวมเซิร์ฟเวอร์
- ความจำเป็นในการควบคุม ระบบ มัลติโปรเซสเซอร์และคลัสเตอร์ ขนาดใหญ่ เช่น ในฟาร์มเซิร์ฟเวอร์และฟาร์มเรนเดอร์
- สถาปัตยกรรมไฮเปอร์ไวเซอร์ช่วยเพิ่มความปลอดภัย ความน่าเชื่อถือ และความเป็นอิสระของอุปกรณ์ได้ดียิ่งขึ้น
- ความสามารถในการเรียกใช้แอปพลิเคชันที่ซับซ้อนซึ่งขึ้นอยู่กับระบบปฏิบัติการ ในสภาพแวดล้อมฮาร์ดแวร์หรือระบบปฏิบัติการที่แตกต่างกัน
- ความสามารถในการจัดสรรทรัพยากรเกินความจำเป็น ทำให้สามารถติดตั้งแอปพลิเคชันจำนวนมากขึ้นบนโฮสต์ได้
ผู้จำหน่ายระบบ Unix รายใหญ่ เช่นHP , IBM , SGIและSun Microsystemsได้จำหน่ายฮาร์ดแวร์เสมือนมาตั้งแต่ก่อนปี 2000 โดยทั่วไปแล้วจะเป็นระบบขนาดใหญ่และมีราคาแพง (อยู่ในช่วงหลายล้านดอลลาร์สำหรับรุ่นระดับสูง) แม้ว่าการจำลองเสมือนจะมีให้ใช้งานในระบบระดับล่างและระดับกลางบางระบบด้วย เช่น เซิร์ฟเวอร์ IBM pSeries , เครื่อง HP Superdome series และเซิร์ฟเวอร์ Sun/Oracle SPARC T series CoolThreads
IBM นำเสนอเทคโนโลยีการแบ่งพาร์ติชันเสมือนที่เรียกว่าการแบ่งพาร์ติชันเชิงตรรกะ (LPAR) บน ระบบ System/390 , zSeries , pSeriesและIBM AS/400สำหรับระบบ Power Systems ของ IBM นั้น POWER Hypervisor (PHYP) เป็นไฮเปอร์ไวเซอร์แบบเนทีฟ (bare-metal) ในเฟิร์มแวร์และให้การแยกส่วนระหว่าง LPAR ต่างๆ ความจุของโปรเซสเซอร์จะถูกจัดสรรให้กับ LPAR ในลักษณะเฉพาะหรือในลักษณะการให้สิทธิ์ โดยความจุที่ไม่ได้ใช้จะถูกเก็บเกี่ยวและสามารถจัดสรรใหม่ให้กับเวิร์กโหลดที่ใช้งานมากได้ กลุ่มของ LPAR สามารถจัดการความจุของโปรเซสเซอร์ได้ราวกับว่าอยู่ใน "พูล" - IBM เรียกความสามารถนี้ว่า Multiple Shared-Processor Pools (MSPPs) และนำไปใช้ในเซิร์ฟเวอร์ที่มี โปรเซสเซอร์ POWER6การจัดสรรความจุของ LPAR และ MSPP สามารถเปลี่ยนแปลงได้แบบไดนามิก หน่วยความจำจะถูกจัดสรรให้กับแต่ละ LPAR (เมื่อเริ่มต้น LPAR หรือแบบไดนามิก) และถูกควบคุมโดย POWER Hypervisor สำหรับการกำหนดแอดเดรสในโหมดเรียลโดยระบบปฏิบัติการ ( AIX , Linux , IBM i ) โปรเซสเซอร์ Power ( POWER4ขึ้นไป) ได้รับการออกแบบให้มีคุณสมบัติการจำลองเสมือน โดยจะประเมินค่าออฟเซ็ตแอดเดรสของฮาร์ดแวร์ร่วมกับค่าออฟเซ็ตแอดเดรสของระบบปฏิบัติการเพื่อให้ได้แอดเดรสหน่วยความจำทางกายภาพ อะแดปเตอร์อินพุต/เอาต์พุต (I/O) สามารถ "เป็นเจ้าของ" เฉพาะโดย LPAR หรือใช้ร่วมกันโดย LPAR ผ่านพาร์ติชันอุปกรณ์ที่เรียกว่าเซิร์ฟเวอร์ I/O เสมือน (VIOS) Power Hypervisor ให้ความน่าเชื่อถือ ความพร้อมใช้งาน และความสามารถในการให้บริการ (RAS) ในระดับสูงโดยอำนวยความสะดวกในการเพิ่ม/เปลี่ยนชิ้นส่วนหลายชิ้นแบบ Hot Add/Replace (ขึ้นอยู่กับรุ่น: โปรเซสเซอร์ หน่วยความจำ อะแดปเตอร์ I/O พัดลม หน่วยจ่ายไฟ ดิสก์ ตัวควบคุมระบบ ฯลฯ)
HPE ให้บริการHP Integrity Virtual Machines (Integrity VM) เพื่อโฮสต์ระบบปฏิบัติการหลายระบบบน ระบบ Integrity ที่ใช้โปรเซสเซอร์ Itanium Itanium สามารถรันHP-UX , Linux, Windows และOpenVMS ได้ และสภาพแวดล้อมเหล่านี้ยังได้รับการสนับสนุนในฐานะเซิร์ฟเวอร์เสมือนบนแพลตฟอร์ม Integrity VM ของ HP ด้วย ระบบปฏิบัติการ HP-UX โฮสต์เลเยอร์ไฮเปอร์ไวเซอร์ของ Integrity VM ซึ่งช่วยให้สามารถใช้ประโยชน์จากคุณสมบัติต่างๆ ของ HP-UX ได้อย่างเต็มที่ และสร้างความแตกต่างที่สำคัญระหว่างแพลตฟอร์มนี้กับแพลตฟอร์มทั่วไปอื่นๆ เช่น การเปลี่ยนโปรเซสเซอร์ขณะทำงาน การเปลี่ยนหน่วยความจำขณะทำงาน และการอัปเดตเคอร์เนลแบบไดนามิกโดยไม่ต้องรีบูตระบบ แม้ว่าจะใช้ประโยชน์จาก HP-UX อย่างมาก แต่ไฮเปอร์ไวเซอร์ของ Integrity VM นั้นเป็นแบบไฮบริดที่ทำงานบนฮาร์ดแวร์จริงในขณะที่ระบบปฏิบัติการเสมือนกำลังทำงานอยู่ การรันแอปพลิเคชัน HP-UX ทั่วไปบนโฮสต์ Integrity VM นั้นไม่แนะนำอย่างยิ่งเนื่องจาก Integrity VM ใช้การจัดการหน่วยความจำ การจัดตารางเวลา และนโยบาย I/O ของตัวเอง ซึ่งได้รับการปรับแต่งสำหรับเครื่องเสมือนและไม่ได้มีประสิทธิภาพเท่ากับแอปพลิเคชันทั่วไป นอกจากนี้ HPE ยังมีการแบ่งพาร์ติชันที่เข้มงวดมากขึ้นสำหรับระบบ Integrity และ HP9000 โดยใช้เทคโนโลยี VPAR และnParโดย VPAR ให้การแบ่งพาร์ติชันทรัพยากรแบบใช้ร่วมกัน และ nPar ให้การแยก I/O และการประมวลผลอย่างสมบูรณ์ ความยืดหยุ่นของสภาพแวดล้อมเซิร์ฟเวอร์เสมือน (VSE) ได้ถูกแทนที่ด้วยการใช้งานที่บ่อยขึ้นในระบบใหม่ๆ
แม้ว่าSolarisจะเป็นระบบปฏิบัติการโดเมนแขกเพียงระบบเดียวที่ Sun/Oracle ให้การสนับสนุนอย่างเป็นทางการบนไฮเปอร์ไวเซอร์Logical Domains มาโดยตลอด แต่ตั้งแต่ปลายปี 2549 เป็นต้นมาLinux (Ubuntu และ Gentoo) และFreeBSDได้รับการพอร์ตให้ทำงานบนไฮเปอร์ไวเซอร์ (และสามารถทำงานพร้อมกันบนโปรเซสเซอร์เดียวกันได้ทั้งหมด ในฐานะระบบปฏิบัติการแขกอิสระแบบเสมือนเต็มรูปแบบ) Wind River "Carrier Grade Linux" ก็ทำงานบนไฮเปอร์ไวเซอร์ของ Sun เช่นกัน[ 13 ] การจำลองเสมือนแบบเต็มรูปแบบบน โปรเซสเซอร์ SPARCพิสูจน์แล้วว่าทำได้ง่าย: นับตั้งแต่เริ่มก่อตั้งในช่วงกลางทศวรรษ 1980 Sun จงใจรักษาโครงสร้างสถาปัตยกรรม SPARC ให้ปราศจากสิ่งประดิษฐ์ที่จะขัดขวางการจำลองเสมือน (เปรียบเทียบกับการจำลองเสมือนบนโปรเซสเซอร์ x86 ด้านล่าง) [ 14 ]
แนวโน้มที่คล้ายกันนี้เกิดขึ้นกับแพลตฟอร์มเซิร์ฟเวอร์ x86/x86-64 เช่นกัน โดย โครงการ โอเพนซอร์สอย่างXenได้เป็นผู้นำในด้านการจำลองเสมือน ซึ่งรวมถึงไฮเปอร์ไวเซอร์ที่สร้างขึ้นบนเคอร์เนล Linux และ Solaris รวมถึงเคอร์เนลแบบกำหนดเอง เนื่องจากเทคโนโลยีเหล่านี้ครอบคลุมตั้งแต่ระบบขนาดใหญ่ไปจนถึงเดสก์ท็อป จึงจะกล่าวถึงในหัวข้อถัดไป
ระบบ x86
การจำลองเสมือน x86ได้รับการแนะนำในช่วงทศวรรษ 1990 โดยมีการจำลองรวมอยู่ในBochs [ 15 ] Intel และ AMD เปิดตัวโปรเซสเซอร์ x86 รุ่นแรกที่มีการจำลองเสมือนฮาร์ดแวร์ในปี 2005 ด้วยIntel VT-x (รหัสชื่อ Vanderpool) และAMD-V (รหัสชื่อ Pacifica)
แนวทางอื่นนั้นจำเป็นต้องปรับเปลี่ยนระบบปฏิบัติการของเครื่องเสมือนเพื่อให้เรียกใช้ระบบไปยังไฮเปอร์ไวเซอร์ที่อยู่เบื้องหลัง แทนที่จะดำเนินการคำสั่ง I/O ของเครื่องที่ไฮเปอร์ไวเซอร์จำลอง วิธีนี้เรียกว่าparavirtualizationในXen , "hypercall" ในParallels Workstationและ "DIAGNOSE code" ใน IBM VMไมโครเคอร์เนลบางตัว เช่นMachและL4มีความยืดหยุ่นเพียงพอที่จะอนุญาตให้ใช้ paravirtualization กับระบบปฏิบัติการของเครื่องเสมือนได้
ระบบฝังตัว
ไฮเปอร์ไวเซอร์แบบฝังตัวซึ่งมุ่งเป้าไปที่ระบบฝังตัวและ สภาพแวดล้อม ระบบปฏิบัติการแบบเรียลไทม์ (RTOS) บางประเภท ได้รับการออกแบบโดยมีข้อกำหนดที่แตกต่างกันเมื่อเทียบกับระบบเดสก์ท็อปและระบบองค์กร รวมถึงความทนทาน ความปลอดภัย และ ความสามารถ แบบเรียลไทม์ลักษณะที่จำกัดทรัพยากรของระบบฝังตัวหลายระบบ โดยเฉพาะอย่างยิ่งระบบมือถือที่ใช้พลังงานจากแบตเตอรี่ ทำให้เกิดข้อกำหนดเพิ่มเติมสำหรับขนาดหน่วยความจำที่เล็กและโอเวอร์เฮดต่ำ สุดท้ายนี้ เมื่อเปรียบเทียบกับความแพร่หลายของสถาปัตยกรรม x86 ในโลกพีซี โลกของระบบฝังตัวใช้สถาปัตยกรรมที่หลากหลายกว่าและสภาพแวดล้อมที่เป็นมาตรฐานน้อยกว่า การสนับสนุนการจำลองเสมือนต้องการการป้องกันหน่วยความจำ (ในรูปแบบของหน่วยจัดการหน่วยความจำหรืออย่างน้อยหน่วยป้องกันหน่วยความจำ) และความแตกต่างระหว่างโหมดผู้ใช้และโหมดพิเศษซึ่งทำให้ไมโครคอนโทรลเลอร์ ส่วนใหญ่ไม่สามารถใช้งานได้ อย่างไรก็ตาม x86 , MIPS , ARMและPowerPCยังคงเป็นสถาปัตยกรรมที่ใช้งานกันอย่างแพร่หลายในระบบฝังตัวระดับกลางถึงระดับสูง[ 16 ]
เนื่องจากผู้ผลิตระบบฝังตัวมักมีซอร์สโค้ดของระบบปฏิบัติการอยู่แล้ว จึงไม่จำเป็นต้องใช้การจำลองเสมือนแบบเต็มรูปแบบในส่วนนี้ ในทางกลับกัน ข้อดีด้านประสิทธิภาพของการจำลองเสมือนแบบบางส่วน (paravirtualization) ทำให้เทคโนโลยีนี้มักเป็นตัวเลือกที่นิยมใช้ อย่างไรก็ตาม ARM และ MIPS เพิ่งเพิ่มการรองรับการจำลองเสมือนแบบเต็มรูปแบบเป็นตัวเลือก IP และรวมไว้ในโปรเซสเซอร์ระดับไฮเอนด์และสถาปัตยกรรมรุ่นใหม่ล่าสุด เช่นARM Cortex-A15 MPCoreและ ARMv8 EL2
ความแตกต่างอื่นๆ ระหว่างการจำลองเสมือนในสภาพแวดล้อมเซิร์ฟเวอร์/เดสก์ท็อปและสภาพแวดล้อมฝังตัว ได้แก่ ข้อกำหนดสำหรับการแบ่งปันทรัพยากรอย่างมีประสิทธิภาพระหว่างเครื่องเสมือน แบนด์วิดท์สูง การสื่อสารระหว่างเครื่องเสมือนที่มีความหน่วงต่ำ มุมมองโดยรวมของการจัดกำหนดการและการจัดการพลังงาน และการควบคุมการไหลของข้อมูลอย่างละเอียด[ 17 ]
ผลกระทบด้านความปลอดภัย
การใช้เทคโนโลยีไฮเปอร์ไวเซอร์โดยมัลแวร์และรูทคิตที่ติดตั้งตัวเองเป็นไฮเปอร์ไวเซอร์ใต้ระบบปฏิบัติการ ซึ่งเรียกว่าไฮเปอร์แจ็กกิ้งอาจทำให้ตรวจจับได้ยากขึ้น เนื่องจากมัลแวร์สามารถดักจับการทำงานใดๆ ของระบบปฏิบัติการ (เช่น การป้อนรหัสผ่าน) โดยที่ซอฟต์แวร์ป้องกันมัลแวร์ไม่จำเป็นต้องตรวจจับได้ (เนื่องจากมัลแวร์ทำงานอยู่ใต้ระบบปฏิบัติการทั้งหมด) มีรายงานว่ามีการนำแนวคิดนี้ไปใช้ใน รูทคิตของห้องปฏิบัติการ SubVirt (พัฒนาร่วมกันโดยนักวิจัย ของ Microsoftและมหาวิทยาลัยมิชิแกน[ 18 ] ) เช่นเดียวกับใน แพ็คเกจ มัลแวร์ Blue Pillอย่างไรก็ตาม ข้อกล่าวอ้างดังกล่าวถูกโต้แย้งโดยผู้อื่นที่อ้างว่าสามารถตรวจจับการมีอยู่ของรูทคิตที่ใช้ไฮเปอร์ไวเซอร์ได้[ 19 ]
ในปี 2552 นักวิจัยจาก Microsoft และมหาวิทยาลัยแห่งรัฐนอร์ทแคโรไลนาได้สาธิตระบบป้องกันรูทคิตระดับไฮเปอร์ไวเซอร์ที่เรียกว่าHooksafe ซึ่งสามารถให้การป้องกันทั่วไปต่อ รูทคิตโหมดเคอร์เนลได้[ 20 ]
ดูเพิ่มเติม
หมายเหตุ
- ↑ คำว่า super-มาจากภาษาละติน แปลว่า "ข้างบน" ส่วน hyper-มาจาก คำ ที่เกี่ยวข้องในภาษากรีกโบราณ ( ὑπέρ- ) ซึ่งแปลว่าข้างบนหรือเหนือ เช่น กัน
ลิงก์ภายนอก
- ไฮเปอร์ไวเซอร์และเครื่องเสมือน: ข้อมูลเชิงลึกเกี่ยวกับการใช้งานบนสถาปัตยกรรม x86
- การเปรียบเทียบประสิทธิภาพของไฮเปอร์ไวเซอร์ , VMware