İşletim sistemi yapmak

Kemânkeş-

Megapat
Katılım
28 Mart 2016
Mesajlar
5.715
Makaleler
5
Çözümler
33
Yer
𐰇𐱅𐰇𐰚𐰀𐰤𐱅𐰇𐰼𐰚𐰃𐰾𐱃𐰀𐰣
Sanal bir işletim sistemi yapmayı hiç düşündünüz mü? Sizce nasıl yapılabilir? Sanal işletim sistemi Visual Studio ile giriş düzeyde olsa da yapılabilir diyelim. Gerçek bir işletim sistemi yapıp bunu ISO olarak USB'ye yazdırıp, UEFI bellek elde ettikten sonra sistemi Boot ederek çalıştırmak sizce mümkün mü? Neler gerekir? Tartışalım.
 
Bilgisayarda yapılabilecek en zor iş olarak geçer kendileri bazı kaynaklara göre. Assembly ve C, C++ veya Rust üçlüsünden birini bilmeniz lazım. Özellikle Assembly zorunlu, bu iş için C veya C++'ın yetmediği yerler bile oluyor.

Standart kütüphane kullanmayı unutun bir kere sıfırdan yazacaksanız. "printf()" fonksiyonunu bile mesela kendi başınıza yapmanız gerekecek. Cihazları tanıyacak sürücüler gerekecek. Interrupt desteğiniz olacak. Hele hele GUI'li olsun derseniz eğer, çekirdeğinize GUI kütüphanesi implemente edeceksiniz veya UNIX benzeri bir şey yapacaksanız da Xorg kullanacaksınız. Daha bunun POSIX uyumu, sistem çağrıları, bellek yönetimi, dosyaları barındırmak için dosya sistemi falanı filanı da var... İşiniz zor. Ömür törpüsü kısaca. Ayrıca Linux dağıtımınızla gelen derleyiciyi de bir kenara koyup cross compiler derlemek ile başlayacaksınız.

İkinci bir yöntem ise Linux çekirdeği. Sıfırdan Linux tabanlı bir işletim sistemi yaparsanız çok daha az uğraşacaksınız sıfırdan kernel yazmaya göre.

İlle de sıfırdan çekirdek yazmak istiyorum derseniz, ilk önce işlemci mimarileri ve Assembly hakkında bilgi edinebilirsiniz. İlk adımınız bu olabilir, tabii ileri seviye C, C++ veya Rust biliyorsanız.

Ayrıca şunu da belirteyim, moralinizi bozmak veya onun türevleri değil amacım. Neyse onu söylemiş bulunmaktayım.
 
Son düzenleme:

Geri
Yukarı