İşletim Sistemi Yazma !!!bir Döküman ben paylaşıyorum sizide bekleyom VB’de işletim sistemi olur mu ? Merhaba arkadaşlar bu makalede size Visual Basic programlama dilini kullanarak bir İşletim Sistemi yazıp yazamayacağınızı anlatacağım. İlk başta
Konu By Timin tarafından açılmış, 2313 kişi tarafından görüntülenip, 6 yanıt almış.
|
Özel Yazılım Trojan+, güncellemeli ve garantili. Sadece 690TL! Kredi kartınıza 12 taksit kolaylığı!
|
|||||||
İşletim Sistemi Yazma !!! konusundaki toplam yorum: 6, okunma sayısı: 2313. |
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
#1 |
|
Banned
![]() ![]() ![]() Kayıt Tarihi: Nov 2007
Üye numarası: #164677 Yer: İstanbul
Mesaj sayısı: 218
Karma etkisi: 0
![]() ![]() ![]() ![]() ![]() ![]() ![]() Karma: 813
|
bir Döküman ben paylaşıyorum sizide bekleyom
VB’de işletim sistemi olur mu ? Merhaba arkadaşlar bu makalede size Visual Basic programlama dilini kullanarak bir İşletim Sistemi yazıp yazamayacağınızı anlatacağım. İlk başta Visual Basic’in Windows işletim sistemine bağlı bir dil olduğunu ve Windows olmadan onunla yazılan uygulamaların çalıştırılamayacağını bir kez daha hatırlatalım.Eee peki nasıl kendi işletim sistemimizi yazacağız. Şöyle oluyor; Bunu yapabilmek için öncelikle elinizde internetten topladığınız çok geniş bir Visual Basic kod veritabanınızın olması ve gerekmekte ve Visual Basic’i,C’yi ve C++’ı yalayıp yutmuş olmalısınız..Ayrıca Linux gibi açık kaynak kodlu işletim sistemleriyle ilgili olmanız bu işin mantığını kapmanızı oldukça kolaylaştıracaktır.Sadece siz değil ekibinizin de bu vasıfları taşıması önemli… -Ardından Visual Basic’de yazılan .exe uzantılı uygulamaların hangi API’leri çağırdığını,hangi sistem dosyalarına ihtiyaç duyduğunu tek tek belirlemek gerekmekte.Bunun için uygulamalar var mesela Visual Basic’i kurarken gelen Spy++ diye bir uygulama var.Bu işimizi görür.Bunun dışında Process Explorer adında bir uygulama biliyorum.İsteyenler onu da google’da aratıp indirebilir. Bu dosyaların bir listesini çıkardıktan sonra sıra Windows’u modifiye etmeye geliyor.Bizim işletim sistemimiz bilgisayara kurulurken Windows’da kurulacak.Ancak sadece bizim listeye eklediğimiz dosyalar kurulacak.İşte ben Windows’u modifiye etmek derken bunu kastetmiştim.Ardından asıl işletim sistemini de harddiske kopyalayabiliriz.Tam bilmiyorum ama Microsoft böyle bir şeye izin vermez sanırım.Yani Windows’un bazı dosyalarını alıp bizim işletim sistemimizin altyapısı olarak kullanmamıza razı olmaz herhalde.Bu yüzden iş başa düşüyor ve C\C++ ile bu altyapı dosyalarını kendimiz baştan yazmamız gerekiyor.Bunu yaparken Windows’un sistem dosyalarının içeriğinin kopyasını veya çok benzerini de yaratamayız bu yasaktır.Şunu kavramalıyız: system32 dizinindeki dll’lerin çalışma mantığı nedir ? Buradan yola çıkarak,bu dosyaların çalışma mantığını öğrenerek kendi sistem dosyalarımızı yazmalıyız.Yani arkadaşlar iş döndü dolaştı yine C\C++’ı buldu.E o zaman VB’ye ne gerek var.İşletim sistemini direk bu dillerde yazalım diyebilirsiniz ama işin macerası orada zaten.Ne kadar çok programlama dili kullanırsanız sistemin esnekliği o kadar artar.Çünkü her programlama dilinin kendine has özellikleri vardır. Altyapı dosyalarını nasıl,hangi mantıkla yazacağız ? -Windows’taki “Explorer.exe” dosyasını hepimiz biliriz.Windows’ta kernel’den sonra en önemli dosyalardan birisidir.Bu dosya sayesinde Windows’u kullanabilmekteyiz.Bu dosya sayesinde klasörleri dolaşıp masaüstümüzü görüntülemekteyiz.Görev yöneticisi çalıştırıp “Explorer.exe”yi sonlandırın bunu daha iyi anlayacaksınız.İşte bizim yazacağımız altyapı dosyaları bu şekilde işletim sistemimizi taşıyabilen bir yapıda olmalı.Kendi “Explorer.exe” dosyamızı yazmalıyız!Bir de bizim sistemimizin çalışması için aşağıdaki (veya daha fazlası) ocx dosyalarından gerekecektir.Bu ocx dosyalarını da kendimiz yazacağımız sistem dosyalarıyla birlikte çalışacağı da meçhul. MSComctl.ocx Comdlg.ocx MSCOMCT2.OCX MSCOMM32.OCX MSWINSCK.OCX SYSINFO.OCX RICHTX32.OCX TABCTL32.OCX DBGRID32.OCX Şimdi gözünüzü korkutmayayım.Bütün sistem dosyalarını yazmayacağız.Sadece projemizi çalıştıracak olanını burada halletsek yeterlidir.Sanırım işin mantığını kaptınız. Kaynak: Wardom http://www.wardom.com.tr/showthread.php?t=204047 Nasıl bir ekiple bu iş hallolur ? -Yukarıda yazımın başlarında da bahsettiğim gibi Visual Basic,C,C++,C# gibi önemli programlama dillerini bilen kişiden oluşan bir ekiple bu proje hayata geçirilebilir.Herkesin kolay iletişim kurabileceği aktif bir programlama ortamı da şart.Hani filmlerde görürüz ya yan yana kare kare odalar,her odada çalışan kişinin bilgisayarı var bu bilgisayarlar birbirine ağ ile bağlı..İşte o tür bir ortamdan bahsediyorum. Bu sayede geliştirme süreci rahat ve hızlı olur.Tabiki oldukça becerikli olmalısınız bu işi üstlenebilmek için..”Peki sen ne dersin böyle bir projeye başlamayı?” derseniz “sizin gibi programlamayı seven arkadaşların yardımıyla neden olmasın” olur cevabım… Kaynak: Wardom http://www.wardom.com.tr/showthread.php?t=204047 varsa elinizde döküman paylaşın |
|
|
|
|
|
#2 |
|
Banned
![]() ![]() ![]() Kayıt Tarihi: Nov 2007
Üye numarası: #164677 Yer: İstanbul
Mesaj sayısı: 218
Karma etkisi: 0
![]() ![]() ![]() ![]() ![]() ![]() ![]() Karma: 813
|
2. Döküman
Bu yazim da size basit bir isletim sistemi nasil yazilir diye gösterecegim. Kaynak: Wardom http://www.wardom.com.tr/showthread.php?t=204047 NOT: Ne yazik ki isletim sistemimiz Windows yadar Linux gibi tam bitmis ve onlarla yarisacak kadar iyi olmayacak. Zaten bitmis bir isletim sistemini buraya yazamazdim cünkü o zaman bu döküman yeni baslayanlar icin degil profosyoneller icin olurdu! Hangi Dil? Isletim sistemini aslinda C/C++ da yapmak isterim, ama mesela ekrana girdi vermek istedigimde bunun icin gerekli olan "printf" komutunu cagirmam gerektigini varsayalim. O zaman <stdio.h> adindaki baslik dosyasini kullanmam gerekmekte.Ama sorun her basligin C/C++ derliyicileri tarafindan belli isletim sistemler(yada belli sistemler) icin tasarlandigi icin ne yazikki C/C++ dillerini cekirdegi yazarken kullanmayacagim fakat sonradan isletim sisteminin devamini C/C++ ile yazabilirsiniz. Söyle düsük seviyede Assembler bilginiz olmasi sizin cekirdegi daha iyi anlamanizi saglayacaktir... Gerekenler 1.Netwide Assembler (NASM) 2.RaWrite yada Diskete Imageleri yazacak baska bir program. Kaynak: Wardom http://www.wardom.com.tr/showthread.php?t=204047 3.Bos bir disket. Buraya Dikkat! Size söylemem gerekirki Assembler ile cok sey yapilabilir(yada cok sey yanlis yapilabilir).Bu bilgisayariniza gelebilecek herhangibir zarar benim degil, sizin sucunuzdur! Basliyoruz Bir isletim sisteminin nasil calistigini anlamak icin, önce bir bilgisayarin nasil calistigini iyi anlamak gerekir. Burada kisaca söylüyorum ki, önce bilgisayar acilir, hemen BIOS devreye girer ve denetimler yaptiktan sonra isletim sistemini cagirir. BIOS hangi sürücünün önce "BOOT" lanacagini belirler. Isletim sistemini önce yerel sürücüde arar. Biz isletim sistemimizi diskete yazacagiz. Simdik kodlari yazmaya basliyalim; Ilk Kernel: Tabiki bir Kernel sadece bir mesaj ekrana yazip sistemi yeniden baslatmak la kalmaz ama böyle bir kod yapiyi anlamak icin kolaydir: -------------------------------------------------------- mov ax, 1000h mov ds, ax mov es, ax start: ; Burda gercek anlamda isletim ; sistemimize basliyoruz. mov si, msg ; hemen bir string gösteriyoruz call put call read ; "oku" bir tusa basilana kadar bekler jmp reset msg db "Yeniden baslatmak icin bir tusa" db "basin!",13,10,0 put: lodsb or al, al jz short put_d mov ah, 0x0E mov bx, 0x0007 int 0x10 jmp put put_d: retn read: mov ah, 0 int 016h ret reset: db 0Eah dw 0000h dw 0FFFFh --------------------------------------------------------- Dosyayi kernel.asm diye kaydettikten sonra; nasm �f bin �o kernel.bin kernel.asm seklinde derlenmelidir. Bir BOOTMANAGER BIOS ilk acildiginda 512Bytes boyutunda bir OP-Code arar ve BIOS bu dosyayi 0x7C00 adresine yükler. -----------------------BOOT.ASM-------------------------- org 0x7C00 ; Öncelikle dosyanin adresini ayaliyoruz. start: cli ; Interrupts kullanma! mov ax, 0x9000 ; Stack adresini kayit etme mov ss, ax mov sp, 0 ; Stackpointer' 0 lamak sti mov [bootdriv], dl call load ; Kernel i yükleme mov ax, 0x1000 ; 0x1000 Shell' in adresi mov es, ax mov ds, ax push ax mov ax, 0 push ax retf bootdriv db 0 loadmsg db "Sistem Yükleniyor...",13,10,0 putstr: lodsb or al,al jz short putstrd mov ah,0x0E mov bx,0x0007 int 0x10 jmp putstr putstrd: retn load: push ds mov ax, 0 mov dl, [bootdriv] int 13h pop ds jc load load1: mov ax,0x1000 mov es,ax mov bx, 0 mov ah, 2 mov al, 5 mov cx, 2 mov dx, 0 int 13h jc load1 mov si,loadmsg call putstr retn ;Programin 512 Bytes dan büyük olmamasi icin... times 512-($-$$)-2 db 0 dw 0AA55h ; Bu da BIOS sa bitis talimatini verir ---------------------------------------------------- nasm �f bin �o boot.bin boot.asm seklinde de dosya derlenmelidir. Simdide isletim sistemimizi Diskete yükleyip calistirmak icin; copy boot.bin+kernel.bin vitaxia.img Seklinde iki dosyayi birlestiriyoruz. Son olarak da RaWrite programi ile bu img dosyasini diske yaziyoruz. Disketi sokup bilgisayari yeniden baslattigimizda isletim sistemimiz calisacaktir. Son olarak tabi ki bunu hepsi sadece bir örnek, nasil bir isletim sistemi yapabilecegimize dahil. Herkese iyi calismalar... alınt Düzenleyen By Timin : 22-04-2008 at 19:37. |
|
|
|
|
|
#3 |
|
Forum Kalfası
![]() ![]() ![]() ![]() Kayıt Tarihi: Sep 2005
Üye numarası: #34645 Yer: dev/semy
Mesaj sayısı: 788
Karma etkisi: 61
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Karma: 5453
|
Keşke alıntı olduğunu belirtseydin. Emeğe saygı
![]() Ayrıca yanlış hatırlamıyorsam daha önce verildi. |
|
|
|
|
|
#4 |
|
Daimi Üye
![]() ![]() ![]() Kayıt Tarihi: Dec 2007
Üye numarası: #166988 Yer: im seni
Mesaj sayısı: 299
Karma etkisi: 861
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Karma: 85605
|
knka ben bunu bilmiyodum sagol işime yaraya bilir
|
|
|
|
|
|
#5 | |
|
Forum Kalfası
![]() ![]() ![]() ![]() Kayıt Tarihi: Jun 2007
Üye numarası: #130925 Yer: !stanbul
Mesaj sayısı: 1,355
Karma etkisi: 5166
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Karma: 516048
|
eline sağlık
ama Alıntı:
http://www.wardom.org/assembly-ogren....html?p=235421 |
|
|
|
|
|
|
#6 |
|
Hızlı Çırak
![]() ![]() Kayıt Tarihi: May 2009
Üye numarası: #333886
Mesaj sayısı: 67
Karma etkisi: 4
![]() Karma: 10
|
maksat laf atmak olunca işinize kolay geliyo arkadaşım adam zaten son yazının altında alıntıdır yazmışş bilirlik taslamayalım emeğe saygı saol arkadaş
|
|
|
|
|
|
#7 |
|
Çırak
![]() Kayıt Tarihi: Aug 2011
Üye numarası: #558651
Mesaj sayısı: 10
Karma etkisi: 0
![]() Karma: 10
|
sağol kardeş. Peki bu masaüstüne erişim sağlıyor mu ? Yani linuxun cdden çalışan işletim sistemi gibi mi?
|
|
|
|
![]() |
| Etiketler |
| the_swat |
| Şu Anda Konuyu Görüntüleyenler: 1 (0 üye ve 1 misafir) | |
| Konu Araçları | Bu Konuda Ara |
|
|
