3 điểm bởi GN⁺ 2024-07-04 | 1 bình luận | Chia sẻ qua WhatsApp
  • Nguồn gốc của DS_Store của Apple

  • Nếu là người dùng Mac hoặc từng chuyển tệp từ Mac sang Windows, hẳn bạn đã quen với tệp .DS_Store

  • Nguồn gốc của cái tên này bắt nguồn từ năm 1999

  • Vào thời điểm đó, tác giả là trưởng nhóm kỹ thuật của Finder trên Mac OS X tại Apple

  • Codebase của Finder đã tồn tại 8 năm và đã hết vòng đời hữu ích

  • Để thực hiện thay đổi cần một nỗ lực kỹ thuật khổng lồ, và mỗi lần thay đổi thì hai hoặc ba tính năng không liên quan lại bị hỏng

  • Vì vậy đã quyết định viết lại Finder từ đầu cho Mac OS X

  • Một phần của công việc là tách giao diện người dùng khỏi chức năng cốt lõi, tức backend

  • Backend của Finder có nhiệm vụ liệt kê tệp, theo dõi các thay đổi của hệ thống tệp và xử lý metadata

  • Nội bộ, hai thành phần này được gọi là Finder_FE và Finder_BE (Frontend và Backend)

  • Sau đó nhận ra rằng backend của Finder cũng sẽ hữu ích bên ngoài Finder

  • Vì vậy đã lập kế hoạch biến nó thành một API công khai

  • Trước đó tác giả từng phụ trách việc đặt tên cho Icon Services và Navigation Services, nên đã chọn cái tên Desktop Services

  • .DS_Store là viết tắt của "Desktop Services Store"

  • Dấu "." được thêm vào đầu để nó được coi là tệp ẩn trên các hệ điều hành Unix, bao gồm cả Mac OS

  • Về mặt cá nhân, tác giả cho rằng cái tên này không thực sự hay và đáng ra nên chọn một cái tên mang tính mô tả hơn

  • Lỗi dẫn đến việc tạo .DS_Store quá mức đến nay vẫn chưa được sửa

  • Nó lẽ ra chỉ nên được tạo khi người dùng điều chỉnh thiết lập hiển thị hoặc đặt vị trí thủ công của biểu tượng trong thư mục

  • Tuy nhiên, chỉ cần truy cập một thư mục thì gần như chắc chắn .DS_Store sẽ được tạo ra

  • Finder_BE, tức Desktop Services, còn được dùng ngoài Finder

  • Navigation Services (hộp thoại mở/lưu) cũng sử dụng nó

  • Tuy nhiên, API Desktop Services đến nay vẫn chưa được công khai hoàn toàn


  • Xuất bản ngày 1 tháng 10 năm 2006
  • Tác giả: Arno Gourdol

Ý kiến của GN⁺

  • Bài viết này cung cấp bối cảnh kỹ thuật bằng cách giải thích lịch sử của Finder trên Mac OS X và nguồn gốc của tệp .DS_Store
  • Vấn đề tạo tệp .DS_Store quá mức vẫn chưa được giải quyết, và điều này có thể ảnh hưởng đến trải nghiệm người dùng
  • Khả năng tái sử dụng của backend Finder cho thấy triết lý thiết kế phần mềm của Apple
  • Các công cụ quản lý hệ thống tệp khác có chức năng tương tự gồm NTFS của Windows và ext4 của Linux
  • Khi áp dụng công nghệ mới hoặc mã nguồn mở, cần cân nhắc khả năng tương thích với hệ thống hiện có cũng như vấn đề bảo trì

1 bình luận

 
GN⁺ 2024-07-04
Ý kiến trên Hacker News
  • Khái niệm "fork" trong hệ thống tệp của Mac có nghĩa là các thành phần resource và data tồn tại thành cặp

    • Trên Unix, metadata nằm trong inode của khối thư mục và phải được biểu diễn một cách có cấu trúc bằng tar, cpio, zip, v.v.
    • Để triển khai hỗ trợ tệp tương thích Mac trên Unix, cần phải coi resource fork như một thực thể hạng nhất
    • Các hệ thống tệp hiện đại có cấu trúc khối thư mục lớn hơn và có thể xử lý dữ liệu tốt hơn
  • Trước đây có cách tắt việc tạo tệp .DS_Store nhưng đã bị loại bỏ

  • Không hiểu vì sao tệp .DS_Store phải nằm trong cùng thư mục

    • Hệ điều hành không thể có cơ sở dữ liệu riêng tham chiếu đến đường dẫn sao?
  • Tệp .DS_Store chỉ nên được tạo khi người dùng điều chỉnh thiết lập chế độ xem của thư mục hoặc đặt vị trí biểu tượng thủ công

    • Khi truy cập thư mục bằng Finder, tệp .DS_Store gần như luôn được tạo ra
    • Trong Finder có thể tùy chỉnh giao diện và kích thước của cửa sổ thư mục, nhưng nếu mở cùng thư mục đó trong cửa sổ trình duyệt thì phần lớn các tùy chỉnh này sẽ biến mất
    • Đây là vấn đề phát sinh do không thể đặt cấu hình mặc định cho cửa sổ trình duyệt
  • Ngay từ năm 1999, ứng dụng đã được tách thành frontend và backend

    • Chúng được biết đến với tên Finder_FE và Finder_BE
  • Cũng đáng nhắc đến cách tắt mặc định việc tạo tệp .DS_Store khi duyệt các volume mạng

    • Nếu không, timestamp sửa đổi thư mục sẽ bị cập nhật khi duyệt bằng Finder
    • Liên kết liên quan
  • Mỗi khi nhìn thấy tệp .DS_Store lại nghĩ đến Nintendo DS

  • Với những người không dùng Mac, việc tải tệp .tgz từ Github mà bên trong có .DS_Store khá phiền phức

    • Có vẻ MacOS dùng GNU tar
    • Thật ngạc nhiên là nó không được chỉnh để mặc định bỏ qua tệp .DS_Store
  • Dù là người rất hâm mộ MacOS, nhưng Finder là một trong những trình quản lý tệp ngớ ngẩn nhất

  • Tệp DS Store là một sự tồn tại đáng tiếc

    • Nó có mục đích riêng, nhưng với đa số mọi người nó trông như rác tệp
    • Xét về UX thì không giống Apple chút nào
    • Khi dùng System 7.5/OSX và Windows, Mac có xu hướng không hiển thị các tệp không cần thiết