İşletim sistemi yazmak

  • Konuyu başlatan Konuyu başlatan 18150
  • Başlangıç Tarihi Başlangıç Tarihi
  • Mesaj Mesaj 3
  • Görüntüleme Görüntüleme 160

18150

Becerikli
Katılım
26 Şubat 2025
Mesajlar
172
Çözümler
1
Beğeniler
107
Merhaba, 12 yaşından beri hayalim bir işletim sistemi yazmak. Bu hayalimi gerçekleştirmek adına kendimi geliştirme fırsatım oldu. Şu an yazılım konusunda bilgiye sahibim, tabii ki bu yeterli olmayabilir. OS Dev girişinde yazdığı gibi, işletim sistemi geliştirmeye hoş geldiniz; büyük bir sınır. Bu alanda herkes "başaramaz", birçoğu işletim sistemi geliştirmenin "Merhaba Dünya"sını bile geçemez, ancak belki daha da ileri gidip bir sonraki Linux'u yaratırsınız? Ya da Windows? Yoksa hedefleriniz daha mı düşük - MenuetOS? Ya da hatta CP/M?

Şu anda işletim sistemi yazmak için eğitim almaya başladım. Elimden geldiğince bu sistemi kafamda oturtmaya çalışıyorum.

 
Son düzenleme:
C dillerini Assembly vs bilmen lazım. Sürücüleri tek tek kendin kodlayacaksın, işlemci kesmeleri, dosya sistemleri, çekirdek vs. bu yazdıklarım belki işletim sistemi yazmanın %0.01'i. Tek başınıza yapmanız yıllarınızı alır. O da aşırı buglı olur. Bu kadar zahmetli olmasa bu kadar az işletim sistemi olmazdı zaten. Ama yapmaya aşırı istekliyseniz Linux Kernel'i kullanarak yazmak daha mantıklı olur. @TerabyteForever hocam bu konularda daha bilgili.
 
Sıfırdan yazmak yerine açık kaynak olanları kendi isteğin doğrultusunda düzenleyebilirsin. Sonra eğer hala isteğin olursa kendi sistemini yapmayı denersin.
 
Son düzenleme:
Hobi amacli bir cekirdek gelistirmek yapabilecegin en mantikli seylerden biri olabilir kendini yazilim konusunda gelistirmek icin, oncelikle seni tebrik ederim. Fakat zor bir yola bas koydugunu da bilmelisin cunku cidden zor ve bilgisayar tarafinda teorik bir arkaplan isteyen bir is kernel gelistirmek. Kernel gelistirecegin platformu cok iyi taniman gerekli bir kere, haliyle isin icine bazen elektronik bilgileri bile girebiliyor.

Ornegin PC icin 'hello world' yazan bir kernel gelistireceksen ve QEMU disinda bu kerneli kullanmaya niyetli degilsen bir kere x86'nin (daha dogrusu PC'nin) nasil isletim sistemi safhasina gectigini cok iyi bilmen lazim. Boot sector'u mesela nasil okuyor, nasil kernel'de yazdigimiz koda geciyor, nasil yazdigimiz C kodu ile bilgisayar anlasiyor, stack pointer'i neden (assembly kullanarak) belli adreslere cekmek zorundayiz vs...

Bazi bellek adresleri belli seyleri yapmaya yariyor, mesela 0xB8000 adresi PC mimarisinde VGA text mode'un basladigi bellek adresi; OSDev forumlarina kayit olurken cevaplamam gereken bir soruydu zamaninda.

Butun bunlarin haricinde, isletim sistemini gelistirmeye calistigin zaman bazen mantiksiz bulacagin yerlerde kendi problem cozumlerini uygulayacaksin. Fakat bu cozumler ne derece gelecegi olan cozumler olacak isletim sisteminin gelismesi icin? Ayrica, bazi problemlere cozum bulabilecek misin; ornegin, birisi bir sekilde kernel space'e sizmayi saglayan bir bug buldugu zaman bunu ozumseyip duzeltebilecek misin? Iste tam olarak burada teorik bilgiyi konusturmak ve sana rapor edilen ve bu tarz konulardan oturu rapor edilebilecek olasi bug'lari cozup kapatmak gerekiyor.

Bu teorik bilgi isi tabi isletim sistemi gelistirdikce de oturabilecek bir sey fakat benim bahsettigim, en basit bir seyde bile Google'a soramayacagin veya bir yapay zekaya soramayacagin kisimlar olacak bu konuda, onlari nasil cozecegini bilmekten kastediyorum. Sadece bug olarak dusunme dedigimi yani.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…