Raspberry Pi – Mono Kurulumu

RaspberryPi-BPlus   Twitter takipçilerim elektronik’e ne kadar meraklı olduğumu biliyorlardır. Arduino, Odroid derken B+’ın çıkmasıyla birlikte bir de Raspberry Pi’yi denemeye karar verdim.

   Paketi elime geçti; fakat hafta içinin yoğunluğuyla üzerinde çok çalışma fırsatı bulamamıştım. Hafta sonu ile birlikte kolları sıvayıp Raspberry Pi Model B+’ı incelemeye koyuldum. NOOBS ile birlikte kurulum işleminin olabildiğine kolaylaştığı bir gerçek. İşletim sistemi olarak tercihimi Debian Wheezy tabanlı olan Raspian’dan yana kullandım.

   İlk kurulum işlemi ardından işletim sisteminin açılmasıyla birlikte bir süredir sabırsızlıkla beklediğim Raspberry Pi üzerinde C# çalıştırmayı denedim. Bu noktada eminim ki aklınıza neden C# diye soru gelecektir. Öncelikle, yeni oyuncağım üzerinde pek çok şey denemek istediğim için Scala v.b. yeni bir dil öğrenmeyi ikinci plana atmak istedim. C, Php ya da shell script gibi alternatiflerim tabi ki var; ama hey! C# MVP’siyim, bu kadar da üstüme gelmeyin 😉

   Sizlerinde aynı merakla hareket edeceğini tahmin ederek, aşağıda Raspberry Pi üzerinde mono kurulumu için takip edilecek patikayı paylaşıyorum.

   Öncelikle Putty ya da benzeri bir uygulama için bir SSH oturumu başlatalım.

karsilama-ekrani

Devamında da ilk iş apt paketlerini yeniden indeksleyelim;

sudo apt-get update

  apt-get-update

   İkinci adımda da mono paketimi yükleyelim;

sudo apt-get install mono-complete

apt-get-install-mono

  Ben kendi kurulumumda yukarıdaki gibi mono paketinin tamamını yüklemiş olsamda tercihe göre sadece çalışma-zamanı da yüklenebilir.

  Bu noktada biraz durup bir kaç detay bilgi vermek istiyorum. Öncelikle, bu makeleyi bundan bir kaç ay önce yazsaydım takip edilmesi gereken pek çok adım olacaktı. Bu adımlarda mono kaynak kodlarını alıp 6-7 saatte raspberry pi üzerinde derleyip ancak bundan sonra doğru çalışan bir mono sürümüne sahip olacaktık. Bunun nedeni ise ARM tabanlı sistemlerde hard-float / soft-float uyumsuzluğu. ARM tabanlı işletim sistemleri iki farklı ABI (Application Binary Interface) çağırma yöntemine sahiptir. Bu yöntem kayan noktalı (floating point) değerlerin fonksiyonlara nasıl geçileceğini belirtmektedir. Hard-float olarak adlandırılan yöntemde; kayan noktalı değerler  işlemci üzerinde kayan noktalı kütüklerde (floating point registers) saklanmak yoluyla fonksiyonlara geçilmektedir. Soft-float olarak adlandırılan yöntemde ise; kayan noktalı değerler işlemci üzerinde tam sayı kütüklerde (integer registers) saklanmak yoluyla fonksiyonlara geçilmektedir. Raspbian "wheezy" işletim sistemi hard-float kullanıyorken Mono ARM versiyonu (ve bildiğim kadarıyla Java VM) soft-float olarak işlem yapmaktaydı. Bu durumda da ondalıklı işlemlerde mono tutarsız duruma düşüyordu. Tarih alanını da işin içine katınca, tutarsızlıktan da öte hatalı duruma düşülüyordu. Buna ilk çözüm bu soft-float bir işletim sistemi üzerinde mono’yu kullanmak; ama bunun da kaçınılmaz olarak performans cezaları bulunuyor. İkincisi ise (şanslıyız ki) bu konuda yapılmış olan patch’in uygulandığı bir mono sürümü kullanmak. İşte bu noktada konu mono kaynak kodunu indirip derlemeye geliyor. Neyse ki güncel mono paketi (makaleyi yazdığım sırada 3.2.8) bu patch uygulanmış olarak şekilde gelmekte. Dolayısıyla bu ek adımlara artık gerek bulunmuyor.

mono-versiyonu

   Bu bilgilendirme ardından makelemize kaldığımız yerden devam edelim.

   Mono kurulumunu tamamlandıktan sonra sıra ilk adımlarımızı atmakta. Bunun en hızlı yolu CSharp REPL komut satırı açmakta;

csharp

CSharp-Shell

  Bu komut C#’a kodları kullanabileceğimiz mono charp kabuğunu başlatacaktır. Test için aşağıdaki satırı kullanabilirsiniz;

print("Enterprisecoding'den Merhaba");

   Bu satır ekrana "Enterprisecoding’den Merhaba" yazdıracaktır. Buna ek olarak;

DateTime.Now;

  gibi C# ifadeleri de kullanabilirsiniz.

   Şimdi sıra geldi ilk uygulamamızı yazmakta. Bunun için ben nano editörünü kullacağım; fakat sizin daha rahat ettiğiniz bir editör varsa onu da kullanabilirsiniz.

nano MerhabaDunya.cs

MerhabaDunya.cs

  Açılan ekranda aşağıdaki uygulama kodunu yazdıktan sonra Ctrl + O ve Ctrl + X ile saklayıp editörden çıkıyorum.

using System;

public class HelloWorld {
    public static void Main(){
        Console.WriteLine("Enterprisecoding'den Merhaba");
    }
}

   Oluşan cs dosyasını çalıştırılabilir bir uygulamaya dönüştürmek için aşağıda komut ile kodu derleyebilirsiniz;

gmcs MerhabaDunya.cs

   Son olarak; aşağıdaki komut ile oluşan exe’yi çalıştırabilirsiniz;

mono MerhabaDunya.exe

MerhabaDunya.exe

Fatih Boy

Ankara'da yaşayan Fatih, bir kamu kurumunda danışman olarak çalışmaktadır. ALM süreçleri, kurumsal veri yolu sistemleri, kurumsal altyapı ve yazılım geliştirme konularında destek vermektedir. Boş zamanlarında açık kaynak kodlu projeler geliştirmeyi ve bilgisini yazdığı makalelerle paylaşmayı seven Fatih, aynı zamanda Visual C# ve Visual Studio teknolojileri konusundan Microsoft tarafından altı yıl üst üste MVP (En Değerli Profesyonel) ödülüne layık görülmüştür. İş hayatı boyunca masaüstü uygulamaları, web teknolojileri, akıllı istemciler gibi konularda Asp.Net, Php, C#, Java programlama dilleri ve MySql, MsSql ve Oracle gibi veritabanı yönetim yazılımları ile çalışmıştır. İngilizce ve Türkçe olarak yayınlanan makalelerini gerek İngilizce bloğunda, gerekse de Türkçe bloğunda bulabileceğiniz gibi web sitesinden de açık kaynak kodlu geliştirdiği yazılımlarına ulaşabilirsiniz. vCard - Twitter - Facebook - Google+

1 Yorum

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir