İşletim sistemi yapmak

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

kapanmax

Öğrenci
Katılım
31 Temmuz 2012
Mesajlar
38
Reaksiyon puanı
5
Puanları
8
İşletim sistemi bende yazmak istiyorum hiçbir bilgim yok beni küçümseyecek olanlar şimdiden söyliyim yazmasın yaşım 15 ve bilgisayara ilgim var hangi dilleri öğrenmem lazım hangi programları kullanacam biriniz söylerse sevinirim.
 

81AHMERT61

Asistan
Katılım
8 Mayıs 2013
Mesajlar
133
Reaksiyon puanı
0
Puanları
0
Kardeş işletim sistemi yapıp napcan tek başına olcak iş mi o
 

nagaracuga

Doçent
Katılım
4 Ocak 2008
Mesajlar
744
Reaksiyon puanı
498
Puanları
63
işte o kişi benim mesajında inceden görderme yapmadan önce devamını da okusaydın keşke: "Hiç mi okulunda danışacağın prof yada araşt. görevl. yok??"

Eğer bilg. müh. son sınıf öğrencisi isen halen okuldan bağın kopmamıştır. Mezun olsan bile bu değişmez. Her zaman fakultende danışabileceğin araşt. görevl. yada hocaların vardır. Gereken bilgi ve desteği alabilirsin. Bunu burda nasıl sorarsın kısmı da işte burda patlak veriyor. Tamam sdn teknoloji sitesi ama bu nitelikte bilgi ve destek görebileceği bir yer değil. Onun asıl bilgi kaynağı üniversitesi olmalı...! sende buna hak verirsin.

Burda kalkıpta ilk mesajında 2 satır yazıyla bilgi istemeside bu konuda aslında ciddi olmadığı gösterir. Devam eden yorumlarda ciddiye alınmadığı aşikar.
Bütün mesajları tek tek dikkatlice okumadım. Daha önce başka yerlerde yapılan tartışmalar da oldu. Niyeyse bir çok yerde Türkiye'de işletim sistemi yapılması konusu adeta alaya alınıyor. Hocalarına sorabileceğini ben de düşünmüştüm ancak bu ilerleyen aşamalarda da olabilir. Şahsen kendi alanımda bazı çalışmalar yapıyorum, yüksek lisans dersleri sırasında yanlış hatırlamıyorsam hoca bizim alanla ilgili bir problemden bahsetmişti. "İsterseniz şöyle bir sistem yapalım" dedim, hoca hiç oralı olmadı... Mühendis değilim ama 10 yıldan fazladır programlama ile uğraşıyorum. Bazen başka konularda da hocalarımın ilgisiz olduğunu hatta kendi alanlarında bilmedikleri şeylerin olduğunu gördüm. Sonuçta hoca dediğimiz insanlar genellikle belli konular üzerinde yoğunlaşıyorlar. Bazı profesörler bile bilmem kaç yıl önce hazırlamış olduğu doktora tezi konusu ne üzerine ise en çok o konuyu biliyor, diğer konuları ise derste bahsedeceği kadar falan öğreniyor. Sizin okuduğunuz bölümün hocaları işletim sistemi hazırlama konusunda çok bilgili
iken bir başka üniversitedeki hocalar bu konuya karşı çok ilgisiz de olabilir.
 

kapanmax

Öğrenci
Katılım
31 Temmuz 2012
Mesajlar
38
Reaksiyon puanı
5
Puanları
8
Kardeşim veya abim bilmiyorum kaç yaşındasın ama yapılan birşeyin daha iyisini yapıp tanıtmak istiyorum bazıları yapınlan şeyi yapıpda zaman kaybetme diyor ama herşeyin daha iyisini yapacaksınki ülken kendin yüksel... Sölerseniz sevinirim hangi dilleri öğrenmem lazım işletim sistemi yapmak için...
 

kosasker

Profesör
Katılım
24 Aralık 2008
Mesajlar
3,195
Reaksiyon puanı
49
Puanları
228
İşletim sistemi bende yazmak istiyorum hiçbir bilgim yok beni küçümseyecek olanlar şimdiden söyliyim yazmasın yaşım 15 ve bilgisayara ilgim var hangi dilleri öğrenmem lazım hangi programları kullanacam biriniz söylerse sevinirim.

Konuda yazdığım mesajı oku. Oralardan yardım alabilirsin. Biraz döküman okuman ve okuduklarını uygulaman lazım.

İngilizcen varsa sorun yok @kapanmax 32 ve 64 bit assembly ve C bilmen lazım. Sadece bunlar değil, bilgisayarın temel yapısını da bilmen lazım.

http://wiki.osdev.org/Main_Page
http://flatassembler.net/
http://git.minix3.org/

Kernelin ne yapıda olacak, monolitic, hybrid, micro kernel ?

Böyle bir projeye başlamadan önce cevaplaman ve not alman gereken bir çok soru olacak.
 

MasterFather

Profesör
Katılım
10 Aralık 2006
Mesajlar
4,290
Reaksiyon puanı
59
Puanları
228
İşletim sistemi bende yazmak istiyorum hiçbir bilgim yok beni küçümseyecek olanlar şimdiden söyliyim yazmasın yaşım 15 ve bilgisayara ilgim var hangi dilleri öğrenmem lazım hangi programları kullanacam biriniz söylerse sevinirim.

C# Programlama Dili Öğren.Assembly gerekir.minumum bu ikisi.kusura bakma.senin gibi insanlarla çok karşılaştım.İşletim sistemi yazacam diye başlayıp.hesap makinesi yapmakta ne kadar zormuş deyip.öğrenmeyi bırakan.İstediğin dilde başla.zaten amaç programlama mantığını öğrenmek.
 

nagaracuga

Doçent
Katılım
4 Ocak 2008
Mesajlar
744
Reaksiyon puanı
498
Puanları
63
Kardeşim veya abim bilmiyorum kaç yaşındasın ama yapılan birşeyin daha iyisini yapıp tanıtmak istiyorum bazıları yapınlan şeyi yapıpda zaman kaybetme diyor ama herşeyin daha iyisini yapacaksınki ülken kendin yüksel... Sölerseniz sevinirim hangi dilleri öğrenmem lazım işletim sistemi yapmak için...
Assembly dilini bilmeseniz bile boot loader yapacak kadar, Assembly'yi anlayacak kadar bilgi edinin. Ondan sonra çekirdegi C ile yazabilirsiniz.
 

kapanmax

Öğrenci
Katılım
31 Temmuz 2012
Mesajlar
38
Reaksiyon puanı
5
Puanları
8
C# Programlama Dili Öğren.Assembly gerekir.minumum bu ikisi.kusura bakma.senin gibi insanlarla çok karşılaştım.İşletim sistemi yazacam diye başlayıp.hesap makinesi yapmakta ne kadar zormuş deyip.öğrenmeyi bırakan.İstediğin dilde başla.zaten amaç programlama mantığını öğrenmek.


Assembly dilini bilmeseniz bile boot loader yapacak kadar, Assembly'yi anlayacak kadar bilgi edinin. Ondan sonra çekirdegi C ile yazabilirsiniz.

Araştırarakmı öğrenecem dicemde tabiki öyle peki belli bir site varmı onlarla ilgili çalışan?
 

MasterFather

Profesör
Katılım
10 Aralık 2006
Mesajlar
4,290
Reaksiyon puanı
59
Puanları
228
Araştırarakmı öğrenecem dicemde tabiki öyle peki belli bir site varmı onlarla ilgili çalışan?

var.araştır bulursun.yabancı kaynaklar daha kapsamlı.o yüzden yabancı dilde öğrenmek gerekir.bence sen ingilizce öğrenerek başla.
 

kapanmax

Öğrenci
Katılım
31 Temmuz 2012
Mesajlar
38
Reaksiyon puanı
5
Puanları
8
var.araştır bulursun.yabancı kaynaklar daha kapsamlı.o yüzden yabancı dilde öğrenmek gerekir.bence sen ingilizce öğrenerek başla.
O kadar zamanım yok zaten tek kişiyim 0 dan kendim yazacam

- - - Mesaj Güncellendi - - -

Konuda yazdığım mesajı oku. Oralardan yardım alabilirsin. Biraz döküman okuman ve okuduklarını uygulaman lazım.

İngilizcen varsa sorun yok @kapanmax 32 ve 64 bit assembly ve C bilmen lazım. Sadece bunlar değil, bilgisayarın temel yapısını da bilmen lazım.

http://wiki.osdev.org/Main_Page
http://flatassembler.net/
http://git.minix3.org/

Kernelin ne yapıda olacak, monolitic, hybrid, micro kernel ?

Böyle bir projeye başlamadan önce cevaplaman ve not alman gereken bir çok soru olacak.

Özür dilerim görmemişim kernelim microkernel başka sorular sorabilirsiniz ve işte siz sorun ben cevaplim not alim
 

kosasker

Profesör
Katılım
24 Aralık 2008
Mesajlar
3,195
Reaksiyon puanı
49
Puanları
228
1. İngilizce veya işe yarar bir yabancı dil bilmeden bunu yapman sana 5-6 katı vakit kayıp ettirir.
2. İşletim sisteminin amacı ne olacak ?
3. Yapacağın kernel hangi tabanda çalışacak, i686, x86_64, ARM !?

osdev den bakıp da kodlayacağın örnekleri, virtualbox da kolayca deneyebilirsin çalışıyor mu çalışmıyor mu diye.
 

nagaracuga

Doçent
Katılım
4 Ocak 2008
Mesajlar
744
Reaksiyon puanı
498
Puanları
63
Araştırarakmı öğrenecem dicemde tabiki öyle peki belli bir site varmı onlarla ilgili çalışan?
Boot loader'ı NASM assembler ile yapabilirsiniz. Boot loader'ın özelliği en çok 512 bayt uzunluğunda olması, boot diskinin başlangıcına yazılması, 55 AA imzası ile bitmesi ve 7C00 bellek adresine yüklenmesidir. Bu söylediklerimi şu an için tamamen anlamıyor olabilirsiniz veya kısmen anlıyor olabilirsiniz. Fakat bu çok da problem değil.

Mevcut işletim sisteminden bağımsız bir şeyler yapabilmek için öncelikle assembly dili hakkında biraz bilgi edinin. Örneğin assembly dilinde interrupt'lar vardır. Ekrana tek bir karakter yazdırmak için şu satırlar kullanılabilir:
mov ah,0E
mov bh,00
mov bl,07
mov al,65
int 10

Buradaki mov komutu işlemcideki register'lara bilgi transferi yapmak için kullanılan komuttur. 1. satırda ah registerine 0E rakamı transfer ediliyor. 0E rakamı 16'lık sayma sistemi ile yazılmıştır. Neden 16'lık sayma sistemi derseniz aslında bilgisayar kodları ikilik sayma sistemine göre çalışıyor yani 1'lerle ve 0'larla. Programcıların işini kolaylaştırmak için assembly'de bu sayma sistemi yerine 16'lık sayma sistemi kullanılıyor. ASCII karakter kümesindeki karakter sayısı 256'dır, böylece en son karakterin 16'lık sayma sistemindeki sayısal karşılığı en büyük 2 haneli rakam olan FF olmaktadır. Assembly dilindeki her komutun da ASCII ile karşılıkları vardır. Böylece 2 haneli 16'lık sayma sistemindeki rakamlarla ikilik sayma sistemindeki işlemler yalnız 2 haneli rakamlara indirilmekle kalmayıp makine kodu derlemesinde de bu karakterler kullanılmaktadır. Dolayısıyla herhangi bir program dosyasını bir editörle açtığımızda 1'lerle ve 0'larla değil doğrudan doğruya ASCII karakterlerle karşılaşabiliyoruz.

Neden ah registerine 0E rakamını transfer ediyoruz? Çünkü interrupt 10'u kullanırken bu interrupt'ta bulunan farklı fonksiyonlardan birini çağırıyoruz. Ekrana bir karakter yazmak için kullanılan fonksiyonun numarası 0E'dir.

2. satırda bh register'ına 00 rakamı transfer ediliyor. Bu satır DOS'ta sayfa numarası olarak bilinen kavramla ilgilidir.
3. satırda bl register'ına 07 rakamı transfer ediliyor. Metnin siyah arkaplan üzerinde beyaz renkle yazılması için 07 rakamı kullanılıyor.
4. satırda al register'ına 65 rakamı transfer ediliyor. Bu da ekrana yazılacak olan karakterin ASCII kodudur.

Sistemi boot ettirip ekrana bir karakter yazdırmak için aşağıdaki kodu bir metin dosyasına kaydedebilirsiniz:
Kod:
[B][BITS 16][/B]     ; 16 bit kod üretimi 
[B][ORG 0x7C00][/B]     ; ORGin konumu 7C00 
[B]main:[/B]         ; Asıl program etiketi 
[B]mov ah,0x0E[/B]     ; Çalıştırılacak BIOS fonksiyonu numarasıdır. 
                         ;  Bu, ekrana bir karakter yazdırma fonksiyonudur. 
[B]mov bh,0x00[/B]     ; Sayfa numarası. 
[B]mov bl,0x07[/B]     ; Metin özelliği 
          ;  07 = Beyaz metin, siyah arka plan. 
[B]mov al,65[/B]     ; Ekrana yazılacak karakter kodu (ekrana "a" karakteri yazılır.)  
[B]int 0x10[/B]     ; BIOS video kesmesi çağrılır. 
[B]jmp $[/B]         
[B]times 510-($-$$) db 0[/B]    ; Sektörün kalan kısmını 0'larla doldurur. 512 bayta tamamlar.
[B]dw 0xAA55    [/B]    ; Boot imzası
Dosyaya verdiğiniz uzantı farketmiyor nasm dosya adı şeklinde bir komutla bu kodu derleyebilirsiniz. Anlayabileceğiniz üzere bu kodla 7C00 bellek adresine yüklenecek 512 bayt uzunluğunda bir boot loader yazılmış oluyor. Bunu boot diskinin ilk sektörüne yazdırmak için de MS-DOS'ta debug, Linux konsolda dd kullanılabilir. Aşağıdaki satırlar bir disketin ilk sektörüne yazdırmak içindir:
Kod:
[B]DEBUG dosya adı 
 - w 100 0 0 1 
 - q [/B]
Kod:
 [B]dd if=dosya adı bs=512 of=/dev/fd0 [/B]
Belki "sistemi boot ettirip ekrana bir karakter yazdırmak da ne oluyor?" diye düşünenler olabilir, ancak bunlar basit bir şekilde sistemi boot eden programın nasıl hazırlanacağı ve boot diskinin başlangıcına nasıl yazdırılacağı konusunda fikir vermesi açısından temel bilgi niteliğindedir.

- - - Mesaj Güncellendi - - -

C# Programlama Dili Öğren.Assembly gerekir.minumum bu ikisi.kusura bakma.senin gibi insanlarla çok karşılaştım.İşletim sistemi yazacam diye başlayıp.hesap makinesi yapmakta ne kadar zormuş deyip.öğrenmeyi bırakan.İstediğin dilde başla.zaten amaç programlama mantığını öğrenmek.
C# makine kodu derlemesi yapmadığından işletim sistemi yazmak için pek uygun olmasa da COSMOS diye bir sistemle C# kullanılarak işletim sistemi yapılabiliyormuş.
 

kapanmax

Öğrenci
Katılım
31 Temmuz 2012
Mesajlar
38
Reaksiyon puanı
5
Puanları
8
O kadar derin bilgim yok :D assembly dili nerden öğrenebilirim ilk olarak onu söylerseniz yavaş yavaş başlıcam
 

nagaracuga

Doçent
Katılım
4 Ocak 2008
Mesajlar
744
Reaksiyon puanı
498
Puanları
63
O kadar derin bilgim yok assembly dili nerden öğrenebilirim ilk olarak onu söylerseniz yavaş yavaş başlıcam
Assembly sadece boot loader yazacak kadar öğrenmeniz yeterli olabilir. Bununla birlikte C ile kod yazarken inline assembly biçiminde assembly kullanmanız da mümkündür. Assembly'den önce nispeten daha kolay olan C'yi öğrenmeye başlayabilirsiniz. Assembly ve C hakkında internette Türkçe kaynaklar bulunmakla birlikte Bahattin Bayburan'ın BASIC, PASCAL, COBOL ile Assembly ve Microsoft Standart C kitapları, Nurettin Topaloğlu'nun x86 tabanlı Microişlemci Mimarisi ve Assembly Dili kitabı gibi bazı kitapları da edinip okuyabilirsiniz. İstanbul'da yaşıyorsanız sahhaflar çarşısında bu kitapları bulmanız mümkün olabilir (ben oradan almıştım). İnternetten satışları da olabilir...
 

kapanmax

Öğrenci
Katılım
31 Temmuz 2012
Mesajlar
38
Reaksiyon puanı
5
Puanları
8
Assembly sadece boot loader yazacak kadar öğrenmeniz yeterli olabilir. Bununla birlikte C ile kod yazarken inline assembly biçiminde assembly kullanmanız da mümkündür. Assembly'den önce nispeten daha kolay olan C'yi öğrenmeye başlayabilirsiniz. Assembly ve C hakkında internette Türkçe kaynaklar bulunmakla birlikte Bahattin Bayburan'ın BASIC, PASCAL, COBOL ile Assembly ve Microsoft Standart C kitapları, Nurettin Topaloğlu'nun x86 tabanlı Microişlemci Mimarisi ve Assembly Dili kitabı gibi bazı kitapları da edinip okuyabilirsiniz. İstanbul'da yaşıyorsanız sahhaflar çarşısında bu kitapları bulmanız mümkün olabilir (ben oradan almıştım). İnternetten satışları da olabilir...

İnternetten öğrenmem mümkün deilmi?
 

nagaracuga

Doçent
Katılım
4 Ocak 2008
Mesajlar
744
Reaksiyon puanı
498
Puanları
63
İnternetten öğrenmem mümkün deilmi?
Türkçe kaynaklar İngilizce kaynaklara göre oldukça az. Yine de bazı konularla ilgili Türkçe kaynaklar bulabilirsiniz. Eğer bu işlerle uğraşmaya kendinizi hazır hissediyorsanız Linux'ta çalışmak Windows'a göre daha kolay olabilir. Linux'ta hem çok sayıda ücretsiz yazılım geliştirme aracı bulunuyor hem de işletim sisteminin nasıl çalıştığı konusunda daha fazla incelemeler yapabiliyorsunuz. Halihazırda Windows kullanıyorsanız ilk iş olarak Linux'a geçiş yapın. Üniversitelerin sitelerinde Linux altında programlama ile ilgili yazılmış Türkçe dökümanları (bunların bir kısmı İngilizceden çeviridir) bulup okuyabilirsiniz.
 

kapanmax

Öğrenci
Katılım
31 Temmuz 2012
Mesajlar
38
Reaksiyon puanı
5
Puanları
8
Türkçe kaynaklar İngilizce kaynaklara göre oldukça az. Yine de bazı konularla ilgili Türkçe kaynaklar bulabilirsiniz. Eğer bu işlerle uğraşmaya kendinizi hazır hissediyorsanız Linux'ta çalışmak Windows'a göre daha kolay olabilir. Linux'ta hem çok sayıda ücretsiz yazılım geliştirme aracı bulunuyor hem de işletim sisteminin nasıl çalıştığı konusunda daha fazla incelemeler yapabiliyorsunuz. Halihazırda Windows kullanıyorsanız ilk iş olarak Linux'a geçiş yapın. Üniversitelerin sitelerinde Linux altında programlama ile ilgili yazılmış Türkçe dökümanları (bunların bir kısmı İngilizceden çeviridir) bulup okuyabilirsiniz.

Size ve yardım eden herkese teşekkür ediyorum bundan sonra yolumu artık kendim çizicem hayırlısı :) Allaha emanet olun :)
 

Neova

Asistan
Katılım
2 Ağustos 2016
Mesajlar
231
Reaksiyon puanı
16
Puanları
18
Yaş
35
Konum
Bursa
Şimdi kafamda ekibi tam takır hazır hayal ediyorum :)

İlk önce bi giriş kısmını ayarlarsınız ondan sonra masaüstü geldi sırada masaüstünüde bi halledersiniz ondan sonrası Allah kerim.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst