İşletim sistemi nasıl yapılır?

Hocam sadece C yetmez mi? Linux C ile yazıldı. Ve hocam ben şöyle düşünüyorum. Mesela Ubuntu'yu BSD çekirdeğinde çalışacak şekilde sıfırdan yapsa. Hani Amerika'yı baştan keşfetmenin manası yok derler ya. Olur diye düşünüyorum.
C yetmez. Ve Linux bir işletim sistemi değil, çekirdek. Bootloader Assembly ve C ile, işletim sistemi de gerekli olan diller ile (C, C++ vb, Python bile olabilir.) yapılır. Önce normal programlamayı öğrenmeli, işletim sistemi yazmak öyle kolay değil.
 

İnceledim kaynakları oldukça anlaşılır.
Anladım. C dilinde ilerlemeni tavsiye ederim. Kendi çabalarınla ilerleme kaydedebilmen senin için bir artı. Veya C'ye sonra çıkmak istiyorsan 6502 Assembly ile yola devam etmeni tavsiye edebilirim. İşlemcilerin nasıl olduğunu, bilgisayar mimarisini öğrenmen açısından iyi olacaktır. X86 Assembly tabii ki eğlenceli ama daha ziyade derleyiciler için opcode ekliyor resmen Intel. Mantığı anla, sonra X86'ya atlarsın derim. Sindire sindire öğren ki daha iyi bir şeyler ortaya çıkar. ;)

C dilini az çok biliyorum. 6502 ile X86 arasında ne gibi bir fark var?
 
C dilini az çok biliyorum. 6502 ile X86 arasında ne gibi bir fark var?
6502 Assembly, insanların yazması için tasarlanmış. Çünkü o zaman (1970'lerin sonu) geliştiricilerin çoğu Assembly dilindeydi. x86 Assembly ise resmen derleyicilerin yazması için düzenleniyor. Aradığın her şey için bir opcode koymuş resmen adamlar. Bence işi zorlaştırıyor ve başlangıç seviyesinde birisinin canının daha da sıkılmasına sebep oluyor. Bilgisayar mimarisini öğrenmen için 6502, 68000 gibi işlemcilerin Assembly'inden başla derim bu yüzden.

Onun dışında C dilinde ilerlemelisin. Ben Assembly'den önce C'de ilerlerdim senin yerinde olsam. Ayrıca hızlı gitmeye gerek yok, sindire sindire ilerle derim.
 
Öğrendim ama Assembly kullanmak daha iyi değil mi?
-Daha iyi ama temel bilgisayar bilimleri dersi verir sana C dili.
-"C dilini tam öğrendim" dediğin yerde yolculuğun yeni başlıyordur.
-Assembly'e bilgisayar bilimleri ve işlemci yapısını iyice oturttuğunda girişebilirsin, daha rahat olur.
-Beyin aynı anda sadece bir tane şeyi öğrenmeye konsantre olabilir. C ile Assembly'i aynı anda biraz zor götürürsün.
 
Önce C/C++ öğrenmeli, sonrasında Assembly ile tanışmalısın. Özellikle ARM Assembly ya da x86 Assembly ile birlikte sağlam bir C/C++ bilgisi gerekir.

Bunun yanında işletim sistemi dediğimiz şey bir kod bütünüdür ve sanılanın aksine tek bir dile ya da yapıya bağlı kalmak zorunda değil. İnsan tabii ki tek başına OS yapabilir ama bu, tekerleği yeniden inşa etmekten öteye geçemez.

İşletim sistemi yerine Kernel, HAL, UI, I/O gibi konulara bakabilirsin belki.
 

Yeni konular

Geri
Yukarı