Karena saya memiliki masalah deb di com, berdampingan, berurusan dengan dll neraka, sambil membenci registri windows dengan penuh semangat, saya bertanya-tanya mengapa itu diperlukan.
Saya tidak pernah merasa terdorong untuk membaca seluruh buku tentang praktik terbaik pendaftaran, dan kemudian hanya "mengerti"
Namun, saya telah menggunakan Linux dan Mac OS, dan melihat cara orang dapat menginstal beberapa versi Python dan pustaka-pustaka pada komputer * nix yang sama.
Karena registry memiliki format yang gratis (walaupun jelek), dan digunakan untuk segala macam tujuan, saya tidak pernah mengerti masalah mendasar apa yang ingin diselesaikan.
Misalnya, Microsoft tidak ingin Anda memiliki dua versi MS Office yang diinstal secara berdampingan. Mereka menggunakan registri untuk menegakkan ini selama instalasi. Batasan ini adalah buatan, menurut saya. Jika mereka benar-benar peduli untuk memungkinkan perilaku yang berbeda, mereka dapat menyesuaikan arsitekturnya.
Di Mac OS Anda dapat menginstal dan menghapus aplikasi hanya dengan menjatuhkannya ke folder tertentu.
Begitu,
A) Apa masalah penting yang coba dipecahkannya? B) Bagaimana sistem operasi lain menyelesaikannya?
sumber
Jawaban:
Sebagian besar jawaban lain kurang lebih benar, tetapi (bersama dengan pertanyaan) mereka agak kehilangan intinya.
Registri adalah manajer basis data hierarkis - tidak lebih dan tidak kurang.
"Kesalahan" yang Anda kaitkan dengan registri benar-benar independen dari registri itu sendiri. Mereka hanya keputusan berbagai vendor tentang hal-hal seperti bagaimana menginstal program mereka - jika Anda menyimpan informasi dalam beberapa mode / formulir / wadah lain, masalah yang sama bisa tetap.
Mengingat filosofi "semuanya adalah file" dari Unix, tidak heran jika sistem Unix (dan yang serupa, seperti Linux dan MacOS) menyimpan informasi sebagai file individual dalam sistem file. Ini hampir tidak berbeda karena banyak orang mungkin langsung percaya, karena sistem file Unix itu sendiri merupakan database hierarkis (atau, bisa dibilang, database jaringan jika Anda mengambil tautan simbolik ke dalam akun). Perbedaan mencolok adalah bahwa registri diakses melalui API terpisah, di mana menyimpan data konfigurasi dalam file memungkinkan file-file itu untuk diakses, diedit, dll., Melalui API (dan alat) yang sama seperti file lainnya.
sumber
Ini adalah Repositori Pengaturan - lokasi terpusat dan agak terstandarisasi untuk preferensi, pengaturan, profil ringan .
Menjadi lebih mudah untuk dipahami ketika Anda melihat gambaran besar untuk semua hal yang OS harus simpan untuk penggunanya dan aplikasi:
Windows
HKEY_LOCAL_MACHINE
dan khususnya banyak di dalamnya\SOFTWARE\Microsoft
HKEY_LOCAL_MACHINE
HKEY_USERS
,[user]\SOFTWARE\Microsoft
HKEY_USERS\[user]\SOFTWARE
C:\Users\[User]\AppData
di folder tersembunyiC:\Users\[User]\
dalam folder tidak tersembunyi yang dibuat oleh aplikasiMac OS X
/Library/Preferences
dalamcom.apple...plist
file/Library/Preferences
pihak ketiga : diplist
file pihak ketiga/Users/[user]/Library/Preferences
sama seperti di atas/Users/[user]/Library/Preferences
sama seperti di atas/Library/Application Support
/Users/[user]/Library/Application Support
/Users/[user]/
di folder yang tidak disembunyikanPada dasarnya, registri identik dengan folder Mac OS X
/Library/Preferences
, dan tidak lebih atau kurang.Fakta bahwa Mac OS memiliki kecocokan satu lawan satu untuk kelompok organisasi dari sistem dan data aplikasi menggambarkan bahwa Windows Registry adalah sistem yang sepenuhnya dapat dibenarkan yang hanya merupakan cara berbeda dalam melakukan sesuatu.
Sifat non-file-sistem dari registri memang membuat lebih sulit untuk membuat cadangan, mengembalikan atau memigrasi bagian-bagian itu sementara meninggalkan yang lain, jadi saya lebih suka sistem Mac, tetapi tujuannya hampir identik.
Kedua OS memiliki aplikasi yang memilih untuk melanggar struktur ini ke tingkat yang berbeda, biasanya melalui perebutan konteks yang lebih global untuk membuat file atau folder yang tidak benar-benar ada di sana. Beberapa aplikasi benar-benar membuat folder langsung ke
C:\
atau/
tanpa bertanya. Itu benar-benar membuatku gila!By the way, sementara sifat drag-and-drop (sebagian besar) Aplikasi Mac OS brilian, Anda memiliki masalah yang sama dengan versi yang berbeda berdampingan, meskipun Anda mungkin tidak memperhatikan - karena pengaturan Anda tidak disimpan di
.app
file itu sendiri, tetapi dalamApplication Support
atauPreferences
, setiap versi aplikasi masih akan menggunakan pengaturan yang sama dan mempengaruhi satu sama lain, kecuali versi yang lebih baru secara eksplisit memutuskan untuk menggunakan folder dengan nama yang berbeda (IntelliJIDEA70
,IntelliJIDEA81
, dll)sumber
Sebelum Registry Windows digunakan file .INI. Dalam posting blog Mengapa file INI tidak digunakan lagi karena alasan registri? Raymond Chen menyebutkan masalah yang ada dengan file .INI yang mencoba untuk dipecahkan. Dia juga menyebutkan masalah yang berbagi file konfigurasi XML dengan file .ini lama. Ini mungkin yang patut dilihat karena itulah yang banyak digunakan aplikasi saat ini.
Semua ini mengasumsikan bahwa aplikasi memang tidak pernah menulis ke file konfigurasi mereka yang saya tidak setuju tapi itu akan membuat segalanya menjadi lebih buruk tidak lebih baik.
sumber
Teori saya adalah kekuatan pendorong tidak ada di atas. Sebaliknya, itu adalah tindakan anti-pembajakan. Pada hari-hari pra-pendaftaran, Anda biasanya dapat menyalin seluruh program dari satu komputer ke komputer lain. Temukan .DLL dan Anda siap melakukannya. Registri membuat JAUH ini lebih sulit untuk dilakukan.
Ada sangat sedikit yang diselesaikan registri yang saya pikir tidak akan lebih baik dilayani oleh satu file konfigurasi per tujuan.
(2014) Untuk memperluas alasan saya di sini sedikit: Saya melihat registri sebagai objek dewa. Kita semua tahu itu antipattern.
sumber
Pemahaman saya yang kasar adalah bahwa registri dirancang untuk menjadi semacam pengaturan penyimpanan, menggantikan file .ini yang dulu digunakan.
(NB, pemahaman yang kasar, jadi ini mungkin salah).
sumber
A) Saya setuju dengan jawaban Tim.
B) Sistem operasi lain menggunakan metode lain untuk menyimpan pengaturan program, misalnya, biasanya Unix menempatkan file di / etc (file global) dan di folder pengguna di berbagai folder tersembunyi (pengaturan pengguna). Jadi mereka semua menggunakan beberapa bentuk registri, kecuali bahwa dalam beberapa kasus didistribusikan.
sumber
Seperti yang saya pahami (belum tentu menikmatinya)
A) Untuk memberikan "lokasi terpusat" tempat program dapat menyimpan informasi tentang pemasangan atau pengaturannya. Info ini kemudian dapat digunakan oleh program dengan cara apa pun yang mereka putuskan. Kustomisasi, anti-pembajakan, dll.
Semua informasi yang berada dalam struktur ini melindunginya, pikirkan gagasan tentang binatang yang berkumpul bersama, lebih aman dalam jumlah. Jika setiap bit info adalah file inisendiri maka beberapa pengguna berpotensi menghapusnya dengan iseng. Mereka masih bisa melakukan itu dengan masuk ke dalam registri tetapi banyak yang melihatnya sebagai semacam kotak hitam dan tidak akan menyentuhnya karena takut merusak sistem mereka.
B) Mac OS menggunakan file individual seperti file ini windows yang digunakan sebelum registri datang.
sumber
Tujuan yang jelas dari Registry adalah untuk bertindak sebagai repositori tunggal untuk semua konfigurasi dan pengaturan data dan menghapus ketergantungan pada file konfigurasi.
Pada sistem operasi lain, modus operandi adalah untuk menyimpan informasi khusus aplikasi (seperti file konfigurasi) ke direktori tersembunyi aplikasi khusus di direktori home pengguna. (Misalnya, game Aquaria menyimpan informasi konfigurasi di
$HOME/.Aquaria
.) File pengaturan global disimpan di/etc/
.Mac melakukan hal mereka sendiri:
plist
file khusus aplikasi disimpan (saya percaya) diLibrary
direktori pengguna atau sistem .sumber
Masalahnya bukan dengan filosofi registri tetapi dengan desain itu. Registri digunakan oleh OS untuk mencari informasi penting mengenai program yang sedang dimuat. Meskipun alih-alih memuat informasi sebagaimana dan ketika dibutuhkan, memuat semuanya saat boot, yang "dapat" mempengaruhi kinerja sistem. Sistem ini juga disalahgunakan secara menyeluruh karena vendor memuatnya dengan banyak informasi dan seringkali mereka tidak menghapus informasi tersebut ketika perangkat lunaknya dihapus instalasinya.
Tidak seperti Unix di mana semuanya disimpan n file dan dimuat sesuai kebutuhan. OS dengan cara ini tidak bergantung pada keterampilan pemrograman Vendor untuk memengaruhi kinerjanya ...
sumber
Meskipun saya tidak dapat mengomentari sistem operasi lain, registri juga membantu menjaga konfigurasi aplikasi selama proses peningkatan atau penghapusan / instal ulang. Jika semua konfigurasi dalam file .ini yang perlu diganti karena pembaruan yang menambahkan fitur, Anda mungkin mengalami kesulitan, atau harus membuat proses yang disesuaikan untuk menggabungkan data konfigurasi ke file yang masuk ini.
Namun, dengan data dalam registri, Anda dapat menggunakan paket penginstal umum (WIX, InstallShield, dll.) Yang akan menangani penghapusan / instal ulang file tanpa menyentuh pengaturan aplikasi.
sumber
(semua A. Tidak yakin tentang B)
Saya percaya ini sebenarnya ke titik (historis) bahwa registri bertindak sebagai semacam antarmuka umum untuk pengaturan aplikasi.
Punya aplikasi? Ingin menyimpan pengaturan yang dicakup pengguna? Bung itu dalam registri.
Tidak perlu "memastikan profil pengguna", tidak perlu langsung mengakses sistem file sama sekali. Win32 terlihat setelah semua itu.
sumber
Itu adalah cara untuk menciptakan sesuatu yang baru, asing dan tabu bagi sebagian besar pengguna, sehingga mereka akan membiarkannya sendiri. File .ini dan autoexec.bat dapat dengan mudah dihapus atau diubah menjadi lebih buruk.
Mengubah Pengaturan Pendaftaran, oh my!
sumber
Selain hanya menyimpan pengaturan aplikasi, registri adalah sarana yang program dan komponen menemukan lainnya program dan komponen . Pada akhirnya, saya pikir ini adalah mengapa ini terpusat ke dalam satu basis data sebagai lawan untuk menyebar di ribuan file teks atau xml.
Sebagai contoh, komponen yang melakukan, katakanlah, efek video 'mendaftarkan' dirinya sendiri dalam registri, memungkinkan aplikasi terkait video lainnya mengetahui keberadaannya dan menggunakannya. Dengan memiliki sistem terpusat untuk ini, ia menghindari kekacauan serius karena ribuan sistem dan aplikasi menggunakan metode yang berbeda untuk mencapai tingkat integrasi tersebut.
sumber