XP Professional`ın Boot Proses`ini incelenmesi.
Bilgisayarınızın power düğmesine basıldığı andan başarılı şekilde logon olana kadar geçen süre Boot Process (Boot Süreci) olarak adlandırılır. Bu süre içerisinde geride bir dizi işlemler meydana gelir.
Boot işlemlerinin sırasını anlamak; meydana gelen olaylarda boot zincirinin problemlerinin çözümünü bulmada size yardım edecektir. Örneğin ortaya çıkabilecek sorunlar; hatalı aygıt sürücüleri, hatalı donanım konfigurasyonları, görüntü problemleri ve yanlış yazılım konfigurasyonlarıdır.
Bu diagram XP işletim sistemini ve HAL`ı (Hardware Abstraction Layer) , Kernel`i ve Kernel Mode`un parçası olan Sistem Servislerini gösterir. Bu parçaların nasıl yüklendiğini ve başladığını anlamak ve hangi dosya ve registery parçalarının, onların yüklenmesinden ve başatılmasından sorumlu olduğunu bilmek gereklidir.
Boot süreci arka arkaya meydana gelen gelen 5 bölümden oluşur:
- Pre-Boot
- Boot
- Kernel Yüklenmesi
- Kernel`in Başlaması
- Logon bölümleridir.
1. Pre-Boot
Pre-Boot bölümü, bilgisayar açıldığında, işletim sistemini yüklenmeden önce başlar. Pre-Boot bölümünde, bilgisayar POST`u (Power-On-Self-Test) çalıştırır, fiziksel memory`i belirler ve donanım bileşenlerini gösterir. Bilgisayar Plag and Play bir BIOS`a sahipse, donanım bunu tanır ve konfigure edilir. Bilgisayarın BIOS`u boot aygıtı kurar, sonra Master Boot Record`u (MBR) çalıştırır. Bu Pre-Boot bölümünü tamamlar.
2. Boot
Boot bölümü Pre-Boot bölümü tamamlandıktan sonra başlar. Boot bölümü dört aşamadan oluşur.
İlk Boot Loader,
İşletim Sisteminin Seçimi,
Donanım bulunması ve
Konfigurasyon seçimidir.
Boot bölümü seçmeli olarak 6 adet dosya kullanır : Ntldr, Boot.ini, Ntdetect.com, Ntoskmi.exe, Ntbootdd.sys, ve Bootsect.dos.
Boot Loader`ın başlatılması safhasında sırasında, Ntldr işlemciyi real moddan değiştirir, RAM`in 640K`lık bölümü MS MS-DOS için ayrılır ve arta kalan XP`nin kalan tüm erişilebilir memory`i kullanabilmesi için 32 bit`lik genişlemiş memory olarak belirtilir.
Bundan sonra Ntldr mini dosyalama sistemi (file system) yapılandırılmasını başlatır. Bu Ntldr`nin NTFS yada FAT ile formatlanan partitionları bulmasını sağlar ve onlar üzerinden start-up başlar. Bu ilk boot loader aşamasını bitirir ve işletim sistemi seçimi aşaması başlar.
İşletim sistemi seçimi aşaması süresince, bilgisayar üzerinde birden çok işletim sistemi varsa, Boot.ini dosyası ?işletim sistemi seçimi? sunmak için konfigure edilmiştir. Monitör ?başlatmak için işletim sistemini seçin? görüntüsünü gösterir. Bu Ntldr`nin sistem partitionu üzerinde yeralan ve gizli bir dosya olan Boot.ini dosyasını okumasıyla meydana gelir.
Ntldr, hangi diskde ve XP`nin sistem dosyalarının hangi partitionda olduğunu bulmak için Boot.ini dosyasındaki bilgileri kullanır. Bu dosya aynı zamanda diğer işletim sistemlerinin nerede konumlandığını da belirtir.
Bu dosya üzerindeki timeout , default işletim sistemi yüklenmeden önce sistemin bekleme süresini saniye olarak belirtir. Timeout değeri default olarak 30 saniyedir. Fakat istenilen değere değiştirilebilir.
- Timeout değerinin 0 olaması kullanıcıya seçim hakkı vermeksizin default işletim sistemini başlatır.
- Timeout değerinin -1 olması kullanıcıyı işletim sistemini seçmeye zorlar.
Boot.ini dosyası, işletim sisteminin yerini belirtmek için ARC (Advanced RISC Computing) isimlendirme kurallarını kullanır.
İlk entry, SCSI ya da Multi olabilen, kulanmak için controller`ı belirtir. SCSI , SCSI BIOS`u etkin kılınmamış SCSI controler için kullanılır. Diğer bütün adaptörler ve Kontrolörleri için Multi kullanılır. Sözü edilen SCSI sayısı kontrolörü belirler. Disk değeri sadece bir SCSI kontrolör için kullanılır. Bu değer işletim sisteminin hangi fiziksel disk üzerinde olduğunu belirtir. Partition değeri ise işletim sisteminin hangi partition üzerinde olduğunu tanımlar.
Diskler ve kontrolörler 0`dan başlayarak numaralandırılırlar, partitionlar ise 1 ile başlar. İlk entry multi olduğunda rdisk değeri disk değeri yerine kullanılır. Herşey tam anlamıyla SCSI kontrolörde çalıştığı gibi çalışır.
Boot.ini dosyasında bir tane işletim sistemi varsa işletim sistemi seçimi ekranı gözükmeyecek ve default işletim sistemi yüklenecektir. Bu boot bölümünün İşletim sistemi seçimi aşamasını tamamlar ve donanım taraması başlar.
Hardware Detection
Ntdetect ve Ntldr dosyaları donanım tarama işlemini gerçekleştirirler. XP yüklenecek olan işletim sistemi olarak seçildikten sonra, Ntdetect kurulu olan donanım bileşenlerini bir listesini toplar ve bu listeyi, registery içindeki donanım key`lerinin yaratılmasında kullanılmak için Ntldr`a verir.
Taranan bileşenler bus/adapter tipleri, Ekran kartı, İletişim Portları, Paralel portlar, Kayan Nokta İşlemcisi, Removable Media, Klavye ve İşeretleme aygıtlarını içerir.
Donanım Taraması aşaması biter ve Konfigurasyon seçimi başlar.
Configuration Selection
Konfigurasyon seçimi süresince bilgisayar birden fazla hardware profile`a sahip olacak şekilde konfigure edilmişse Ntldr Harware Profile/Configuration Recovery menüsünü gösterir. Bilgisayar sadece bir tane hardware profile`a sahipse XP default profile`ı kullanarak yüklenir.
Kernel`in yüklenmesi esnasında, Ntldr Windows XP`nin Kernel`i olarak adlandırılan Ntoskml.exe`yi yükler. Kernel yüklenir fakat başlatılmaz. Daha sonra Ntldr HAL.dll dosyasından Hardware Abstraction Layer`ı (HAL) yükler.
HAL, Memory üzerinde , XP Kernel`i ile gerçek donanım arasında konumlanan yazılımın zayıf tabakasıdır. Kernel ve birkaç seçilen kernel mode servisi hardware direct erişir.
HAL , hardware tarafından yapılan tanımlanamayan beklenmedik çağrıları çözerken bir filtre gibi davranır. Bu filtreleme işlemi, işletim sistemine farklı donanımların benzer gözükmesini sağlar, XP`nin donanım aygıtlarının geniş yelpazedeki donanım aygıtlarını yönetmesine izin verir.
HAL aynı zamanda bütün platformlar üzerinde aygıtların desteklenmesi için tek bir aygıt sürücüsünün kullanılmasını sağlar. Böylece donanıma gönderilen bütün çağrılar HAL üzerinden geçmek zorunda değildir.
HAL`ın yüklenmesinden sonra, HKEY_LOCAL_MACHINESYSTEM registery key yüklenerek Kernel yüklenme aşaması devam eder. Ntldr hangi control set`in yükleneceğini belirlemek için SELECT key`ini okur.
Control Set, servisleri yüklemek ve başlatmak için kullanılan aygıt sürücüleri gibi sistemi kontrol etmek için kullanılan konfigurasyona ait veri içerir. Ntldr 0 değeri ile başlayan aygıt sürücülerini yükler. Tipik olarak bunlar low-level aygıt sürücüleridir.
Registery aygıt sürücüleri için yol içerir, bu şekilde de Ntldr dosyaları bulabilir. Default olarak belirtilen control set`in aynası olan control set yüklenirlen Kernel Başlatılması aşaması başlar. Tam bu noktada Ntldr kontrolü Kernel`e bırakır.
Kernel`in başlatılması bölümünün başında ekranın ortasında çok renkli durumda XP logosu görüntülenir.
Kernelin başlatılması bölümünde dört tane görev tamamlanır. HARDWARE key yaratılır, Clone Control Set yaratılır, Aygıt sürücüleri yüklenir ve başlatılır ve servisler start edilir.
İlk görev registery içindeki harware key`inin yaratılmasıdır. Kernel, HKEY_LOCAL_MACHINEHARDWARE registery key`ini yaratmak için hardware taraması süresince toplanan bilgileri kullanır.
İkinci görev Clone Control Set`in yaratılmasıdır. Kernel, System`in altındaki SELECT key`i için default değer olarak gösterilen control set`in bir kopyasını (clone`nunu) yaratır. Clonlanmış Control Set, Ntldr tarafından yüklenen set`in aynısıdır. Clone asla modifiye edilmez fakat Boot Proses`de daha sonra kullanılır.
Üçüncü görev device driverlarını yüklemek ve başlatmatılmasıdır. Kernel, Kernel Yüklenmesi bölümünde yüklenen low-level device driverları başlatılır. Kernel daha sonra HKEY_LOCAL_MACHINESystemCurrentControlSetServices key`i altında 1 değeri ile başlayan device driverlarını tarar.
Bu device driverlar yüklenir yüklenmez başlatılır. Eğer bir hata meydana gelirse, Kernel sonucu belirlemek için Driver`ın ErrorControl değerini kullanır.
- 0 değeri ignore`dur. Boot proses bir hata mesajı göstermeden devam eder.
- 1 değeri normal`dir. Boot prosesi bir hata mesajı gösterir fakat bu hatayı yoksayarak devam eder.
- 2 değeri hatadır. Boot prosesi başarısızlıkla sounçlanır, arkasından LastKnownGood Control Set kullanılarak restart edilir. Eğer boot proses önceden LastKnownGood Control Set`i kullanmışsa, bu yok sayılır ve boot devam eder.
- 3 değeri kritiktir. Boot proses başarısız olur ve LastKnownGoog Control Set kullanılarak restart edilir. Eğer LastKnownGood Control Set`i de critical eror ile sonuçlanırsa boot proses durur ve bir hata mesajı gösterir.
Kernel yüklendikten ve low-level device driverları başlatıldıktan sonra Session Manager (oturum yöneticisi) büyük sıradaki altsistemleri ve servisleri başlatır. Session Manager input/output deviceları control eden ve video görüntüsüne eriştiren Win32 altsistemini başlatır.
Bu grafiksel kullanıcı arayüzünü (GUI), klavye ve diğer giriş-çıkış birimlerini enable eder. Session Manager ayrıca Winlogon prosesini başlatır. Bu Kernel Başlatılması bölümünü bitirir ve Logon aşamasını başlatır.
Logon Aşaması
Winlogon.exe Local Security Authority`i başlatır. Tam bu noktada XP Logon ekranı ya da dialog kutusu gözükür(konfigurasyonunuza bağlı olarak). Geride 3 aşamalı driverların başlatılması devam ediyor olmasına rağmen, artık logon olunabilir.
Sonraki adımda Service Controller, 2 ve 2`den daha büyük bir değerle başlayan servislere bakarak, HKEY_LOCAL_MACHINESystemCurrentControlSetServices`i son bir kez kontrol eder. Servisler, driver girdilerine (DependOnService) , gruplara (DependOnGroup) ve başlama değerlerine bağlı olarak yüklenirler.
Bu drumda, Netlogon servisi LanmanWorkstation servisine bağlıdır. LanmanWorkstation servisi başarılı birşekilde başlayana kadar Netlogon Servisi başlamaz.
XP boot prosesi bir kullanıcı başarılı bir şekilde logon olana kadar tamamlanmış sayılmaz. Başarılı bir logon`dan sonra sistem Clone Control Set`i LastKnowGood Control Set`e kopyalar. Bu başarılı bir boot prosesi tamamlar.
MOC 2285 ?Examining the Microsoft Windows XP Professional Boot Process? isimli Multimedya`dan çevrilmiştir.
|