ความสนใจเกี่ยวกับระบบไฟล์
- ผู้เขียนเริ่มสนใจระบบไฟล์ตั้งแต่สมัย Macintosh ในปี 1984
- ตอนที่มีความเป็นไปได้ว่า Apple จะเข้าซื้อ Be Inc. ผู้เขียนคาดหวังกับ Be File System มาก แต่ท้ายที่สุด Apple กลับเข้าซื้อ NeXT และพัฒนา Mac OS X
- ในงาน WWDC ปี 2017 Apple ได้ประกาศเปิดตัว Apple File System (APFS) สำหรับ macOS
ความสามารถหลักของ APFS
- APFS เป็นระบบไฟล์ที่ก้าวหน้ากว่า HFS+ อย่างมาก
- ความสามารถหลัก ได้แก่ สแนปชอตแบบจุดเวลา และโคลนแบบ copy-on-write
- สแนปชอตช่วยให้การสำรองข้อมูลด้วย Time Machine มีความน่าเชื่อถือและมีประสิทธิภาพมากขึ้น
- ไฟล์โคลนจะแชร์ข้อมูลร่วมกับไฟล์ต้นฉบับ ทำให้การคัดลอกไฟล์ใน Finder เกิดขึ้นได้ทันที
ไอเดียการประหยัดพื้นที่ดิสก์
- ผู้เขียนได้คิดหาวิธีใช้ไฟล์โคลนของ APFS เพื่อประหยัดพื้นที่ดิสก์
- และพบว่าสามารถประหยัดพื้นที่ดิสก์ได้ด้วยการแปลงไฟล์ที่มีเนื้อหาเหมือนกันให้เป็นโคลน
- ผู้เขียนทดสอบความเป็นไปได้ในการประหยัดพื้นที่ดิสก์ด้วยสคริปต์ Perl และพบว่าสามารถประหยัดพื้นที่ได้มากพอสมควร
การพัฒนาแอป Hyperspace
- ผู้เขียนตัดสินใจพัฒนาแอปที่ช่วยประหยัดพื้นที่ดิสก์ได้
- จึงพัฒนาแอปชื่อ Hyperspace และเปิดตัวบน Mac App Store
- Hyperspace ดาวน์โหลดได้ฟรี แต่หากต้องการใช้ฟีเจอร์ประหยัดพื้นที่จะต้องชำระเงิน
ประสบการณ์และเทคโนโลยีที่ใช้พัฒนา
- Hyperspace พัฒนาด้วย SwiftUI และ Swift 6
- ผู้เขียนระบุว่าการพัฒนาโดยใช้ Swift 6 ตั้งแต่ช่วงแรกทำได้ง่ายกว่า
- แอปมีความเสี่ยงอยู่บ้างเพราะต้องแก้ไขไฟล์ แต่ผู้เขียนคาดว่าจะเป็นประโยชน์ต่อผู้ใช้จำนวนมาก
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
ดาวน์โหลดมาลองรันแล้ว มันบอกว่าสามารถจัดการไฟล์ได้ "900" ไฟล์ ไม่มีสรุปหรือรายการให้ดู แต่กลับมีข้อความให้ซื้อแอป ไม่แน่ใจว่าจะช่วยได้จริงไหม เลยสงสัยว่าทำไมต้องซื้อ
Hyperspace ไม่มีวิธีประสานเวลากับแอปอื่นทั้งหมดและ macOS เพื่อสลับแทนที่ไฟล์อย่างปลอดภัย ทำให้นึกสงสัยว่าทำไมตัวระบบไฟล์เองถึงไม่รันกระบวนการ deduplication อยู่เบื้องหลัง และข้อเสียของการทำสิ่งนี้อัตโนมัติภายใน APFS คืออะไร
ชอบโมเดลที่ให้สแกนฟรีก่อนแล้วดูว่าคุ้มหรือไม่ จากนั้นค่อยจ่ายตามผลลัพธ์จริง ผมเองก็เป็นคนเก็บไฟล์เยอะ และกู้คืนพื้นที่ได้ 7GB สำหรับผมอาจไม่ใช่ประโยชน์ใหญ่มาก แต่ก็ขอบคุณที่มีฟีเจอร์แบบนี้อยู่
ผมเคยทำยูทิลิตีบรรทัดคำสั่งชื่อ
dedupที่ทำงานแบบเดียวกัน มีโหมด dry-run และเลือกแหล่ง clone ที่เหมาะสมแบบ "ชาญฉลาด" เข้าใจทั้ง hard link และ clone ประเภทอื่น ๆ เก็บรักษา metadata และจัดการไฟล์บีบอัดของ HFS ได้อย่างถูกต้อง มันไม่เคยทำลายข้อมูลของผม แต่ก็เหมือนเครื่องมือระบบไฟล์ทุกตัวที่ควรใช้อย่างระมัดระวังใน WWDC 2017 Apple เปิดตัว Apple File System (APFS) สำหรับ macOS ก่อนหน้านั้นเคยแปลง iPhone ทั้งหมดไปเป็น APFS แบบเงียบ ๆ ในการอัปเดต iOS 10.x แล้วก็ย้อนกลับไปเป็น HFS+ อีก เลยสงสัยว่าการย้อนการเปลี่ยนแปลงระบบไฟล์แบบนั้นทำได้อย่างไร
สงสัยว่าเขาใช้อัลกอริทึมอะไรในการตรวจสอบว่าไฟล์สองไฟล์เหมือนกันหรือไม่ มีหลายแบบทั้ง hash, การเปรียบเทียบระดับบิต ฯลฯ แต่เทคนิคเหล่านี้ก็มีข้อเสีย เลยอยากรู้ว่าวิธีที่ดีที่สุดสำหรับไฟล์จำนวนมากคืออะไร
ถ้ามีไฟล์ A อยู่สองตำแหน่ง แล้วรันเครื่องมือนี้ จากนั้นแก้ไข A_0 จะทำให้ A_1 ถูกแก้ไขด้วยหรือไม่ หรือจะสะท้อนแค่สถานะใหม่ของ A_0 เท่านั้นและ A_1 ยังคงเดิม
ลองกับโฟลเดอร์ขนาดใหญ่ของโปรเจกต์ NodeJS แล้ว แต่ในโฟลเดอร์ขนาด 8.1GB พบว่าประหยัดได้แค่ 1GB ลองใหม่โดยรวมโฟลเดอร์ home ของผู้ใช้ด้วย ก็ได้เพิ่มมาแค่ 1.3GB พยายามสแกน system และ library แต่โดนปฏิเสธเพราะปัญหาสิทธิ์ ใช้ pnpm เป็น package manager อยู่แล้ว เลยดูเหมือนการใช้พื้นที่ดิสก์ถูกปรับให้เหมาะสมอยู่ก่อนแล้ว ไอเดียดี แต่ราคาตอนนี้สูงเกินไปจนยากจะอธิบายความคุ้มค่า ถ้ารันเป็น background process เดือนละครั้งก็น่าจะดี
Hyperspace เป็นแอปที่อธิบายได้ยากนิดหน่อย เขาพยายามอธิบายยาวไว้ในเอกสาร หวังว่าจะกลายเป็นส่วนเสริมที่มีประโยชน์ต่อ ecosystem ของ Mac แต่คำอธิบายสั้น ๆ ว่าเป็น "ตัวลบไฟล์ซ้ำ" ก็น่าจะอธิบายได้เพียงพอ
บน Windows มีฟีเจอร์ "copy-on-write" คล้ายกันชื่อ "Dev Drive" ถ้ามันทำงานได้ดี ก็น่าจะกลายเป็นค่าเริ่มต้นได้ไม่ใช่หรือ