Solaris และ illumos คืออะไร ทำไม ZFS ถึงยังคงอยู่รอด
ย้อนรอยประวัติศาสตร์การเปลี่ยนผ่านจาก Solaris สู่ illumos หลัง Oracle ปิดซอร์สโค้ด เรียนรู้เหตุผลที่เทคโนโลยีอย่าง ZFS และ DTrace ยังคงใช้งานได้ดีบนระบบปฏิบัติการสมัยใหม่ในปัจจุบัน
Solaris และ illumos คืออะไร
Solaris และ illumos เป็นสองสายที่แตกแขนงมาจากซอร์สโค้ด Unix ชุดเดียวกัน Sun Microsystems เป็นผู้สร้าง Solaris และเปิดเผยซอร์สโค้ดส่วนใหญ่ในปี 2005 ต่อมา Oracle เข้าซื้อกิจการ Sun ในปี 2010 และยุติการเผยแพร่ซอร์สโค้ดดังกล่าว นักพัฒนาภายนอก Oracle จึงนำโค้ดส่วนที่เปิดเผยไปพัฒนาต่อภายใต้ชื่อใหม่ว่า illumos แม้ตัวระบบปฏิบัติการเองจะเป็นระบบเฉพาะกลุ่มในปี 2026 แต่เลเยอร์การจัดเก็บข้อมูลและเครื่องมือติดตามการทำงาน (tracing tool) ที่สร้างขึ้นภายในระบบนั้นกลับไม่ได้เป็นเช่นนั้น และนั่นคือเหตุผลที่ประวัติศาสตร์ส่วนนี้ควรค่าแก่การศึกษา
หากคุณใช้งาน ZFS บน Linux หรือ FreeBSD แสดงว่าคุณกำลังใช้งานโค้ดที่ถูกเขียนขึ้นที่ Sun สำหรับ Solaris ซึ่งเป็นโค้ดที่ยังคงอยู่รอดมาได้แม้บริษัท สายผลิตภัณฑ์ และข้อพิพาทด้านลิขสิทธิ์จะจบสิ้นไปแล้ว โพสต์นี้คือเรื่องราวว่าเหตุการณ์ดังกล่าวเกิดขึ้นได้อย่างไร โดยมีการตรวจสอบวันที่ที่เกี่ยวข้องไว้อย่างครบถ้วน
ที่มาของ Solaris: BSD, System V และ SVR4
Sun Microsystems ก่อตั้งขึ้นเมื่อวันที่ 24 กุมภาพันธ์ 1982 โดย Scott McNealy, Andy Bechtolsheim, Vinod Khosla และ Bill Joy ระบบปฏิบัติการของบริษัทคือ SunOS ซึ่งมีพื้นฐานมาจาก BSD (Berkeley Software Distribution) อันเป็นสาย Unix ในระดับมหาวิทยาลัยที่ Bill Joy เคยร่วมงานก่อนการก่อตั้ง Sun อีกสายหนึ่งของ Unix คือ System V ของ AT&T ซึ่งมีการจำหน่ายเชิงพาณิชย์ ทั้งสองสายนี้คือการแยกตัวที่อธิบายไว้ใน แผนผังตระกูล Unix ที่สิ้นสุดที่ Linux และ Sun ก็ยืนหยัดอยู่ฝั่ง BSD มานานนับทศวรรษ
ในปี 1987 Sun และ AT&T ประกาศโครงการร่วมเพื่อรวม BSD, System V และ Xenix เข้าเป็นรุ่นเดียวคือ UNIX System V Release 4 ซึ่งมักเขียนย่อว่า SVR4 ต่อมาในวันที่ 4 กันยายน 1991 Sun ประกาศว่า SunOS 4 จะถูกแทนที่ด้วยระบบที่พัฒนาจาก SVR4 ภายใต้ชื่อทางการตลาดใหม่ว่า Solaris 2 โดย Solaris 2.0 ได้รับการปล่อยออกมาในเดือนมิถุนายน 1992 บนฮาร์ดแวร์ SPARC เท่านั้น Sun ได้เปลี่ยนฝั่งของ Unix และลูกค้าจำเป็นต้องย้ายซอฟต์แวร์ของตนไปใช้งานบนระบบใหม่
ชื่อเดิมไม่เคยหายไปไหน เคอร์เนลยังคงใช้การนับเลขเวอร์ชันของ SunOS ดังนั้น Solaris 2.6 จึงรันบน SunOS 5.6 และ Oracle Solaris 11.4 ก็ยังคงระบุตัวเองว่าเป็น SunOS 5.11 หากคุณรัน uname -a บนเครื่อง illumos ในปี 2026 คำแรกที่แสดงผลออกมาก็ยังคงเป็น SunOS เนื่องจาก illumos ได้รับสืบทอดชื่อนี้มาพร้อมกับโค้ดต้นฉบับ
สิ่งที่ Solaris 10 นำเสนอในปี 2005
Solaris 10 เปิดตัวเมื่อวันที่ 31 มกราคม 2005 ซึ่งมีความสำคัญในบริบทนี้เนื่องจากทุกสิ่งที่ยังคงหลงเหลืออยู่หลังจากบริษัทปิดตัวลงนั้น ล้วนอยู่ในรุ่นดังกล่าวหรือมาพร้อมกับการอัปเดตในภายหลัง
DTrace ถูกเขียนขึ้นที่ Sun โดย Bryan Cantrill, Mike Shapiro และ Adam Leventhal โดยเริ่มใช้งานได้ครั้งแรกในเดือนพฤศจิกายน 2003 เครื่องมือนี้ใช้สำหรับตรวจสอบ kernel และ user process ที่กำลังทำงานอยู่โดยไม่ต้องคอมไพล์โปรแกรมใหม่และไม่ต้องรีสตาร์ท process ที่คุณกำลังเฝ้าดูอยู่ Probe ที่คุณไม่ได้เปิดใช้งานจะไม่มีผลกระทบต่อประสิทธิภาพการทำงาน เนื่องจากตัว instrumentation จะถูกแทรกเข้าไปก็ต่อเมื่อมีสคริปต์เรียกใช้งานเท่านั้น นี่คือเหตุผลที่ผู้ดูแลระบบเต็มใจใช้งานบนเครื่อง production DTrace ได้รับรางวัลชนะเลิศจากงาน The Wall Street Journal's 2006 Technology Innovation Awards และรางวัล USENIX STUG (Software Tools User Group) ในปี 2008
ZFS ถูกออกแบบที่ Sun โดย Jeff Bonwick, Bill Moore และ Matthew Ahrens และประกาศเปิดตัวเมื่อวันที่ 14 กันยายน 2004 โดยรวมเอา volume manager และ filesystem เข้าเป็นเลเยอร์เดียวกัน ซึ่งช่วยให้สามารถตรวจสอบ checksum ของทุกบล็อกข้อมูลในขณะอ่านและซ่อมแซมบล็อกที่เสียหายจากสำเนาสำรองได้ การเขียนข้อมูลใช้หลักการ copy on write: บล็อกข้อมูลจะไม่ถูกเขียนทับในตำแหน่งเดิม ดังนั้นหากเกิดการ crash ระหว่างการเขียน ข้อมูลเดิมจะยังคงอยู่ครบถ้วนแทนที่จะเกิด filesystem ที่เสียหายจากการเขียนไม่เสร็จสิ้น Snapshots แทบไม่มีต้นทุนในการจัดเก็บ เนื่องจาก snapshot เป็นเพียงชุดของบล็อกที่การเขียนข้อมูลในภายหลังไม่ได้เข้าไปแก้ไข ZFS ไม่ได้รวมอยู่ใน Solaris 10 รุ่นแรก แต่ถูกเพิ่มเข้ามาในการอัปเดต Solaris 10 6/06 ในเดือนมิถุนายน 2006
Zones เป็นส่วนประกอบที่สาม Zone ช่วยให้ kernel หนึ่งชุดสามารถแบ่งพื้นที่ใช้งานของผู้ใช้ (user space) ออกเป็นหลายส่วนที่แยกจากกัน โดยแต่ละส่วนจะมี root filesystem, process table และการตั้งค่าเครือข่ายเป็นของตนเอง Zones ปรากฏครั้งแรกใน Solaris 10 รุ่นทดสอบเมื่อเดือนกุมภาพันธ์ 2004 และมาพร้อมกับรุ่นสมบูรณ์ FreeBSD ได้เข้าถึงแนวคิดเดียวกันนี้มาก่อนจากทิศทางที่ต่างออกไป และ การเปรียบเทียบระหว่าง jails กับ Docker containers ยังคงเป็นวิธีที่ชัดเจนที่สุดในการทำความเข้าใจว่าการแยกส่วนระดับ kernel คืออะไรกันแน่ ปัจจุบัน Zones ยังคงใช้งานอยู่ใน illumos และเป็นรากฐานของอย่างน้อยหนึ่ง distribution ในปัจจุบัน
เหตุผลที่ Sun เปิดเผยซอร์สโค้ดของ Solaris
Sun ได้ยื่น CDDL (Common Development and Distribution License) ต่อ OSI (Open Source Initiative) เมื่อวันที่ 1 ธันวาคม 2004 และ OSI ได้อนุมัติในวันที่ 14 มกราคม 2005 โดย CDDL มีพื้นฐานมาจาก MPL (Mozilla Public License) เวอร์ชัน 1.1 ซึ่งมีลักษณะ copyleft ในระดับไฟล์แต่ละไฟล์ กล่าวคือไฟล์ซอร์สโค้ดที่เป็น CDDL จะต้องคงสถานะเป็น CDDL ต่อไป แต่ไบนารีที่คอมไพล์จากไฟล์ดังกล่าวสามารถนำไปรวมกับโค้ดภายใต้เงื่อนไขอื่นได้
DTrace เป็นส่วนแรกที่ถูกเปิดเผย โดยซอร์สโค้ดถูกปล่อยภายใต้สัญญาอนุญาต CDDL เมื่อวันที่ 25 มกราคม 2005 บนเว็บไซต์ opensolaris.org ที่เพิ่งเปิดตัวใหม่ ซึ่งเป็นเวลา 6 วันก่อนที่ Solaris 10 จะวางจำหน่าย จากนั้นซอร์สโค้ดส่วนใหญ่ของระบบ Solaris ก็ตามมาในวันที่ 14 มิถุนายน 2005 ส่วน ZFS ถูกรวมเข้ากับสายการพัฒนาหลักของ Solaris ในวันที่ 31 ตุลาคม 2005 และส่งถึงนักพัฒนา OpenSolaris ใน build 27 เมื่อวันที่ 16 พฤศจิกายน 2005 นอกจากนี้ OpenSolaris ยังกลายเป็นดิสทริบิวชันที่สามารถติดตั้งได้ โดยเวอร์ชัน 2008.05 ออกมาในรูปแบบ live CD เมื่อวันที่ 5 พฤษภาคม 2008 และเวอร์ชัน 2009.06 ออกมาเมื่อวันที่ 1 มิถุนายน 2009 พร้อมรองรับสถาปัตยกรรม SPARC
การเลือกสัญญาอนุญาตยังคงเป็นตัวกำหนดสิ่งที่คุณสามารถใช้งานได้ในปัจจุบัน โดย Free Software Foundation จัดให้ CDDL เป็นสัญญาอนุญาตซอฟต์แวร์เสรีที่ไม่สามารถใช้งานร่วมกับ GPL (GNU General Public License) ได้ ซึ่งเป็นความไม่เข้ากันที่สืบทอดมาจาก MPL 1.1 ในขณะที่ Linux kernel ใช้สัญญาอนุญาต GPLv2 นี่คือเหตุผลที่ ZFS on Linux ถูกสร้างขึ้นเป็น kernel module แยกต่างหากจากซอร์สทรีของ kernel แทนที่จะถูกรวมเข้าเป็นส่วนหนึ่ง และเป็นเหตุผลว่าทำไมมันจึงไม่อยู่ใน mainline kernel อย่างไรก็ตาม การตัดสินใจเผยแพร่ภายใต้สัญญาอนุญาตแบบเปิดใดๆ ก็ตามถือเป็นประเด็นสำคัญที่สุดสำหรับเรื่องราวส่วนที่เหลือ และ ประวัติความเป็นมาของสัญญาอนุญาตซอฟต์แวร์โอเพนซอร์ส จะอธิบายว่าเหตุใดบริษัทจึงตัดสินใจทำเช่นนั้น
เหตุการณ์หลัง Oracle เข้าซื้อกิจการ Sun
Oracle ประกาศเมื่อวันที่ 20 เมษายน 2009 ว่าจะเข้าซื้อกิจการ Sun ด้วยมูลค่า 7.4 พันล้านดอลลาร์สหรัฐ หรือ 5.6 พันล้านดอลลาร์สหรัฐหากหักลบเงินสดและหนี้สินของ Sun ออกแล้ว ข้อตกลงดังกล่าวเสร็จสิ้นเมื่อวันที่ 27 มกราคม 2010
เมื่อวันที่ 13 สิงหาคม 2010 บันทึกภายในของ Oracle ที่เขียนโดย Mike Shapiro, Bill Nesheim และ Chris Armes ได้ถูกเผยแพร่ภายในบริษัทและรั่วไหลออกมาในเวลาต่อมา บันทึกดังกล่าวระบุถึงนโยบายใหม่โดยตรงว่า: "เราจะไม่แจกจ่ายซอร์สโค้ดสำหรับระบบปฏิบัติการ Solaris ทั้งหมดแบบเรียลไทม์ในระหว่างการพัฒนาเป็นรายคืนอีกต่อไป" นอกจากนี้ยังระบุถึงการยุติการสร้างซอฟต์แวร์โดยชุมชนว่า: "เราจะไม่ปล่อย binary distribution อื่นใด เช่น nightly build หรือ bi-weekly build ของ Solaris หรือ OpenSolaris 2010.05 หรือเวอร์ชันที่ใหม่กว่า" โดยการปล่อยซอฟต์แวร์โอเพนซอร์สจะเปลี่ยนไปตามรอบการวางจำหน่ายผลิตภัณฑ์แทนว่า: "เราจะแจกจ่ายอัปเดตสำหรับโค้ดที่ได้รับอนุญาตภายใต้ CDDL หรือสัญญาอนุญาตโอเพนซอร์สอื่น ๆ หลังจากที่มีการวางจำหน่ายระบบปฏิบัติการ Solaris สำหรับองค์กรฉบับเต็มแล้วเท่านั้น"
เมื่อวันที่ 23 สิงหาคม 2010 คณะกรรมการบริหาร OpenSolaris ได้ผ่านมติบันทึกว่า Oracle ไม่ได้แต่งตั้งผู้ประสานงานให้กับคณะกรรมการ และได้ประกาศยุติความร่วมมือในการพัฒนาเมื่อวันที่ 13 สิงหาคม คณะกรรมการจึงลงมติให้ส่งคืนการควบคุมชุมชนกลับไปยัง Oracle ภายใต้กฎบัตรที่ Sun ได้ร่างไว้แต่เดิม ซึ่งส่งผลให้คณะกรรมการชุดดังกล่าวถูกยุบไป
Oracle Solaris 11 ถูกวางจำหน่ายเมื่อวันที่ 9 พฤศจิกายน 2011 ต่อมาในวันที่ 2 กันยายน 2017 Oracle ได้เลิกจ้างทีมงาน Solaris ส่วนใหญ่ Oracle Solaris 11.4 ถูกวางจำหน่ายเมื่อวันที่ 28 สิงหาคม 2018 และยังคงเป็นเวอร์ชันปัจจุบันที่ได้รับอัปเดตผ่าน repository สนับสนุนจนถึงเดือนกรกฎาคม 2026 เมื่อ Oracle ปรับปรุงนโยบายการสนับสนุนตลอดอายุการใช้งานสำหรับ 11.4 ครั้งล่าสุดในเดือนมกราคม 2024 บริษัทได้คงการสนับสนุนระดับ Premier Support ไว้จนถึงปี 2031 และขยายระยะเวลา Extended Support จากปี 2034 เป็น 2037 ดังนั้น Solaris จึงเป็นผลิตภัณฑ์เชิงพาณิชย์ที่มีการสนับสนุนและมีวันสิ้นสุดการใช้งานที่ชัดเจน โดยเป็นเวอร์ชันที่ยังคงเป็นเวอร์ชันปัจจุบันมาตั้งแต่ปี 2018
จุดเริ่มต้นของ illumos และเหตุผลที่เรียกว่า fork
เมื่อวันที่ 3 สิงหาคม 2010 สิบวันก่อนที่บันทึกข้อความจะรั่วไหล Garrett D'Amore ได้ประกาศเปิดตัว illumos ชื่อนี้เป็นการรวมคำว่า illum ซึ่งเป็นภาษาละตินที่แปลว่าแสง เข้ากับ OS ที่ย่อมาจาก operating system โดยทางโครงการเขียนเป็นคำเดียวและใช้อักษรตัวแรกเป็นตัวพิมพ์ใหญ่เท่านั้น
เป้าหมายคือ OS/Net ซึ่งมักเขียนย่อว่า ON อันเป็นส่วนรวมที่เก็บ kernel และยูทิลิตี้หลักของระบบ OpenSolaris ไม่เคยเปิดเผยซอร์สโค้ดอย่างสมบูรณ์ มีหลายส่วนที่ถูกส่งมอบในรูปแบบ binary ปิดที่ไม่มีใครภายนอก Sun สามารถสร้างขึ้นใหม่ได้ รวมถึงโค้ดการรองรับภาษาต่างประเทศภายใน C library (libc_i18n), ตัวจัดการ lock ของ NFS, เฟรมเวิร์กด้านการเข้ารหัส, ไดรเวอร์อย่าง mpt สำหรับ LSI host bus adapters และโค้ดสำหรับแพลตฟอร์ม SPARC บางส่วน การแทนที่ส่วนประกอบเหล่านี้เป็นงานแรกของโครงการ เพราะระบบปฏิบัติการที่คุณไม่สามารถสร้างจากซอร์สโค้ดได้นั้น ไม่ใช่ระบบที่คุณจะดูแลรักษาได้
D'Amore ระมัดระวังในการใช้คำว่า fork โดยเขาเขียนไว้ว่า "ในวันนี้เรายังไม่ใช่ fork เพราะวิธีการที่เราติดตาม OS/Net" ซึ่งเป็นการอธิบายถึง downstream repository ที่จะคอยติดตาม tree ของ Oracle และสามารถส่งการเปลี่ยนแปลงกลับไปยัง upstream ได้ แต่สิบวันต่อมา upstream ก็หยุดเผยแพร่ข้อมูล illumos จึงกลายเป็น fork โดยปริยายเพราะไม่มีสิ่งใดให้ติดตามอีกต่อไป ตัว core tree ที่ชื่อว่า illumos-gate มีการ commit ไปแล้วกว่า 23,000 ครั้ง ณ เดือนตุลาคม 2026 และยังคงมีการพัฒนาอย่างต่อเนื่องจนถึงปัจจุบัน
การแจกจ่าย (distributions) ใดบ้างที่มาจาก illumos
illumos ไม่ใช่สิ่งที่คุณติดตั้งได้โดยตรง แต่เป็นแกนหลักของระบบ (core tree) ซึ่งการแจกจ่ายต่างๆ จะนำไปสร้างเป็นระบบที่ใช้งานได้จริง ต่อไปนี้คือรายการที่ยังคงมีการเผยแพร่ (shipping) อยู่ในปัจจุบัน
- OpenIndiana เปิดตัวอย่างเป็นทางการเมื่อวันที่ 14 กันยายน 2010 ที่ JISC Centre ในลอนดอน และเป็นทายาทที่ใกล้เคียงที่สุดของ OpenSolaris ทั้งในเวอร์ชันเดสก์ท็อปและเซิร์ฟเวอร์ โดยใช้รูปแบบการอัปเดตแบบ rolling release ที่เรียกว่า Hipster และ snapshot เวอร์ชัน 2026.04 ได้รับการเผยแพร่เมื่อวันที่ 5 พฤษภาคม 2026
- OmniOS เป็นการแจกจ่ายสำหรับเซิร์ฟเวอร์ ซึ่งปัจจุบันดูแลโดยชุมชนในชื่อ OmniOS CE หลังจากที่ผู้พัฒนาเดิมยุติการสนับสนุนไป
- SmartOS เป็นแพลตฟอร์ม hypervisor ที่สร้างขึ้นบนเทคโนโลยี zones โดย Joyent เป็นผู้สร้างและประกาศในเดือนเมษายน 2022 ว่า SmartOS และ Triton จะย้ายไปอยู่ภายใต้การดูแลของ MNX Solutions โดยมีผลตั้งแต่วันที่ 1 พฤษภาคม 2022
- NexentaStor ใช้ฐานเดียวกันนี้สำหรับอุปกรณ์จัดเก็บข้อมูล (storage appliances) ซึ่งเป็นสายผลิตภัณฑ์เชิงพาณิชย์ที่ illumos มีต้นกำเนิดมาจากจุดนั้น
- Tribblix เป็นการแจกจ่ายขนาดเล็กที่ดูแลโดย Peter Tribble ซึ่งมีรายละเอียดอธิบายไว้ด้านล่าง
- DilOS นำเครื่องมือจัดการแพ็กเกจของ Debian มาใช้บน illumos kernel
ภาพรวมการติดตั้งระบบ illumos ในปัจจุบัน
Tribblix เป็นตัวอย่างที่มีประโยชน์เนื่องจากมีขนาดเล็ก มีเอกสารเผยแพร่ต่อสาธารณะ และยังคงมีการออกรุ่นใหม่ๆ อย่างต่อเนื่อง Milestone 41 สำหรับ x86 ได้รับการเผยแพร่เมื่อวันที่ 5 สิงหาคม 2026 ส่วนสายการผลิต SPARC ได้ย้ายไปที่ Milestone 35 เมื่อวันที่ 23 กันยายน 2026 ซึ่งเป็นการออกรุ่นแบบสังเคราะห์ที่นำแพ็กเกจใหม่กว่า รวมถึง gcc 10 มาติดตั้งบนระบบปฏิบัติการ Milestone 34 โดยไฟล์ ISO สำหรับติดตั้ง SPARC ที่คุณดาวน์โหลดนั้นยังคงเป็น Milestone 34 โครงการนี้อธิบายตัวเองว่าเป็นสไตล์ย้อนยุคที่มีส่วนประกอบที่ทันสมัย และยังคงใช้รูปแบบแพ็กเกจ SVR4 ที่ Solaris เคยใช้ แทนที่จะเปลี่ยนไปใช้ระบบแพ็กเกจที่ใหม่กว่า
การติดตั้งจะทำงานจาก live image คุณต้องบูต ISO, ล็อกอินด้วยผู้ใช้ jack โดยใช้รหัสผ่าน jack, เปลี่ยนสิทธิ์เป็น root และรันตัวติดตั้งกับอุปกรณ์ดิสก์ นี่คือคำสั่งที่เอกสารการติดตั้งของโครงการระบุไว้:
./live_install.sh -G c1t0d0แฟล็ก -G จะเขียนโครงสร้างพาร์ทิชันแบบ EFI (extensible firmware interface) และ -b จะเลือกโครงสร้างแบบ MBR (master boot record) แบบดั้งเดิมแทน ชื่อดิสก์จะเป็นไปตามธรรมเนียม cXtYdZ ของ Solaris แทนที่จะเป็น /dev/sda ซึ่งเป็นสิ่งแรกที่คุณจะรู้สึกไม่คุ้นเคยหากคุณมาจากฝั่ง Linux ชุดซอฟต์แวร์จะถูกเรียกว่า overlays และสามารถระบุชื่อได้ในบรรทัดเดียวกัน:
./live_install.sh -G c1t0d0 develop desktopหลังจากการติดตั้ง เครื่องมือจัดการแพ็กเกจคือ zap ซึ่งทำงานบน overlays เพื่อให้ระบบจัดการ dependency ให้คุณโดยอัตโนมัติ:
zap refresh
zap install-overlay develop
zap update-overlay -aนั่นคือคำสั่งที่ Tribblix เผยแพร่ ซึ่งทำงานบนฮาร์ดแวร์หรือ hypervisor ที่คุณควบคุมเอง Tribblix ไม่ใช่สิ่งที่คุณจะพบในรูปแบบ one-click image ในแผงควบคุม VPS ทั่วไป SmartOS เป็นข้อยกเว้นในบรรดาระบบ illumos โดย MNX ซึ่งเป็นบริษัทที่รับช่วงต่อจาก Joyent ได้เสนอ "ตัวเลือกของ Linux, FreeBSD หรือ SmartOS" ผ่านแผงควบคุมคลาวด์ของตนเอง (ตรวจสอบเมื่อวันที่ 12 ตุลาคม 2026) นอกเหนือจากนั้น การพบ image ของ illumos ในรายการของผู้ให้บริการคลาวด์ถือเป็นเรื่องยาก และช่องว่างดังกล่าวนี่เองคือสถานะที่เป็นจริงของการใช้งาน illumos ในปี 2026
เหตุผลที่ ZFS และ DTrace ยังคงอยู่รอดหลังจาก Solaris
ZFS ออกจาก Solaris แทบจะทันทีหลังจากที่มีการเผยแพร่ซอร์สโค้ด Pawel Jakub Dawidek ได้พอร์ตมันไปยัง FreeBSD ซึ่งเป็นส่วนหนึ่งของระบบมาตั้งแต่ FreeBSD 7.0 ในปี 2008 การพัฒนา ZFS แบบเนทีฟสำหรับ Linux เริ่มต้นขึ้นในปี 2008 และออกรุ่นเสถียรรุ่นแรกในปี 2013 ในช่วงระหว่างปี 2010 ถึง 2013 illumos เป็นผู้ถือครองสำเนาอ้างอิงของซอร์สโค้ด ZFS เนื่องจากซอร์สโค้ดของ Oracle ถูกปิดและพอร์ตอื่นๆ ทั้งหมดจำเป็นต้องมีแหล่งที่มาเพื่อดึงข้อมูล นี่คือคุณค่าที่เป็นรูปธรรมของการทำ fork หากไม่มีสิ่งนี้ พอร์ตต่างๆ จะไม่มีบรรพบุรุษร่วมกันให้ทำการ merge
โครงการ OpenZFS ได้รับการประกาศเมื่อวันที่ 17 กันยายน 2013 เพื่อประสานงานพอร์ตเหล่านั้น โดยมี Matt Ahrens หนึ่งในผู้เขียน ZFS ดั้งเดิมเป็นหนึ่งในผู้ก่อตั้ง OpenZFS 2.0 ถูกปล่อยออกมาเมื่อวันที่ 30 พฤศจิกายน 2020 และบันทึกประจำรุ่นได้ระบุผลลัพธ์ไว้อย่างชัดเจนว่า: "โครงการ ZFS on Linux ได้ถูกเปลี่ยนชื่อเป็น OpenZFS แล้ว! ขณะนี้ทั้ง Linux และ FreeBSD ได้รับการสนับสนุนจาก repository เดียวกัน ทำให้ฟีเจอร์ทั้งหมดของ OpenZFS สามารถใช้งานได้บนทั้งสองแพลตฟอร์ม" FreeBSD 13.0 ได้ยกเลิกการใช้สำเนาที่ดัดแปลงมาจาก illumos ของตนเองและย้ายไปใช้ tree ที่ใช้ร่วมกันนั้น
ZFS ทั้งสองสายได้แยกออกจากกันในระดับดิสก์ สายที่เป็นโอเพนซอร์สหยุดอยู่ที่ pool version 28 ซึ่งเป็นเวอร์ชันสุดท้ายที่ Sun เผยแพร่ และเปลี่ยนไปใช้ feature flags แบบระบุชื่อภายใต้เวอร์ชันตัวแทน 5000 ดังนั้น pool จะประกาศว่าฟีเจอร์ใดที่มันใช้งานอยู่แทนที่จะใช้ตัวเลขเพียงตัวเดียว Oracle ยังคงเพิ่มหมายเลขเวอร์ชันของตนเองต่อไปภายใต้ซอร์สโค้ดที่ปิดไว้ pool ที่ถูกสร้างขึ้นเกินเวอร์ชัน 28 ในฝั่งหนึ่งจะไม่สามารถนำเข้า (import) ในอีกฝั่งหนึ่งได้ หากคุณกำลังเลือกว่าจะใช้งานที่ใด พฤติกรรมของ OpenZFS บน FreeBSD เมื่อเปรียบเทียบกับ Linux จะครอบคลุมถึงสิ่งที่แตกต่างกันจริงๆ ระหว่างโฮสต์ทั้งสอง
DTrace เดินทางในระยะทางที่สั้นกว่า มันเป็นมาตรฐานใน FreeBSD ภายในเวอร์ชัน 7.1 ในเดือนมกราคม 2009 และ Apple ได้เพิ่มมันเข้ามาใน Mac OS X 10.5 Leopard Oracle ได้ปล่อยซอร์สโค้ดเคอร์เนลของ DTrace ภายใต้สัญญาอนุญาต GPLv2 ในเดือนสิงหาคม 2017 ซึ่งเป็นการเปลี่ยนแปลงที่ได้รับความสนใจอย่างกว้างขวางในเดือนกุมภาพันธ์ 2018 ซึ่งช่วยขจัดอุปสรรคด้านสัญญาอนุญาตสำหรับ Linux แต่มันไม่เคยถูกรวมเข้ากับ mainline kernel การทำ tracing บน Linux ในทางปฏิบัติจะทำงานบน eBPF และ bpftrace ได้มอบภาษาสำหรับเขียนสคริปต์ที่มีความใกล้เคียงกับภาษา D ของ DTrace อย่างตั้งใจ
รูปแบบนี้คือประเด็นทั่วไป ไม่ใช่ประเด็นของ Solaris เพียงอย่างเดียว Sun เผยแพร่ ZFS และ DTrace ภายใต้สัญญาอนุญาตที่อนุญาตให้ผู้อื่นเก็บสำเนาและพัฒนาต่อได้ เมื่อบริษัทที่เป็นผู้จ่ายเงินสำหรับงานนั้นหยุดดำเนินการ งานนั้นก็ยังคงดำเนินต่อไปได้เนื่องจากโค้ดอยู่ใน tree อื่นและอยู่ในมือของผู้อื่นแล้ว ส่วนต่างๆ ของ Solaris ที่ไม่เคยถูกเปิดเผย รวมถึงไบนารีแบบปิดที่ illumos ต้องเขียนขึ้นใหม่ ได้หายไปพร้อมกับบริษัท นี่คือสิ่งที่การทำโอเพนซอร์สเปลี่ยนแปลง และเป็นกลไกเดียวกันที่อยู่เบื้องหลัง วิธีการที่ Linux distributions สืบทอดต่อกันมา
คุณควรใช้งาน illumos บน VPS หรือไม่
สำหรับคนส่วนใหญ่ คำตอบคือไม่ และเนื้อหาข้างต้นไม่ใช่คำแนะนำให้ทดลองใช้งาน illumos รองรับฮาร์ดแวร์ในวงจำกัด เนื่องจากชุดไดรเวอร์ที่มีอยู่คือสิ่งที่ Sun เคยรองรับรวมกับสิ่งที่ชุมชนขนาดเล็กพัฒนาขึ้นมาภายหลัง ผู้ให้บริการ VPS ส่วนใหญ่เผยแพร่เฉพาะอิมเมจ Linux และ BSD เท่านั้น ข้อยกเว้นคือ MNX ซึ่งรับช่วงต่อ SmartOS จาก Joyent และให้บริการ SmartOS ควบคู่ไปกับ Linux และ FreeBSD ในระบบคลาวด์ของตนเอง สำหรับที่อื่น การติดตั้ง illumos มักหมายถึงการอัปโหลด ISO ของคุณเองไปยังผู้ให้บริการที่อนุญาตให้ใช้ custom image จากนั้นจึงตรวจสอบว่า virtual disk และอุปกรณ์เครือข่ายได้รับการจดจำหรือไม่ ซอฟต์แวร์จากภายนอกต้องมาจากชุดแพ็กเกจของดิสทริบิวชันนั้นๆ หรือมาจากการคอมไพล์ด้วยตนเอง
มีเหตุผลที่สมเหตุสมผลในการใช้งานระบบนี้ เช่น ภาระงานบน Solaris ที่คุณจำเป็นต้องรักษาไว้, การใช้งาน zones ที่คุณดำเนินการอยู่แล้ว หรือความสนใจในการศึกษาซอร์สโค้ด ดิสทริบิวชันที่ระบุไว้ข้างต้นมีการดูแลรักษาและมี mailing list สำหรับตอบคำถาม ซึ่งเป็นคนละเรื่องกับการเลือกใช้เป็นค่าเริ่มต้นสำหรับเซิร์ฟเวอร์ใหม่
หากคุณมาที่นี่เพราะต้องการ ZFS คุณไม่จำเป็นต้องใช้ illumos เพื่อให้ได้มาซึ่งสิ่งนั้น ให้รัน OpenZFS บน Linux หรือ FreeBSD ซึ่งมีการจัดทำแพ็กเกจ มีเอกสารประกอบ และมีการใช้งานอย่างแพร่หลาย หากคุณกำลังเปรียบเทียบฝั่ง BSD ในตระกูลเดียวกันสำหรับเซิร์ฟเวอร์ การเปรียบเทียบเชิงปฏิบัติระหว่าง Linux และ FreeBSD ในฐานะแพลตฟอร์มเซิร์ฟเวอร์ จะครอบคลุมถึงสิ่งที่เปลี่ยนแปลงไปในการปฏิบัติงานประจำวัน illumos คือจุดเริ่มต้นของเครื่องมือเหล่านี้ และการทราบที่มาของมันจะช่วยอธิบายพฤติกรรมหลายอย่างได้เป็นอย่างดี เริ่มต้นจากเหตุผลที่ว่าทำไม zpool และ zfs ถึงให้ความรู้สึกที่ไม่เหมือนกับส่วนอื่นๆ ของ stack การจัดเก็บข้อมูลบน Linux เลย
FAQ
illumos เหมือนกับ OpenSolaris หรือไม่
ไม่เหมือนกัน OpenSolaris เป็นโครงการและดิสทริบิวชันของ Sun ซึ่งต่อมาตกไปอยู่กับ Oracle และ Oracle ได้ยุติโครงการลงในปี 2010 ส่วน illumos เป็นโครงการแยกที่ประกาศเมื่อวันที่ 3 สิงหาคม 2010 โดยสร้างขึ้นจากซอร์สโค้ดส่วนแกนกลางของ OpenSolaris เวอร์ชันสุดท้ายที่เผยแพร่ หรือที่เรียกว่า OS/Net consolidation งานแรกของโครงการคือการแทนที่คอมโพเนนต์แบบปิดที่เป็นไบนารีซึ่ง OpenSolaris เคยใช้ เช่น libc_i18n, NFS lock manager, cryptographic framework และไดรเวอร์อีกหลายตัว โค้ดของ illumos ไม่มีส่วนใดที่มาจาก Oracle หลังจากปี 2010 เนื่องจาก Oracle หยุดการเผยแพร่ซอร์สโค้ดดังกล่าว
ทำไม Linux ถึงรวม ZFS ไว้ในเคอร์เนลไม่ได้
เนื่องจากสัญญาอนุญาตไม่สอดคล้องกัน ZFS ใช้สัญญาอนุญาต CDDL ซึ่ง Free Software Foundation จัดว่าเป็นสัญญาอนุญาตซอฟต์แวร์เสรีที่ไม่เข้ากันกับ GPL โดยเป็นความไม่เข้ากันที่ CDDL รับสืบทอดมาจาก MPL 1.1 ส่วน Linux kernel ใช้สัญญาอนุญาต GPLv2 ผลในทางปฏิบัติคือ OpenZFS บน Linux จึงต้องทำงานเป็น kernel module แบบ out-of-tree ซึ่งมักจะถูกคอมไพล์ด้วย DKMS ทุกครั้งที่มีการติดตั้งเคอร์เนลใหม่ หรือติดตั้งผ่านแพ็กเกจโมดูลที่คอมไพล์ไว้ล่วงหน้า แม้จะทำงานได้ดี แต่โมดูลจำเป็นต้องถูกคอมไพล์ใหม่ทุกครั้งที่มีเคอร์เนลเวอร์ชันใหม่ ทำให้การรองรับเคอร์เนลเวอร์ชันล่าสุดอาจล่าช้าไปหลายวันหรือหลายสัปดาห์
Oracle Solaris ยังได้รับการสนับสนุนอยู่หรือไม่
ยังคงได้รับการสนับสนุน Oracle Solaris 11.4 เปิดตัวเมื่อวันที่ 28 สิงหาคม 2018 และยังคงเป็นเวอร์ชันปัจจุบันที่ได้รับอัปเดตผ่าน support repository ในเดือนกรกฎาคม 2026 นโยบายการสนับสนุนตลอดอายุการใช้งานของ Oracle ซึ่งปรับปรุงล่าสุดสำหรับเวอร์ชัน 11.4 ในเดือนมกราคม 2024 ระบุว่า Premier Support จะครอบคลุมถึงปี 2031 และ Extended Support ถึงปี 2037 ทั้งนี้ Oracle ได้เลิกจ้างทีมงาน Solaris ส่วนใหญ่เมื่อวันที่ 2 กันยายน 2017 และนับแต่นั้นมา 11.4 ก็ได้รับเพียงการอัปเดตผ่าน support repository เท่านั้น ไม่มีการออกเวอร์ชันหลักใหม่ และไม่มีการเผยแพร่ซอร์สโค้ดเต็มรูปแบบในลักษณะเดียวกับที่ OpenSolaris เคยทำ
ฉันสามารถติดตั้ง illumos บน VPS ได้หรือไม่
ทำได้เป็นบางครั้ง แต่หาได้ยากจากรายการอิมเมจของผู้ให้บริการ MNX ซึ่งเป็นผู้ดูแล SmartOS มีบริการ SmartOS ให้เลือกจากแผงควบคุมคลาวด์ของตนเอง สำหรับผู้ให้บริการรายอื่น โดยทั่วไปคุณต้องเลือกรายที่อนุญาตให้แนบไฟล์ ISO แบบกำหนดเองและเข้าถึงผ่านคอนโซลได้ จากนั้นจึงตรวจสอบว่า virtual disk และ network driver ใน illumos รองรับอุปกรณ์ของไฮเปอร์ไวเซอร์นั้นๆ หรือไม่ OpenIndiana และ Tribblix มักเป็นตัวเลือกเริ่มต้นสำหรับการติดตั้งทั่วไป ส่วน SmartOS นั้นถูกออกแบบมาให้เป็นโฮสต์สำหรับไฮเปอร์ไวเซอร์มากกว่าที่จะเป็นเกสต์ที่คุณติดตั้งเอง ควรทดสอบในเครื่องเสมือน (virtual machine) ในเครื่องของคุณก่อนที่จะชำระเงินค่าบริการใดๆ
DTrace ยังน่าเรียนรู้หรือไม่หากฉันใช้เพียง Linux
แนวคิดของ DTrace สามารถนำไปประยุกต์ใช้ได้แม้ว่าตัวเครื่องมือส่วนใหญ่จะใช้ไม่ได้ก็ตาม Oracle ได้เผยแพร่โค้ดเคอร์เนลของ DTrace ภายใต้สัญญาอนุญาต GPLv2 ในเดือนสิงหาคม 2017 และดูแลพอร์ตสำหรับ Oracle Linux แต่โค้ดดังกล่าวไม่เคยถูกรวมเข้ากับ mainline kernel และในทางปฏิบัติการทำ tracing บน Linux จะใช้ eBPF แทน ภาษาที่ bpftrace ใช้ถูกออกแบบมาให้มีลักษณะคล้ายกับภาษา D ของ DTrace ดังนั้นแนวคิดเรื่อง probes, predicates และ aggregations จึงมีความหมายเหมือนกันทั้งสองระบบ การเรียนรู้วิธีคิดแบบ DTrace จะช่วยให้คุณอ่านสคริปต์ bpftrace ได้เข้าใจตั้งแต่ครั้งแรกที่เห็น