Tam Sürümünü Görmek İçin : C++ ile Bootlana bilen Program.
KamilORS
06/09/2006, 20:14
Merhaba arkadaşlar c++ builder ile mesala console appli... ile bir program yazdık diyelim. ben bu porgramnın işletim sistemi olmadan çalışmasını nasıl sağlarım. yani program bilgisayar açılışından cd ve ya disket gibi bir ortamdan bootlancak ve çalışcak. ?
Kögüdey Meygen
06/09/2006, 21:37
Assembly bilmeden bu istediğinizi yapamazsınız.Bu istediğinize basit anlamda bir işletim sistemi denilebilir.
KamilORS
07/09/2006, 04:55
Yani assembly öğrenince derleyici farkı göz etmemize gerek yokmu ? mesala borland exe formatında derliyor. ben bu derleme işlemini exe değilde kml formatında yapabilirmiyim ?
KamilORS
07/09/2006, 06:22
2. soruma ben cevap vereyim.
Menünden
Project->Options->Application seçiyoruz.
Orada Target File Extension var. Karşısındaki edit kutusunda exe yazıyor. exe yi kml yapınca derlediği program kml oluyor :)
2. soruma ben cevap vereyim.
Menünden
Project->Options->Application seçiyoruz.
Orada Target File Extension var. Karşısındaki edit kutusunda exe yazıyor. exe yi kml yapınca derlediği program kml oluyor :)
Arkadasın dosya uzantısıyla alakalı bir problemi ooldugunu sanmıyorum.. Eger oyle olsaydı dosyanın uzantısını elle değiştirirdi..
Arkadasın sordugu Linux işletim sistemi kurunca kurulan LILO gibi programcıklar ve bunların nasıl calistigiyla alakalı.. LILO nun mantıgını bir araştır bakalım neler bulacaksın..
Kolay Gelsin
Sizin windows'ta hazırladığınız exe, atıyorum standart c kütüphanesinin printf fonksiyonunu içeriyorsa, bu printf fonksiyonu işletim sisteminin ekrana yazı yazdırmak için gerekli rutinlerine erişiyor.
Boot sektör'e bir program kodu yazmak istiyorsanız kendi işletim sisteminizi yazmaya denk geliyor bu. O alana kopyalayacağınız kod saf makine kodu olmalı (windows exe'si ya da çalıştırılabilir bir dosya türü olmamalı) ve işletim sistemine has referans adresler, kütüphaneler (örneğin işletim sisteminin ekrana yazdırma fonksiyonunun adresi gibi) içermemeli, bu fonksiyonları kendiniz gerçeklemelisiniz.
Ama dos kullanarak dediğiniz işlemi yapabilirsiniz, bu durumda dos'un işletim sistemi fonksiyonlarını kullanmış olacaksınız, ekrana yazdırma, klavyeden giriş alma gibi. Dos için bir c ya da c++ derleyicisi bu durumda işinizi görür, bir diskete ms-dos atıp, programınızı dos exe'si olarak çalıştırabilirsiniz.
Bazı konulara açıklık getirmek istiyorum.
Merhaba arkadaşlar c++ builder ile mesala console appli... ile bir program yazdık diyelim. ben bu porgramnın işletim sistemi olmadan çalışmasını nasıl sağlarım. yani program bilgisayar açılışından cd ve ya disket gibi bir ortamdan bootlancak ve çalışcak. ?
İşletim sistemi olmadan çalışmasını istiyorsanız, yapmanız gereken programınızın isteklerine cevap verecek "küçük" bir çekirdek yazmak;
* bootloader
* exception / interrupt handler
* process managment
* memory managment
* standart library
olarak bileşenleri sıralayabiliriz.
Assembly bilmeden bu istediğinizi yapamazsınız.Bu istediğinize basit anlamda bir işletim sistemi denilebilir.
Çok doğru, bootloaderı hazır lilo veya grub olarak kullansanız bile çekirdek kodunuzda, en azından inline assembly kullanmanız gereken yerler vardır.
Örneğin, "lidt", load interrupt descriptor table. interrupt tablosunun veri yapısını C/C++ kodu içerisinde hazırlasanız bile, "lidt" çağrısıyla bunu işemciye bildirmeniz gerekmektedir.
2. soruma ben cevap vereyim.
Menünden
Project->Options->Application seçiyoruz.
Orada Target File Extension var. Karşısındaki edit kutusunda exe yazıyor. exe yi kml yapınca derlediği program kml oluyor
aslına bakılırsa bu hiçmi hiç farketmiyor. Siz çekirdekte executable / process desteği vermek istiyorsanz, yapmanız gereken elf ,exe veya herhangi bir executable format için loaderını yazmak , process managmentı yapmak ve processi user space calıstırmaktır.
Peki bu konu ile ilgili daha ayrıntılı bilgi alabileceğim bir yer biliyor musun?
Forum Yazılımı : vBulletin v3.6.8, Copyright ©2000-2008, Jelsoft Enterprises Ltd.