Ufak işletim sistemleri nasıl yazılır?

Enigma'yı duydum evet yine Assembly'le mi yazıyorlar işletim sistemlerini?
Enigma'da Linux kullanılıyor. Linux'ta da bazı noktalarda Assembly kullanılmak zorunda.

C dili belleğin tamamının kendine ayrıldığını düşünür. Fakat neredeyse tüm işlemci mimarilerinde bir "pre-boot firmware" bulunur, x86'da bunu BIOS olarak biliyoruz. Bulunmasa bile o mimari "memory-mapped I/O" sistemini kullanıyordur. Yani belli bellek adresleri ile işlemci aynı bellek havuzunu kullanıyordur ve belleğin her adresine veri yazmak bir yerde toslamamıza sebep olacaktır. Çekirdeğin ilk çalıştırılan kısmı bunun için Assembly ile yazılmak zorundadır, bu tarz limitleri ayarlayabiliyorsun.

Driver yazarken de C kodunda pat diye karşına asm() diye bir kod çıkarsa şaşırma. Çünkü işlemcinin diğer kontrol edilebilen elektronik komponentlerle irtibat kurma şekli o komponentlerin olduğu adreslere sinyal göndermektir. x86 mimarisinde "out" ve "in" Assembly yönergeleri belirli adreslere belirli sinyallerin yollanmasını sağlar (port-mapped I/O). ARM mimarisinde de "memory-mapped I/O" sistemi kullanıldığı için, belirli bellek adreslerine yazmak yeterli oluyor. Memory-mapped sistemlerde genellikle driver kodlarında void pointer (void*) kullanılarak pointer mantığıyla da erişim sağlanabiliyor.

Bunlar zamanla oturacak. Merak etme. Çok çok fazla araştırma yapman gerekli tabii oturması için.
 
  • 400 MHz MIPS (BCM7405) Processor
  • Linux Operating System
  • MPEG2 / H. 264 hardware decoding
  • DVB-S2 Tuner
  • HDMI
  • 256 MB RAM, 64 MB FLASH
  • SCART connector (RGB / optional YPrPb)
  • eSATA connector
  • Smartcard Reader (Dreamcrypt)
  • 10/100 MBIT/s Ethernet interface
  • EPG (electronic Program guide)
  • Controllable from PC through sophistiicated web interface
  • S/PDIF optical (Digital bitstream out)
  • Analog modem
  • Automatic service scan
  • DiSEqC 1.0, 1.1, 1.2, USALS
  • 12V external Power Supply
Şöyle bir uydu vardı elimde yerel ağdan direk Shell'e erişim yapabiliyorum bu uydu alıcılarında.Doğrudan linux üzerine adapte edilmiş sistemler çünkü.
 

Technopat Haberler

Yeni konular

Geri
Yukarı