Sıfırdan işletim sistemi yazmak | 3 | xv6 OS kurulumu ve çalıştırılması

10:38 AM ,

xv6 Nedir?

xv6, Dennis Ritchie 'nin ve Ken Thompson 'ın yazdığı Unix'in v6 versiyonunun modern x86 tabanlı işlemciler için ANSI  C ile tekrardan yazılması projesidir. 

Neden xv6?

Bu noktada Linux'un veya MINIX projesinin en ilkel versiyonlarını ele alıp deneysel çalışmalar yapmak yerine xv6'nın üzerinde çalışma yapmak daha verimli olacağını düşünüyorum.  Özellikle yeni başlayanlar için Linux'un kaynak kodlarını alıp incelemek biraz meşakkatli hale gelmiştir. Geriye doğru gidip en ilkel derlenebilir halini bulmakta biraz zaman gerektiren bir konu olduğundan dolayı işletim sisteminin temellerini öğrenmek isteyenlere xv6 'yı tavsiye ederim.

xv6 Kurulum ve Çalıştırılması?

  • sudo apt-get update
  • sudo apt-get install build-essential
  • sudo apt-get install gcc-multilib
  • sudo apt-get install qemu
  • sudo apt-get install git
ile eksik olan kurulumlar yapılmalıdır. Ardından xv6 'nın son kaynak kodlarını indirmek için aşağıdaki komut girilmelidir.
  • git clone https://github.com/asanka-code/xv6.git
Ardından dizin hakları ile ilgili problemlerin önüne geçmek için aşağıdaki komut girilmelidir.
  • chmod 700 -R xv6
Ardından kaynak kodun bulunduğu dizine girilir.
  • cd xv6
Ardından make komutu ile derleme işlemi yapılır.
  • make
Derleme işlemi ile ilgili bir hata ile karşılaşmadıysak ardından işletim sistemini çalıştırmak için make komutu yanına istediğimiz emulator 'ü parametre olarak vermemiz gerekmektedir.
  • make <qemu-nox>


ilk terminal ekranına düştüysek bu noktada Dennis Ritchie 'nin ve Ken Thompson'ın yazdığı işletim sistemini keşfetme serüvenine başlayabiliriz.

Notlar:

  • mkfs.c içerisindeki #define static_assert(a, b) do { switch (0) case 0: case (a): ; } while (0) tanımlamasının tekrardan yapıldığını söylediği için bu satırı yorum satırı yaparak problemi aştım. Eğer siz de benzer hatayla karşılaşırsanız yorum satırı haline getirebilirsiniz.
  • Derleme sürecinde eğer eksik dosya hatası alıyorsanız bu kurulumu yapmanız gerekebilir.
    sudo apt-get install libc6-dev:i386