- Katılım
- 24 Şubat 2018
- Mesajlar
- 24,930
nfsroot, linux kullanılan gömülü sistemlerle ilgili bir kavramdır.
Normalde, linux kullanılan gömülü sistemlerde işletim sistemi, bir tür flash bellekte bulunur ve işletim sistemi boot ederken bu flash bellekte bulunan filesystem'i kök dizin (root veya /) olarak mount eder. Dolayısıyla biz bu flash bellekteki yazılımları değiştirmek, yeni derlediğimiz programların çalışmasını istiyorsak, masaüstü bilgisayarımızda çarpraz derleyici ile derlemiş olduğumuz programları eksiksiz bir şekilde bu flash belleğe kopyalamamız lazım. Bu hem çok zahmetli bir iştir (tüm binary'leri ve bağımlı oldukları kütüphaneleri, yapılandırma dosyalarını, ne gerekiyorsa) hem zaman alır, hem de hataya açıktır. Örneğin bir kütüphaneyi kopyalamayı unuttunuz ve değiştirilmiş programı çalıştırıyorsunuz, ama beklenmedik bir şekilde davranıyor. Veya hiç çalışmıyor.
İşte nfsroot tekniği, bu sorunun çözümünde çok büyük kolaylık getiriyor. Gömülü sistemin boot loader programına (bu genelde u-boot'tur), sistem üzerindeki flash'tan değil de, yerel ağ üzerinde bulunan sizin masaüstü bilgisayardaki bir dizini kök dizin (root) olarak kullanacak şekilde yapılandırıyoruz. Böyle yapınca artık linux, sizin masaüstündeki belirttiğiniz dizini root (/) olarak görüyor. Orada yaptığınız her değişiklik, bizzat linux işletim sistemine yansıyor. Şöyle bir örnek verelim:
Sizin masaüstü bilgisayarda
Bu komutları kendi masaüstü bilgisayarınızda çalıştırdığımız anda, boa web sunucusu gömülü sisteme eksiksiz olarak, tüm bileşenleriyle ve kendi dahili kütüphaneleri ile birlikte kurulacaktır. gömülü sistemde de boa'yı yeniden başlatmanız yeterli olacaktır.
Normalde, linux kullanılan gömülü sistemlerde işletim sistemi, bir tür flash bellekte bulunur ve işletim sistemi boot ederken bu flash bellekte bulunan filesystem'i kök dizin (root veya /) olarak mount eder. Dolayısıyla biz bu flash bellekteki yazılımları değiştirmek, yeni derlediğimiz programların çalışmasını istiyorsak, masaüstü bilgisayarımızda çarpraz derleyici ile derlemiş olduğumuz programları eksiksiz bir şekilde bu flash belleğe kopyalamamız lazım. Bu hem çok zahmetli bir iştir (tüm binary'leri ve bağımlı oldukları kütüphaneleri, yapılandırma dosyalarını, ne gerekiyorsa) hem zaman alır, hem de hataya açıktır. Örneğin bir kütüphaneyi kopyalamayı unuttunuz ve değiştirilmiş programı çalıştırıyorsunuz, ama beklenmedik bir şekilde davranıyor. Veya hiç çalışmıyor.
İşte nfsroot tekniği, bu sorunun çözümünde çok büyük kolaylık getiriyor. Gömülü sistemin boot loader programına (bu genelde u-boot'tur), sistem üzerindeki flash'tan değil de, yerel ağ üzerinde bulunan sizin masaüstü bilgisayardaki bir dizini kök dizin (root) olarak kullanacak şekilde yapılandırıyoruz. Böyle yapınca artık linux, sizin masaüstündeki belirttiğiniz dizini root (/) olarak görüyor. Orada yaptığınız her değişiklik, bizzat linux işletim sistemine yansıyor. Şöyle bir örnek verelim:
Sizin masaüstü bilgisayarda
/var/export/rootfs
dizinini NFS ile paylaştınız. Sizin home dizininin altında, /home/ta/sources/boa-1.0.0
altında da boa
web sunucusu üzerinde çalışıyorsunuz, değişiklikler yapıyorsunuz. Bu değişikliklerin aynen gömülü sisteme yansıtılması ve değiştirilmiş web sunucusunun gömülü sisteme kurulumunu yapmak çok kolay:
Kod:
[ta@bonsai boa-1.0.0]$ make
[ta@bonsai boa-1.0.0]$ DESTDIR=/var/export/rootfs make install
Bu komutları kendi masaüstü bilgisayarınızda çalıştırdığımız anda, boa web sunucusu gömülü sisteme eksiksiz olarak, tüm bileşenleriyle ve kendi dahili kütüphaneleri ile birlikte kurulacaktır. gömülü sistemde de boa'yı yeniden başlatmanız yeterli olacaktır.