นักพัฒนาสร้างระบบปฏิบัติการคล้าย DOS ด้วย Rust พร้อมระบบเครือข่ายสมัยใหม่

ทีมชุมชน BigGo
นักพัฒนาสร้างระบบปฏิบัติการคล้าย DOS ด้วย Rust พร้อมระบบเครือข่ายสมัยใหม่

นักพัฒนาคนหนึ่งได้เปิดตัว 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