Windows 2003 Registry PDF Yazdır e-Posta
Çarşamba, 19 Aralık 2007 03:43

 

Tüm NT versiyonlarında olduğu gibi çoğu zaman bir problemin çözümü “registry hack” de denilen yöntemle Registry de bir takım değişiklikler yapmakla sağlanabiliyor. Şimdi Registry’nin tam olarak ne olduğunu, ne işe yaradığını ve bizim ondan nasıl faydalanabileceğimizi açıklamaya çalışacağız.

 

 

Masaüstüne sağ tık>özellikler>görünüm yaptınız ve Windows pencere renklerini kendi hoşunuza giden şekilde değiştirdiniz, restart ettiniz ve ta taa az önce yaptığınız değişiklik kaybolmamış nasıl ayarlamışsanız aynen öyle açıldı Windows.. Aynı şekilde bir çok programın da ayarlamalarını vs. yapıyoruz ve bilgisayarı açıp kapasak bile bu yaptığımız ayarlar kaybolmuyor, demek ki tüm bunlar bir yerlerde saklanıyor..

 

Evet, tüm bunlar yani hem Windows ile ilgili yaptığımız tüm değişiklik ve ayarlar hem de son dönemde yazılan bir çok üçüncü parti yazılımlar kendi ayarlarını Window Registry içine kaydediyorlar.

İlk Windows versiyonlarında (Windows 2 ve 2.1) bir değişiklik yaptığınızda, yeni bir sürücü yüklediğinizde mesela, inanması zor gelse de, Windows setup Windows’un yeni bir kopyasını en baştan oluşturuyordu.

Çok şükür sonraki versiyonlarda daha “akılcı” bir yöntem buldular; Windows 3.1 versiyonunda Windows ile ilgili tüm ayarlar Win.ini, System.ini ve Control.ini adlı üç text dosyada tutulmaya başlandı. Bu aslında o dönem için iyi bir çözümdü, zaten Dos modunda açılıp Window’a girildiği için bir sorun olduğunda bu text dosyaları dos modunda editleyip istediğimiz değişiklikleri yapabiliyorduk.

Ancak NT’nin ilk versiyonuyla beraber daha güçlü bir kayıt sistemine ihtiyaç doğdu ve Registry ilk defa kullanılmaya başlandı.

Window 2003 Registry masaüstü ayarlarınızdan yerel kullanıcıların şifrelerine kadar (tabii ki kriptolanmış halde) her türlü bilgiyi üzerinde tutar (ancak domain kullanıcıları ile ilgili bilgiler ve şifreler Actice Directory üzerinde tutulmaktadır). Registry veri kayıplarına karşı yedekli olarak çalışır ve tam Registry’de bir değişiklik yapılırken birden elektrik kesilse bile veri kaybı yaşanmaz. Ancak Windows’un devasa yapısı Registry’nin de bir çok alt dalı ile devasa bir veritabanına dönüşmesine yol açmıştır.

Registry Nedir?

 

Registry hiyerarşik yapıda (ağaç yapısında) olan ve Windows ile ilgili tüm ayarların tutulduğu bir veritabanıdır (database). Örneğin Control panelde bir değişiklik yaptığınız anda bu Registry’ye yazılır. Bir pencerenin (örneğin Bilgisayarım penceresini) boyutunu veya yerini değiştirip kapattığınız anda bu Registry’ye yazılır, böylece bilgisayarı restart etseniz bile aynı pencereyi açtığınız anda kapadığınız konum ve boyutta bulursunuz. Bu örnek bile Registry’nin gücünü göstermektedir.

Registry sadece bizim yaptığımız bu tip değişiklikleri saklamakla kalmaz, aynı zamanda donanımla ilgili tüm bilgileri de saklar. Aslında bilgisayarı her açışımızda Windows yüklenirken sistem donanımını inceler ve bu donanımı yansıtan ayarları dinamik olarak Registry’nin bir bölümüne kaydeder.

Registry ayrıca Windows’un tasarımı sırasında programcıların belirlediği bir çok ayarı da saklamaktadır. Normal şartlar altında “normal” kullanıcılar Registry ile hiç uğraşmazlar ama bizler pek “normal” olmadığımız için Registry’nin ayrıntılarını öğrenmeye devam ediyoruz ve yeri geldiğinde az önce bahsettiğim bir takım özel ayarlara da müdahale edebiliriz.

Belirttiğim gibi Registry’nin yüzde doksanı bizim için öndem taşımıyor ancak geri kalan bölümü tüm “Windows Performansını nasıl arttırırsınız”, “Şu gıcık Windows probleminin çözümü için şunu yapın” tarzı makalelerin mihenk noktasını oluşturmaktadır.

Registry’nin Yapısı

 

Şimdi Başlat>Çalıştır>regedit.exe yazıp Registry editörü açalım.

İşte bahsedip durduğumuz Registry karşınızda. Bu program (regedit.exe) sayesinde Registry veritabanına ulaşabiliyoruz. Biraz gezinin ve anlamaya çalışın ama hiçbir şeyi değiştirmeyin. Çünkü bu programda “kaydet” veya “geri al” gibi bir buton yok. Yaptığınız değişiklikler anında geçerli oluyor ve Windows’un beyni üzerinde ameliyat yaptığınızı hiç aklınızdan çıkarmayın yanlış bir hareket sakat kalmasına hatta ölmesine yol açabilir…

Registry ile ilgili bilmeniz gereken birkaç terim var;

Subtree(altdal)

Key (Anahtar)

Value (Değer)

Data Type (Veri Tipi)

Hive (Registry’nin tutulduğu dosyalar)

Subtree

 

Registry’ye regedit ile baktığımızda sanki Windows Explorer ile C: sürücüsüne bakarmış gibi hissedebiliriz, ancak bakmakta olduğumuz, aslında Windows dizini altında bi yerlerde tutulan hive dosyalarından oluşan veritabanının içindeki bilgilerin hiyerarşik görüntüsüdür (ne tamlaması oldu bu şimdi?).

 

Registry içindeki bilgiler aşağıda ayrıntılarını okuyacağınız başlıklar altında toplanmıştır ve bu başlıklardan her birine Subtree denir. Bir subtree içinde alt alta yüzlerce dallanma olabilir. Bu dalların alt dalları, onların alt dalları olabilir ve en nihayetinde o dal içindeki anahtarları(key) ve o anahtarın değerini (value) sağ panelde görebiliriz.

 

HKEY_LOCAL_MACHINE

Bilgisayarın sahip olduğu donanım ile ile ilgili bilgi ve ayarları içerir. Bu Subtree ve HKEY_

CURRENT_USER Subtree’si bizim için en önemli bilgileri tutan alanlardır.

Bu subtree çok sık kullanıldığı için bazı kaynaklarda HKLM olarak da anılabilir.

 

HKEY_CURRENT_USER

Bilgisayara oturum açmış kullanıcı ile ilgili bilgiler bu alanda tutulur. Masaüstü, duvar kağıdı, pencere ayarları gibi ayarlar bu başlık altında tutulmaktadır.

HKCU şeklinde kısaltılmış olarak bahsedildiğini görebilirsiniz.

 

HKEY_USERS

HKEY_CURRENT_USER bölümüne bir bağlantı ile beraber DEFAULT profilini barındırır. DEFAULT profili bilgisayarın kimse login olmadığında nasıl davranacağını belirler. Örneğin bilgisayar açıldığında login ekranı dururken, arka plan renginin mavi değilde kırmızı olmasını istiyorsanız veya arkaplanda bir duvar kağıdı olmasını istiyorsanız (örneğin bilgisayarın adının yazdığı bir bmp dosyası olabilir—böylece birden fazla server olan ortamda bilgisayara login olmadan hangi makine olduğunu hemen anlarsınız) işte bu DEFAULT profilinde değiştirmeniz gerekiyor.

 

HKEY_CLASSES_ROOT

Dosya uzantı ilişkileri burada saklanır. Yani resim.BMP uzantılı bir dosyaya çift tıklayınca MSPAINT programının açılması gerektiği, mp3 uzantılı bir dosyaya tılayınca WINAMP’ın açılması gibi tanımlamalar burada tutulur.

Bu registry bölümüne ayrıca HKEY_CURRENT_USER\SOFTWARE\CLASSES olarak da erişilebilir.

 

HKEY_CURRENT_CONFIG

Windows’un üzerinde BOOT ettiği donanımla ilgili bilgiyi içerir.

 

***

 

Çoğunlukla ilk iki registry bölümü bizim değişiklikler yapacağımız yerler olacaktır. Bazı registry bölümleri (HKY_LOCAL_MACHINE, HKEY_CLASSES_ROOT, HKEY_CURRENT_CONFIG) altındaki kayıtlar genellikle bilgisayarla (donanımsal olarak) ilgili olurken, bazı registry bölümleri oturum açan kullanıcıyla ilgili bilgileri tutar (HKEY_USERS, HKEY_CURRENT_USER, ve ayrıca \Documents and Settings\USER ID altındaki registry dosyaları).

 

Veri Tipleri

 

Subtree’nin klasörelere benzerliği dikkatinizi çekmiştir. Solda bir dala tıkladığınızda sağ tarafta ayarın tutulduğu alanın ismini (Key) görürsünüz. Key’ler değişik tiplerde veri tutabilmektedir. Birkaç veri tipi olmasına rağmen text tabanlı değerler için RG_SZ, sayısal değerler için RG_DWORD data tipi en çok kullanılandır. Daha sonra da bu key içinde tutulan değeri (Value) görüyoruz. İşte bu değiştireceğimiz değer oluyor çoğu zaman..

 

REGISTRY İçinde Arama Yapmak

 

Biraz üzerinde uğraşınca Subtree’ler içinde alt alt bir çok dallanma olduğunu ve her dal içinde de bazen onlarca key olduğunu göreceksiniz. Bu devasa bilgi yığını içinde arama yapmanız için F3 tuğuna basmanız yeterli. Gelen arama penceresinde hangi alanlarda arama yapacağınızı seçebilirsiniz. Veri (data) alanını seçmezseniz (çoğunlukle key adını ararız çünkü) çok daha hızlı arama yapabilirsiniz.

 

 

Peki Registry nerede tutuluyor?

Registry’nin büyük bir bölümü hive denen dosyalarda tutulmaktadır. Büyük bölümü diyorum çünkü bir kısmı ise bilgisayar her açıldığında tekrar baştan oluşturulup, sadece bilgisayar açık kaldığı süre boyunca varolur.

 

Hive dosyalar binary yapıda olup içine registry editör gibi özel bir program haricinde açıp bakmanız mümkün değildir. Bu dosyalar Windows açık olduğu sürece açık (kullanımda) olduğu için de silme vb. gibi işlemler yapılamaz.

 

Bilgisayarla ilgili bilgileri tutan hive dosayaları \widows\system32\config dizininde, kullanıcı bilgilerini tutan hive dosyaları ise \Documents and Settings\username altında tutulmaktadır.

 

HKEY_LOCAL_MACHINE\SAM

SAM (primary) and SAM.LOG (backup)

 

HKEY_LOCAL_MACHINE\SECURITY

SECURITY (primary) and SECURITY.LOG (backup)

 

HKEY_LOCAL_MACHINE\SOFTWARE

SOFTWARE (primary) and SOFTWARE.LOG (backup)

 

HKEY_LOCAL_MACHINE\SYSTEM

SYSTEM (primary) and SYSTEM.ALT (backup)

 

HKEY_USERS\DEFAULT

DEFAULT (primary) and DEFAULT.LOG (backup)

 

HKEY_USERS\Security ID

NTUSER.DAT

 

HKEY_CURRENT_USER

NTUSER.DAT

 

HKEY_CLASSES_ROOT

(Created from current control set at boot time)

 

 

Birkaç noktaya dikkat çekmek istiyorum, HKEY_CLASSES_ROOT subtree’si boot ederken HKEY_KEY_LOCAL_MACHINE\SOFTWARE\Classes’den kopyalanmakta ve o şekilde oluşmaktadır. Ancak birisinde yaptığınız değişiklik anında ötekine de yansır.

 

Kullanıcı ile ilgili registry bilgilerini içeren dosyalar \Documents and Settings\username olarak her kullanıcı için ayrı ayrı tutulur.

 

Örneğin Sinan kullanıcısı ilk defa login olduğunda \Documents and Settings\sinan dizini oluşur ve hive dosyası (NTUSER.DAT) da bu klasör altında oluşur.

 

Böyle bir klasörün içine bakarsanız ntuser.dat ve ntuser.log dosyalarını görebilirsiniz. İşte regedit’i açıp baktığınızda HKEY_CURRENT_USER subtree’si bu dosyalar içinde tutulmaktadır.

 

Toparlayacak olursak diskimiz üzerinde yer kaplayan altı adet registry dosyasından bahsedebiliriz.

 

◆ SAM

◆ SECURITY

◆ SYSTEM

◆ SOFTWARE

◆ DEFAULT

◆ NTUSER.DAT

 

 

SAM kullanıcı veritabanını tutar (uzantısı olmayan SAM isminde bir dosyadır), SECURITY ile sunucunun domain kontrolcüsü veya üye sunucu olup olmadığı, ismi gibi bilgiler tutulur. Domain Controller’de SAM dosyası olmaz (kullanıcı bilgileri Active Directory’de tutulur) ancak XP, 2000 Pro gibi işletim sistemlerinde SAM dosyası bulunur ve o bilgisayara yerel olan kullanıcılar burada tutulur.

 

SYSTEM hangi sistem programları veya sürücülerin kurulu olduğu ile ilgil bilgileri tutar.

 

SOFTWARE sistemdeki yazılımlarlar ilgili kullanıcıdan kullanıcıya değişmeyecek bilgileri tutar.

 

Her kullanıcının özel ayarları ise kendine ait NTUSER.DAT dosyasında tutulmaktadır.

 

Her dosyanın bir de LOG uzantılı olanı vardır, bakalım bu ne işe yarıyor…

 

REGISTRY Hata Koruması

Registry windows’un çalışması için hayati önem taşımaktadır. Registry’de anlık olarak bir çok değişiklik olmaktadır, elektrik kesintisi veya benzeri bir problem sonucu registry’ye yazma sırasında bir kayıp oluşursa her şey birbirine girebilir. Buradaki sorun olan şey, disk kaşeleridir (cache). Bir dosyayı kaydet dediğimizde dosyamız kaydedilmiş gibi dursa da, windows’un disk işlemlerini yaparken kullandığı memory bölümünde (disk write cache) duruyor olabilir. Sunucu tipi bilgisayarlarda ayrıca raid kartlar üzerinde de cache memoryler olabilir. İşte tam bu kaydet->cache de duran süre->diske fiziki olarak yazma döngüsünün ortasında sistem kitlenir, resetlenir veya kapanırsa, Windows bir bilgiyi registry’ye yazdığını sanacak oysa yapılan değişiklik fiziksel olarak diske yazılmadan kaybolacaktır. Böylece veride tutarsızlık (inconsistency) oluşur. Bu sorun aslında tüm veritabanlarının (SQL server, Exchange vb) ortak sorunudur.

 

Buna getirilen çözüm ise transactional databases dediğimiz yapıdır. Ayrı bir konu olan transaction’a fazla girmek istemiyorum ama, birkaç adımdan oluşan bir veri işleminde bazı adımların gerçekleşip, bazı adımların değişik sebeplerden gerçekleşmemesi durumunda tüm işlemin iptal edilmesini sağlamak gerekir. Örneğin bir para transfer işleminde, bir hesaptan para çekilip diğerine yatırılması işlemi gerçekleşecekse, para çekme işlemi gerçekleşip, yatırma işlemi (henhangi bir sebepten dolayı) gerçekleşmezse, işlem hiç olmamış gibi kabul edilir (para çekme işlemi de iptal olur).

Neyse, Registry işlemlerinde şöyle bir sistem işler, yapılan değişiklikler öncelikle LOG uzantılı dosyaya kaydedilir, daha sonra da disk üzerindeki esas registry dosyasına kaydedilir, ancak bu son kaydetme işleminde cache üzerinde veri kalmaması, tüm verinin fiziksel olarak diske yazılması sağlanır. Daha sonra da LOG dosyasına verinin sağlıklı olarak yazıldığı not edilir. Bu yapıda herhangi bir adımda bilgisayar resetlense bile veride tutarsızlık oluşmaz. Eğer veri diske tam olarak yazılmamışsa LOG’da duracak ve diske yazılmayı bekler durumda olacaktır, sistem tekrar açıldığında da diske yazılacaktır.

Dolayısı ile LOG uzantılı registry dosyaları yedek dosya olmaktan ziyade veri bütünlüğünü sağlama görevini görür. Ancak SYSTEM registry dosyası çok önemli olduğundan, SYSTEM.ALT isminde tamamen aynı bir kopyası da tutulmaktadır.

 

HKEY_LOCAL_MACHINE_HARDWARE bir hive dosyasında tutulmaz, Windows her boot edişinde plug and play ile bilgisayarın donanımını tarar ve bu registry dosyasını oluşturur.

 

 

Son Güncelleme: Pazar, 27 Eylül 2009 01:00
 
Make Text Bigger Make Text Smaller Reset Text Size

Aktif Ziyaretçiler

Şu anda 45 konuk çevrimiçi

Üye Girişi

Bilgisayar ağları ve Windows Hakkında Bilgiler...