Mengapa registri Windows diperlukan?


56

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?


2
Aplikasi dapat diinstal dengan Drag-and-drop pada Windows juga. Eclipse IDE adalah contoh pertama yang muncul di benak Anda. Ada yang lain, saya yakin. Registri juga digunakan untuk mengkonfigurasi banyak aspek lain dari sistem operasi (saya selalu berpikir bahwa itu adalah tujuan utama dari keberadaannya) dan program lainnya, dan juga dapat disalahgunakan dalam semua jenis cara yang menarik dan kreatif.
FrustratedWithFormsDesigner

Lihat fun.drno.de/flash/howto_turn_windows_into_linux.swf Langkah 2 hingga 4 memiliki perbandingan yang lucu dari data konfigurasi semacam ini untuk windows dan linux. ;)
FrustratedWithFormsDesigner


3
Anda dapat menginstal dua versi kantor sehingga "batasan" yang Anda sebutkan bukan hanya buatan khayalannya
Conrad Frix

1
@Pekerjaan. Saya kira saya bisa menyetujui itu kecuali untuk fakta bahwa masalah memiliki solusi yang diterima, perbaikan registri, (ironi tidak hilang) yang mengacu pada menjalankan 2007/2003 berdampingan. Kapan Anda mengalami masalah ini di mana Anda ingin menjalankan dua instalasi Office secara berdampingan? BTW inilah KB Untuk menjalankan XP dan 97 berdampingan
Conrad Frix

Jawaban:


42

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.



11
@Conrad Frix: apa yang membuat Anda berpikir transaksi ACID atau bahasa permintaan harus menjadi bagian dari database?
Jerry Coffin

1
@ Jerry, tentu saja. Saya setuju dengan Anda di sana. Tetapi (sebagaimana dibuktikan oleh komentar Conrad) banyak yang cenderung mengasumsikan hal-hal tertentu tentang sifat-sifat sesuatu yang disebut "database", jadi saya kira upaya saya dalam mediasi hanyalah untung-rugi.
Nicole

1
@Conrad Frix: beberapa sistem file tidak hierarkis, tentu saja. Tapi, saya tidak bermaksud bahwa Unix FS lebih hierarkis daripada yang lain - NTFS (hanya sebagai contoh) juga.
Jerry Coffin

3
@ JBRWilkinson: Anda memiliki banyak hal mundur. Ada komponen lain yang bergantung pada lokasi hard-coded di registri (sama seperti ada komponen di Unix yang bergantung pada jalur file hard-coded). Itu tidak mengubah apa registri itu atau tidak.
Jerry Coffin

25

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

  • Pengaturan Repositori
    • Sistem: Windows Registry HKEY_LOCAL_MACHINEdan khususnya banyak di dalamnya\SOFTWARE\Microsoft
    • Sistem pihak ketiga: Windows RegistryHKEY_LOCAL_MACHINE
    • Sistem-sentris pengguna: Windows Registry HKEY_USERS,[user]\SOFTWARE\Microsoft
    • Sentris pengguna pihak ketiga: Windows RegistryHKEY_USERS\[user]\SOFTWARE
  • File aplikasi yang seharusnya tidak perlu dilihat pengguna C:\Users\[User]\AppData di folder tersembunyi
  • File aplikasi yang mungkin diinginkan pengguna C:\Users\[User]\ dalam folder tidak tersembunyi yang dibuat oleh aplikasi

Mac OS X

  • Pengaturan Repositori
    • Sistem dan pihak ketiga: /Library/Preferences dalam com.apple...plistfile
    • Sistem /Library/Preferences pihak ketiga : di plistfile pihak ketiga
    • Sistem-sentris pengguna:, /Users/[user]/Library/Preferences sama seperti di atas
    • Sentris pengguna pihak ketiga:, /Users/[user]/Library/Preferences sama seperti di atas
  • File aplikasi di seluruh sistem yang tidak perlu dilihat pengguna /Library/Application Support
  • File aplikasi yang tidak perlu dilihat pengguna /Users/[user]/Library/Application Support
  • File aplikasi yang mungkin diinginkan pengguna /Users/[user]/ di folder yang tidak disembunyikan

Pada 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 .appfile itu sendiri, tetapi dalam Application Supportatau Preferences, 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)


Benar, registri awalnya dimulai sebagai repositori pengaturan, sebagai pengganti file INI, namun hari ini, sering digunakan sebagai penyimpanan data umum, karenanya sarang kembung.
Synetech

20

Saya tidak pernah mengerti masalah mendasar apa yang coba dipecahkannya.

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.

... pendulum telah berayun kembali ke file konfigurasi teks, tetapi kali ini, itu XML. Ini membuka kembali banyak masalah yang dimiliki file INI, tetapi Anda memiliki keuntungan besar yang tidak ada yang menulis ke file konfigurasi XML; mereka hanya membaca dari mereka. File konfigurasi XML tidak digunakan untuk menyimpan pengaturan pengguna; mereka hanya berisi informasi tentang program itu sendiri. Mari kita lihat masalah itu lagi.

  • Keamanan file XML tidak cukup granular. Tetapi karena file konfigurasi XML adalah read-only, keberatan utama adalah sidestepped. (Tetapi jika Anda hanya ingin administrator memiliki izin untuk membaca bagian tertentu dari XML, maka Anda dalam masalah.)
  • Karena file konfigurasi XML hanya baca, Anda tidak perlu khawatir tentang banyak penulis.
  • File konfigurasi XML dapat mengalami penolakan layanan. Anda masih dapat membukanya secara eksklusif dan mengunci proses lainnya.
  • File XML hanya berisi string. Jika Anda ingin menyimpan data biner, Anda harus menyandikannya.
  • Parsing file XML relatif lambat. Tapi karena hanya baca, Anda dapat dengan aman men-cache hasil yang diurai, jadi Anda hanya perlu mengurai sekali.
  • Program mem-parsing file XML secara manual, tetapi format XML sudah dikunci, jadi Anda tetap tidak bisa memperpanjangnya meskipun Anda menginginkannya. Mudah-mudahan, program-program tersebut menggunakan parser XML yang sesuai standar alih-alih menggulirkan parser mereka sendiri, tetapi saya tidak akan terkejut jika orang menulis parser XML kustom mereka sendiri yang tersendat, misalnya, memproses instruksi atau string yang lebih panjang dari 70 karakter.
  • File XML tidak memiliki batas ukuran.
  • File XML tidak memiliki lokasi default.

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.


2
Paling tidak sedikit ironis bahwa banyak aplikasi yang sepenuhnya meninggalkan registri sekarang mendukung file INI lagi (tidak terlalu banyak dengan XML) berkat peningkatan popularitas "portabilitas", itu sendiri berkat flash drive.
Synetech

11

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.


7
Jadi microsoft menciptakan sesuatu yang khusus untuk membatasi apa yang bisa dilakukan pengguna dengan mudah? ... sepertinya benar.
dan_waterworth

Jelas merupakan anti-pola. Pikiran yang menarik.
Brad Thomas

perspektif yang menarik tetapi pada saat registri diperkenalkan, ini masih era DOS + Windows di mana perang antara perompak dan perlindungan hak cipta berada pada puncaknya dengan banyak ilmu hitam berkat aksesibilitas perangkat keras. Tidak mungkin ada orang yang akan menyampaikan pada registri untuk perlindungan hak cipta pada saat itu.
Codism

6

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).


5

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.


3

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.


3

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: plistfile khusus aplikasi disimpan (saya percaya) di Librarydirektori pengguna atau sistem .


3

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 ...


2

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.


1

(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.


1

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!


1

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.