RedoxFS: ระบบไฟล์ทางเลือกแทน ZFS ที่พัฒนาด้วย Rust จุดประกายการถอดถอนเรื่องการพัฒนาระบบไฟล์แบบกำหนดเอง

ทีมชุมชน BigGo
RedoxFS: ระบบไฟล์ทางเลือกแทน ZFS ที่พัฒนาด้วย Rust จุดประกายการถอดถอนเรื่องการพัฒนาระบบไฟล์แบบกำหนดเอง

RedoxFS ระบบไฟล์เริ่มต้นสำหรับ Redox OS ได้กลายเป็นโครงการที่ทะเยอทะยานและกำลังสร้างการสนทนาอย่างมีนัยสำคัญในชุมชนเทคโนโลยี ระบบไฟล์ที่ใช้สัญญาอนุญาต MIT นี้ได้รับแรงบันดาลใจจาก ZFS แต่ถูกออกแบบมาเฉพาะสำหรับสถาปัตยกรรม microkernel ซึ่งเป็นการเปลี่ยนแปลงที่กล้าหาญจากแนวทางการพัฒนาระบบไฟล์แบบดั้งเดิม

โครงการนี้แสดงให้เห็นถึงจุดตัดที่น่าสนใจระหว่างประโยชน์ของภาษาโปรแกรมมิ่งสมัยใหม่และความท้าทายของการเขียนโปรแกรมระบบแบบคลาสสิก Redox OS เดิมทีพยายามใช้ไดรเวอร์ ZFS แบบอ่านอย่างเดียว แต่ยกเลิกเนื่องจากปัญหาความเข้ากันได้กับการออกแบบ microkernel ของพวกเขา แทนที่จะประนีประนอมวิสัยทัศน์ทางสถาปัตยกรรมของตน ทีมงานจึงตัดสินใจสร้างโซลูชันของตนเองตั้งแต่เริ่มต้น

การถกเถียงเรื่องระบบไฟล์ครั้งใหญ่: นวัตกรรม vs โซลูชันที่พิสูจน์แล้ว

การประกาศนี้ได้จุดประกายการถกเถียงอย่างเข้มข้นเกี่ยวกับว่าการสร้างระบบไฟล์ใหม่นั้นคุ้มค่ากับความพยายามอันมหาศาลที่เกี่ยวข้องหรือไม่ นักวิจารณ์ชี้ไปที่วงจรการพัฒนาที่ใช้เวลาหลายทศวรรษของระบบไฟล์อย่าง ReiserFS, bcachefs และ Btrfs โดยตั้งคำถามว่าการเริ่มต้นใหม่ตั้งแต่ศูนย์นั้นสมเหตุสมผลหรือไม่เมื่อมีทางเลือกที่ผ่านการทดสอบในสนามรบแล้วอยู่

อย่างไรก็ตาม ผู้สนับสนุนโต้แย้งว่าคุณสมบัติความปลอดภัยหน่วยความจำของ Rust และโครงสร้างการเขียนโปรแกรมสมัยใหม่อาจเปลี่ยนแปลงภูมิทัศน์การพัฒนาระบบไฟล์อย่างพื้นฐาน การป้องกันในตัวของภาษาต่อการเสียหายของหน่วยความจำ สภาวะการแข่งขัน และแหล่งที่มาทั่วไปอื่นๆ ของบั๊กระบบไฟล์อาจเร่งกระบวนการทำให้เสถียรที่ใช้เวลานานแบบดั้งเดิมได้

บางครั้งการทำสิ่งต่างๆ เพราะมันยากเป็นเหตุผลที่ดีในการทำเพื่อดูว่าเหตุผลที่ทำให้สิ่งเหล่านั้นยากนั้นยังใช้ได้อยู่หรือไม่

ชุมชนดูเหมือนจะแบ่งออกเป็นสองฝ่ายระหว่างนักปฏิบัติที่สนับสนุนการนำโซลูชันที่มีอยู่มาใช้และนักนวัตกรรมที่มอง RedoxFS เป็นการทดลองที่มีค่าในการนำเทคนิคการเขียนโปรแกรมสมัยใหม่มาใช้กับความท้าทายระดับระบบ

คุณสมบัติทางเทคนิคและข้อจำกัด

RedoxFS นำเสนอคุณสมบัติที่น่าสนใจหลายอย่างรวมถึงฟังก์ชัน copy-on-write, checksum ของข้อมูลและ metadata, การเข้ารหัสแบบโปร่งใส และความเข้ากันได้กับทั้ง Redox และ Linux ผ่าน FUSE ระบบไฟล์รองรับไฟล์ขนาดใหญ่ถึง 193 TiB ด้วยไฟล์สูงสุด 4 พันล้านไฟล์ต่อโวลุ่ม

อย่างไรก็ตาม การตัดสินใจทางเทคนิคบางอย่างได้ทำให้เกิดความสงสัย การเลือกใช้ inode แบบ 32-bit จำกัดจำนวนไฟล์สูงสุด ซึ่งเป็นการตัดสินใจที่ทำให้นักพัฒนาบางคนงุนงงเมื่อพิจารณาว่าระบบไฟล์อื่นๆ ได้ย้ายไปใช้ระบบ 64-bit แล้วเพื่อหลีกเลี่ยงข้อจำกัดนี้ ทีมพัฒนาดูเหมือนจะมองว่านี่เป็นการแลกเปลี่ยนที่สมเหตุสมผลสำหรับกรณีการใช้งานปัจจุบันของพวกเขา

คุณสมบัติหลักของ RedoxFS :

  • ฟังก์ชัน Copy-on-write
  • การตรวจสอบความถูกต้องของข้อมูลและ metadata
  • การเข้ารหัสแบบโปร่งใส
  • คุณสมบัติไฟล์มาตรฐาน Unix
  • ขีดจำกัดขนาดไฟล์/ไดเรกทอรี: สูงสุด 193 TiB (212 TB)
  • ขีดจำกัดจำนวนไฟล์/ไดเรกทอรี: สูงสุด 4 พันล้านไฟล์ต่อ 193 TiB (2^32-1)
  • รองรับการเข้ารหัสดิสก์โดย Redox bootloader
  • ใช้สัญญาอนุญาต MIT
  • เข้ากันได้กับ Redox OS และ Linux (ผ่าน FUSE )

ความท้าทายของ Microkernel

หนึ่งในแง่มุมที่น่าสนใจที่สุดของ RedoxFS คือความสัมพันธ์กับสถาปัตยกรรม microkernel ทีมงานยกเลิก ZFS โดยเฉพาะเพราะธรรมชาติแบบ monolithic ของมันขัดแย้งกับปรัชญาการออกแบบ microkernel ของพวกเขา ซึ่งคอมโพเนนต์ต่างๆ ทำงานในพื้นที่หน่วยความจำแยกต่างหากเป็นบริการแต่ละตัว

ทางเลือกทางสถาปัตยกรรมนี้สะท้อนถึงการถกเถียงที่กว้างขึ้นเกี่ยวกับการออกแบบระบบปฏิบัติการ ในขณะที่แนวทางแบบบูรณาการของ ZFS ต่อการจัดการโวลุ่ม RAID และการดำเนินการระบบไฟล์นำเสนอประโยชน์ด้านประสิทธิภาพ แต่มันไม่สอดคล้องกับแนวทางแบบโมดูลาร์และเชิงบริการที่ Redox OS สนับสนุน

มองไปข้างหน้า

RedoxFS แสดงให้เห็นมากกว่าเพียงระบบไฟล์อีกตัวหนึ่ง - มันเป็นกรณีทดสอบว่าภาษาโปรแกรมมิ่งสมัยใหม่สามารถแก้ไขความท้าทายการเขียนโปรแกรมระบบที่มีมายาวนานได้หรือไม่ ในขณะที่นักวิจารณ์กังวลเรื่องการประดิษฐ์ล้อใหม่ ผู้สนับสนุนมองว่าเป็นนวัตกรรมที่จำเป็นซึ่งอาจเป็นประโยชน์ต่อระบบนิเวศทั้งหมด

สัญญาอนุญาต MIT ของโครงการรับประกันว่าสามารถบูรณาการเข้ากับระบบปฏิบัติการต่างๆ ได้ ซึ่งอาจทำให้นวัตกรรมของมันแพร่กระจายไปนอกเหนือจากระบบนิเวศ Redox ว่า RedoxFS จะพิสูจน์คุณค่าของมันได้หรือไม่นั้นยังต้องรอดู แต่การพัฒนาของมันกำลังมีส่วนร่วมในข้อมูลเชิงลึกที่มีค่าต่อวิวัฒนาการอย่างต่อเนื่องของการเขียนโปรแกรมระบบใน Rust

อ้างอิง: RedoxFS