|Refleks|-Oyun,Tasarım,Film,Program,Tek link,İndir
Would you like to react to this message? Create an account in a few clicks or log in to continue.

|Refleks|-Oyun,Tasarım,Film,Program,Tek link,İndir


 
AnasayfaLatest imagesAramaKayıt OlGiriş yap

 

 Assembly İle Küçük Bir İşletim Sistemi

Aşağa gitmek 
YazarMesaj
FaTaL
Yönetici
Yönetici
FaTaL


Ruh Hali : Assembly İle Küçük Bir İşletim Sistemi Manyak10
Başak Mesaj Sayısı : 626
Rep Puanı : 12348
Teşekkür Aldı : 18
Kayıt tarihi : 24/10/09
Nerden Nerden : Kocaeli
İş/Hobiler İş/Hobiler : 3D / Maya / After Efect
Lakap Lakap : Fatal

Assembly İle Küçük Bir İşletim Sistemi Empty
MesajKonu: Assembly İle Küçük Bir İşletim Sistemi   Assembly İle Küçük Bir İşletim Sistemi EmptyCuma Ekim 30, 2009 9:12 am

Küyük bir isletim sistemi YAZMAK!

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 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.
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, 0×0E
mov bx, 0×0007
int 0×10
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 0×7C00 adresine yükler.
———————–BOOT.ASM————————–
org 0×7C00 ; Öncelikle dosyanin adresini ayaliyoruz.

start:
cli ; Interrupts kullanma!
mov ax, 0×9000 ; 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, 0×1000 ; 0×1000 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,0×0E
mov bx,0×0007
int 0×10
jmp putstr
putstrd:
retn

load:
push ds
mov ax, 0
mov dl, [bootdriv]
int 13h
pop ds
jc load

load1:
mov ax,0×1000
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…

A L I N T I D I R !!!!!!!!
Sayfa başına dön Aşağa gitmek
http://www.refleksforum.com
 
Assembly İle Küçük Bir İşletim Sistemi
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-
» Assembly Komutlari -2
» Assembly Nedir?
» Assembly Giriş
» Assembly Giriş-2
» Assembly Komutlari

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
|Refleks|-Oyun,Tasarım,Film,Program,Tek link,İndir :: Bilgisayar Dersleri :: Assembly-
Buraya geçin: