Asal-usul .DS_Store (2006)
(arno.org).DS_Storeadalah singkatan dari Desktop Services Store, yang muncul saat Finder untuk Mac OS X dibuat ulang pada 1999- Saat itu basis kode Finder sudah berusia sekitar 8 tahun, sehingga perubahan kecil pun memerlukan biaya besar dan bisa merusak fitur yang tampaknya tidak terkait, sehingga diperlukan penulisan ulang total
- Finder baru memisahkan antarmuka pengguna dan backend, dan backend menangani metadata seperti enumerasi file, pemantauan perubahan, posisi ikon, dan pengaturan folder
- Backend Finder menjadi kandidat API publik yang dapat digunakan di luar Finder, dan bersama rencana mengubah nama Finder menjadi “Desktop”, muncullah nama Desktop Services
.DS_Storeawalnya seharusnya hanya dibuat saat pengaturan tampilan atau posisi ikon diubah, tetapi karena bug, file ini sering dibuat hanya dengan mengunjungi folder
Lahirnya nama Desktop Services Store
- Pada 1999, saat Apple membuat ulang Finder untuk Mac OS X, basis kode Finder lama sudah berusia sekitar 8 tahun
- Perubahan memerlukan upaya rekayasa yang besar
- Perubahan biasanya merusak 2~3 fitur yang tampaknya tidak terkait
- Diputuskan bahwa Finder untuk Mac OS X harus ditulis ulang dari awal
- Dalam proses penulisan ulang, antarmuka pengguna Finder dipisahkan dari backend fungsi inti
- Nama internalnya masing-masing adalah
Finder_FEdanFinder_BE - Backend bertanggung jawab atas enumerasi file, pemantauan perubahan sistem file, pemrosesan metadata, posisi ikon, dan pengaturan folder
- Nama internalnya masing-masing adalah
- Backend Finder dinilai bisa berguna juga di luar Finder, sehingga muncul rencana untuk suatu hari menyediakannya sebagai API publik
- Berdasarkan pengalaman sebelumnya memberi nama
Icon ServicesdanNavigation Services, dipilihlah namaDesktop Services - Saat itu juga sedang dipertimbangkan rencana mengganti nama Finder menjadi “Desktop”
.DS_Storeberasal dari nama “Desktop Services Store”- Tanda
.di depan dipilih agar diperlakukan sebagai file tak terlihat di OS keluarga Unix dan Mac OS
- Berdasarkan pengalaman sebelumnya memberi nama
Kondisi pembuatan dan dampak setelahnya
- Namanya mungkin saja bisa dibuat lebih deskriptif, tetapi setelah telanjur digunakan luas, menjadi sulit untuk mengubahnya
- File
.DS_Storeawalnya seharusnya hanya dibuat ketika pengguna menyesuaikan pengaturan tampilan folder atau menetapkan posisi ikon secara manual- Namun, karena bug yang tidak pernah diperbaiki, file ini dibuat secara berlebihan
- Dalam praktiknya, hampir dapat dipastikan bahwa
.DS_Storeakan dibuat hanya dengan mengunjungi folder
Finder_BE, yaitu Desktop Services, juga digunakan di luar FinderNavigation Services, yaitu dialog buka/simpan, kemudian ikut menggunakannya- Pada rilis awal Mac OS,
Navigation Servicesbelum menggunakannya Desktop Services APImasih belum sepenuhnya dipublikasikan
1 komentar
Opini Hacker News
Selain berkas ini, ada juga momen yang membingungkan karena konsep fork pada sistem berkas Mac
Fork di sini bukan
fork(), melainkan struktur dalam sistem berkas di mana komponen data dan komponen resource hadir berpasangan; yang satu diperlakukan seperti metadata, yang satu seperti isi berkasDi Unix, metadata berada di sisi blok direktori inode dan bukan format yang terikat unik pada berkas, sehingga struktur seperti
tar,cpio,zipharus merepresentasikannya secara terpisahUntuk mengimplementasikan dukungan berkas yang kompatibel dengan Mac di Unix, resource fork harus diperlakukan sebagai data kelas utama, dan cara yang wajar adalah menaruh berkas seperti
.filedi samping tiap berkasSaat itu blok inode UFS tidak bisa memetakan semua atribut resource fork, dan hal-hal seperti ikon juga ada di dalamnya. Sistem berkas yang lebih modern punya struktur blok direktori yang lebih besar sehingga bisa menangani data seperti ini dengan lebih baik
Lebih tepat melihatnya sebagai dua set isi berkas; yang satu disebut
data, yang satursrc, dan di atas disk keduanya hanyalah stream byteNamun resource fork biasanya menyimpan struktur potongan data kecil yang diindeks dengan kode tipe 4 byte dan ID integer 2 byte
Aplikasi Mac 68K memasukkan hampir semuanya ke resource fork: kode, menu, kotak dialog, gambar, ikon, string, dan lain-lain; jika aplikasi Mac lama disalin ke PC atau Unix tanpa konversi, ia terlihat seperti berkas kosong
Karena itu, untuk mengirim aplikasi Mac lewat jaringan, ia harus dienkode menjadi satu stream; pada masa awal digunakan BinHex
.hqxatau MacBinary.bin, lalu kemudian arsip Stuffit.sitAlasan struktur seperti ini tidak cocok dengan inode adalah karena pada dasarnya sama saja seperti mencoba menjejalkan satu berkas utuh ke sana. Struktur resource fork itu sendiri memiliki batas 16 MB, tetapi jika diperlakukan sebagai stream data terpisah, ukurannya bisa dibuat sebesar yang diinginkan
Misalnya plugin Escape Velocity memakai tipe resource kustom, dan bisa diedit dengan mudah menggunakan plugin ResEdit
https://en.wikipedia.org/wiki/NTFS#Alternate_data_stream_(AD...
Tipe berkas, creator code, lock, invisible, bit bozo, dan sebagainya selalu disimpan di sistem berkas
Misalnya lihat penjelasan format disk MFS: https://wiki.osdev.org/MFS#File_Directory_Blocks
Membuat DVD boot Mac juga lumayan tidak mudah
Seingat saya dulu ada cara untuk mematikan pembuatan
.DS_Store, tetapi Apple menghapusnya, dan saya sama sekali tidak paham kenapa mereka membuat perubahan ituAkhirnya saya sampai menulis sendiri program yang memantau seluruh sistem berkas lalu menghapus
.DS_Storebegitu muncul[0] https://github.com/slmjkdbtl/dskill
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUEhttps://support.apple.com/en-us/102064
Saya tidak ingat pernah ada cara untuk mematikannya pada volume lokal
.di root sistem berkasSetelah
.DS_Storediizinkan, tampaknya engineer lain juga jadi mudah menyetujui hal-hal seperti.fseventsd,.Spotlight-V100Entah sudah berapa banyak sistem berkas yang saya lihat “tercemar” oleh berkas-berkas seperti ini. Biasanya kartu SD atau flash drive USB, tetapi kadang ada kasus yang jauh lebih mengerikan
Biasanya dalam situasi seperti ini saya menjalankan
rm -rf .DS_Store .Trashes ._.Trashes .fseventsd .Spotlight-V100, lalu cepat-cepat melepas drive sebelum ada hal lain yang ditulisTerutama ketika harus menyalin data dari disk yang kondisinya memburuk, hal yang paling tidak diinginkan adalah memulai pengindeksan penuh dan menulis ke disk
Serius, hal seperti ini seharusnya punya opsi pengaturan
find / -name ".DS_Store" -exec rm {} \; 2>/dev/nullMasukkan ini ke skrip lalu tambahkan ke
crontab.DS_Storebenar-benar terlihat seperti desain yang sial. Memang ada tujuannya dan ada berbagai cara mengakalinya, tetapi dalam praktiknya ia menjadi sesuatu yang menyebarkan sampah file kepada 99% orang yang menemuinyaDari sisi penyelesaian pengalaman pengguna, ini terasa tidak seperti Apple
Saya tumbuh dengan memakai System 7.5, OS X, dan Windows bersama-sama, dan Mac biasanya tidak memaksa pengguna melihat detail implementasi seperti file atau format file yang tidak perlu, atau “bagaimana komputer bekerja secara internal”
Jadi aneh rasanya file ini muncul di mana-mana, karena sangat tidak cocok dengan mental model saya tentang Mac
.DS_Storekecuali memakai terminalFinder sekarang tidak menampilkannya bahkan saat tampilan file tersembunyi diaktifkan
Namun saat berbagi file dari Mac ke pengguna Windows, tampilannya benar-benar buruk, dan menurut saya bisa memberi kesan pertama yang jelek kepada orang yang sedang mempertimbangkan pindah ke Mac
Saya tidak mengerti mengapa file itu harus berada di folder yang sama. Tidak bisakah sistem operasi menyimpan basis data kecil miliknya sendiri di suatu tempat lalu merujuk tiap path?
Saya setuju dengan pendapat bahwa “file itu seharusnya hanya dibuat ketika pengguna benar-benar mengubah pengaturan tampilan atau menentukan posisi ikon di dalam folder secara manual.” Namun pada kenyataannya, hanya dengan mengunjungi folder saja hampir pasti
.DS_Storeakan dibuatIni keluhan terbesar saya terhadap Finder
Kemampuan untuk mengustomisasi tampilan dan ukuran jendela folder individual seperti di Classic Mac OS Finder adalah fitur yang sangat bagus
Tetapi hanya dengan melewati folder yang sama lewat jendela browser, sebagian besar kustomisasi itu akan ditimpa oleh pengaturan jendela browser, padahal tidak ada yang diubah
Kalau semudah itu rusaknya, tidak ada gunanya memberi kustomisasi yang hebat
Saya membuka folder Applications dengan pintasan global, tetapi percuma saja ingin mempercantik tampilan jendelanya. Setiap kali menekan pintasan, saya tidak tahu apa yang akan terlihat dan pengaturannya terus direset
Alasannya karena Finder tidak punya cara untuk mengatur konfigurasi jendela browser default. Sebagai gantinya, ia meninggalkan pengaturan browser saat ini di setiap folder yang dikunjungi, dan ini benar-benar menjengkelkan
Saya sangat suka dan merindukan jendela yang muncul kembali persis seperti posisi terakhirnya
cmd-shift-A, dan folder Utilities dengancmd-shift-UKarena saya bukan pengguna Mac, saya selalu agak kesal saat
.tgzyang saya unduh dari tempat seperti GitHub penuh dengan.DS_StoremacOS tampaknya mungkin memakai GNU
tar, jadi cukup mengejutkan bahwa mereka tidak memodifikasi atau mengonfigurasinya agar secara default mengabaikan.DS_StoreJika mengekspor
COPYFILE_DISABLE=true,tarakan melewati file.DS_StoreCara menonaktifkan pembuatan file
.DS_Storesecara default saat menjelajahi volume jaringan layak disebut. Jika tidak, hanya dengan melihat-lihat lewat Finder saja waktu modifikasi direktori akan berubah, dan itu benar-benar yang terburukhttps://old.reddit.com/r/MacOS/comments/lvju40/comment/gpc8i...
.DS_Storedi volume jaringan lewat Finder, kelihatannya tidak ada, tetapi ketika saya masuk lewat terminal, ternyata sebenarnya adaKini fitur Finder untuk menampilkan file tersembunyi tidak bisa dipercaya. Alih-alih menampilkan semua file tersembunyi, Finder hanya menampilkan file tersembunyi yang menurutnya perlu diperhatikan pengguna
Network share saya adalah Synology lokal, jadi bukan masalah besar, tetapi di tempat kerja file-file seperti ini menciptakan situasi yang cukup berantakan
Ada juga file titik-garis bawah (
._). Apakah ada cara untuk menonaktifkan agar file seperti ini tidak muncul di network share?[0] https://superuser.com/questions/212896/is-there-any-way-to-p...
Untungnya, jika memakai manajer file Emacs, Dired, kita bisa dengan mudah berpura-pura file kecil yang menyebalkan ini dan file-file yang dibuat oleh eksekusi LaTeX tidak ada
(setq dired-omit-mode tdired-omit-files "^.+\\.\\(DS_Store\\|aux\\|bak\\|bbl\\|bcf\\|blg\\|dvi\\|ent\\|idx\\|ilg\\|ind\\|log\\|orig\\|out\\|pdf-view-restore\\|pdf#\\|reg\\|run.xml\\|synctex.gz\\|toc\\)$")