Какой-то парень
Doçent
- Katılım
- 2 Mayıs 2018
- Mesajlar
- 598
- Reaksiyon puanı
- 602
- Puanları
- 93
SDN aile ve diğer kişilere merhaba. Herkes işletim sistemi yapmayı istiyor/seviyor(hobi). Fakat bunun kodlaması bilinen HTML/C++ gibi değil.
İşletim Sistemi Yapmayı Sağlayan Dil Nedir?
Her bir x86 olan bir işletim sistemi Assembly ile kodlanıyor. Assembly dili hiç kolay değil. Fakat bunların örnek videolara bakılırsa çok kolay görünüyor. Assembly diliyle her bir yazı yazmayı sağlayan kod
Örnek Bir Assembly Diliyle Merhaba Dünya Kodu Yapmak
Merhaba Dünya yapmak için biraz (çok değil) kod yazılması gerek. Boot loader ile işletim sisteminizi çalıştırabilirsiniz. Boot loader olmazsa işletim sisteminiz görünmez. Kod ise budur;
Bir 8-BIT veya 32-BIT işletim sistemi Yapma
Bir 32-BIT veya 8-BIT işletim sistemi yapabilmek için sadece
NASM ile bir Assembly (.asm) dosyasını .bin dosyasına Dönüştürmek[Başlık Yanlış Kelime Nedeniyle Düzletilmiştir]
İşletim Sistemi Yapmayı Sağlayan Dil Nedir?
Her bir x86 olan bir işletim sistemi Assembly ile kodlanıyor. Assembly dili hiç kolay değil. Fakat bunların örnek videolara bakılırsa çok kolay görünüyor. Assembly diliyle her bir yazı yazmayı sağlayan kod
db
, kolaya benzer bir koddur. Fakat db kodunu getirmeyi sağlayan role sahip kod ise mov
kodudur. Bu kod ise en çok kullanılan koddur. Assembly gibi kodlama dillerini kolayca kodlamayı sağlayan programımız ise flat assembler'dır. Flat assembler hem BIN dosyası yapabiliyor hem Assembly koduna dair derleme yapabiliyor.Örnek Bir Assembly Diliyle Merhaba Dünya Kodu Yapmak
Merhaba Dünya yapmak için biraz (çok değil) kod yazılması gerek. Boot loader ile işletim sisteminizi çalıştırabilirsiniz. Boot loader olmazsa işletim sisteminiz görünmez. Kod ise budur;
Kod:
BITS 16 ; İşletim sistemi 16-BIT olarak yapalım.
start:
mov ax, 07C0h
add ax, 288
mov ss, ax
mov sp, 4096
mov ax, 07C0h
mov ds, ax
mov si, text_string
call print_string
jmp $
text_string db 'Merhaba dunya! Bu benim ilk isletim sistemim!', 0
print_string:
mov ah, 0Eh
.repeat:
lodsb
cmp al, 0
je .done
int 10h
jmp .repeat
.done:
ret
times 510-($-$$) db 0
dw 0xAA55
Bir 32-BIT veya 8-BIT işletim sistemi yapabilmek için sadece
BITS
koduna bakınız. BITS kodunun yanına 8 yazarsanız, işletim sisteminiz 8-BIT olacaktır. Fakat 32 yazarsanız, işletim sisteminiz 32-BIT olacaktır.NASM ile bir Assembly (.asm) dosyasını .bin dosyasına Dönüştürmek[Başlık Yanlış Kelime Nedeniyle Düzletilmiştir]
Kod:
nasm -f bin -o bindosyaniz.bin assemblydosyaniz.asm