| Windows Registry |
| Sunday, 29 June 2008 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Registry, dalam platform sistem operasi Microsoft Windows 32-bit, merupakan sebuah basis data yang disusun secara hierarkis yang mengandung informasi mengenai konfigurasi sebuah sistem, mulai dari konfigurasi perangkat keras, perangkat lunak, asosiasi ekstensi berkas dengan aplikasinya hingga preferensi pengguna. Registry merupakan pengganti berkas-berkas konfigurasi *.INI yang digunakan dalam sistem Windows 16-bit (Windows 3.x dan Windows for Workgroups). Registry, pertama kali diperkenalkan di dalam sistem Windows 16-bit sebagai penampung informasi mengenai pemetaan/asosiasi ekstensi berkas dengan aplikasinya, dan kemudian dikembangkan menjadi basis data dengan cakupan yang luas pada sistem-sistem operasi keluarga Windows NT. Registry juga kemudian digunakan pada sistem operasi kelas rumahan: Windows 95, Windows 98 dan Windows ME, tapi memang implementasi yang cukup bagus dari registry terdapat di dalam keluarga sistem operasi Windows NT. Registry dalam Windows 16-bitRegistry dalam sistem Windows 16-bit (dimulai pada Windows 3.x) berguna hanya untuk menyimpan asosiasi ekstensi berkas dengan aplikasinya, serta asosiasi objek OLE di dalam dokumen dengan aplikasinya. Implementasi ini masih terbilang sederhana, karena jika dibandingkan dengan registry dalam Windows NT dan Windows 9x, asosiasi ekstensi berkas dan objek OLE hanya memakan satu anak pohon (subtree) saja, yakni di dalam HKEY_CLASSES_ROOT. Registry dalam Windows 9xDalam sistem operasi Windows 95, Windows 98, dan Windows Millennium Edition, struktur registry secara logis sama dengan struktur registry dalam Windows NT, tapi tidak kompatibel secara fisik. Dalam sistem operasi ini terdapat sebuah anak pohon tambahan, yakni HKEY_DYN_DATA yang dibuat secara dinamis dan digunakan untuk mengukur performa serta melakukan konfigurasi perangkat keras Plug and Play. Windows 9x menyimpan registry di dalam dua buah berkas, yakni %WINDIR%\system.dat dan %WINDIR%\user.dat. System.dat mengandung informasi mengenai sebuah komputer tertentu, sementara user.dat mengandung informasi mengenai sebuah profil milik pengguna. Ketika booting, Windows 9x akan memuat registry ke dalam ruangan kernel di dalam memori fisik. Registry dalam Windows NTRegistry dalam Windows NT, Windows 2000, Windows XP dan Windows Server 2003 terbagi secara logis ke dalam lima buah anak pohon (subtree), yang setiap pohon tersebut mengandung kumpulan kunci (key) dan anak kunci (subkey) yang disusun secara hierarkis. Susunan ini sama dengan susunan direktori dalam sistem berkas. Sementara itu, secara fisik, registry terdiri atas beberapa berkas yang disebut sebagai hive dan berkas catatan transaksi (transaction log) untuk setiap hive-hive tersebut yang disimpan di dalam direktori %systemroot%\system32\config. Berkas fisik registryRegistry Windows disimpan dalam beberapa berkas, tergantung sistem operasi Windows yang digunakan. Nama berkas-nya pun kadang-kadang berbeda-beda antar versi sistem operasi, tapi semua berkas tersebut disimpan di dalam mesin lokal, kecuali NTuser.dat yang dapat diletakkan di dalam komputer lainnya untuk mengizinkan fungsi roaming profile dan group policy dalam Windows NT, yang umumnya disimpan di dalam server dalam jaringan lokal. Windows NT, 2000, XP, dan Server 2003Berkas-berkas berikut merupakan berkas registry untuk sistem operasi Windows NT, Windows 2000, Windows XP dan Windows Server 2003:
Windows 95, 98, dan MeBerkas-berkas berikut merupakan berkas registry untuk sistem operasi Windows 95, Windows 98 dan Windows Millennium Edition.
Windows 3.xDalam Windows 3.x, registry hanya disimpan di dalam sebuah berkas, yakni C:\WINDOWS\Reg.dat saja. Struktur registryStruktur registry agak mirip dengan struktur direktori dalam sistem berkas. Selain itu, registry juga dapat diakses dengan menggunakan sintaksis yang sama dengan cara mengakses berkas, dengan menggunakan karakter garis miring terbalik (backslash) untuk menandakan tingkatan hierarkis. Susunannya adalah seperti <subtree>\<key>\<subkey...>. Sebagai contoh, My Computer\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows, yang merujuk kepada sebuah subkey yang memiliki nama "Windows" yang terdapat di dalam subkey Microsoft, yang terdapat di dalam key dengan nama Software, yang terdapat di dalam subtree HKEY_LOCAL_MACHINE. Setiap key dan subkey tersebut dapat memiliki nilai yang dapat ditentukan atau nilai default, yang disebut sebagai Value. Akan tetapi, cara mengakses value tidaklah sama dengan cara mengakses berkas dalam sistem berkas, mengingat nama value dapat mengandung karakter backslash yang dapat menjadi ambigu ketika menggunakan cara baca seperti halnya mengakses sistem berkas. Adalah fungsi-fungsi dalam Windows 32-bit Application Programming Interface/API (Win32 API) yang dapat melakukan query dan manipulasi terhadap value-value registry, yang dilakukan dengan cara mengambil nama value secara terpisah dari path key yang merupakan parent key. Setiap value memiliki jenis-jenis datanya masing-masing yang dapat dilihat pada bagian berikut. Daftar anak pohon RegistryRegistry Windows terdiri atas beberapa anak pohon berikut, yang disusun secara hierarkis dengan My Computer sebagai root directory-nya:
Catatan: HKEY di dalam registry Windows, merupakan singkatan terhadap kata "Handle to Key". HKEY_LOCAL_MACHINEMenyimpan informasi/data mengenai semua konfigurasi mesin yang bersangkutan. HKLM bukanlah symbolic link ke kunci registry manapun. HKEY_LOCAL_MACHINE memiliki beberapa anak kunci, yakni:
HKEY_CURRENT_USERMenyimpan informasi/data yang diasosiasikan dengan pengguna yang sedang masuk log. HKCU merupakan sebuah symbolic link ke kunci registry HKEY_USERS\<SID dari pengguna yang bersangkutan>. HKCU juga menyimpan informasi mengenai profil pengguna, konfigurasi perangkat lunak, dan preferensi mereka. Terdapat beberapa anak kunci, yakni:
HKEY_USERSAnak pohin HKEY_USERS mengandung beberapa anak yakni semua profil pengguna yang terdaftar di dalam sistem yang bersangkutan dan basis data registrasi objek OLE. Selain itu, anak pohon ini juga mengandung HKEY_USERS\.DEFAULT, yang dihubungkan dengan profil milik akun SYSTEM, yang merupakan profil yang digunakan oleh salah satu komponen Windows, WINLOGON.EXE, untuk menyimpan semua konfigurasi seperti halnya HKEY_CURRENT_USER, yakni bagaimana tampilan desktop, bagaimana konfigurasi perangkat keras dan lain-lain. Pengaturan yang diberlakukan terhadap HKU\.DEFAULT ini dapat menjadikan konfigurasi desktop dan lain-lain pada saat proses logon Windows akan berubah dari pengaturan default-nya. Ketika seorang pengguna masuk log ke sebuah sistem untuk pertama kalinya, sementara akun miliknya tidak berupa roaming profile (yakni, sebuah profil pengguna yang disimpan di dalam tempat tersentralisasi di dalam domain controller), maka Windows akan membuatkan sebuah profil yang baru untuknya, yang dibuat berbasiskan pengaturan yang terdapat di dalam C:\Documents and Settings\Default User. HKEY_CURRENT_CONFIGAnak pohon HKEY_CURRENT_CONFIG mengandung data konfigurasi untuk profil perangkat keras (hardware profile) yang sedang digunakan oleh Windows. HKCC tidak mengandung data apapun, karena memang anak pohon ini merupakan sebuah symbolic link terhadap HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\Current. Dengan demikian, dengan mengubah kunci tersebut atau mengubah HKCC, akan menghasilkan sesuatu yang sama. Penggunaan profil perangkat keras mengizinkan administrator untuk mengonfigurasikan beberapa variasi dari pengaturan driver perangkat keras yang digunakan pada saat melakukan booting. Meskipun profil yang digunakan dapat berubah dari satu proses booting ke proses booting lainnya, aplikasi dapat merujuk ke anak pohon ini untuk mencari profil mana yang sedang dimuat oleh Windows. Pengaturan profil perangkat keras dapat dilakukan dengan Control Panel->System->Hardware->Hardware Profiles. Jika ada lebih dari satu profil perangkat keras, maka komponen Windows, yakni NTLDR, akan menanyakan kepada pengguna mengenai profil yang harus dimuat pada saat proses booting dilakukan. HKEY_CLASSES_ROOTAnak pohon HKEY_CLASSES_ROOT mengandung dua jenis data, yakni:
Isi dari HKCR diambil dari dua sumber, yakni HKLM\SOFTWARE\Classes dan HKCU\SOFTWARE\Classes. Jika sebuah subkey atau entri terdapat di dalam salah satu dari dua lokasi tersebut, maka hal tersebut akan ditampilkan juga di dalam HKCR. Jika ada dua entri yang konflik di antara dua lokasi tersebut, hanya HKCU\SOFTWARE\Classes yang akan ditampilkan di dalam HKCR. HKEY_DYN_DATA[place holder] Semua informasi di atas dapat dirangkum ke dalam tabel berikut
Jenis data dalam registrySebuah value dapat memiliki jenis-jenis data seperti di bawah ini:
Jenis data registry, dapat dirangkum pada tabel berikut:
Menyunting registrySecara fisik, registry merupakan berkas biner yang tidak dapat disunting secara langsung dengan menggunakan editor teks. Akan tetapi, beberapa program editor bilangan heksadesimal dapat melakukannya, meski sangat rumit untuk dilakukan. Cara lainnya adalah dengan menggunakan alat bantu editor registry Windows. Untungnya, Microsoft menawarkan program editor registry, yang dikenal sebagai regedit. Regedit dapat diakses dengan menjalankan perintah "regedit.exe" atau "regedt32.exe" dari menu Run. Dengan ditampilkan secara struktural, penyuntingan registry pun dapat dilakukan secara jauh lebih mudah daripada menggunakan program editor teks atau editor bilangan heksadesimal. Berhati-hatilah saat melakukan penyuntingan registry, mengingat kerusakan registry seringnya tidak dapat dikembalikan. Karenanya, lakukan backup (buat salinan) terlebih dahulu sebelum menyunting. Beberapa program optimalisasi/tweaking Windows atau "hacking" Windows seperti TweakUI atau bahkan beberapa applet dalam Control Panel Windows melakukan penyuntingan terhadap registry secara langsung tanpa harus membuka editor registry, sehingga jauh lebih aman. Jadi intinya, lakukan penyuntingan registry jika dan hanya jika mengetahui seluk beluk registry yang hendak disunting. Editor registry bawaan WindowsDalam Windows 16-bit, terdapat sebuah komponen editor registry, yang disebut sebagai "Registration Info Editor" atau "Registration Editor". Seperti yang telah dibahas sebelumnya, bahwa registry dalam Windows 16-bit hanya terdapat asosiasi berkas atau objek OLE dengan aplikasinya saja, maka editor registry dalam sistem ini pun hanya dapat menyunting hal tersebut saja. Windows NT yang dirilis kemudian memperkenalkan banyak konsep baru terhadap registry Windows, seperti halnya mampu menangani beberapa sub-tree, dan juga atribut keamanan dengan access control list. Dalam Windows NT 3.1, terdapat satu editor registry, yang disebut dengan regedt32.exe, yang lebih bagus dan mampu menyunting beberapa jenis tipe data. Windows 95 juga memperkenalkan editor registry baru, yang dibuat berbasiskan registry editor bawaan Windows NT, tetapi lebih sederhana (tidak ada atribut keamanan, dan tidak ada proteksi read-only). Registry Editor dalam Windows 95/98/ME ini disebut sebagai Regedit.exe saja. Saat Microsoft merilis Windows NT 4.0, setelah Windows 95, di sistem operasi tersebut terdapat dua editor registry, yakni regedit.exe dan regedt32.exe. Regedit.exe merupakan bawaan Windows 95, sementara regedt32.exe merupakan bawaan Windows NT, yang diperbarui. Ada beberapa perbedaan di antara keduanya, yakni sebagai berikut:
Hal tersebut terus diberlakukan dalam Windows 2000. Dan, pada Windows XP dan Windows Server 2003, kemampuan kedua program tersebut digabungkan ke dalam satu program saja, regedit.exe. Regedt32.exe juga masih ada, tapi hanya berupa symbolic link saja. Jika menjalankan regedt32.exe dalam kedua sistem operasi tersebut, hal tersebut sama saja dengan menjalankan regedit.exe. Windows Vista pun demikian. Program editor registry bawaan Windows, baik itu menggunakan regedit.exe maupun regedt32.exe mampu melakukan pengeksporan registry ke dalam sebuah berkas dengan ekstensi .REG atau .KEY. Hasil pengeksporan tersebut sama saja dengan berkas teks untuk konfigurasi biasa, yakni .INI. Path registry lengkap disusun sebagai header, sementara itu, entri registry dan nilainya disusun di bawahnya. Selain tentunya dapat melakukan pengeksporan registry ke dalam sebuah berkas teks, program itu juga dapat melakukan pengimporan. Penyuntingan dengan menggunakan command-lineSelain utilitas grafis seperti Regedit.exe dan Regedt32.exe, Microsoft juga menawarkan utilitas command-line reg.exe yang mulai ditawarkan di dalam Windows 2000 Resource Kit Tools. Windows XP dan Windows Server 2003 telah mengintegrasikan program tersebut secara internal dan diinstalasikan secara default. Sintaksis yang digunakan adalah sebagai berikut: reg.exe Operasi [Daftar_Parameter] Operasi [QUERY|ADD|DELETE|COPY|SAVE|LOAD|UNLOAD|RESTORE|COMPARE|EXPORT|IMPORT]
Penyuntingan dengan menggunakan skrip/bahasa pemrogramanRegistry juga dapat disunting dengan menggunakan skrip dan bahasa pemrograman yang berjalan untuk sistem operasi Microsoft Windows. Contoh bahasa skrip (scripting language) yang sering digunakan adalah VBScript, Windows Batch File (*.BAT/*.CMD), JScript, serta Perl (dengan menggunakan W32::TieRegistry). Sementara itu, beberapa bahasa pemrograman, seperti halnya Microsoft Visual Basic, dan .NET Framework 2.0 (dalam kelas Microsoft.Win32.Registry) juga dapat langsung mengakses dan menyunting registry, mengingat mereka telah mengintegrasikan beberapa pustaka untuk melakukan hal itu. Berikut ini adalah beberapa Win32 API yang dapat digunakan untuk mengakses registry Windows dengan bahasa pemrograman yang tidak memiliki pustaka untuk melakukan penyuntingan registry secara langsung: RegCloseKey RegOpenKey Bahaya dari menyunting registryMenyunting registry secara manual dapat mengakibatkan sistem operasi tidak stabil, atau bahkan mengalami kerusakan yang tidak dapat dikembalikan lagi. Microsoft pun menganjurkan penyuntingan registry agar hanya dilakukan oleh para profesional atau pengguna yang tahu apa yang sedang dilakukan. Registry yang rusak hanya dapat dikembalikan dengan cara instalasi ulang sistem operasi, atau menimpa berkas fisik registry dengan salinannya (backup) yang masih benar dan baik. Policy file (berkas kebijakan)Semenjak dirilisnya Windows 95, para Administrator Windows dapat menggunakan sebuah jenis berkas yang dapat digabungkan dengan registry, yang disebut sebagai policy file. Policy file mengizinkan para adminstrator Windows untuk mencegah para pengguna yang bukan administrator (pengguna biasa) dari melakukan hal yang seharusnya dilakukan oleh administrator, seperti halnya mengubah beberapa pengaturan sistem, hingga menyunting registry secara manual. Policy file ini umumnya digunakan di dalam sebuah jaringan dengan banyak komputer di dalamnya, di mana komputer-komputer tersebut harus dilindungi dari tangan-tangan jahil para pengguna, dan juga para pengguna juga harus dilindungi dari pengguna lainnya. Ekstensi default untuk policy file adalah .POL. Policy file akan menyaring semua pengaturan yang diberlakukan terhadap sebuah pengguna atau beberapa pengguna yang disatukan ke dalam sebuah group. Untuk melakukannya, policy file akan menggabungkan dirinya dengan registry, sehingga mencegah para pengguna untuk mengutak-atiknya dengan mengembalikan pengaturan yang sebelumnya. Selain itu, policy file juga didistribusikan melalui LAN, tapi dapat juga diletakkan secara lokal di dalam sebuah komputer. Editor policy fileUntuk membuat sebuah policy file, Microsoft menyertakan sebuah alat bantu yang disebut sebagai poledit.exe yang diperuntukkan Windows 95 dan Windows 98, atau dengan menggunakan modul manajemen komputer dalam sistem operasi berbasis Windows NT. Modul-modul tersebut tidak dapat diberlakukan di dalam instalasi Windows XP Home Edition, dan hanya berlaku dalam Windows XP Professional saja. Pengaktifan editor tersebut membutuhkan izin yang sama dengan seorang administrator untuk sistem yang hendak diaplikasikan di dalamnya policy file. Editor juga dapat secara langsung mengubah pengaturan registry di yang ada dalam komputer lokal, dan apabila layanan remote registry service dijalankan dalam komputer lainnya, maka hal tersebut juga dapat memungkinkan perubahan registry secara jarak jauh terhadap komputer tersebut. Policy editor akan memuat semua pengaturan yang dapat diubah dari berkas berekstensi .adm, yang mengandung pengaturan yang disediakan oleh shell Windows. Berkas berekstensi .adm sendiri merupakan sebuah berkas plain text (teks biasa), dan mendukung lokalisasi secara mudah dengan mengizinkan semua teks/string untuk disimpan di dalam sebuah tempat yang sama. Dalam sistem operasi Windows yang baru, Policy editor diubah namanya menjadi Group Policies (dapat diakses dengan menggunakan perintah gpedit.msc dari menu Run). Keuntungan dari konsep RegistryDibandingkan menggunakan banyak berkas konfigurasi .INI seperti yang dilakukan di dalam Windows 16-bit menjadi sebuah tempat tersentralisasi, registry menawarkan beberapa keuntungan, yakni sebagai berikut:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| < Sebelumnya | Berikutnya > |
|---|
sumber: KlikBCA.com
|
||||||||||||||||||||||||||||||||||||||||||