- WSL9x รันเคอร์เนล Linux 6.19 ที่ได้รับการดัดแปลงภายในระบบปฏิบัติการ Windows 95, 98 และ ME โดยไม่มีการจำลองเสมือนแบบดั้งเดิมหรือการบูตแบบคู่
- โครงการนี้อาศัยเคอร์เนลที่ได้รับการแก้ไข ไดรเวอร์ VxD และไคลเอ็นต์ DOS ที่ทำงานร่วมกันโดยใช้ API ของ Windows 9x ราวกับว่าเป็น syscall ของ Linux
- เป็นโครงการทดลองโอเพนซอร์สที่ไม่เสถียรและไม่มีส่วนติดต่อผู้ใช้แบบกราฟิก ออกแบบมาเพื่อการประมวลผลแบบย้อนยุค การเรียนรู้ และการเก็บรักษาข้อมูลดิจิทัล
- WSL9x แสดงให้เห็นถึงศักยภาพของการทำงานร่วมกันกับระบบเดิม และคุณค่าของความรู้เชิงลึกเกี่ยวกับระบบปฏิบัติการ

มีคนคนหนึ่งจัดการเรื่องนี้ได้สำเร็จ การบูตเคอร์เนล Linux รุ่นใหม่ภายใน Windows 95 ฟังดูเหมือนเรื่องตลกที่เล่ากันในงานประชุมแฮกเกอร์ แต่ที่จริงแล้วมันเป็นเรื่องจริง สามารถใช้งานได้ และเผยแพร่เป็นโครงการโอเพนซอร์ส WSL9x ไม่ใช่ของเล่นที่สร้างจากสคริปต์สี่ตัว แต่เป็นผลลัพธ์ของ... หกปีแห่งการทำงานอย่างหนัก จากนักพัฒนาที่มุ่งมั่นที่จะนำแนวคิดของ WSL มาสู่ตระกูลระบบที่ Microsoft ละทิ้งไปเมื่อหลายสิบปีก่อน
หากคุณเคยคิดว่ามันเป็นไปไม่ได้ ใช้งาน Linux บน Windows 95, 98 หรือ ME โดยไม่ต้องใช้เครื่องเสมือน (Virtual Machine)WSL9x พิสูจน์ให้เห็นตรงกันข้ามอย่างสิ้นเชิง อย่างไรก็ตาม อย่าคาดหวังว่ามันจะเป็นเครื่องมือสำหรับการผลิตที่สมบูรณ์แบบหรือทดแทน WSL2 ได้: นี่คือ... ความสำเร็จทางวิศวกรรมคอมพิวเตอร์ย้อนยุคโดยธรรมชาติแล้วมันไม่เสถียร ขาดสภาพแวดล้อมแบบกราฟิก และมีข้อจำกัดทางเทคนิคมากมาย แต่ก็น่าสนใจสำหรับผู้ที่ชื่นชอบการทำงานภายในของระบบปฏิบัติการ
WSL9x คืออะไร และใครอยู่เบื้องหลังโครงการนี้?

WSL9x ซึ่งเป็นตัวย่อของ Windows 9x Subsystem for Linuxนี่คือโปรเจ็กต์โอเพนซอร์สที่สร้างขึ้นโดยนักพัฒนาและแฮกเกอร์ชื่อ Hailey Somerville (หรือที่รู้จักกันในชื่อ hails) เป้าหมายของมันคือการอนุญาตให้... เคอร์เนล Linux เวอร์ชัน 6.19 ที่ได้รับการแก้ไข มันทำงานร่วมกันได้ภายใน Windows 95, Windows 98 และ Windows ME โดยนำ API ของระบบเก่าของ Microsoft มาใช้ซ้ำราวกับว่าเป็นส่วนประกอบพื้นฐานของระบบ Linux
ผู้เขียนเองได้นำเสนอเรื่องนี้ไว้ดังนี้ หนึ่งในกลอุบายที่ดีที่สุดของเขาและด้วยเหตุผลที่ดี: การทำให้ Linux และ Windows 9x ใช้โปรเซสเซอร์เดียวกัน ระดับสิทธิ์เดียวกัน และส่วนหนึ่งของการจัดการหน่วยความจำร่วมกัน โดยไม่ต้องใช้การจำลองเสมือนแบบดั้งเดิมหรือการบูตแบบคู่ ถือเป็นความสำเร็จทางเทคนิคอย่างแท้จริง เราไม่ได้พูดถึงการจำลองแบบ DOSBox หรือเครื่องเสมือนแบบทั่วไป แต่เป็น... ระบบย่อยแบบ WSL ที่ปรับให้เข้ากับ Windows 9x.
ซอร์สโค้ดได้รับการเผยแพร่บน Codeberg ในที่เก็บข้อมูล wsl9xภายใต้ใบอนุญาต GPL-3 โครงสร้างโค้ดแสดงให้เห็นการคอมมิตประมาณ 33 ครั้งบนสาขาหลัก โดยมีการผสมผสานระหว่างภาษา C, แอสเซมเบลอร์ i386 และไฟล์สร้างโปรแกรมบางส่วน ในไฟล์ README เฮลีย์ได้ทิ้งวลีหนึ่งไว้ซึ่งแพร่กระจายไปทั่วชุมชนอย่างรวดเร็ว: “เขียนขึ้นโดยปราศจาก AI อย่างภาคภูมิใจ”เป็นการประกาศเจตจำนงท่ามกลางยุคที่โปรแกรมเมอร์ได้รับความช่วยเหลือจากแบบจำลองเชิงสร้างสรรค์
WSL9x ยังเป็นวิวัฒนาการตามธรรมชาติของการทดลองก่อนหน้านี้ของเฮลีย์ที่เรียกว่า โดสลินุกซ์ซึ่งเขาได้ประสบความสำเร็จในการเรียกใช้ไบนารีของ Linux บน DOS โดยใช้ตัวแปลการเรียกใช้ระบบแล้ว งานเริ่มต้นนั้นเป็นพื้นฐานทางแนวคิดและเทคนิคสำหรับการก้าวข้ามจาก DOS ไปสู่ Windows 9x และสร้างระบบย่อยที่มีความทะเยอทะยานมากขึ้น
การเปิดตัวโครงการนี้ไม่ได้รับการสนับสนุนจากบริษัทใหญ่ใด ๆ เฮลีย์ประกาศเรื่องนี้ด้วยข้อความสั้น ๆ บนระบบ Mastodon ของเขา โดยเชื่อมโยงไปยังคลังเก็บโค้ด Codeberg ภายในเวลาไม่กี่ชั่วโมง ข่าวนี้ขึ้นหน้าหนึ่งของ Hacker Newsได้รับคะแนนสะสมมากกว่า 700 คะแนนและคอมเมนต์มากกว่า 160 ข้อความ และกลายเป็น "โปรเจกต์ย้อนยุคแห่งปี" สำหรับแฟน ๆ ระบบคลาสสิกจำนวนมาก
WSL กับ WSL9x: แนวคิดเดียวกัน แต่บริบทแตกต่างกันอย่างสิ้นเชิง

เพื่อให้เข้าใจว่าทำไม WSL9x ถึงได้รับความสนใจอย่างมาก เราควรเปรียบเทียบวิธีการของมันกับวิธีการของ... WSL อย่างเป็นทางการของ Microsoftใน Windows เวอร์ชันปัจจุบัน (10 และ 11) WSL ถูกนำมาใช้ในปี 2016 ในฐานะเลเยอร์ความเข้ากันได้ที่ช่วยให้สามารถใช้งานร่วมกันได้ เรียกใช้ไบนารีของ Linux โดยตรงบนเคอร์เนล NTโดยเริ่มจากการแปลคำสั่งระบบ (WSL1) และต่อมาได้รวมเคอร์เนล Linux อย่างสมบูรณ์ผ่าน Hyper-V (WSL2)
WSL อาศัยระบบนิเวศที่ทันสมัย: เคอร์เนล NT ที่แข็งแกร่ง หน่วยความจำที่ได้รับการปกป้องอย่างเหมาะสม และรองรับการจำลองเสมือนไดรเวอร์ที่ทันสมัย ระบบรักษาความปลอดภัยที่เหมาะสม และ API จำนวนมากที่ออกแบบมาเพื่อโต้ตอบกับระบบอื่นๆ ทั้งหมดนี้หมายความว่าในปัจจุบันเราสามารถเรียกใช้ระบบปฏิบัติการ Linux เวอร์ชันสมบูรณ์บน Windows 11 ใช้แอปพลิเคชันคอนโซล และแม้แต่สภาพแวดล้อมแบบกราฟิกและเครื่องมือพัฒนาที่ซับซ้อนได้โดยไม่ต้องออกจากเดสก์ท็อป
ในกรณีของ WSL9x สถานการณ์กลับแตกต่างออกไปอย่างสิ้นเชิง Windows 95, 98 และ ME อยู่ในสาขาเดียวกัน หน้าต่าง 9xเป็นระบบที่พัฒนาต่อจาก MS-DOS และ Windows 3.1 รุ่นเก่า การออกแบบเป็นแบบไฮบริด 16/32 บิต โดยมี... แบบจำลองสิทธิพิเศษแบบสหกรณ์ และสถาปัตยกรรมหน่วยความจำที่ค่อนข้างเปราะบาง ไม่มีตารางตัวอธิบายการขัดจังหวะที่ครอบคลุมเท่าใน NT ไม่มีกลไกความปลอดภัยที่ทันสมัย และไม่มีการแยกกระบวนการอย่างจริงจัง
ในการนี้จะเพิ่มว่า ระบบปฏิบัติการ Windows 9x ยุติการสนับสนุนอย่างเป็นทางการมานานกว่า 20 ปีแล้วระบบนี้ไม่ได้รับการอัปเดตแพทช์ ขาดไดรเวอร์รุ่นใหม่ และโดยทั่วไปแล้วถือว่าเป็นระบบที่ล้าสมัยในแง่ของความปลอดภัยและการบำรุงรักษา ดังนั้น แนวคิดที่จะนำระบบย่อย Linux มาใช้กับระบบตระกูลนี้จึงดูเหมือนเป็นไปไม่ได้ในแวบแรก หรืออย่างน้อยก็ซับซ้อนเกินไปสำหรับนักพัฒนาเพียงคนเดียว
แต่ถึงกระนั้น WSL9x ก็สามารถจำลองจิตวิญญาณของ WSL ได้: สภาพแวดล้อมเทอร์มินัลที่ผสานรวมเข้ากับ Windows จากระบบนี้ เราสามารถใช้งานเครื่องมือของ Linux ได้โดยไม่ต้องใช้เครื่องเสมือนแบบดั้งเดิมหรือการบูตแบบคู่ ความคล้ายคลึงกันอยู่ที่ปรัชญา "Linux อยู่ร่วมกับ Windows ได้" ส่วนความแตกต่างอยู่ที่ประเภทของการบูรณาการ เทคนิคระดับต่ำที่ใช้ และข้อจำกัดทางปฏิบัติที่สำคัญ
WSL9x ทำงานอย่างไรจากภายใน: ส่วนประกอบหลักสามส่วน
สถาปัตยกรรมของ WSL9x สามารถสรุปได้เป็นสามส่วนหลัก โดยแต่ละส่วนช่วยแก้ปัญหาส่วนหนึ่งของปริศนา ติดตั้ง Linux บน Windows 9x โดยไม่ต้องใช้เวอร์ชวลไลเซชัน:
- เคอร์เนล Linux 6.19 ที่ได้รับการแก้ไขแล้ว เพื่อสื่อสารกับ API ของ Windows 9x
- ไดรเวอร์ VxD ซึ่งทำหน้าที่เป็นสะพานเชื่อมระหว่าง Linux และ Windows ในโหมดเคอร์เนล
- ไคลเอนต์ในโหมดผู้ใช้ (wsl.com) เป็นโปรแกรม DOS ขนาดเล็ก 16 บิต ที่ให้คุณใช้งานเทอร์มินัลได้
บล็อคแรกเป็น เคอร์เนล Linux 6.19 ที่ได้รับการดัดแปลงจาก User-Mode Linux (UML)UML เป็นรูปแบบหนึ่งของเคอร์เนลที่โดยทั่วไปทำงานในพื้นที่ผู้ใช้บนระบบ POSIX โดยแปลงการเรียกใช้ระบบ (syscalls) ของมันไปเป็นการเรียกใช้ระบบของโฮสต์ Hailey ได้นำแนวทางนั้นมาปรับเปลี่ยน: แทนที่จะแมปไปยัง POSIX การเรียกใช้เคอร์เนลของ Linux จะถูกเปลี่ยนเส้นทางไปยัง API เฉพาะของ Windows 9xแทนที่พฤติกรรมที่คาดหวังในสภาพแวดล้อมสมัยใหม่
เคอร์เนลที่ได้จะถูกคอมไพล์ดังนี้ วีเอ็มลินุกซ์เอลฟ์แต่ต่างจาก UML แบบคลาสสิก มันไม่ได้อยู่แค่ในพื้นที่ของผู้ใช้: มันจะไปทำงานในส่วนอื่นแทน วงแหวนที่ 0 ซึ่งเป็นระดับสิทธิ์เดียวกับเคอร์เนลของ Windowsนี่หมายความว่าไม่มีการแยกส่วนที่แท้จริงระหว่างผู้ใช้งานและผู้ให้บริการ และความล้มเหลวอย่างร้ายแรงในส่วนใดส่วนหนึ่งก็สามารถทำให้ระบบทั้งหมดล่มสลายได้โดยไม่ลังเล
ชิ้นที่สองคือ ตัวควบคุม VxDนี่คือรูปแบบไดรเวอร์ดั้งเดิมจากยุค Windows 9x ไดรเวอร์นี้มีหน้าที่รับผิดชอบในการ... โหลดไฟล์ vmlinux.elf จากดิสก์เริ่มต้นสภาพแวดล้อมที่จำเป็นและจัดการการสื่อสารระหว่างเคอร์เนล Linux กับ Windows เอง นี่คือหนึ่งในกลเม็ดที่ชาญฉลาดที่สุดของโครงการนี้: วิธีจัดการกับคำสั่งระบบ Linux บนแพลตฟอร์มที่ในทางทฤษฎีแล้วไม่รู้จักคำสั่งเหล่านั้นเลย
ระบบปฏิบัติการ Linux บน i386 นั้นใช้ระบบขัดจังหวะ (interrupts) มาโดยตลอด 0x80 เพื่อเรียกใช้ syscalls ปัญหาคือ Windows 9x มันไม่มีตารางตัวอธิบายการขัดจังหวะ (IDT) ที่มีขนาดใหญ่เพียงพอ รวมถึงตัวจัดการปกติสำหรับอินเตอร์รัปต์นั้นด้วย WSL9x เอาชนะอุปสรรคนี้ได้โดยการใช้ประโยชน์จาก ตัวควบคุมความผิดพลาดในการป้องกันทั่วไป (GPF)มีการติดตั้งตัวจัดการพิเศษที่ดักจับคำสั่งที่ทำให้เกิดความล้มเหลวในการป้องกัน ตรวจจับเมื่อเป็นการพยายามเข้าถึงค่า int 0x80 และแทนที่จะปล่อยให้ระบบล่ม ตัวจัดการนี้จะเปลี่ยนเส้นทางการขัดจังหวะ "ปลอม" นั้นไปยังเคอร์เนลของ Linux
ดังนั้น เมื่อกระบวนการของ Linux ต้องการทำบางสิ่งบางอย่าง (เช่น เปิดไฟล์ จัดสรรหน่วยความจำ ฯลฯ) มันจะสร้าง syscall ซึ่งใน Windows 9x จะทำให้เกิด... ความล้มเหลวในการป้องกันทั่วไปไดรเวอร์ VxD จะดักจับข้อมูลและตีความบริบท เลื่อนตัวชี้คำสั่งไปข้างหน้า เพื่อป้องกันไม่ให้ CPU ค้าง และแปลงคำสั่งนั้นให้เป็นการดำเนินการที่เคอร์เนลของ Linux สามารถประมวลผลได้จริง โดยใช้ API ของ Win9x ในการประมวลผลส่วนที่ซับซ้อนกว่า
นอกจากนี้ VxD ยังมีหน้าที่รับผิดชอบในการจัดการ ข้อผิดพลาดของหน้า และเหตุการณ์อื่นๆ ในพื้นที่ผู้ใช้ที่จำเป็นต้องส่งต่อไปยังเคอร์เนลของลินุกซ์ เนื่องจาก Windows 9x ไม่มีการจัดการหน่วยความจำที่ซับซ้อนมากนัก กลไกทั้งหมดนี้จึงทำงานคล้ายกับการประสานกันของข้อผิดพลาดที่ควบคุมได้ ซึ่งไดรเวอร์จะเปลี่ยนทิศทางไปสู่พฤติกรรมที่ลินุกซ์คาดหวัง
องค์ประกอบที่สามของ WSL9x คือ ไคลเอ็นต์ในพื้นที่ผู้ใช้, wsl.comเป็นโปรแกรม DOS ขนาดเล็ก 16 บิต ที่ทำงานในหน้าต่างคำสั่งของ Windows 95/98/ME และทำหน้าที่เป็น TTY สำหรับเคอร์เนล Linux กล่าวอีกนัยหนึ่งคือ มีหน้าที่รับผิดชอบในการ... ส่งผ่านข้อความแจ้งเตือนและอินพุต/เอาต์พุต มุ่งสู่ระบบย่อยลินุกซ์ โดยมอบประสบการณ์การใช้งานที่คล้ายคลึงกับคำสั่ง wsl.exe ใน Windows รุ่นใหม่ แต่ใช้งานบนคอนโซล DOS แบบดั้งเดิม
ประสบการณ์การใช้งาน: ระบบปฏิบัติการ Linux ที่ไม่มีส่วนติดต่อผู้ใช้แบบกราฟิก บนระบบ Windows ยุค 90
ผลลัพธ์ที่เป็นรูปธรรมของการจัดเตรียมทั้งหมดนี้ก็คือ คุณสามารถอยู่ใน... เดสก์ท็อป Windows 95 หรือ 98 แบบคลาสสิกเปิดหน้าต่าง MS-DOS แล้วเข้าถึงผ่าน wsl.com เทอร์มินัล Linux จริงคุณจะไม่เห็นสภาพแวดล้อมเดสก์ท็อป GNOME, KDE หรือแอปพลิเคชันกราฟิกสมัยใหม่ ทุกอย่างทำผ่านบรรทัดคำสั่ง ราวกับว่าคุณกำลังเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลแบบเรียบง่าย
ผู้เขียนเองเน้นย้ำว่า WSL9x ไม่มีอินเทอร์เฟซกราฟิกสำหรับ Linuxนอกจากนี้ยังไม่ได้ออกแบบมาเพื่อใช้งานแอปพลิเคชันบนเดสก์ท็อป การโต้ตอบจะทำผ่านเทอร์มินัลเท่านั้น ซึ่งหมายความว่าเพื่อให้ได้ประโยชน์สูงสุด คุณจำเป็นต้องมีความเข้าใจพื้นฐานเกี่ยวกับคำสั่ง เชลล์ และเครื่องมือ GNU แบบดั้งเดิม นี่ไม่ใช่โครงการสำหรับผู้เริ่มต้นใช้งาน Linux แต่เหมาะสำหรับผู้ที่คุ้นเคยกับการใช้ bash, ls, grep หรือ make อยู่แล้ว
ในสถานะปัจจุบัน WSL9x อนุญาตให้ทำงานร่วมกับ โปรแกรมยูทิลิตี้พื้นฐานและโปรแกรมคอนโซลอื่นๆ อีกเล็กน้อยขึ้นอยู่กับว่าฮาร์ดแวร์ ระบบโฮสต์ และการครอบคลุมการเรียกใช้ระบบเอื้ออำนวยหรือไม่ ระบบนี้ไม่ได้ออกแบบมาเพื่อใช้งานคอนเทนเนอร์ ตัวจัดการกระบวนการ หรือบริการขนาดใหญ่ อันที่จริง สถาปัตยกรรม i386 เองและคุณสมบัติที่ขาดหายไปทำให้การใช้งาน Docker, Kubernetes หรือสแต็กที่คล้ายกันบนระบบนี้แทบเป็นไปไม่ได้เลย
การติดตั้งและการใช้งานก็ไม่ง่ายเช่นกัน: คุณต้องมี ติดตั้งอิมเมจ Windows 95, 98 หรือ ME ไว้แล้วจำเป็นต้องมีสภาพแวดล้อมการสร้างโปรแกรมที่มีคอมไพเลอร์แบบครอสโอเวอร์ i386-linux-musl และ OpenWatcom v2 และคุณต้องปฏิบัติตามคำแนะนำในไฟล์ README อย่างระมัดระวัง ไม่มีตัวติดตั้งอัตโนมัติหรือไฟล์ ISO ที่พร้อมให้ดาวน์โหลดและคลิกใช้งานได้ทันที เนื่องจากข้อจำกัดทางกฎหมายเกี่ยวกับการแจกจ่าย Windows 9x
วิธีการที่พบได้บ่อยที่สุดคือการใช้ โปรแกรมจำลองและเครื่องเสมือนที่เชี่ยวชาญในระบบดั้งเดิมเช่น 86Box, PCem หรือ DOSBox-X ที่รองรับ Windows 9x อย่างเหมาะสม ตัวเลือกนี้สมเหตุสมผลกว่าการสร้างพีซีจริงจากยุค 90 และยังเพิ่มความปลอดภัยอีกด้วย: หากมีสิ่งผิดปกติเกิดขึ้น เฉพาะเครื่องจำลองเท่านั้นที่จะเสียหาย ทำให้การกู้คืนทำได้ง่ายขึ้นด้วยเครื่องมือต่างๆ เช่น กู้ภัยซิลล่า.
ความเสถียร ความปลอดภัย และข้อจำกัดของ WSL9x
จากมุมมองเชิงปฏิบัติแล้ว WSL9x มีข้อดีเหนือสิ่งอื่นใด การทดลองทางวิศวกรรมเฮลีย์เตือนอย่างชัดเจนว่าเคอร์เนล Linux ของแขกทำงานอยู่ใน วงแหวนที่ 0 มีสิทธิ์เท่าเทียมกับเคอร์เนลของ Windowsนั่นหมายความว่า หากส่วนใดส่วนหนึ่งในสองส่วนนี้ล้มเหลวอย่างร้ายแรง อีกส่วนหนึ่งก็มีโอกาสสูงที่จะล้มเหลวตามไปด้วย ส่งผลให้ระบบปฏิบัติการทั้งหมดล่มและแสดงหน้าจอสีฟ้า หรือเกิดการขัดข้องอย่างสมบูรณ์
นอกจากนี้ Windows 9x ยัง... มันไม่ได้ขึ้นชื่อเรื่องความทนทานสักเท่าไหร่รูปแบบหน่วยความจำ การขาดการแยกกระบวนการอย่างเข้มงวด และการพึ่งพาไดรเวอร์ VxD ที่ไม่เป็นมิตรในอดีต หมายความว่าส่วนประกอบโหมดเคอร์เนลใหม่ใด ๆ ก็มีศักยภาพที่จะทำให้เกิดการขัดข้อง การเสียหายของข้อมูล หรือพฤติกรรมที่ไม่สามารถคาดเดาได้ WSL9x ก็ไม่มีข้อยกเว้น ในความเป็นจริง มันเพิ่มความซับซ้อนขึ้นอย่างมาก
ในแง่ของความปลอดภัย เรากำลังพูดถึงสภาพแวดล้อม ไม่มีการสนับสนุนอย่างเป็นทางการ ไม่มีแพทช์อัปเดตใหม่ และด้วยสแต็กเครือข่ายและไดรเวอร์ที่เต็มไปด้วยช่องโหว่ที่ทราบกันดี การใช้งานเคอร์เนลลินุกซ์สมัยใหม่ในโหมดร่วมมือกันไม่ได้ทำให้ระบบปลอดภัยขึ้นอย่างน่าอัศจรรย์ ในความเป็นจริง มันกลับเปิดช่องทางช่องโหว่เพิ่มเติม เพราะตอนนี้มีโค้ดที่สำคัญกว่าทำงานด้วยสิทธิ์เต็มรูปแบบ
ดังนั้น คำแนะนำที่ชัดเจนคือ ควรใช้ WSL9x เฉพาะในสภาพแวดล้อมการทดสอบหรือการศึกษาเท่านั้นห้ามใช้กับงานที่ละเอียดอ่อนหรือข้อมูลสำคัญเด็ดขาด จุดประสงค์ของมันคือการติดตั้งในเครื่องเสมือน ทดลองใช้งาน เรียนรู้พฤติกรรม ทดสอบคำสั่งและสคริปต์ และพิจารณาว่าเหมาะสมสำหรับการสาธิตทางเทคนิคเท่านั้น ไม่ใช่เครื่องมือที่เสถียรสำหรับการใช้งานประจำวัน
ข้อจำกัดสำคัญอีกประการหนึ่งคือ การครอบคลุมบางส่วนของการโทรเข้าสู่ระบบไม่ใช่ทุกอย่างที่ระบบ Linux 6.19 มาตรฐานคาดหวังว่าจะพบนั้น จะถูกนำไปใช้งานหรือแปลงเป็น API ของ Windows 9x อย่างถูกต้อง และนั่นหมายความว่าโปรแกรมหลายโปรแกรมอาจใช้งานไม่ได้ เกิดข้อผิดพลาดแปลกๆ หรือไม่สามารถเริ่มต้นทำงานได้เลย ธรรมชาติของโครงการนี้หมายความว่า การให้ความสำคัญกับความเข้ากันได้อย่างสมบูรณ์ไม่ใช่เป้าหมายหลัก
ประวัติความเป็นมาโดยย่อ: Windows 95 และความหมกมุ่นกับการรองรับเวอร์ชันเก่า
เสน่ห์ส่วนหนึ่งของ WSL9x อยู่ที่บริบททางประวัติศาสตร์ที่มันดึงมาใช้ Windows 95 ไม่ใช่แค่ "Windows อีกเวอร์ชันหนึ่ง" แต่มันเป็นระบบที่ออกแบบมาเพื่อ... เพื่อเชื่อมช่องว่างระหว่างโลกของ MS-DOS และ Windows 3.1 และแอปพลิเคชัน 32 บิตใหม่ที่มีอินเทอร์เฟซกราฟิกที่ทันสมัย สิ่งหนึ่งที่ Microsoft ให้ความสำคัญอย่างชัดเจนคือ การทำให้ทุกอย่างจากเวอร์ชันก่อนหน้ายังคงทำงานได้ดีที่สุดเท่าที่จะเป็นไปได้
สิ่งนี้สังเกตได้ชัดเจนแม้กระทั่งในขั้นตอนการติดตั้ง Windows 95 เอง ซึ่งไม่ได้ง่ายดายเหมือนในปัจจุบัน การติดตั้งเริ่มต้นที่ MS-DOS ในโหมดข้อความจากนั้นจึงผ่านไป ระบบปฏิบัติการ Windows 3.1 เวอร์ชันที่มีข้อจำกัดมาก ซึ่งทำหน้าที่เสมือนตัวกลางในการตรวจจับฮาร์ดแวร์ คัดลอกไฟล์ และเตรียมสภาพแวดล้อมจนกระทั่งสามารถใช้งานได้ในที่สุด เริ่มต้นใช้งาน Windows 95 เวอร์ชันใหม่ พร้อมเดสก์ท็อปและเมนู Startในทางปฏิบัติ ระบบได้ผ่านขั้นตอนการปรับตัวในหลายแง่มุม เพื่อให้สามารถใช้งานได้กับเครื่องจักรทั้งรุ่นเก่าและรุ่นใหม่ (สำหรับยุคนั้น)
การออกแบบแบบไฮบริดนั้น ซึ่งครั้งหนึ่งเคยเป็นทางออกที่ใช้ได้จริงสำหรับโครงสร้างพื้นฐานด้านไอทีที่ยุ่งเหยิง ก็เป็นเหตุผลที่ทำให้เราสามารถนำเสนอแนวคิดที่แปลกใหม่เช่น WSL9x ได้ในปัจจุบัน เป็นการผสมผสานระหว่าง MS-DOS, สภาพแวดล้อม 16 บิต และเลเยอร์ 32 บิต เมื่อผนวกกับโมเดลไดรเวอร์ที่ยืดหยุ่นมาก (และไม่ปลอดภัย) มันจึงสร้างสภาพแวดล้อมที่เอื้อต่อการแฮ็กอย่างลึกซึ้ง ซึ่งแทรกซึมเข้าไปถึงระดับเคอร์เนลและทำสิ่งที่ไม่สามารถทำได้ในระบบที่ทันสมัยกว่านี้
WSL9x ใช้ประโยชน์จากคุณลักษณะเหล่านั้นอย่างแม่นยำ: ข้อเท็จจริงที่ว่า Windows 9x มีวิธีการจัดการความล้มเหลวในการป้องกันที่ "ผ่อนปรน" กว่าระบบอื่นความเป็นไปได้ในการเชื่อมต่อกับตัวจัดการ GPF การมีอยู่ของไดรเวอร์ VxD ที่สามารถทำได้แทบทุกอย่างใน ring 0 และระบบนิเวศที่การแยกส่วนระหว่างระบบและแอปพลิเคชันไม่ชัดเจนเท่ากับใน Windows รุ่นปัจจุบัน
ในแง่หนึ่ง โครงการนี้เน้นให้เห็นถึง ความสัมพันธ์ที่น่าสนใจของ Windows กับความเข้ากันได้กับเวอร์ชันเก่าแม้แต่ในระบบที่ Microsoft ประกาศว่าล้มเหลวไปแล้วเมื่อหลายปีก่อน ก็ยังมีชิ้นส่วนที่ได้รับการบันทึกไว้และสามารถปรับแต่งได้มากพอที่คนเพียงคนเดียวจะสร้างระบบย่อย Linux ขึ้นมาได้
คอมพิวเตอร์ย้อนยุค ซอฟต์แวร์โอเพนซอร์ส และการกลับมาของเทคโนโลยีวินเทจ
WSL9x ไม่ได้ดึงดูดเฉพาะกลุ่มผู้เชี่ยวชาญด้านคอมพิวเตอร์ระดับเริ่มต้นเท่านั้น แต่ยังเหมาะกับกลุ่มผู้ใช้งานอื่นๆ อีกด้วย แนวโน้มที่กว้างขึ้นของการกลับมาของเทคโนโลยีย้อนยุคในช่วงไม่กี่ปีที่ผ่านมา เราได้เห็นการเติบโตอย่างรวดเร็วของผลิตภัณฑ์ที่ผสมผสานความสวยงามแบบวินเทจเข้ากับฟังก์ชันการใช้งานสมัยใหม่ เช่น เครื่องเล่นแผ่นเสียงที่มีบลูทูธ กล้องถ่ายรูปทันทีที่มีแอปพลิเคชันบนมือถือ เครื่องเล่นเกมคลาสสิกที่มีคลังเพลงดิจิทัล โทรศัพท์ฝาพับที่นำกลับมาผลิตใหม่...
ปรากฏการณ์นี้ไม่ใช่เพียงแค่ความคิดถึงที่ไร้สาระ ผลการวิจัยตลาดชี้ให้เห็นว่า คนรุ่นใหม่แสวงหาประสบการณ์ที่จับต้องได้และไม่ซ้ำซากจำเจมากขึ้น ดีกว่าสิ่งที่ได้รับจากการเชื่อมต่อออนไลน์ตลอดเวลา ในขณะเดียวกัน ผู้ใช้สูงอายุจะรู้สึกสบายใจกับผลิตภัณฑ์เหล่านี้ พวกเขานึกถึง "ช่วงเวลาที่เรียบง่ายกว่า" และรู้สึกคุ้นเคยกับอินเทอร์เฟซที่คุ้นเคย แม้ว่าจะมีเทคโนโลยีปัจจุบันอยู่เบื้องหลังก็ตาม
ในบริบทนั้น โครงการอย่าง WSL9x จึงทำงานในลักษณะที่คล้ายคลึงกัน สิ่งประดิษฐ์ทางโบราณคดีคอมพิวเตอร์ที่ได้รับการพัฒนาไปอีกขั้นถึงแม้ว่ามันอาจจะไม่มีโมเดลธุรกิจหรือกรณีการใช้งานขนาดใหญ่รองรับ แต่พวกมันก็มีคุณค่าทั้งทางด้านวัฒนธรรมและเทคนิค กล่าวคือ มันช่วยรักษาองค์ความรู้ แสดงให้เห็นถึงขอบเขตของการทำงานร่วมกัน และเป็นแรงบันดาลใจให้กับนักพัฒนาซอฟต์แวร์รุ่นใหม่
นอกจากนี้ ข้อเท็จจริงที่ว่า WSL9x ได้รับการเผยแพร่แล้วนั้น โอเพนซอร์สบนแพลตฟอร์มอย่าง Codeberg การเปิดเผยซอร์สโค้ดส่งผลกระทบอย่างชัดเจนต่อชุมชน โค้ดแบบโอเพนซอร์สช่วยให้ผู้อื่นสามารถร่วมแก้ไขข้อบกพร่อง รายงานข้อผิดพลาด เสนอแนวคิดใหม่ หรือศึกษาโครงสร้างเพื่อเรียนรู้ได้ ในยุโรป แพลตฟอร์มอย่าง Codeberg และ GitLab กำลังได้รับความนิยมมากขึ้นในฐานะทางเลือกแทน GitHub ซึ่งช่วยเสริมสร้างระบบนิเวศที่หลากหลายมากขึ้นสำหรับการโฮสต์โครงการต่างๆ
สำหรับสตาร์ทอัพและบริษัทเทคโนโลยี บทเรียนนี้มีสองด้าน: ด้านหนึ่งคือ... ความสามารถในการทำงานร่วมกับระบบเดิม นับเป็นโอกาสที่แท้จริงในสภาพแวดล้อมขององค์กรที่โครงสร้างพื้นฐานอายุ 10 หรือ 20 ปีมีอยู่มากมายและไม่สามารถทดแทนได้ง่าย ในทางกลับกัน ความคิดถึงที่จัดการได้ดี มันสามารถกลายเป็นรูปแบบหนึ่งของการสร้างความแตกต่างได้ หากมันผสานเข้ากับฟังก์ชันการใช้งานที่แท้จริงและไม่เป็นเพียงแค่รูปลักษณ์ภายนอกที่สวยงามเท่านั้น
การประยุกต์ใช้ในโลกแห่งความเป็นจริง: นอกเหนือจากการสาธิตทางเทคนิค
แม้ว่า WSL9x จะไม่ได้ออกแบบมาเพื่อใช้เป็นเครื่องมือในการผลิต แต่หลักการทางวิศวกรรมที่อยู่เบื้องหลังนั้นสามารถนำไปประยุกต์ใช้ในหลากหลายสาขาที่มีการใช้งานเฉพาะเจาะจงได้ หนึ่งในนั้นคือ... การเก็บรักษาข้อมูลดิจิทัลพิพิธภัณฑ์คอมพิวเตอร์ หอจดหมายเหตุทางประวัติศาสตร์ หรือแผนกไอทีที่ดูแลรักษาระบบเก่า สามารถได้รับประโยชน์จากการมีสิ่งนี้ เครื่องมือ GNU สมัยใหม่ที่มีให้ใช้งานภายในสภาพแวดล้อม Epochโดยไม่ต้องเปลี่ยนแปลงการตั้งค่าเดิมมากนัก
อีกประเด็นที่ชัดเจนคือ การทดสอบและการควบคุมคุณภาพ ในผลิตภัณฑ์สำหรับองค์กรที่ยังคงต้องทำงานบนระบบเดิม การมีกลไกที่ผสานรวมส่วนประกอบที่ทันสมัยเข้ากับแพลตฟอร์มเก่า แม้เพียงบางส่วน ก็สามารถช่วยตรวจสอบความเข้ากันได้ ทดสอบโดยอัตโนมัติ หรือกู้คืนข้อมูลจากแอปพลิเคชันเก่าโดยไม่ต้องเขียนโปรแกรมใหม่ทั้งหมดตั้งแต่ต้น
ในด้านการศึกษา WSL9x ถือเป็นตัวอย่างที่สมบูรณ์แบบอย่างแท้จริง สอนสถาปัตยกรรมระบบปฏิบัติการโปรแกรมนี้ช่วยให้คุณสามารถพูดคุยเกี่ยวกับระบบการเรียกใช้งาน การจัดการการขัดจังหวะ การจัดการหน่วยความจำ ระดับสิทธิ์ ไดรเวอร์โหมดเคอร์เนล และอื่นๆ อีกมากมาย โดยทั้งหมดนี้มาพร้อมกับกรณีศึกษาจากโลกแห่งความเป็นจริงและคลังข้อมูลที่สามารถเข้าถึงได้ ซึ่งแสดงให้เห็นว่าปัญหาต่างๆ ที่เรามองว่าเป็นเรื่องปกติในปัจจุบันได้รับการแก้ไขอย่างไร
ศักยภาพในนั้นมีความสำคัญไม่น้อยไปกว่ากัน การให้คำปรึกษาแก่องค์กรบริษัทขนาดกลางและขนาดใหญ่จำนวนมาก โดยเฉพาะในภูมิภาคอย่างละตินอเมริกาและสเปน ยังคงพึ่งพาระบบที่ใช้งานมานานหลายทศวรรษ การนำเสนอโซลูชันด้านการทำงานร่วมกัน การย้ายระบบแบบเป็นขั้นตอน หรือ "สะพานเชื่อม" ระหว่างสภาพแวดล้อมเดิมและสภาพแวดล้อมใหม่ เป็นตลาดเฉพาะกลุ่มที่มีการแข่งขันน้อยกว่าบริการ SaaS ที่กำลังเป็นที่นิยม และต้องการความเชี่ยวชาญเฉพาะด้านอย่างที่โครงการอย่าง WSL9x นำเสนอ
ทั้งหมดนี้ไม่ได้ทำให้ WSL9x เป็นเครื่องมือวิเศษที่จะช่วยกอบกู้โครงสร้างพื้นฐานที่ล้าสมัย แต่ก็ทำให้มันอยู่ในตำแหน่งที่เหมาะสม นี่คือตัวอย่างที่ยอดเยี่ยมของการผสมผสานระหว่างวิศวกรรมย้อนกลับ ความอดทน และความหลงใหลในระบบต่างๆสิ่งนี้เป็นเครื่องเตือนใจว่านวัตกรรมไม่ได้หมายถึงการไล่ตามสิ่งใหม่ล่าสุดเสมอไป แต่ยังหมายถึงการทำความเข้าใจอย่างลึกซึ้งในสิ่งที่มีอยู่แล้วด้วย
โดยรวมแล้ว WSL9x แสดงให้เห็นว่า ระบบปฏิบัติการ Linux และ Windows 9x สามารถทำงานร่วมกันได้อย่างราบรื่น ในกระบวนการบูตเพียงครั้งเดียว โดยใช้ Ring 0 ร่วมกัน และสื่อสารผ่าน API ที่ไม่ได้ออกแบบมาเพื่อจุดประสงค์นั้น มันเป็นโปรเจกต์ที่ไม่เสถียร ขาดส่วนติดต่อผู้ใช้แบบกราฟิก และค่อนข้างต้องการทรัพยากรมากสำหรับผู้ที่ติดตั้ง แต่ก็เป็นตัวอย่างที่ยอดเยี่ยมของความคิดสร้างสรรค์ทางเทคนิค ความเข้ากันได้กับเวอร์ชันเก่าอย่างสุดขีด และความหลงใหลในการวิเคราะห์ระบบที่หลายคนคิดว่าตายไปนานแล้ว
นักเขียนผู้หลงใหลเกี่ยวกับโลกแห่งไบต์และเทคโนโลยีโดยทั่วไป ฉันชอบแบ่งปันความรู้ผ่านการเขียน และนั่นคือสิ่งที่ฉันจะทำในบล็อกนี้ เพื่อแสดงให้คุณเห็นสิ่งที่น่าสนใจที่สุดเกี่ยวกับอุปกรณ์ ซอฟต์แวร์ ฮาร์ดแวร์ แนวโน้มทางเทคโนโลยี และอื่นๆ เป้าหมายของฉันคือการช่วยคุณนำทางโลกดิจิทัลด้วยวิธีที่เรียบง่ายและสนุกสนาน