3 คะแนน โดย GN⁺ 2024-07-04 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • ที่มาของ DS_Store ของ Apple

  • หากคุณเป็นผู้ใช้ Mac หรือเคยโอนไฟล์จาก Mac ไปยัง Windows คุณน่าจะคุ้นเคยกับไฟล์ .DS_Store

  • ที่มาของชื่อนี้ย้อนไปได้ถึงปี 1999

  • ในเวลานั้น ผู้เขียนเป็นผู้นำทางเทคนิคของ Finder บน Mac OS X ที่ Apple

  • โค้ดเบสของ Finder มีอายุ 8 ปีแล้ว และหมดอายุการใช้งานที่เป็นประโยชน์ไปแล้ว

  • การเปลี่ยนแปลงใด ๆ ต้องใช้ความพยายามด้านวิศวกรรมอย่างมหาศาล และเมื่อแก้ไขก็มักทำให้ฟีเจอร์ที่ไม่เกี่ยวข้องกันอีกสองหรือสามอย่างพังไปด้วย

  • จึงตัดสินใจเขียน Finder ขึ้นใหม่ทั้งหมดสำหรับ Mac OS X

  • ส่วนหนึ่งของงานคือการแยกส่วนติดต่อผู้ใช้ออกจากฟังก์ชันหลัก หรือก็คือแบ็กเอนด์

  • แบ็กเอนด์ของ Finder ทำหน้าที่ไล่รายการไฟล์ เฝ้าติดตามการเปลี่ยนแปลงของระบบไฟล์ และจัดการเมทาดาทา

  • ภายใน ทั้งสององค์ประกอบนี้ถูกเรียกว่า Finder_FE และ Finder_BE (Frontend และ Backend)

  • เขาตระหนักว่าแบ็กเอนด์ของ Finder น่าจะมีประโยชน์นอกเหนือจาก Finder ด้วย

  • จึงวางแผนให้มันเป็น public API

  • เนื่องจากก่อนหน้านี้เขาเป็นผู้ตั้งชื่อให้ Icon Services และ Navigation Services เขาจึงเลือกชื่อ Desktop Services

  • .DS_Store ย่อมาจาก "Desktop Services Store"

  • มีการเติม "." ไว้ข้างหน้าเพื่อให้ถือเป็นไฟล์ที่ซ่อนอยู่ในระบบปฏิบัติการ Unix รวมถึง Mac OS

  • โดยส่วนตัวแล้ว เขาคิดว่าชื่อนี้ไม่ได้ดีนัก และน่าจะเลือกชื่อที่อธิบายได้ชัดเจนกว่านี้

  • บั๊กที่ทำให้เกิดการสร้างไฟล์ .DS_Store มากเกินไปยังไม่ถูกแก้จนถึงทุกวันนี้

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

  • แต่ในความเป็นจริง เพียงแค่เข้าไปที่โฟลเดอร์ก็แทบจะการันตีได้ว่าไฟล์ .DS_Store จะถูกสร้างขึ้น

  • Finder_BE หรือ Desktop Services ถูกใช้นอกเหนือจาก Finder ด้วย

  • Navigation Services (กล่องโต้ตอบเปิด/บันทึก) ก็ใช้งานสิ่งนี้เช่นกัน

  • อย่างไรก็ตาม Desktop Services API ก็ยังไม่ได้ถูกเปิดเผยอย่างสมบูรณ์


  • เผยแพร่เมื่อ 1 ตุลาคม 2006
  • เขียนโดย Arno Gourdol

ความเห็นของ GN⁺

  • บทความนี้ให้ภูมิหลังเชิงเทคนิคโดยอธิบายประวัติของ Finder บน Mac OS X และที่มาของไฟล์ .DS_Store
  • ปัญหาการสร้างไฟล์ .DS_Store มากเกินไปยังคงไม่ได้รับการแก้ไข และอาจส่งผลต่อประสบการณ์ผู้ใช้
  • ความสามารถในการนำแบ็กเอนด์ของ Finder ไปใช้ซ้ำ แสดงให้เห็นปรัชญาการออกแบบซอฟต์แวร์ของ Apple
  • เครื่องมือจัดการระบบไฟล์อื่นที่มีฟังก์ชันคล้ายกัน ได้แก่ NTFS ของ Windows และ ext4 ของ Linux
  • เมื่อนำเทคโนโลยีใหม่หรือโอเพนซอร์สมาใช้ ควรพิจารณาปัญหาความเข้ากันได้กับระบบเดิมและการบำรุงรักษา

1 ความคิดเห็น

 
GN⁺ 2024-07-04
ความคิดเห็นบน Hacker News
  • แนวคิดเรื่อง "fork" ของระบบไฟล์ Mac หมายความว่ามีองค์ประกอบ resource และ data อยู่เป็นคู่กัน

    • บน Unix เมทาดาทาอยู่ใน inode ของบล็อกไดเรกทอรี และต้องแสดงโครงสร้างผ่าน tar, cpio, zip ฯลฯ
    • หากต้องการรองรับไฟล์แบบเข้ากันได้กับ Mac บน Unix ก็จำเป็นต้องปฏิบัติต่อ resource fork เป็นสิ่งระดับชั้นหนึ่ง
    • ระบบไฟล์สมัยใหม่มีโครงสร้างบล็อกไดเรกทอรีที่ใหญ่กว่าและจัดการข้อมูลได้ดีกว่า
  • เคยมีวิธีปิดการสร้างไฟล์ .DS_Store แต่ถูกถอดออกไปแล้ว

    • เคยเขียนโปรแกรมที่ลบไฟล์ .DS_Store ทันทีที่มันถูกสร้างขึ้น
    • ลิงก์โปรแกรม
  • ไม่เข้าใจว่าทำไมไฟล์ .DS_Store ต้องอยู่ในโฟลเดอร์เดียวกัน

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

    • เมื่อเข้าโฟลเดอร์ผ่าน Finder ก็มักจะมีการสร้างไฟล์ .DS_Store แทบทุกครั้ง
    • แม้จะปรับแต่งหน้าตาและขนาดของหน้าต่างโฟลเดอร์ใน Finder ได้ แต่ถ้าเปิดโฟลเดอร์เดียวกันในหน้าต่างแบบเบราว์เซอร์ การปรับแต่งเหล่านี้ส่วนใหญ่จะหายไป
    • เป็นปัญหาที่เกิดจากการไม่สามารถตั้งค่ารูปแบบเริ่มต้นของหน้าต่างเบราว์เซอร์ได้
  • ตั้งแต่ปี 1999 แอปก็ถูกแยกเป็นฟรอนต์เอนด์และแบ็กเอนด์แล้ว

    • รู้จักกันในชื่อ Finder_FE และ Finder_BE
  • ควรกล่าวถึงว่าสามารถปิดการสร้างไฟล์ .DS_Store ระหว่างการท่อง network volume ได้โดยค่าเริ่มต้น

  • ทุกครั้งที่เห็นไฟล์ .DS_Store ก็จะนึกถึง Nintendo DS

  • ถ้าไม่ใช่ผู้ใช้ Mac การดาวน์โหลดไฟล์ .tgz จาก Github แล้วมีไฟล์ .DS_Store รวมมาด้วยก็ค่อนข้างน่ารำคาญ

    • ดูเหมือนว่า MacOS จะใช้ GNU tar
    • น่าแปลกที่ไม่ได้แก้ให้มองข้ามไฟล์ .DS_Store โดยค่าเริ่มต้น
  • เป็นแฟนตัวยงของ MacOS แต่ Finder เป็นหนึ่งในตัวสำรวจไฟล์ที่งี่เง่าที่สุด

  • ไฟล์ DS Store เป็นสิ่งที่มีอยู่อย่างน่าเสียดาย

    • มันมีจุดประสงค์ของมัน แต่สำหรับคนส่วนใหญ่แล้วดูเหมือนขยะไฟล์
    • ในแง่ UX มันไม่เหมือนสิ่งที่ Apple จะทำ
    • จากการใช้ System 7.5/OSX และ Windows มาก่อน Mac มีแนวโน้มจะพยายามไม่แสดงไฟล์ที่ไม่จำเป็น