นักพัฒนาคนหนึ่งได้เปิดตัว rou2exOS Rusted Edition ซึ่งเป็นรุ่นที่สองของระบบปฏิบัติการงานอดิเรกที่ผสมผสานความเรียบง่ายของการคอมพิวติ้งยุค DOS เข้ากับแนวทางการเขียนโปรแกรมสมัยใหม่ โปรเจกต์นี้เป็นการเขียนใหม่ทั้งหมดจาก C เป็น Rust ของ RoureXOS เวอร์ชันเดิม โดยยังคงรักษาอินเทอร์เฟซโหมดข้อความที่ให้ความรู้สึกคิดถึงอดีต พร้อมเพิ่มฟีเจอร์ร่วมสมัยอย่างเครือข่าย TCP/IP
ระบบปฏิบัติการนี้บูตจาก CD หรือ USB และทำงานบนระบบ x86_64 โดยให้สภาพแวดล้อมบรรทัดคำสั่งที่คุ้นเคยเหมือน MS-DOS แตกต่างจากรุ่นก่อนหน้า เวอร์ชัน Rust นี้รวมฟีเจอร์ความปลอดภัยของหน่วยความจำ ในขณะที่ยังคงประสบการณ์ผู้ใช้เดียวที่เรียบง่ายซึ่งเป็นเอกลักษณ์ของการคอมพิวติ้งส่วนบุคคลยุคแรก
ความต้องการของระบบ:
- สถาปัตยกรรม: x86_64 (วางแผนรองรับ ARM )
- วิธีการบูต: CD/USB ผ่าน GRUB multiboot
- การแสดงผล: โหมดข้อความ VGA (ความละเอียด 80x25)
- ระบบไฟล์: FAT12 (วางแผน FAT32 )
- หน่วยความจำ: ความปลอดภัยของหน่วยความจำ Rust พร้อมบล็อก assembly แบบ unsafe
เครือข่ายสมัยใหม่พบกับการคอมพิวติ้งย้อนยุค
หนึ่งในแง่มุมที่น่าสนใจที่สุดของ rou2exOS คือการใช้งานเครือข่ายด้วย SLIP (Serial Line Internet Protocol) ผ่านการเชื่อมต่อซีเรียลเสมือน แนวทางนี้ช่วยให้ระบบปฏิบัติการสามารถสื่อสารกับเครือข่าย TCP/IP สมัยใหม่ได้ ในขณะที่ยังคงปรัชญาการออกแบบแบบมินิมอล ระบบสามารถจัดการแพ็กเก็ต ICMP และให้ฟังก์ชันเครือข่ายพื้นฐานผ่านโซลูชันที่สง่างามอย่างน่าประหลาดใจ ซึ่งเชื่อมต่อกับระบบโฮสต์ผ่านอินเทอร์เฟซ pseudo-terminal
SLIP เป็นโปรโตคอลเครือข่ายรุ่นเก่าที่ห่อหุ้มแพ็กเก็ต IP ผ่านการเชื่อมต่อซีเรียล ซึ่งใช้กันอย่างแพร่หลายก่อนที่ Ethernet จะกลายเป็นมาตรฐาน
การกำหนดค่าเครือข่าย:
- โปรโตคอล: SLIP ผ่านการเชื่อมต่อแบบอนุกรม
- ความเร็ว: อัตราบอด 115200
- การกำหนดที่อยู่ IP: แบบจุดต่อจุด (192.168.3.1 ↔ 192.168.3.2)
- อินเทอร์เฟซ: sl0 (อินเทอร์เฟซ SLIP บนระบบโฮสต์)
ชุมชนถกเถียงเรื่องความเข้ากันได้กับ DOS
โปรเจกต์นี้ได้จุดประกายการอภิปรายเกี่ยวกับสิ่งที่ทำให้ระบบปฏิบัติการเป็นแบบ DOS จริงๆ แม้ว่า rou2exOS จะมีความคล้ายคลึงทางภาพและคำสั่งพื้นฐานเช่น 'dir' และ 'cls' กับ MS-DOS แต่ก็แตกต่างอย่างมากในด้านสถาปัตยกรรมและความสามารถ ชุมชนได้สังเกตว่าความเข้ากันได้กับ DOS อย่างแท้จริงจะต้องสามารถรันซอฟต์แวร์คลาสสิกอย่าง Doom ซึ่งต้องการการจัดการ interrupt และอินเทอร์เฟซฮาร์ดแวร์เฉพาะที่การใช้งานสมัยใหม่นี้ไม่ได้ให้
นักพัฒนาบางคนได้เสนอชื่อคำสั่งทางเลือกที่ตลกขบขัน ซึ่งจะทำให้ระบบใช้งานง่ายขึ้น เช่น การใช้ 'RM' สำหรับ Relocate me แทนการลบไฟล์ ซึ่งเน้นให้เห็นถึงลักษณะที่บางครั้งเป็นไปตามอำเภอใจของอินเทอร์เฟซบรรทัดคำสั่ง
การใช้งานทางเทคนิคและแผนอนาคต
ระบบปัจจุบันรองรับไฟล์ซิสเต็ม FAT12 และให้การดำเนินการไฟล์พื้นฐานผ่านอินเทอร์เฟซ VGA text buffer นักพัฒนาได้ระบุแผนที่จะขยายการรองรับไฟล์ซิสเต็มเป็น FAT32 และเพิ่มความเข้ากันได้กับสถาปัตยกรรม ARM โปรเจกต์นี้ทำหน้าที่เป็นทั้งแบบฝึกหัดการเรียนรู้การเขียนโปรแกรม Rust ระดับต่ำ และเป็นการสาธิตเชิงปฏิบัติว่าภาษาที่ปลอดภัยด้านหน่วยความจำสามารถนำไปใช้กับการเขียนโปรแกรมระบบได้อย่างไร
จุดประสงค์คือการทดลองกับสภาพแวดล้อม Rust no_std+no_main ในขณะที่พยายามให้ความรู้ตัวเองเกี่ยวกับวิธีการทำงานของสิ่งต่างๆ ภายใต้ฝาครอบ
ระบบปฏิบัติการนี้เป็นตัวเชื่อมที่น่าสนใจระหว่างความงามของการคอมพิวติ้งย้อนยุคและแนวทางการพัฒนาสมัยใหม่ แสดงให้เห็นว่าเครื่องมือร่วมสมัยสามารถใช้เพื่อสร้างความเรียบง่ายของยุคการคอมพิวติ้งก่อนหน้าขึ้นมาใหม่ พร้อมเพิ่มการปรับปรุงด้านความปลอดภัยและความน่าเชื่อถือ
อ้างอิง: rou2exOS Rusted Edition