Mert Salık Kişisel Web Sayfası
Bir bilgisayar mühendisi adayının maceraları…
Hoşgeldiniz!
İşletim Sistemlerinin Açılma Süreçleri
Merhaba arkadaşlar,
Bu yazımda bilgisayar açılırken, linux ve microsoft windows işletim sistemi yüklü makinalarda sırasıyla hangi işlemlerin gerçekleştiğini anlatacağım.
LINUX
- Bios MBR’yi RAM’e yükler.
- MBR’deki makine kodları önyükleyicilerin (ör: GRUB) disk üzerindeki yerini belirler ve RAM’e yükler.
- Önyükleyici, disk üzerindek önceden yapılandırılan işletim sistemi veya sistemlerinin olup olmadığını kontrol eder. Birden fazla varsa hangisinin yükleneceğini kullanıcıya sorar. Disk üzerindeki Linux çekirdeği, boot dizini altında vmlinuz-<kernel-versiyonu> adıyla yer alır.
- Önyükleyici seçili işletim sisteminin çekirdeğini RAM’e yükler.
- Önyükleyici, initrd olarak adlandırılan başlangıç RAM disk imajını RAM’e yükler. initrd, sistemin açılış için gerekli olan sürücüleri yüklemek üzere çekirdek tarafından kullanılır.
- Çekirdeğin ve initrd’nin yükleme işleminin bitiminin ardından, artık ön yüklenici sistem açılışının kontrolünün işletim sisteminin çekirdeğine devrederek aradan çekilir. Bu noktadan itibaren GRUP veya LILO gibi önyükleyicilerin görevi başarı ile tamamlanmıştır. Artık çekirdek kendi marifetini göstermelidir.
- Kontrolü eline alan çekirdek, bellek de dahil olmak üzere işlemci, giriş çıkış birimleri ve disk ünitelerini yapılandırmaya koyulur.
- Çekirdekle birlikte yüklenmiş olan initrd sisteme bağlanır ve gerekli tüm sürücüler ona yüklenir.
- Kendisine root sanal aygıtını oluşturan çekirdek, onu root bölümü olarak sisteme sadece okunur biçimde bağlar.
- Bu noktaya kadar, çekirdek sisteme yüklenmiştir ve çalışabilir durumdadır. Ancak henüz hiçbir kullanıcı uygulaması ortada yoktur.
- Dosya sistemi bağlandıktan sonra çekirdek, /sbin/init programını çalıştırarak, kullanıcı ortamının yapılandırılmasını başlatır. Artık /sbin/init başlatılacak diğer tüm işlemlerin atasıdır. ve işlem ID numarası (PID: Process IDentifier) her zaman 1 ‘ dir.
- /sbin/init sistemin hangi çalışma seviyesinde (runlevel) açılacağını belirleyen /etc/ inittab programını çalıştırır.
- Daha sonra, /etc/inittab belirtilen çalışma seviyesine göre /etc/rc.d klasörü içerisindeki hangi rc dizini seçeceğine karar verir. Zira her bir rc dizini içerisindeaçılış sırasında çalıştırılması gereken programlarının linkleri yer almaktadır. Böylece /sbin/init hangi işlemleri başlatacağını bulmuş olacaktır. İşlemler de başladıktan sonra açılış süreci tamamlanmış olacaktır
MICROSOFT
- Bilgisayarın güç düğmesine basıldığı anda cihaza elektrik sağlanmış olunur ve ilk olarak anakart üzerinde çalışan BIOS yazılımını devreye alınır.
- Bios (Basic Input Output System – Temel Giriş Çıkış Sistemi)
Anakart üzerinde gömülü olan bir yazılımdır. BIOS başlatıldığında bilgisayarda bulunan donanımı kontrol ederek başlatır. Bu işleme POST (Power on Self Test – Güç Testi) denilmektedir. POST işlemi tamamlandıktan sonra BIOS MBR (Master Boot Record – Ana Önyükleme Kaydı)’ı başlatır. - MBR (Master Boot Record – Ana Önyükleme Kaydı)
MBR harddiskin ilk sektörüdür ve sektörde bilgisayarın adreslemesi bulunur, yani hangi bilginin nerede olduğu bir tablo halinde bu bölümdedir. Burada ufak bir program sayesinde açılışta hangi işletim sisteminin hangi bölümden başlatacağı belirlenir. Tek bir işletim sistemi kullanılıyorsa sistem hemen açılacaktır ancak hem Windows hem de Linux kullanılıyorsa bir seçim ekranı ile karşılaşılacaktır. - PBR (Partition Boot Record – Bölüm Açılış Kaydı)
Sabit disk üzerinde hangi bölümlerin olduğu bilgisi MBR’de tutulur. Her bölüm üzerinde de o bölüm hakkındaki bilgileri tutan bir bölüm açılış kaydı bulunur.
BIOS, MBR’den aktif bölüm bilgisini aldıktan sonra ilgili bölüme geçer ve oradaki PBR’yi okur. PBR’de o bölüm hakkında bilgiler yer alır. Bölümün büyüklüğü, kullanılan dosya sistemi, küme büyüklüğü ve çalıştırılacak olan ilk dosyanın adı ki bu dosya da NTLDR dosyasıdır. - NTLoader
İşlem sırasınına göre ilk olarak BIOS MBR’den hangi bölümün aktif olduğunu bulur ve PBR’ye gider. PBR’den ilk başlatılacak olan dosya NTLDR bilgisini alır. - Boot Menüsü
Bu aşamaya kadar BIOS PDR’deki ntldr dosyasını okur. Ntldr dosyası BOOT.INI dosyasına erişimi sağlar. BOOT.INI’de işletim sistemi seçenekleri ve bu işletim sistemlerinin nerelerden yükleneceği bilgisi vardır. Önyükleme ekranını getiren dosyadır. Buradan başlatılmak istenilen işletim sistemi seçilir. - Ntdetect
Ntdetect.com bilgisayardaki standart donanımları kontrol eder ve bunları registry(kayıt defteri)’ye yazar. Bu dosyanın olmadığı veya zarar gördüğü durumlarda NTDETECT failed mesajı alınır. - Kernel/HAL
Windows çekirdeğinin ve tüm donanım desteğinin yüklendiği kısımdır. Mavi ekran hataları bu kısımda alınmaktadır. Donanımda bir sorun varsa bilgisayar bir mavi ekran hatası verecektir. - Sürücü Yükleme
XP bilgisayarda bulunan tüm aygıtların sürücülerini yükler ve bunları kayıt defteri altına aktif olarak geçirir. Bu aşamada alınan hata ise bilgisayarın mavi bir ekran göstererek kitlenmesidir. Mavi ekranda hata iletisi olarak IRQ_LESS_OR_EQUAL alınabilir. - Kernel’i Başlatmak
Ntloader komut yetkisini Windows Kernel’e devreder. Burada karşılaşılan problem ise bilgisayarın “Windows Başlatılıyor” ekranında donup kalmasıdır. Burada birden fazla hata mesajı alınabilir. Bunlardan en sık karşılaşılanları:- Winnt_root\System32\Ntoskrnl.exe dosyasının eksik veya hatalı olduğunu belirten hata mesajı.
- Tek İşlemcili sistemler için: expand D:\i386\ntoskrnl.exe C:\Windows\system32
Çok İşlemcili sistemler için: expand D:\i386\ntkrnlmp.exe C:\Windows\system32\ntoskrnl.exe - Winnt_root\System32\Hal.dll dosyasının eksik veya hatalı olduğuna dair hata mesajı.
- Windows Hizmetlerinin Başlatılması
Hizmetlerin başlaması için gerekli olan Smss.exe, winlogon.exe, Isass.exe ,services.exe dosyaları yüklenir. Burada birçok mavi ekran hatası veya sık sık sistemde duraksama olayları gözlenebilir. Bu durumda mavi ekranda görünen hata koduna göre araştırma yapılıp çözüm üretilebilir. Bir diğer sık karşılaşılan problem ise truva atlarıdır. - Oturum Açılması
Bu kısımda eğer tanımlanmışsa Windows kullanıcı adı ve parola talep edecektir. Bilgilerin yanlış olması durumda Erişim yok hata mesajı alınır. Bu sık karşılaşılan ve parolanın unutulmasından kaynaklanan bir problemdir. - XP’nin Başlatılması
Son aşama olarak masaüstü, simgeler, otomatik başlatılan yazılımlar yüklenir. İşletim sistemi kullanıma hazır hale gelir. İşletim sistemi başladıktan sonra donanımsal ve yazılımsal yapılandırmalara bağlı olarak birçok hata ile karşılaşılabilir. Bunun detaylı olarak incelenmesi gerekmektedir.
Kaynakçalar:
- Linux Sistem ve Ağ Yönetimi [Alper Özbilen]
- ITU Bidb Destek Sayfaları – Microsoft Açılış Süreçleri
Microsoft açılış süreçleri hakkında bizleri bilgilendiren Murat Selçuk Karalar arkadaşıma teşekkür ederim.
Mercurial (Komut Satırında) Kullanımı
Mozilla, Netbeans, OpenSolaris gibi projelerde adını duyduğumuz, distributed version control system diye tabir edilen bir sürüm denetim sistemidir. Güzelliği merkezden ayrı olarak (local olarak) kendi bilgisayarınızda proje üstünde çalışabilmemiz, diğer insanlardan (farklı repositorylerden) veyahut merkezden dosya çekme (pull) ve gönderme (push) özellikleri ile kullanımının rahat olmasıdır. Kendi makinamızdan (projenin local kopyasından ) commit, update vs. gibi komutları kullanarak projeyi takip ve control edebilmekteyiz. Geliştirilen projenin farklı kişiler tarafından özel çalışma kopyalarının çıkartılıp, geliştirmeler-düzeltmeler vebenzeri işlemler yapıp, yine merkeze (ana repository) yada bir başka kullanıcının kopyasına birleştirebilme özelliği özgür yazılım için çok güzel bir nimettir. =)
Gelelim fasulye ve faydalarına , kurulumu şahsen Ubuntu (Karmic) üzerinde komut satırından yaptım, ve küçük bir ödevde yine komut satırı üzerinden işlerimi hallettim, bu yüzden kullanımın Linux üzerinden nasıl olduğunu anlatıyorum:
- sudo apt-get install mercurial (apt-get install yine işbaşında) ile kurulumu tamamlıyoruz =)
Kurulumu bu kadar basit olan mercurial’ın kullanımında:
- hg clone http://mertsalik.com/mercurial-örnekrepo
komutu ile örnek projenin bir kopyasını adresinden bilgisayarımıza alıyoruz.
- hg rollback
komutu ile projeye yaptığımız değişikliği (ör:pull) geri alabiliyoruz.
- hg commit
yerel klasörümüzde yaptığımız değişiklikleri (changeset) changelog dosyasına kaydeder
- hg add
proje klasörüne eklediğimiz dosya ve klasörleri kayıt altına alma (projenin öğesi haline getirme) işini yapar
- hg init
Yeni bir mercurial projesi yaratır, ve ” .hg ” dosyasını oluşturur.
- hg parents
Hangi revisionda çalıştığımızı Projenin son halini (merkez + local changesets) gösterir.
- hg pull
bir başka repodan (adresten ya da klasörden) projemize öğe çeker.
- hg push
Yapılan değişiklikleri belirtilen repoya gömer. (ekler diyelim)
- hg merge
Diyelim ki revision 2 de bir hata bulduk,
“hg update 2 ” diyerek, projemizin kodlarını revision 2 deki hale getirdik,
– hatayı düzelttik —
” hg commit ” diyerek de yapılan değişikliği history’ye ekledik, şimdi yapmamız gereken bu düzeltmeyi projenin son haline dahil etmek. işte burada ” hg merge ” komutunu kullanıyoruz.
- hg status
Projede yapılan değişiklikleri, ekleme çıkarma yapılan veya kayıt altına alınmayan dosyaları gösterir.
- hg outgoing
Projemizi push edeceğimizde hangi değişikliklerin push edileceğini gösterir.
- hg help
Yardım komutudur. Komutlar ve kullanımları hakkında bilgi alabiliriz.
- hg update
Local çalışmamızı (alt projemizi) bir revision haline getirip ona bir id verebilmemizi sağlar (Ör: hg update 3)
- hg log
History kayıtlarının tümünü görüntüler. Kayıt altına alınmış tüm olayları listeler.
Burada yazdığım komutlar gerçeklerinin çok yalın halleridir, ek komut satırı argumanları alarak daha spesifik görevleri gerçekleştirebilirler. Bu paylaşımdaki amacım süper bir mercurial anlatımı değildir, aksine kullanımının görsel olarak olabileceği gibi (Bilgilendirdiği için Akçura’ya teşekkürler Bakınız) komut satırından da yapılabileceğidir. Komutları belirli bir sıraya göre yazmamamdaki sebep; daha çok araştırılıp, örnekler üzerinde ezbere değil, hangisinin hangi işi yaptığını deneyerek bulunmasını tavsiye etmemdendir.
Mozilla Flash Player Plugin for 64 Bit Linux
64 Bit Linux makinalarımızda mozilla web tarayıcım üzerinden flash videoları izleyebilmek için flash plugin yüklememiz gerekiyormuş. =) Neyse ki firefox üzerinden gelen need flash plugin uyarısını takip ederek bu sorunu GİDEREMİYORUZ
ekstra olarak:
“sudo cp libflashplayer.so /usr/lib/browser-plugins/libflashplayer.so”
diyoruz (yani browser-plugins dediğimiz /usr/lib/mozilla/plugins oluyor
) eğer plugins klasörümüzde libflashplayer.so bulunmuyorsa direk kopyalayabiliriz ya da flash pluginle ilgili ayrı bir .so uzantılı dosya varsa /usr/lib/mozilla/plugins/başkadosya.so diyerek de yolu kendi makinemize göre belirtebiliriz. İyi seyirler….
Ubuntuda Shutter Programı Kurulumu
Bir web sitesinin, tüm ekranımızın ya da bir pencerenin resmini çekmek (screenshot almak) için yaptığım araştırma ile SHUTTER adlı programı buldum. Sizlere de şiddetle tavsiye etmekteyim =) Fakat ubuntu kullanıcıları için çok küçük bir probelem vardı, onun çözümünü de burada paylaşmak istiyorum:
Ubuntuda Synapticte (bir nevi program ekle kaldır) Shutter bulunmamakta, terminali açıp sudo apt-get install shutter dediğimizde de depolarımızda shutter bulunmadığı için bu programı yükleyememekteydik. Neyse ki —>>>
1_ Gnome-terminalde ” sudo nano /etc/apt/sources.list “
diyerek Shutter programının kaynağı olan debian adreslerini
deb http://ppa.launchpad.net/shutter/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/shutter/ppa/ubuntu jaunty main
sources.list’e ekledim.
2_Debian source depolarını ekleme işleminden sonra da
” wget -q http://shutter-project.org/shutter-ppa.key -O- | sudo apt-key add – “
komutu ile shutter programının PPA(personal package archives) public keyini sistemime ekledim.
3_” sudo apt-get update “ diyerek kaynaklarımı güncelledim
4_” sudo apt-get install shutter “ ile de programı Ubuntuma kurdum.

- Shutter programının kendisi ile çekilmiş bir fotoğrafı
Bu şekilde kurulumunu tamamladığım shutter dilerim sizlerin de işine yarar. Afietle kullanın
USB Belleklerimize Xubuntu kuralım

Xubuntu Icon
Merhabalar, bu ilk yazımı en az 2gb lık usb belleklere kurabildiğimiz Xubuntu 9.04 Persistent Installation ‘ a ayırdım. Xubuntu, Linux tabanlı işletim sistemi olan Ubuntu’nun Xfce masaüstü ortamını kullanan bir türevidir. Xfce kullanımındaki amaç daha az sistem kaynağı kullanmak, eski bilgisayar, notebook, netbooklarda daha verimli çalışmaktır. Biz d
e bu kısıtlı belleklerimizi güzel bir işletim sistemiyle süslendirmek, kişisel masaüstümüzü yanımızda taşımak; iş, ödev, eğlence gibi farklı alanlardaki uygulamalarımızı, açık kaynaklı bu proje ile halledebilmek için Xfce’i usb belleğimize yüklemeye karar verdik. Şimdi Xubuntu Live Usb için….
Gerekenler:
- En az 2GB hafızası bulunan bir Usb Bellek;
- Xubuntu 9.04 .ISO dosyamız (Xubuntunun resmi sitesinden edinebiliriz (free)),
- Windows işletim sistemimiz,
- XU904p.exe (tek tıklama ile indirilebilir)
Başlıyoruz, evet bu dörtlüyü tamamladıktan sonra :
- XU904p.exe’ yi çalıştırıyoruz. Bu program kendisini bilgisayarımızda bizim belirleyeceğimiz bir klasöre çıkartacaktır.
- İndirdiğimiz Xubuntu 90.4.ISO yu yeni oluşan XU904p klasörüne kopyalıyoruz (ya da direk içine atabiliriz).
- XU904p klasöründe bulunan XU904.bat dosyasını tetikliyoruz. Ve açılan ekrandaki yönergeleri takip ediyoruz.
- Bu ekranda Usb belleğimizin klasör ismini (ÖR: F veya E) girip dosyalarımızın Usb belleğe çıkartılmasını bekliyoruz.
- Tüm gerekli dosyalar Usb ye gönderildikten sonra geriye bir tek bilgisayarımızı yeniden başlatıp BIOS ayarlarını Usb bellekten başlatılacak şekilde ayarlamak kalıyor.
Xubuntu artık hazır =) Afiyetle kullanın…
Kurulumda default (önceden tanımlı) partition (kendi dosyalarımızı değişikliklerimizi bulundurabileceğimiz kısım) 1gb olarak gelmekte. Biz bu alanı arttırmak (tabii ki Usb belleğimizde yer varsa
) istersek casper-rw dosyamızı aşağıdakilerden biriyle değiştirmemiz yeterli. Buyrun bunlar da diğer seçenekler:
Live Usb hakkında daha fazla bilgi ve araştırmayı www.pendrivelinux.com da bulabilirsiniz.
Sitemi takip ettiğiniz için teşekkür ederim. İyi çalışmalar.
