Latest posts.

İnsan Bakteriden Gelmiştir

İnsanlar sevmediklerine görece çirkin hayvan adları takmaya bayılırlar. Türkçe olsun, İngilizce olsun, Fransızca olsun hemen hemen tüm dillerde insan-hayvan benzetmeleri pek boldur. Hele Türkçe’de…

İnatçı insanlara katır, kurnaza tilki, şişmana ayı, çirkine maymun deriz.

Sevdiğimiz şeylere, insanlara da hayvan ismi takarız; cesura aslan, ince hanımlara da ceylan deriz mesela.

Ama bazı hayvanlar* var ki onları benzetmeye koysak da kimse birşey anlayamaz. “Terliksi hayvan gibi maşallah”, “Bakteri gibi kerata” veya “Kamçılı hayvan gibi hatun be!” dersek çoğu kimse olumlu veya olumsuz bir tepki vermeyecektir…
     
O zaman İnsan maymundan değil de** bakteriden gelmiştir desem çok mu ağır konuşmuş olurum?
     
* Canlı desek daha doğru olacak.
** Aslında maymun ve insanın ortak atası demeliyiz, Darwin çarpar sonra….

Eleştiriye Kapalı Olmak

Eleştiri toplumumuzda pek sevilmez  nedense.  Sevenler bile yapıcı ve yıkıcı eleştiri diye ayırmışlardır onu. Aslında kendini ve yaptığı işi iyi bilen insanlar için eleştiri eleştiridir. Kategorize etmeye dahi gerek yoktur.

Kendine güvenen ve yaptığı işte kararlı olan her eleştiriden kendine bir pay çıkartır. Güvensiz ve kararsız kimse ise eleştiriden kendine bir üzüntü çıkarır. Hatta o kadar ileri gider ki eleştiriyi duymak bile istemez. Bu kişinin, kurumun kendine güvensizliğinden kaynaklanır. Güvensizlik ise kararsızlık demektir. Kişi ve küçük kurumlar için pek problem oluşturmasa da ülkeyi yöneten insan ve kurumlarda güvensizlik varsa ülke için sağlıklı kararlar alınamaz.

Tam da böyle bir dönem içindeyiz; karikatüristlere, yazarlara açılan bunca davaya bakarsak. Bizleri yönetenler eleştiriye ve görüş bildirmeye toleraslı değil nedense…

Eleştiriye keskin bir şekilde kapalı olmak, yanlışları görmeyi ve düzeltmeyi engeller. Yanlışlarını düzeltemeyen sistemler de kısa zamanda yokolmaya mahkumdur.

Milletvekili Seçme Sınavı

250 kişilik küçük bir iş için 12.000 kişinin başvurduğu bir ülkede yaşıyoruz. Üstelik bu işe girmek için üniversite mezunu olmak ve kpss den belli bir puan almak gerekiyor.
Peki soruyorum o zaman, bizi yönetenler için neden böyle kriterler yok?
Neden ülkemizin başbakanı lise mezunudur?
Neden parayı daha çok basan ve daha etkili vaatler sunan insanlar tarafından yönetilmek zorundayız?
Herşey okumakla olmuyor elbet ama lise mezunu olduğu için işe giremeyen saf insanın suçu nedir? Belki değme üniversiteliye taş çıkaracaktır ama sistem buna izin vermemektedir.
Peki niye milletvekili, başbakan olacaklara izin vermektedir?
Şimdi çıkıp üniversite sınavını kaldıralım, öğrencileri okul seçsin deseniz kıyamet kopar, yok eşitsizlik olur yok şu olur yok bu olur…
Milletvekilleri de böyle seçim sınavına tâbi olsun deyince neden susuyorsunuz peki? Üniversite sınavı deyince mangalda kül bırakmıyordunuz ama. Ülkeyi yönetmek bu kadar ucuz mu?
Yok öyle yağma arkadaş!
ÖSYM, Milletvekili Seçme Sınavı (MSS) yapsın, üç yanlış bir doğruyu götürsün, sınavda tuvalete çıkmak yasak olsun. Olsun da görelim o zaman eşitliği!

Özgür Yazılım

“Özgür Yazılım” insanlar tarafından tam benimsenemedi. (16 Şubat 2009)

Birincisi, yıllarca ismi anlaşıldı. Özgür yazılım İngilizce’de Free Sofware demektir. Free ingilizcede iki anlama gelmektedir. Biri “özgür” biri de “ücretsiz” dir. Hatta Özgür yazılım tanrısı Richard Stallman 2004 yılında Türkiye’ye geldiğinde “In English, the meaning of ‘free’ is vague, we don’t have a word like özgür. (İngilizce’de ‘free’ kelimesinin anlamı belirsizdir, özgür gibi bir kelimeye sahip değiliz.)” demiştir ve gönlümüzü almıştır.

Özgür dediğimizde de gerçekten özgürlükten bahsediyoruz yani istediğiniz gibi kopyalayabilirsiniz ve geliştirerek yazılıma katkıda bulunabilirsiniz. “Ben yaptım”, “Lisansını kapalı hale getirdim artık” gibi egoistçe bir tavır sergilemediğiniz sürece istediğiniz gibi kullanabilirsiniz .

Özgür Yazılım ve GPL lisansının “Lisansı Değiştirememe” konusu beni çok düşündürümüştü. Yani “Lisansı Değiştirme Özgürlüğü”nü kısıtlamak da özgürlüğe ters değil mi? Bu açıktan yararlanan özellikle Microsoft gibi kapalı lisans savunucularının desteğiyle Viral Büyüme tartışmaları projeyi çok yıpratmıştır. Neyse ki GPL temelli Creative Commons lisansı çıkmış ve bu sorun çözülmüştür. Bu konuda detaylı bilgiyi Wikipedia’nın Viral Lisans başlığında bulabilirsiniz.

Hmm peki fakat hala kafamızı karıştıran bir soru var. İnsanlar neden free kelimesinin ücretsiz tarafını daha çok benimsemişlerdir? Bu sorunun yanıtını şöyle açıklıyorum:

Özgür yazılım fikrini geliştiren Richard Stallman özgür yazılımla çalışan GNU işletim sistemini geliştirirken GCC, Emacs gibi birçok yazılımı kendi geliştirdi ve bunları hem “Özgür Yazılım” olarak hem de fikrinin hızla yayılması adına “Bedava Bira gibi”  kullanıma sundu.

Ardından Linux da aynı şekilde ve hikaye bugüne değin ulaştı. Hikaye ilerlerken Özgür yazılım’la beraber hayatımıza “Open Source (Açık Kaynak)” gibi başka kavramlar girdi ve bu terim çok sevildi ama “Açık Kaynak” kavramı özgür yazılımı karşılayacak bir kavram değildir. Aksine Özgür Yazılım’da zaten kaynak kodlarına erişim “özgür” olduğundan açık kaynağı kapsamaktadır. Yani diyebiliriz ki açık kaynak “özgürlüğümüzü” kısıtlamaktadır. Bu yüzden Açık kaynak yerine Özgür Yazılım yazmayı, kullanmayı tercih ediniz.

Cep Telefonları ve Linux 3

Ayrı kaldığım bu dönemdeki cep telefonları ve Linux tecrübelerimi olabildiğince aktarmak istiyorum:

Yeni bir platforma Linux entegredilirken nasıl bir yol izlenmelidir?

Anahatlar

  • Gerekli mi?
    • Aşağıda anahatları gösteriler konu çok pahalı ve zaman alıcı işlemler gerektirebilir bu nedenle vereceğiniz emeğin değip değmeyeceğini hesap ediniz.
    • Çoğu cep telefonu j2me, symbian gibi programlama arayüzleri sunmaktadır, bu arayüzler çoğu ihtiyacı karşılayacabilecek nitelikte olup, Linux’u port etmektense bu dilleri öğrenmek daha geniş kitleye hitap edecek ürünler ortaya koymanızı sağlar.
  • Port edeceğiniz platformu çok iyi tanıyor olmalısınız.
    • CPU tipi ARM midir yoksa nedir?
    • MMU var mı yok mu?
    • Linux’u çalıştırabilecek memory mevcut mu? (Minimum 2 MB)
    • GUI çalıştırılabilecek kadar memory mevcut mu? (Minimum 16-32 MB)
  • Port edeceğiniz platformun device driver’larının kaynak kodları genelde verilmeceği için
    • Elinizdeki eski firmware’i muhafaza etmeli,
    • Firmware’i reverse etmeli
    • Elde ettiğiniz driver kodlarıyla kernel’i patch etmelisiniz.
  • İşletim sistemlerinin nasıl çalıştığını iyi bir şekilde anlamalısınız.
    • Bootloader nasıl çalışır?
    • Hatalar nasıl anlaşılır ve debug işlemleri nasıl gerçekleştirilir?
    • Kernel ve GCC ARM platformu için nasıl derlenir?
  • Bu işe sizden önce başlayanların çalışmalarına göz atmalısınız.

Genel Bilgi

Port etmekteki en büyük amaç eski haliyle yapamadığı bazı işlemleri yapmaktır ve onu aşmaktır. Sadece alternatif oluşturmak amacıyla böyle koplike bir işe girilmemelidir. Çoğu çalışma gösteriyor ki reverse edilen sürücülerin eskilerinin yerini tam tutmması nedeniyle hardware arızaları ve pil ölümleri meydana gelebiliyor. Çalışmalarınızı yaparken gerekli korunma önlemlerinizi alınız ve özellikle cpu overclock işlemlerinde korunma gözlüğü takınız.

Port etmeden önce güzel bir fizibilite çalışması yapmanız gerekiyor. Cihazınızın donanım özelliklerini iyi tanıyın ve üretici firmalarla iletişime geçin. Bazıları cevap verme lütfunda bulunup datasheet ve driverları gönderebilir. İnandırıcılığınız arttırmak için bir domain adresi alıp bu konuda tecrübelerinizi paylaşın, güzel ve düzenli hazırlanmış bir blog lamer olmadığınızı göstermek için yeterlidir. Fakat üzgünüm ki genelde elinize geçen sadece datasheetler olacaktır çoğu firmanın driverlarını yayınlamama gibi bir politikası mevcut. Bu datasheet belgeleri sizin için çok değerlidir, iyi muhafaza edin.

Bazıları basic bootloader’ı nasıl yazmanız gerektiğinden bile bahseder. İşin en zor kısmı da herhalde bu bootloader ve görüntüyü ekrana yansıtma olayıdır. Bootloader’ı inşa ettikten sonra driver için de iletişime geçin. Bazı firmalar geliştiriciler için “developer program” adı altında sdk ve geliştirme araçları bulunan bazı olanaklar sunuyor, çoğu aylık paralı üyelikle çalışmakta. (Nokia)

Eğer driverlar konusunda olumlu bir yanıt alamazsanız bu çalışmaları hayata geçirebilmek için IDAPro gibi güçlü disassembler araçlarına ihtiyacınız olacak, disassemling işlemler işin en sıkıcı tarafı olmakla birlikte en eğitici kısmını oluşturmaktadır. Derlenmiş bir kodu tekrar kod haline getirmek bilgisayarların çalışması hakkında inanılmaz bilgiler öğrenmenize yol açabilir, javascript’le işletim sistemi göçürme hikayelerine inanmanızı sağlayabilir.

Elinize geçen kod açıklama satırları ve fonksiyon isimleri olmadığından başlangıç seviyesinde programcılar için çok anlamsız gelecektir. device driver’ları çıkardıktan sonra işletim sisteminin çalışma prensibini öğrenmeye çalışmayın çünkü bu aşamaya gelmek çok fazla zaman alıyor hemen kolları sıvayın ve driver’ları linux’la uyumlu hale getirin. Driver’ları linux’a entegre edip platformunuza göre derleyin. Kernel demişken bu konuyu açmak gerekir, vanilla kernel mi kullanacaksınız yoksa uclinux kerneli mi kullanacaksınız? Bu soruyu yanıtlamak için MMU(memory management unit)’a sahip olup olmadığınızı ve bu ünitenin linuxla uyumlu olup olmadığını bilmeniz gerekiyor. MMU kullanamayacaksanız uclinux kullanın tekerleği yeniden icaad etmeye gerek yok! En son kerneli platforma göre derleyeceksiniz ve bootloader’la açacaksınız. LCD driverını çıkarmayı başarabildiyseniz görünütüyü de alacaksınız fakat görüntüyü alamadım diye üzülmeyin Linux güçlü bir log sistemine sahiptir. var/log dizininindeki log dosyalarından nereye kadar gelebildiğinizi takip edebilirsiniz. Artık başarılı bir Bu prototipi linux listelerinde yayınlayın ve kendinize yandaş arayın.

Dual Boot

Kullanıcılara eski sistemi de yeni sistemi de kullanma olanağı sunmalıyız. Bu yüzden bootloder’da iki seçenek sunmalıyız peki linux eski işletim sistemiyle aynı partisyonu mu paylaşacak? Bu konu biraz karışık aslında. Bazıları bu yöntemin pek geçerli ve kullanışlı olmadığını söylüyorlar fakat Ubuntu’dan bileceğiniz Wubi benzeri bir yöntem gerçekten çok akılcı çünkü mmc veya sd karta linux kurulumu pil ömrüne olumsuz eetkiler yapacak ve çalışma hızını düşürecektir ayrıca bootloader’a mmc veya sd kart yazma-okuma desteği eklenmesi de cabası. Wubi deki yöntem çok güzel işliyor: Sanal bir harddisk yaratıyorsunuz ve bootloader linux imajınızı bu sanal hardiskten çağırıyor ve göreceli olarak daha hızlı ve unistall etmesi kolay bir sisteme kavuşmuş oluyorsunuz.

GCC

Bir Linux sistemi Gnu Compiler Compilatio olmadan bir hiçtir. GCC dediğimiz derleyici kütüphanesi c, c++ gibi bir çok dilde yazılmış kodu ve programı sistemimizde çalışabilir hale getirmeyi sağlıyor. İnsanların okuyabildiği kodu 01010 şeklindeki makine koduna dönüştürerek bilgisayar için anlamlı getiriyor. Bu portu başarabilirseniz yolnuz açık olsun başarıyla Linux’u port ettiniz ve yarı kullanılabilir bir prototip haline getirdiniz. Gerisini zaman gösterecek artık gui olarak yeni bir şey mi yazarsınız yoksa var olan bir sistemi port mu edersiniz bilemiyorum ama bu aşamadan sonra işiniz rahat artık komünite ilerisini getirecektir.

Kolay gelsin!