İşletim sistemi yazmak

Bu konuyu birkaç gündür sürekli görüyorum ama işin aslı:
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.
 
Son düzenleyen: Moderatör:
İnsanların hayallerini kırmaya hakkın yok. Belki çok iyi programlama bilgisi var?
Hocam Windows, macOS binlerce kişinin hazırladığı işletim sistemleri. Tek başına birinin böyle bir şey yapması imkansız. Linux gibi açık kaynak kodlu OS'leri kendine göre optimize edebilir o kadar. Hayal kırmak değil bu. Kendini kanıtlarsa Microsoft veya Apple tarzı şirketlerde çalışıp yapabilir.
 
İnsanların hayallerini kırmaya hakkın yok. Belki çok iyi programlama bilgisi var?
Hayır hocam, kendisi gerçeği söylüyor. İşletim sistemi dediğimiz şeyi yazmak herkesin harcı değil. Hadi diyelim C++'ta çok iyi arkadaşımız, bilgisayar mimarisini ve işletim sistemini yazmak istediği mimarinin Assembly dilini çok iyi bilmeli.

Konu sahibine dönecek olursak, OSDev'deki gereksinimlerin az bir kısmını çevireyim ben senin için.

  • Bilgisayar bilimleri hakkında bilgi: Onaltılık ve ikilik sayı sistemleri, veri yapıları, abstract programming, arama ve sıralama algoritmaları, threading, networking gibi basit şeyler hakkında üst düzey bilgi gerekli.
  • Dil ve gramer: İşletim sistemi geliştiricisi olan birisi teknik İngilizce'ye sular seller gibi hakim olmalıdır. Temel olarak konu hakkındaki tüm dokümantasyonlar İngilizce dilindedir.
  • Dil ve gramer 2: Çoğu işletim sistemi C ve C++ ile yazılmıştır. Farklı bir dil seçilse bile C dili tepeden tırnağa bilinmek zorundadır.
  • Assembly: Assembly hakkında çok fazla bilginiz olmalı. Kitap okuyun, okuldan ekstra kurs alın. Kendinizi programlar yaparak geliştirin. Bu size lazım, her ne kadar yüksek seviye çoğunluklu olarak kod yazsanız bile Assembly kullanmak zorundasınız.
  • Programlama tecrübesi: İşletim sistemi yazarak programlama öğrenmek kötü bir fikir sayılır. İşletim sistemi programlamadan önce çok çok fazla userspace (kullanıcı seviyesi programlama) yazmalısınız.
  • UNIX deneyimi: Bu işe girişince tüm programlama araçlarının aslında UNIX araçlarının Windows portları veya onların klonları olduklarını anlayacaksınız.
Bu liste uzayıp gidiyor. Ve bu listeyi düzenlemişler, düzenleme öncesinde Assembly ve C ile en az 10 yıllık tecrübenin olması öneriliyordu.

Çalıştırmak istediğin her donanımın sürücüsünü yazman gerekiyor, bunlar için interrupt'ları düzgün kesmen gerekiyor... UNIX klonu yapacaksan UNIX sistemlerde çalışan şeylerin sende de çalışması gerekiyor. Örneğin Binutils, Coreutils, GCC gibi uygulamalar. Bunları port etmek çok uzun zaman alacaktır. Bu yazılımları port etmen için sistem çağrılarının sağlıklı çalışması gerekiyor, ki bunlar da bazen Assembly ile bağlanıyor. E daha bunun shell'i var, init sistemi var, file descriptor sistemi var... Bu saydıklarım da çok yüksek bir seviyeden UNIX sistemlere bakış. Unuttuğum veya saymadığım çok fazla komponent var.

Tabii ki ilk versiyonun tüm her şeyi içeren bir işletim sistemi olmayacak. Linux 0.1'in kodlarını incelersen ne demek istediğimi anlayabilirsin. Çok fazla bug ve çok verimsiz bir sistem varmış. Yıllar geçtikçe Linux sunucu ve mobil pazarlarında en çok kullanılan çekirdek oldu.
 
Koskoca Microsoft varken koskoca Windows varken insanların senin işletim sistemini kullanacağınımı düşünuyorsun bence başka şeylere yönel.
Kulaklık yapsa JBL'in kulaklıkları var, klavye yapsa Razer'ın çok güzel klavyeleri var, Konsol yapsa PS ve Xbox var, Monitör yapsa Samsung'un çok güzel monitörleri var. Şöyle diyerek insanların merakını kırıyorsunuz. Belki kullanılır?
 
hayalimdeki işletim sistemi DirectX destekli linux gibi bir şey bu da mümkün değil lisans sorunları yüzünden :D . Microsoft'un linux kernel'ine geçmesi daha gerçekçi bir ihtimal. Linux'te doğru düzgün oyun oynanmıyor Windows'ta da docker vs. doğru düzgün çalışmıyor. İkisini birleştirsinler :D . Mağdem hayal kuruyoruz bir de xcode açsın. Sırf build almak için mac cihaza, sanal makineye muhtaç kalmayalım.
 
Kulaklık yapsa JBL'in kulaklıkları var, klavye yapsa Razer'ın çok güzel klavyeleri var, Konsol yapsa PS ve Xbox var, Monitör yapsa Samsung'un çok güzel monitörleri var. Şöyle diyerek insanların merakını kırıyorsunuz. Belki kullanılır?
Ne alaka hocam? Dediğiniz Zula gelmiş geçmiş en iyi Türk oyunu demek gibi birşey.
 

Geri
Yukarı