1. Ayyıldız Tim forumu Hariç Hiç Bir şekilde Rütbeli Oldugunu İddaa edenlere inanmayınız..⠀ Ayyıldız Tim Adına Sizden Bilgi Belge TC Kimlik Vb Evrak İsteyenlere Asla Bilgilerinizi Vermeyiniz.

Işletim Sistemi Yazmak

'Assembly' forumunda SWOPE tarafından 24 Mayıs 2017 tarihinde açılan konu

  1. SWOPE Guest

    • Guest
    Katılım:
    30 Kasım 2016
    Mesaj:
    1,947
    Alınan Beğeniler:
    1,730

    Özel Mesaj
    Eğer bir işletim sistemi yazmak istiyorsanız assembly dilini az çok bilmeniz gerekir.Ben önce sadece ekrana 'A' harfini yazdırmayı sonra ise ekrana birkaç kelime yazdırmayı göstericem.
    Bu işlem için önce pcnizde
    VirturalBox-VmWare olması gerekiyor.
    Editör için ben Notepad++ kullnıyorum ve MasmED
    İso yapmak için Ultra iso gerekiyor

    Nasıl çalıştırıldığını en sona yazıcam

    Bu konudan editör ve derleyicileri indirin:
    https://forum.ayyildiz.org/konu/assembly-dersleri-editör-derleyici.104224/#post-673939


    Ekrana 'A' harfi yazdırma kodu:
    Kod:
    [BITS 16] ; Assembly kodumuzun 16 bit olduğunu derleyiciye söyledik.
    
    [ORG 0x7C00] ; Programın başlama adresini 0x7C00 olarak belirttik. (Sabit)
    
    
    
    mov ah, 0x0E ; Teletype modunda yazı yazacağımızı bios a bildiren kod.
    
    mov al, 'A' ; Ekrana basılacak karakter 'A' yerine 63 de yazabilirsiniz.
    
    mov bh, 0x00 ; Sayfa yok.
    
    mov bl, 0x07 ; Siyah arkaplan üzerine gri yazı
    
    
    
    INT 0x10 ; BIOS kesmesini çağırdık, yukarıdaki satırları bios işleyecek.
    
    
    
    JMP $ ; Burada bir sonsuz döngü açıp sistemin kapanmasını önlüyoruz.
    
    
    
    TIMES 510 - ($ - $$) db 0 ; Sektörü 0 ile dolduruyoruz.
    
    DW 0x55AA ; Standart boot imzasını ekliyoruz.
    'A' yı değiştiremessiniz sadece büyük ve tek harf olmak zorundadır, aksi halde hata verir.



    Şimdi ise ekrana birkaç kelime yazdırmayı göstericem:
    Kod:
    [BITS 16]   ; 16 bit kod
    
    [ORG 0x7C00]; orjini belirttik, bu sabittir ve 0x7C00 olmak zorundadır
    
    
    
    MOV SI, Metin ; SI registerine Metin için refrerans belirttik
    
    CALL Yazdir   ; Yazdır fonksiyonunu çağırdık
    
    
    
    MOV SI, Metin2
    
    CALL Yazdir
    
    
    
    MOV SI, Metin3
    
    CALL Yazdir
    
    
    
    MOV SI, Metin4
    
    CALL Yazdir
    
    
    mov SI, metin5
    
    call Yazdir
    
    
    
    JMP $ ; Sonsuz döngü
    
    
    
    KarakterYazdir: ; Karakter yazdırma fonksiyonu
    
    MOV AH, 0x0E
    
    MOV BH, 0x00
    
    MOV BL, 0x0A
    
    
    
    INT 0x10
    
    RET
    
    
    
    Yazdir: ; Metin yazdırma fonksiyonu
    
    SonrakiKarakter:
    
    MOV AL, [SI] ; SI registerinden bir harf okuyoruz
    
    INC SI ; SI registerini 1 arttırıyoruz, 1 sonraki harfe git
    
    OR AL, AL ; harf 0 mı diye kontrol ediyoruz
    
    JZ Cikis ; eğer 0 ise çıkışa gidiyoruz
    
    CALL KarakterYazdir ; harfi yazdırıyoruz
    
    JMP SonrakiKarakter ; bir sonraki harfe gidiyoruz
    
    Cikis:
    
    RET
    
    
    Metin  db 'Ayyıldız Tim (R) Operating System', 0x0D, 0x0A, 0
    
    Metin2 db 'Version V1.0', 0x0D, 0x0A, 0
    
    Metin3 db 'Copyright (C) 2017', 0x0D, 0x0A, 0
    
    Metin4 db 'Developed by SWOPE', 0x0D, 0x0A, 0
    
    metin5 db 'Kurulum için "ENTER" tuşuna basın',0x0D , 0x0A, 0
    
    
    TIMES 510 - ($ - $$) db 0
    
    
    DW 0xAA55


    Bu dosyaları istediğiniz isimde kaydedin ama sonuna ".asm" ekleyin assembly dosyası olduğunu belirmek için.

    Şimdi bunu nasıl derliyeceğimizi göstericem.En başta verdiğim linkden derleiyiciyi indirin. Şimdi buna "Path"e eklicez bunu için "Bilgisayar Özellikliri>Gelişmiş Sistem Ayarları>(Gelişmiş Sekmesinden)Ortam Değişkenleri" ordan "sistem değişkenlerinden" "path" bulun ve "düzenle" butonuna basın.Ve "Yeni" butonuna basın.Bastıktan sonra "nasm" yolunu kopyalayıp buraya yapıştırın.
    [​IMG]


    Ekleyince masaüstüne "Nasm" diye diye bir dosya oluşacak. Onu açın.

    Ve şunu yazın:
    Kod:
    nasm C:\Users\User\Desktop\boot.asm -f bin -o C:\Users\User\Desktop\boot.bin
    Bu kod masaüstünüze "boot.bin" diye bir dosya oluşturacak.

    Kodların açıklamaları:

    Kod:
    nasm C:\Users\User\Desktop\boot.asm -f
    Bu kod "boot.asm" dosyasını bulup derliyor.

    Kod:
    bin -o C:\Users\User\Desktop\boot.bin
    Bu kod ise "boot.asm" dosyasının derlenmiş halinden makine diline çeviriyor ve "boot.bin" dosyası oluşuyor.


    Şimdi gelelim bunu isoya dönüştürmeye:
    Ultraiso programını açıyoruz ve "Dosya>Yeni>Açılabilir CD/DVD İmajı" tılayın ve "boot.bin" dosyasını seçin.
    Ve kaydet butonuna basıp masaüstüne istediğiniz isimde kaydedin.


    Şimdi gelelim bunu sanal makinalarda çalıştımaya. VirturalBox-VmWare(hangisini kullanıyorsanız) sanal sunucularında oluşturduğunuz iso doysasını açın.Ve çalıştırın.
    Ekran size verdiğim kodlardan hangisini seçtiyseniz o yazıcaktır.

    Kodları inceleyerek ne görev olduğunu anlayabilirsiniz.
     
    MVC--sudo, Vecihi_33, 01ALONE ve 5 kişi daha bunu beğendi.
  2. Alejan Guest

    • Guest
    Katılım:
    22 Mayıs 2017
    Mesaj:
    33
    Alınan Beğeniler:
    14

    Özel Mesaj
    Çok güzel bir anlatım teşekkürler.
     
    SWOPE bunu beğendi.
    • Guest
    Katılım:
    30 Eylül 2016
    Mesaj:
    1,663
    Alınan Beğeniler:
    1,746

    Özel Mesaj
    Harika!!!Güzel konu :)
     
    Vecihi_33 ve SWOPE bunu beğendi.
  3. SWOPE Guest

    • Guest
    Katılım:
    30 Kasım 2016
    Mesaj:
    1,947
    Alınan Beğeniler:
    1,730

    Özel Mesaj
    Saol devrem:)
     
  4. Dmch Guest

    • Guest
    Katılım:
    22 Ekim 2016
    Mesaj:
    496
    Alınan Beğeniler:
    443
    Meslek:
    Yazılım Geliştiricisi

    Özel Mesaj
    Devrem ellerine sağlık.Güzel bir içerik olmuş.Devamını bekliyoruz.
     
    SWOPE bunu beğendi.
  5. viyilti Guest

    • Guest
    Katılım:
    21 Nisan 2017
    Mesaj:
    121
    Alınan Beğeniler:
    48

    Özel Mesaj
    Anlatima gore tesekkurler amma cok zor dile benziyor
     
    SWOPE bunu beğendi.
  6. SWOPE Guest

    • Guest
    Katılım:
    30 Kasım 2016
    Mesaj:
    1,947
    Alınan Beğeniler:
    1,730

    Özel Mesaj
    Zor dil ama öğrenmesi kolay kodları da kısa zaten. Eğer bir işletim sistemi yazmak istiyorsan C yada C++ öğren. Zaten işletim sistemlerinin çekirdeği C ile yazılıyor. C++ ile araçları falan yazılıyor.
     
  7. viyilti Guest

    • Guest
    Katılım:
    21 Nisan 2017
    Mesaj:
    121
    Alınan Beğeniler:
    48

    Özel Mesaj
    melumata gore teseekurler amma pyhtonu bilirem c ile maraqlanmiram en iyisi python :)
     
  8. Moymullu Guest

    • Guest
    Katılım:
    22 Nisan 2017
    Mesaj:
    8
    Alınan Beğeniler:
    2

    Özel Mesaj
    Ellerine sağlık devrem
     
    SWOPE bunu beğendi.
  9. SWOPE Guest

    • Guest
    Katılım:
    30 Kasım 2016
    Mesaj:
    1,947
    Alınan Beğeniler:
    1,730

    Özel Mesaj
    saol devrem
     
  10. cdrlife Guest

    • Guest
    Katılım:
    28 Nisan 2017
    Mesaj:
    99
    Alınan Beğeniler:
    95

    Özel Mesaj
    Tertip teşekkür ederim. Gerçekten kısa ve öz. Diğer siteler, olayın a sından girip z sinden çıkıyor, kafa karışıyor. O kara ekrana yazı yazdırınca çok heyecanlandım. Teşekkür ederim tekrar :) dersleri nereden aldığını belirtirsen bakacağım. Çünkü ilgimi çekiyor.
     
    SWOPE bunu beğendi.
  11. SWOPE Guest

    • Guest
    Katılım:
    30 Kasım 2016
    Mesaj:
    1,947
    Alınan Beğeniler:
    1,730

    Özel Mesaj
    Devrem aldığım yerde tek makale var. Seri olarak yayınlasa ben kendim yazmam direkt serinin linkini atardım.
     
    cdrlife bunu beğendi.
  12. cdrlife Guest

    • Guest
    Katılım:
    28 Nisan 2017
    Mesaj:
    99
    Alınan Beğeniler:
    95

    Özel Mesaj
    Tamam tertip. Ben yine de araştırıyorum. gerek kalmaz sanırım
     
  13. SWOPE Guest

    • Guest
    Katılım:
    30 Kasım 2016
    Mesaj:
    1,947
    Alınan Beğeniler:
    1,730

    Özel Mesaj
  14. Ghoul-X Atıldı

    • Guest
    Katılım:
    16 Haziran 2017
    Mesaj:
    455
    Alınan Beğeniler:
    417

    Özel Mesaj
    Bir işletim sistemi yazmak için önce donanım ile kullanıcı arasında nasıl bağlantı kurulacağını bilmek gerekir. Bu işlemi çekirdek yapar. Çekirdek üzerinde tanımlı olan donanımlar işletim sisteminin açılma sürecinde belirlenir ve kullanıcı için uygun hale getirilir. Çekirdek yazdıktan sonra ise işletim sistemini, çekirdek üzerine yazmak gerekiyor.

    Bu tür çabalar emin olun olumsuz aklacaktır çünkü dünyada çekirdek geliştirebielcek parmakla sayılabilecek kadar yazılımcı mevcut. Her zaman bir yerlerden kod çalarak ekleme yapamazsınız.. Hazı Linux çekirdeği mevcutken bu çekirdeği kullanarak kendi işletim sisteminizi yapaiblirsiniz. Üstelik oldukça kolay bir şekilde ve isterseniz diğer Linux dağıtımalrından farklı da yapabilirsiniz :) Saygılarımla..
     
    • Guest
    Katılım:
    26 Haziran 2017
    Mesaj:
    10
    Alınan Beğeniler:
    6

    Özel Mesaj
    Ellerine sağlık böle devam :)
     
    SWOPE bunu beğendi.
  15. SWOPE Guest

    • Guest
    Katılım:
    30 Kasım 2016
    Mesaj:
    1,947
    Alınan Beğeniler:
    1,730

    Özel Mesaj
    saol devrem
     
    • Guest
    Katılım:
    30 Eylül 2016
    Mesaj:
    1,663
    Alınan Beğeniler:
    1,746

    Özel Mesaj
    En iyisi python değil python güçsüz bir dildir.
     
  16. SWOPE Guest

    • Guest
    Katılım:
    30 Kasım 2016
    Mesaj:
    1,947
    Alınan Beğeniler:
    1,730

    Özel Mesaj
    Python güçsüz falan değildir. bilmiyorum desene. şuan en büyük site hack programları(consol olanlar) python la yazılmıştır
    metasploit
    sqlmap
    wpscan
    gibi
     
    Vecihi_33 bunu beğendi.
    • Guest
    Katılım:
    30 Eylül 2016
    Mesaj:
    1,663
    Alınan Beğeniler:
    1,746

    Özel Mesaj
    :) bir kişiye banka hizmeti verebilirsin python la

    Ama 1 milyon kişiye veremezsin. Çoğu sistemler java zaten. Metasploit Ruby ile yazılmıştır.;)
     

Bu Sayfayı Paylaş