กลับไปหน้าบทความ

อ่าน 3 นาที

ลินุกซ์โหมดผู้ใช้

User-mode Linux ( UML ) คือ ระบบ เวอร์ชวลไลเซชันสำหรับ ระบบปฏิบัติการ Linuxที่ใช้สถาปัตยกรรมของเคอร์เนล Linux มาปรับ ให้เข้ากับอินเทอร์เฟซ...

ลินุกซ์โหมดผู้ใช้

ลินุกซ์โหมดผู้ใช้
เขียนเป็นซี
พิมพ์เวอร์ชวลไลเซชัน
ใบอนุญาตใบอนุญาตสาธารณะทั่วไปของ GNU
เว็บไซต์user-mode-linux .sourceforge .net

User-mode Linux ( UML ) คือ ระบบ เวอร์ชวลไลเซชันสำหรับ ระบบปฏิบัติการ Linuxที่ใช้สถาปัตยกรรมของเคอร์เนล Linux มาปรับ ให้เข้ากับอินเทอร์เฟซ การเรียกใช้ระบบของตัวเองซึ่งช่วยให้ระบบปฏิบัติการเสมือนที่ใช้เคอร์เนล Linux หลายระบบ (เรียกว่า guest) สามารถทำงานเป็นแอปพลิเคชันภายในระบบ Linux ปกติ (เรียกว่า host) ได้ เคอร์เนล Linux ที่คอมไพล์สำหรับ สถาปัตยกรรม umสามารถบูตเป็นกระบวนการภายใต้เคอร์เนล Linux อื่นได้ โดยทำงานในพื้นที่ผู้ใช้ ทั้งหมด โดยไม่ส่งผลกระทบต่อการกำหนดค่าหรือเสถียรภาพของสภาพแวดล้อมโฮสต์

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

แอปพลิเคชัน

การใช้ UML ทำให้สิ่งต่างๆ เป็นไปได้มากมาย[ 1 ]สามารถเรียกใช้ บริการ เครือข่ายจากสภาพแวดล้อม UML และแยกตัวออกจากระบบ Linux หลักที่สภาพแวดล้อม UML ทำงานอยู่ได้อย่างสมบูรณ์[ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] ผู้ดูแลระบบสามารถใช้ UML เพื่อตั้งค่า honeypot [ 7 ] ซึ่งช่วยให้สามารถทดสอบความปลอดภัยของคอมพิวเตอร์หรือเครือข่ายได้ UML สามารถใช้ในการทดสอบและแก้ไขข้อบกพร่องของซอฟต์แวร์ใหม่โดยไม่ส่งผลเสียต่อระบบโฮสต์ นอกจากนี้ UML ยังสามารถใช้สำหรับการสอนและการวิจัย โดยให้สภาพแวดล้อมเครือข่าย Linux ที่สมจริงพร้อมความปลอดภัยในระดับสูง

ในสภาพแวดล้อม UML เวอร์ชันเคอร์เนลของโฮสต์และเกสต์ไม่จำเป็นต้องตรงกัน ดังนั้นจึงเป็นไปได้ที่จะทดสอบ Linux เวอร์ชัน " ล้ำสมัย " ในโหมดผู้ใช้บนระบบที่ใช้เคอร์เนลเวอร์ชันเก่ากว่ามาก นอกจากนี้ UML ยังอนุญาตให้ทำการดีบักเคอร์เนลบนเครื่องเดียว ในขณะที่เครื่องมือดีบักเคอร์เนลอื่นๆ (เช่นkgdb ) ต้องใช้เครื่องสองเครื่องที่เชื่อมต่อกันด้วยสายเคเบิล null modem

ผู้ให้บริการ เว็บโฮสติ้งบางราย เสนอ เซิร์ฟเวอร์เสมือนที่ใช้ UML ในราคาที่ต่ำกว่าเซิร์ฟเวอร์เฉพาะ (Dedicated Server) จริงๆ ลูกค้าแต่ละรายจะมี สิทธิ์เข้าถึง ระดับรูท (root access) บนระบบที่ดูเหมือนจะเป็นของตนเอง ในขณะที่ในความเป็นจริงแล้ว คอมพิวเตอร์เครื่องเดียวถูกใช้งานร่วมกันโดยหลายคน

libguestfsรองรับแบ็กเอนด์ UML ตั้งแต่เวอร์ชัน 1.24 [ 8 ]เป็นทางเลือกแทนการใช้ QEMU หรือ KVM

การบูรณาการเข้ากับเคอร์เนลของลินุกซ์

แอปพลิเคชันแขก UML (ไฟล์ไบนารีELF ของ Linux ) เดิมทีมีให้ใช้งานในรูปแบบแพตช์สำหรับเคอร์เนลบางเวอร์ชันที่สูงกว่า 2.2.x และโฮสต์ที่มีเคอร์เนลเวอร์ชันใด ๆ ที่สูงกว่า 2.2.x ก็สามารถรองรับแอปพลิเคชันนี้ได้อย่างง่ายดายในโหมดเธรด (เช่น ไม่ใช่ SKAS3)

ตั้งแต่Linux 2.6.0 เป็นต้นมา ได้มีการรวมเข้ากับ โครงสร้างซอร์สโค้ด เคอร์เนล หลัก แล้ว มีการนำวิธีการเรียกใช้พื้นที่แอดเดรสเคอร์เนลแยกต่างหาก (SKAS) ที่ไม่จำเป็นต้องแก้ไขเคอร์เนลของโฮสต์มาใช้ ซึ่งช่วยปรับปรุงประสิทธิภาพและความปลอดภัยมากกว่าวิธีการ Traced Thread แบบเดิม ซึ่งกระบวนการที่ทำงานใน UML จะใช้พื้นที่แอดเดรสเดียวกันจากมุมมองของโฮสต์ ทำให้หน่วยความจำภายใน UML ไม่ได้รับการปกป้องโดยหน่วยจัดการหน่วยความจำต่างจาก UML ปัจจุบันที่ใช้ SKAS ซอฟต์แวร์ที่มีข้อบกพร่องหรือเป็นอันตรายภายใน UML ที่ทำงานบนโฮสต์ที่ไม่ใช้ SKAS อาจสามารถอ่านพื้นที่หน่วยความจำของกระบวนการ UML อื่นๆ หรือแม้แต่หน่วยความจำเคอร์เนลของ UML ได้[ 9 ]

การเปรียบเทียบกับเทคโนโลยีอื่นๆ

โดยทั่วไปแล้ว Linux ในโหมดผู้ใช้ (User-mode Linux) ถือว่ามีประสิทธิภาพต่ำกว่าเทคโนโลยีคู่แข่งบางอย่าง เช่นXenและOpenVZการพัฒนาเพิ่มเติมในอนาคตเพื่อเพิ่มการรองรับการจำลองเสมือน x86ให้กับ UML อาจช่วยลดข้อเสียเปรียบนี้ได้

สิ่งที่มักถูกยกมาเป็นจุดแข็งของXen (เทคโนโลยีคู่แข่ง) คือการรองรับพื้นที่จัดเก็บข้อมูลเฉพาะเธรด (TLS) ซึ่งปัจจุบัน UML kernel รุ่นล่าสุดก็รองรับแล้วเช่นกัน Xen เน้นการจำลองเครื่องเสมือนทั้งเครื่อง ดังนั้นระบบทั้งหมดที่ทำงานบนเครื่อง Xen จึงเป็นเครื่องเสมือนจริงๆ ในขณะที่ใน UML เครื่องโฮสต์ไม่ได้ถูกจำลองในลักษณะใดๆ และมีเพียงระบบเกสต์เท่านั้นที่เป็นเครื่องเสมือนอย่างแท้จริง ซึ่งทำให้เกสต์ของ UML สามารถเข้าถึงระบบไฟล์และฮาร์ดแวร์ของโฮสต์ได้โดยตรง โดยทั่วไปแล้วจะมีการแมปไดเร็กทอรีของโฮสต์ (เช่น/uml/root/ )

แพลตฟอร์มที่รองรับ

UML ได้รับการออกแบบมาสำหรับ ชุดคำสั่ง x86 เป็นหลัก แต่ก็ได้รับการพอร์ตไปยังชุดคำสั่งอื่นๆ รวมถึงIA-64และPowerPCด้วย[ 10 ] [ 11 ] นอกจากนี้ยังทำงานบนx86_64 [ 12 ]และควรจะทำงานบนแพลตฟอร์มใดๆ ก็ได้ เนื่องจากptrace ของ Linux มีความสม่ำเสมอในทุกแพลตฟอร์ม

ดูเพิ่มเติม

  • เอกสารทางการ
  • แกน UML สำเร็จรูป
  • ใช้งาน Debian ภายใน Debian ด้วย User-Mode Linux
  • Linuxzoo: เข้าถึง UML ออนไลน์ได้ฟรี
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=User-mode_Linux&oldid=1350918567 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ลินุกซ์โหมดผู้ใช้

User-mode Linux ( UML ) คือ ระบบ เวอร์ชวลไลเซชันสำหรับ ระบบปฏิบัติการ Linuxที่ใช้สถาปัตยกรรมของเคอร์เนล Linux มาปรับ ให้เข้ากับอินเทอร์เฟซ...

แอปพลิเคชัน

การใช้ UML ทำให้สิ่งต่างๆ เป็นไปได้มากมาย [ 1 ] สามารถเรียกใช้ บริการ เครือข่าย จากสภาพแวดล้อม UML และแยกตัวออกจากระบบ Linux หลักที่สภาพแวดล้อม UML ทำงานอยู่ได้อย่างสมบูรณ์ [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] ผู้ดูแลระบบสามารถใช้ UML เพื่อตั้งค่า honeypot [ 7 ]...

การบูรณาการเข้ากับเคอร์เนลของลินุกซ์

แอปพลิเคชันแขก UML (ไฟล์ไบนารี ELF ของ Linux ) เดิมทีมีให้ใช้งานในรูปแบบ แพตช์ สำหรับเคอร์เนลบางเวอร์ชันที่สูงกว่า 2.2.x และโฮสต์ที่มีเคอร์เนลเวอร์ชันใด ๆ ที่สูงกว่า 2.2.x ก็สามารถรองรับแอปพลิเคชันนี้ได้อย่างง่ายดายในโหมดเธรด (เช่น ไม่ใช่ SKAS3)

การเปรียบเทียบกับเทคโนโลยีอื่นๆ

โดยทั่วไปแล้ว Linux ในโหมดผู้ใช้ (User-mode Linux) ถือว่ามีประสิทธิภาพต่ำกว่าเทคโนโลยีคู่แข่งบางอย่าง เช่น Xen และ OpenVZ การพัฒนาเพิ่มเติมในอนาคตเพื่อเพิ่มการรองรับ การจำลองเสมือน x86 ให้กับ UML อาจช่วยลดข้อเสียเปรียบนี้ได้