การเปิดตัวระบบปฏิบัติการ Redox OS 0.8 ที่เขียนด้วยภาษา Rust

ระบบปฏิบัติการ Redox 0.8 ซึ่งพัฒนาโดยใช้ภาษา Rust และแนวคิด microkernel ได้รับการเผยแพร่แล้ว การพัฒนาของโครงการได้รับการเผยแพร่ภายใต้ใบอนุญาต MIT ฟรี สำหรับการทดสอบ Redox OS จะมีชุดสาธิตขนาด 768 MB รวมถึงรูปภาพที่มีสภาพแวดล้อมกราฟิกพื้นฐาน (256 MB) และเครื่องมือคอนโซลสำหรับระบบเซิร์ฟเวอร์ (256 MB) แอสเซมบลีถูกสร้างขึ้นสำหรับสถาปัตยกรรม x86_64 และพร้อมใช้งานสำหรับระบบที่มี UEFI และ BIOS นอกเหนือจากสภาพแวดล้อมกราฟิก Orbital แล้ว รูปภาพสาธิตยังรวมถึงโปรแกรมจำลอง DOSBox, เกมที่ได้รับการคัดสรร (DOOM, Neverball, Neverputt, sopwith, syobonaction), บทช่วยสอน, เครื่องเล่นเพลง rodioplay และโปรแกรมแก้ไขข้อความ Sodium

ระบบปฏิบัติการได้รับการพัฒนาตามปรัชญา Unix และยืมแนวคิดบางอย่างจาก SeL4, Minix และ Plan 9 รีดอกซ์ใช้แนวคิดของไมโครเคอร์เนล ซึ่งมีเพียงการโต้ตอบระหว่างกระบวนการและการจัดการทรัพยากรในระดับเคอร์เนลเท่านั้น และอื่นๆ ทั้งหมด ฟังก์ชันการทำงานถูกวางไว้ในไลบรารีที่สามารถใช้ได้ทั้งเคอร์เนลและแอปพลิเคชันผู้ใช้ ไดรเวอร์ทั้งหมดทำงานในพื้นที่ผู้ใช้ในสภาพแวดล้อมแซนด์บ็อกซ์ที่แยกจากกัน เพื่อความเข้ากันได้กับแอปพลิเคชันที่มีอยู่จึงมีการจัดเตรียมเลเยอร์ POSIX พิเศษไว้ซึ่งช่วยให้คุณสามารถเรียกใช้หลายโปรแกรมโดยไม่ต้องย้ายพอร์ต

ระบบใช้หลักการ “ทุกอย่างคือ URL” ตัวอย่างเช่น URL “log://” สามารถใช้สำหรับการบันทึก “bus://” สำหรับการโต้ตอบระหว่างกระบวนการ “tcp://” สำหรับการโต้ตอบเครือข่าย ฯลฯ โมดูลซึ่งสามารถนำไปใช้ในรูปแบบของไดรเวอร์ ส่วนขยายเคอร์เนล และแอปพลิเคชันผู้ใช้ สามารถลงทะเบียนตัวจัดการ URL ของตนเองได้ ตัวอย่างเช่น คุณสามารถเขียนโมดูลการเข้าถึงพอร์ต I/O และผูกเข้ากับ URL "port_io:// " หลังจากนั้นคุณสามารถใช้เพื่อเข้าถึงพอร์ต 60 ได้โดยเปิด URL “port_io://60”

สภาพแวดล้อมผู้ใช้ใน Redox สร้างขึ้นบนพื้นฐานของเชลล์กราฟิกของ Orbital เอง (เพื่อไม่ให้สับสนกับเชลล์ Orbital อื่นที่ใช้ Qt และ Wayland) และชุดเครื่องมือ OrbTk ซึ่งมี API ที่คล้ายกับ Flutter, React และ Redux Netsurf ถูกใช้เป็นเว็บเบราว์เซอร์ โปรเจ็กต์นี้ยังกำลังพัฒนาตัวจัดการแพ็คเกจของตัวเอง ชุดยูทิลิตี้มาตรฐาน (binutils, coreutils, netutils, extrautils), เชลล์คำสั่ง ion, relibc ไลบรารี C มาตรฐาน, โปรแกรมแก้ไขข้อความที่มีลักษณะคล้าย vim, สแต็กเครือข่าย และไฟล์ ระบบ. การกำหนดค่าถูกตั้งค่าเป็นภาษา Toml

รุ่นใหม่ยังคงทำงานต่อไปเพื่อให้แน่ใจว่าใช้งานได้กับฮาร์ดแวร์จริง นอกจากสถาปัตยกรรม x86_64 แล้ว ยังได้เพิ่มความสามารถในการทำงานบนระบบ x32 แบบ 86 บิต (i686, Pentium II และใหม่กว่า) อีกด้วย กำลังดำเนินการย้ายไปยัง CPU ARM64 (aarch64) ยังไม่รองรับการทำงานบนฮาร์ดแวร์ ARM จริง แต่สามารถโหลดด้วยการจำลอง ARM64 ใน QEMU ได้ ตามค่าเริ่มต้น ระบบย่อยเสียงจะถูกเปิดใช้งานและให้การสนับสนุนเบื้องต้นสำหรับการกำหนดค่าหลายจอภาพ (บนระบบที่มีบัฟเฟอร์เฟรม UEFI) อุปกรณ์ที่รองรับใน Redox OS ประกอบด้วยชิปเสียง AC'97 และ Intel HD Audio, กราฟิกเอาท์พุตผ่าน VESA BIOS หรือ UEFI GOP API, อีเธอร์เน็ต (Intel 1/10 Gigabit Ethernet, Realtek RTL8168), อุปกรณ์อินพุต (คีย์บอร์ด, เมาส์, ทัชแพด) , SATA (AHCI, IDE) และ NVMe การสนับสนุน Wi-Fi และ USB ยังไม่พร้อม (USB ใช้งานได้ใน QEMU เท่านั้น)

นวัตกรรมอื่นๆ:

  • รวมอิมเมจสำหรับบูตสำหรับระบบที่มี BIOS และ EFI แล้ว
  • การใช้งานการเรียกระบบโคลนและ exec ถูกย้ายไปยังพื้นที่ผู้ใช้
  • กระบวนการโหลดง่ายขึ้น มีการนำโปรแกรมบูตสแตรปไปใช้ ซึ่งเคอร์เนลเปิดใช้งานและจัดให้มีการโหลดไฟล์ ELF เพิ่มเติม เช่น กระบวนการเริ่มต้น
  • เพิ่มโปรแกรมที่ยกระดับเพื่อรองรับโปรแกรม setuid เช่น sudo
  • เพื่อให้การสร้างและติดตั้งกระบวนการพื้นหลังง่ายขึ้น จึงได้มีการเสนอแพ็คเกจลังรีดอกซ์-เดมอน
  • ระบบการประกอบได้รับการออกแบบใหม่ ทำให้สามารถสร้างสำหรับสถาปัตยกรรมที่แตกต่างกันได้ในซอร์สทรีเดียว เพื่อให้การประกอบการกำหนดค่าต่างๆ ง่ายขึ้น จึงมีการเสนอสคริปต์ build.sh เพิ่มการรองรับสำหรับการสร้างโดยใช้ชุดเครื่องมือ podman แอสเซมบลีของเคอร์เนล, bootloader และ initfs ถูกรวมเข้ากับแพ็คเกจอื่น ๆ
  • เพิ่มการกำหนดค่าการสาธิตสำหรับการสร้างโปรแกรมตัวอย่างที่ไม่รวมอยู่ในอิมเมจสำหรับบูตพื้นฐานที่มีสภาพแวดล้อมแบบกราฟิก
  • เพิ่มการรองรับการควบคุมระดับเสียงของซอฟต์แวร์ให้กับระบบย่อยเสียงแล้ว
  • เพิ่มไดรเวอร์สำหรับชิปเสียงตาม AC'97 ไดรเวอร์ที่ได้รับการปรับปรุงสำหรับชิป Intel HD Audio
  • เพิ่มไดรเวอร์สำหรับคอนโทรลเลอร์ IDE
  • ปรับปรุงการรองรับไดรฟ์ NVMe
  • ปรับปรุงไดรเวอร์ PCI, PS/2, RTL8168, USB HID, VESA
  • กระบวนการติดตั้งได้รับการออกแบบใหม่: ขณะนี้ bootloader, bootstrap, kernel และ initfs อยู่ในไดเร็กทอรี /boot
  • เคอร์เนลทำให้การจัดการหน่วยความจำง่ายขึ้นและเพิ่มความสามารถในการจัดการพื้นที่ที่อยู่จากระดับผู้ใช้
  • ในเชลล์กราฟิก Orbital มีการเพิ่มการรองรับระบบหลายจอภาพ การประมวลผลเคอร์เซอร์ของเมาส์ได้รับการปรับปรุง และเพิ่มตัวบ่งชี้สำหรับการเปลี่ยนระดับเสียง เมนูมีความสามารถในการแบ่งการใช้งานออกเป็นหมวดหมู่

ที่มา: opennet.ru

เพิ่มความคิดเห็น