โครงการ Redox OS เปิดตัวตัวจัดการแพ็คเกจ pkgar ซึ่งเขียนด้วยภาษา Rust

นักพัฒนาระบบปฏิบัติการ Redox, เขียนไว้ โดยใช้ภาษา Rust และแนวคิดไมโครเคอร์เนล นำเสนอ ผู้จัดการแพ็คเกจใหม่ พีการ์. โปรเจ็กต์กำลังพัฒนารูปแบบแพ็คเกจใหม่ ไลบรารีการจัดการแพ็คเกจ และชุดเครื่องมือบรรทัดคำสั่งสำหรับการสร้างและเรียกค้นคอลเลกชั่นไฟล์ที่ได้รับการตรวจสอบด้วยการเข้ารหัส รหัส pkgar เขียนด้วยภาษา Rust และ จัดจำหน่ายโดย ภายใต้ใบอนุญาต MIT

รูปแบบ pkgar ไม่ได้แสร้งทำเป็นว่าเป็นสากล และได้รับการปรับให้เหมาะสมโดยคำนึงถึงลักษณะเฉพาะของระบบปฏิบัติการ Redox OS ตัวจัดการแพ็คเกจรองรับการตรวจสอบแหล่งที่มาโดยใช้ลายเซ็นดิจิทัลและการควบคุมความสมบูรณ์ เช็คซัมคำนวณโดยใช้ฟังก์ชันแฮช blake3. สามารถเข้าถึงฟังก์ชันที่เกี่ยวข้องกับการตรวจสอบของ pkgar ได้โดยไม่ต้องจัดเก็บไฟล์เก็บถาวรแพ็กเกจจริง ๆ โดยจัดการเฉพาะส่วนหัวเท่านั้น โดยเฉพาะอย่างยิ่ง แพ็คเกจประกอบด้วยไฟล์ส่วนหัว (.pkgar_head) และไฟล์ข้อมูล (.pkgar_data) สามารถรับแพ็คเกจสรุปที่สมบูรณ์ที่มีการลงนามอย่างถูกต้อง (.pkgar) ได้โดยเพียงแค่ต่อท้ายไฟล์ส่วนหัวเข้ากับไฟล์ข้อมูล (“cat example.pkgar_head example.pkgar_data > example.pkgar”)

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

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

แพ็คเกจสามารถทำซ้ำได้โดยธรรมชาติ ซึ่งหมายความว่าการสร้างแพ็คเกจสำหรับไดเร็กทอรีเฉพาะจะส่งผลให้ได้แพ็คเกจที่เหมือนกันเสมอ หลังการติดตั้ง เฉพาะเมตาดาต้าเท่านั้นที่ถูกบันทึกในระบบ ซึ่งเพียงพอที่จะสร้างแพ็คเกจใหม่จากข้อมูลที่ติดตั้ง (องค์ประกอบของแพ็คเกจ เช็คซัม เส้นทาง และสิทธิ์การเข้าถึงมีอยู่ในเมตาดาต้า)

เป้าหมายหลักของ pkgar:

  • Atomicity—การอัปเดตจะถูกนำไปใช้โดยอัตโนมัติทุกครั้งที่เป็นไปได้
  • ประหยัดการรับส่งข้อมูล - ข้อมูลจะถูกถ่ายโอนผ่านเครือข่ายเฉพาะเมื่อแฮชเปลี่ยนแปลง (ในระหว่างการอัปเดตจะดาวน์โหลดเฉพาะไฟล์ที่เปลี่ยนแปลงเท่านั้น)
  • มีการใช้อัลกอริธึมการเข้ารหัสที่รวดเร็วและมีประสิทธิภาพสูง (blake3 รองรับการประมวลผลข้อมูลแบบขนานเมื่อคำนวณแฮช) หากข้อมูลจากพื้นที่เก็บข้อมูลไม่ได้ถูกแคชไว้ก่อนหน้านี้ แฮชสำหรับข้อมูลที่ดาวน์โหลดสามารถคำนวณได้ในขณะดาวน์โหลด
  • เรียบง่าย - ไม่เหมือนกับรูปแบบอื่นๆ pkgar มีเฉพาะข้อมูลเมตาที่จำเป็นในการแตกแพ็คเกจเท่านั้น
  • ความเป็นอิสระของไดเร็กทอรีการติดตั้ง - สามารถติดตั้งแพ็คเกจในไดเร็กทอรีใดก็ได้โดยผู้ใช้คนใดก็ได้ (ผู้ใช้ต้องมีสิทธิ์ในการเขียนไปยังไดเร็กทอรีที่เลือก)
  • ความปลอดภัย - แพ็กเก็ตจะได้รับการตรวจสอบด้วยการเข้ารหัสเสมอ และจะมีการตรวจสอบก่อนดำเนินการจริงบนแพ็คเกจ (ส่วนหัวจะถูกโหลดก่อน และหากลายเซ็นดิจิทัลถูกต้อง ข้อมูลจะถูกโหลดลงในไดเร็กทอรีชั่วคราว ซึ่งจะถูกย้ายไปยังไดเร็กทอรีเป้าหมายหลังจากนั้น การตรวจสอบ)

ที่มา: opennet.ru

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