28 Kasım 2013 Perşembe

libhybris

Kötü komşu insanı mal sahibi yapar, kötü donanım üreticisi de insanı kütüphane sahibi yapar. Carsten Munk'un yazdığı libhybris'i anlatmanın en kısa yollarından biri bu sanırım. Uzun zamandır libhybris hakkında neredeyse hiç Türkçe içerik olmaması canımı sıkıyordu ama hiaaa libhybris ne kadar süper lan'dan hallice bir şeyler yazmak epey bir zaman gerektirdiğinden bunu gerçekleştiremiyordum. Atıfta bulunabileceğim Türkçe kaynaklar olmadığı için bağlantı verip geçemediğim birkaç konuyu da yazıya eklediğim için biraz uzayan yazıyı dört başlığa böldüm.


glibc

Linux çekirdeği bir GNU/Linux sisteminin özü olabilir ama ne kullanıcılar ne de uygulamalar doğrudan çekirdeği kullanır. Bunun yerine çekirdek ile hemen hemen bütün etkileşimler çekirdeğin fonksiyonları için standartlara uyumlu arayüz sağlayan bir C kütüphanesi ile yönetilir. Pek çok C kütüphane uyarlaması vardır ama gömülü cihazları hariç tutarsak çoğu GNU/Linux sisteminde GNU C kütüphanesi kullanılır.

Özgür bir yazılım olan ve LGPL altında dağıtılan GNU C Kütüphanesi veya daha yaygın olarak bilinen ismiyle glibc, GNU Projesinin C standart kütüphanesi uyarlamasıdır.

İlk olarak Özgür Yazılım Vakfı (FSF) tarafından GNU işletim sistemi için yazılmıştır. Kütüphanenin geliştirimi 2001 yılından sonra bir komite tarafından denetlenmekteydi ve Ulrich Drepper da kütüphanenin ana katkıcısı ve sürdürücüsüydü. Mart 2012'de komite kendisini topluluk odaklı gelişim sürecinin iyiliği için dağıtma kararı aldı ve Ryan Arnold, Maxim Kuvyrkov, Joseph Myers, Carlos O'Donell ve Alexandre Oliva karar alma yetkisi olmayan proje temsilcileri oldu.

glibc, ilk olarak 80'lerde Özgür Yazılım Vakfı için çalışan Roland McGrath tarafından yazılmıştır. 1988'de FSF, glibc'yi ANSI C'nin gerektirdiği işlevselliğin neredeyse tamamına sahip olarak tanımlamıştır. 1992 yılında glibc, ANSI C-1989 ve POSIX.1-1990 fonksiyonlarını içeriyordu ve POSIX.2 için çalışmalar devam ediyordu.

90'ların başında Linux çekirdek geliştiricileri glibc'yi, FSF'nin geliştirme hızının çok yavaş olduğunu ve ihtiyaçlarına cevap vermede yetersiz olduğunu düşündüklerinden çatalladı. Linux libc olarak isimlendirilen bu çatallanmış sürüm yıllarca ayrı olarak sürdürüldü.

FSF, Ocak 1997'de glibc 2.0'ı yayınladığında çok daha tam POSIX standart uyumluluğu, daha iyi uluslararasılaştırma ve çoklu dil işlevselliği, IPv6 desteği, 64 bit veri erişimi, çok iş parçacıklı uygulamalar için olanaklar, sonraki sürümlerle uyumluluk ve daha taşınabilir kodlar sunuyordu. Bu noktada, Linux çekirdek geliştiricileri kendi çatallarını sonlandırarak FSF'nin glibc kütüphanesini kullanmaya geri döndüler.

Linux libc'nin kullanılan son sürümü libc.so.5 dahili ismini kullanıyordu. Bundan sonra glibc 2.x Linux üzerinde libc.so.6 dahili ismini kullanmaya başladı.

Richard Stallman'a göre Linux libc'de yapılan değişiklikler, kodların yazarlarındaki belirsizliklerden ve GNU'nun telif hakkı ve yazar kayıtları hakkında epey katı olmasından dolayı glibc'ye geri aktarılamadı.

Günümüzde glibc, birçok farklı çekirdek ve donanım mimarisi üzerinde çalışıyor. En yaygın kullanımı x86 üzerindeki Linux çekirdekli sistemler olsa da, resmi olarak desteklen pek çok donanım var: x86, Motorola 680x0, DEC Alpha, PowerPC, ETRAX CRIS, s390, SPARC... Resmi olarak desteklenen çekirdeklerse Hurd ve Linux. Ayrıca yoğun olarak yamalanmış sürümleri FreeBSD, NetBSD ve OpenSolaris'te de kullanılıyor. Bunlara ek olarak libroot.so olarak isimlendirilen düzenlenmiş bir biçimi de BeOS ve Haiku'da kullanılıyor.

glibc, POSIX (1c, 1d ve 1j) ve Tek UNIX Belirtiminin gerektirdiği işlevleri, ISO C99, Berkeley Unix (BSD) arayüzleri, System V Arayüz Tanımlaması (SVID) ve X/Open Taşınabilirlik Rehberinin (XPG) gerektirdiği işlevlerin bazılarını sunar. Bunlara ek olarak glibc, GNU'nun geliştirilmesinde yararlı ve önemli olan eklentiler de sağlar.

glibc, geçmişte Linus Torvalds ve gömülü Linux geliştiricileri tarafından şişkin ve diğer kütüphanelerden daha yavaş olarak addedilmiş ve eleştirilmiştir. Bu nedenle daha küçük birkaç alternatif C kütüphanesi geliştirilmiştir. Bunlar arasında Bionic, dietlibc, uClibc, Newlib, Klibc, musl ve EGLIBC bulunmaktadır. Ancak birçok küçük cihaz projesi, uygulama desteği, standartlara uyumluluğu ve bütünlüğü dolayısıyla küçük alternatifleri yerine glibc'nin kendisini kullanmaktadır. Bunlara örnek olarak Openmoko ve iPaq el bilgisayarları için olan Familiar Linux gösterilebilir.


Bionic libc

Bionic libc, Google tarafından Android gömülü işletim sistemi için geliştirilen ve tasarımının arkasında işleri gerçekten basit tutma fikri olan bir standart C kütüphanesi türevidir.

Bionic isminin Türkçe'deki karşılığı tahmin edilebileceği gibi biyoniktir. Biyonik, teknik problemleri biyolojik işlevleri örnek alarak çözmeye çalışan uygulamalı bilim dalıdır. Doğada mevcut metod ve sistemleri inceleyip modern mühendislik sistemlerinde ve teknolojilerinde kullanmayı hedefler. Daha az bilimsel olarak ifade etmeye çalışırsak da biyonik, bünyelerinde elektronik ve mekanik parçalar bulunduran canlılara denir. Bionic de böyledir, bir parça BSD ve bir parça da Linux içerir. Bionic'in kaynak kodu BSD ile lisanslı C kütüphanesi parçaları ile iş parçacıkları, süreçler, sinyaller ve diğer birkaç şeyle daha ilgilenen Linux'a özgü parçaların bir karışımıdır.

Bionic, çekirdeğin temel özelliklerini hafif bir şekilde sarmalayacak bir yapı sunar ve uç durumlarla başa çıkmak için fazla kapsamlı olmaya çalışmaz. Bionic, GNU/Linux'a özgü birkaç büyük özelliğe sahiptir ve geliştirimi diğer kod tabanlarından bağımsız olarak devam etmektedir. Bionic'in açıkça belirlenmiş hedefleri aşağıdaki gibidir:
  • BSD lisanslı: Android, GNU Genel Kamu Lisansı ile lisanslanmış Linux çekirdeğini kullanmaktadır ama Google, Android uygulamalarını GPL'nin etkilerinden izole etmek için bu lisansı kullanmak istememektedir.
  • Küçük boyutlu: Bionic, GNU C Kütüphanesi'nden (glibc) çok daha küçük, uClibc'den de biraz daha küçüktür.
  • Hızlı: Bionic, nispeten düşük saat frekanslı işlemciler için tasarlanmıştır ve geniş karakter, C++ özel durum işleme desteği gibi tam libc uyarlamalarında yer alan birçok özelliğe sahip değildir. Ayrıca Bionic başlıklarında tanımlı çeşitli fonksiyonlar bazı durumlarda beklenmeyen davranışlar tetikleyebilecek şekilde hala gerçekleştirilmemiştir.
Bionic, ARM ve x86 komut setlerini desteklemektedir. Teorik olarak daha çoğu da küçük çalışmalarla desteklenebilir. Bionic'in GNU C Kütüphanesi, uClibc veya diğer bilinen Linux C kütüphaneleriyle çalıştırılabilir dosya uyumluluğu ise yoktur.

Android 4.2 ile birlikte Bionic Glibc'nin FORTIFY_SOURCE desteğine kavuşmuştur. FORTIFY_SOURCE, strcpy, strcat, memcpy gibi güvenli olmayan karakter dizisi ve bellek fonksiyonlarının, tampon bellek boyutunun derleme zamanında tespit edilebildiği durumlarda tampon taşmalarını kontrol etmesini sağlayan bir özelliktir. Bu özellik, gcc ile ARM işlemcilere göre derlenmiş uygulamalar için kullanılabilir.


Bionic ve glibc Arasındaki İlişki veya Bionic: Google'un Yolu

Burada bahsedemeyeceğim kadar detaylı ama belirtmeden de geçemeyeceğim kadar önemli bu konuyu Akın Ömeroğlu'nun GPL, Android ve “Bionic” sorunlar ve Edward J. Naughton'un The Bionic Library: Did Google Work around the GPL yazısından inceleyebilirsiniz.


libhybris

ARM üzerinde Linux'un en önemli sorunlarından biri platform için olan grafik sürücülerinin eksikliğidir. Bunun nedeni çoğu üreticinin yalnızca Bionic C kütüphanesi temelli Android'e yoğunlaşması ve glibc temelli Linux için aynı özeni göstermemesi. Bu durumu çözmek için temel olarak iki yol var:
  • Özgür grafik sürücüleri: Yapmanız gereken tek şey sürücüleri kendi platformunuz için derlemek olacağından ideal çözüm bu olurdu.
  • Bionic'ten glibc'ye dönüştürücü kütüphane: Bu kütüphane libdl gibi davranır ve Bionic kütüphanesini yükleyerek buradaki sembolleri glibc temellilerle değiştirir. Bu tam da libhybris'in yaptığı şeydir.
C ile yazılan libhybris, Apache 2.0 lisansıyla dağıtılmaktadır ve kodlar GitHub üzerinde yayınlanmaktadır. libhybris, GNU uyumlu Linux dağıtımlarında özellikle Android kütüphane ve aygıt sürücüleri olmak üzere Bionic temelli Linux sistemleri için yazılmış yazılımları çalıştırmak için bir uyumluluk katmanıdır.

libhybris, ilk olarak daha sonra Jolla tarafından baş araştırma mühendisi olarak istihdam edilmeye başlanan Mer geliştiricisi Carsten Munk tarafından yazılmış ve 5 Ağustos 2012'de GitHub üzerinden yayınlanmıştır.

libhybris ayrıca WebOS Ports için Open webOS topluluğu ve Ubuntu Touch için Canonical tarafından da kullanılmaya başlandı.

Nisan 2013'te Munk, libhybris'in Wayland kompozitörlerinin Android için yazılmış grafik aygıt sürücülerini kullanmasını sağlayacak şekilde genişletildiğini duyurdu. Weston'a libhybris desteği ise 11 Ekim 2013'te yayınlanan 1.3 sürümüyle birlikte geldi.

libhybris'in ana özelliği öncelikli Bionic çağrılarını glibc çağrılarına çevirmektir. Android grafik sürücülerinin Wayland tabanlı sistemlerde çalışabilmesi için libhybris ayrıca Android'in EGL çağrılarını Wayland EGL çağrılarına çevirmektedir. Bu özellik ilk olarak Collabora'dan Pekka Paalanen tarafından Android üzerinde Wayland çalıştırmak için geliştirilmiştir.

libhybris her ne kadar özgür donanım sürücüleri kadar ideal bir çözüm olmasa da şu an elimizdeki en pratik çözüm.

Kaynaklar
Wikipedia - GNU C Library
glibc wiki
A turning point for GNU libc
History of glibc and Linux libc

Wikipedia - Bionic (software)
The Six Million Dollar LibC
Bionic C Library Overview
Bionic kaynak deposu
Bionic kaynak depo yansısı
Vikipedi - Biyonik

Wikipedia - Hybris (software)
Ekşi Sözlük - libhybris
Mer Proje Günlüğü
Libhybris Let You Use Android Drivers & HW Libraries in Linux
Sailfish OS running on a Sony Xperia Device + libhybris enabled ARM cubieboard2

Türkçe Jolla Kaynakları

Henüz neredeyse hepsi konu aldığı Jolla gibi oluşum aşamasında olan çeşitli Türkçe Jolla sitelerinin olması ve günden güne yenilerinin ortaya çıkması ülkemizde de bu cihaza olan sıcak bir ilgiyi göstermesi açısından çok güzel.

Bu yazıda kısaca bu sitelere değinerek henüz bu kaynaklardan haberi olmayan Jolla severlerin hayallerini kurdukları cihaz hakkındaki gelişmeleri takip etmelerini biraz daha kolaylaştırmak istiyorum.

MeeGo Türkiye
MeeGo Türkiye, Şubat 2010'da MeeGo projesinin Türkiye'de tanıtılması, desteğinin sağlanması, yerelleştirilmesi ve geliştirilmesine katkı sağlamak amacıyla kurulan bir platformudur. MeeGo Türkiye'nin günlük, viki ve forum gibi belli başlı bölümleri bulunuyor ve forumunda Jolla için özel bir kategori yer alıyor.

MaxiCep Teknoloji Portalı
MaxiCep, 2004 yılından bu yana hizmet veren, başta cep telefonları, mobil teknolojiler ile alakalı olmak üzere hayatın içinden hemen hemen her konuda güncel içerik bulunabilen bir portal ve forum sitesidir. Sitede birçok Jolla haberine yer veriliyor ve forumlarında henüz Jolla için özel bir bölüm olmasa da MeeGo bölümlerinde aktif Jolla konuları yer alıyor.

Jolla Türkiye Facebook Sayfası
Temmuz 2013'te açılan sayfada güncel Jolla haberleri paylaşılıyor.

JollaTR Twitter Hesabı
Hesap şu an güncel olmadığından ve Jolla dışındaki konularda da paylaşımlar yapıldığından en azından şimdilik bir Jolla kaynağı olarak göstermek zor olsa da yine de listede durması gerekir.

Ekşi Sözlük Jolla Başlığı
Henüz ilk elden deneyimlerini paylaşan bir yazar olmasa da Jolla ile ilgili çeşitli düşünceleri ve gelişmeleri takip edebilirsiniz.

Jolla Türkiye
Şu an yalnızca Google tarafından önbelleklenmiş sürümlerine erişilebilen platformda birkaç Jolla haberi eklendiği ve bir forum bölümü düşünüldüğü görülebiliyor.

jolla-turkiye.com
Henüz sadece alan adı alınmış bir Jolla sitesi.

İlk Jolla Kutu Açma Videosu

Dün ilk sahipleriyle buluşan Jolla'nın kullanıcıları tarafından çekilen videoları YouTube'a yüklenmeye başladı. En erken davrananlardan biri olan Marcus Lundqvist dört adet video paylaştı.


İlk videoda Jolla'nın kutudan çıkarılışını, kutu içeriğini ve ilk açılışını görüyoruz.



İkinci videoda Jolla'yı ilk sipariş edenlere hediye verilen diğer yarı olarak adlandırılan akıllı arka kapağın cihaza takılışını izliyoruz. Bu kapağın turuncu olması ve üzerinde The First One yazması dışında pek bir özelliği yok gibi görünüyor. Ben cihaza ek özellikler ekleyen bir tane bekliyordum açıkçası.

Üçüncü videoda Jolla'nın menüleri arasında dolaşıp genel kullanımına göz atıyoruz. Ne yazık ki videoda ne bütün kurulu gelen yerleşik Jolla uygulamaları gösteriliyor ne de Android desteğinin ne sevide olduğu hakkında ipucu verecek kadar Android uygulama ve oyunları inceleniyor.


Lundqvist'in dördüncü ve şimdilik son videosunda da Jolla'nın harita uygulamasına ilk bakış yapma şansı yakalıyoruz.

14 Kasım 2013 Perşembe

İlk Jolla Bu Ay Satışta

Kasım ayı diğer teknoloji firmalarında olduğu kadar Jolla'da da hareketli geçiyor. Bugün erken saatlerde Finlandiyalı telekomünikasyon şirketi DNA ve Jolla'dan gelen açıklamaya göre Jolla telefonlar 27 Kasım'da Helsinki'de satışa çıkacak.
Jolla'nın ilk telefonu 399 avrodan satışa çıkacak, bu da yaklaşık olarak 535 dolar ve 1100 TL'ye karşılık geliyor. Bazı teknoloji sitelerinde ve kullanıcı çevrelerinde bu fiyat benzer cihazlara göre yüksek bulunsa da yeni başlangıç yapan bir firma için normal karşılanabilir.

Henüz Finlandiya dışındaki ülkelerde kesin lansman tarihi hakkında yapılmış bir açıklama bulunmuyor. Yapılan önceki resmi açıklamalara göre 2013 sonuna kadar Avrupa çapında satış hedefleniyor.

Biz Türkiye'deki Jolla severler ne yapacağız bu da en azından benim için büyük merak konusu. Şöyle şeyler olabilir:

Kaynaklar:
Jolla and DNA: See you on November 27th in Finland
Made by ex-Nokians, the first Jolla phone will go on sale this month
Eski Nokia çalışanları tarafından hazırlanan ilk Jolla telefonu 27 Kasımda Finlandiya’da satışa sunuluyor
Jolla Phone akıllı telefon 27 Kasım’da satışa sunulacak

Sailfish İçin Harita Uygulamasını Appello Geliştirecek

Sony'nin Xperia modellerinde kurulu gelen Wise Pilot harita uygulamasını geliştiren İsveç firması Appello, Sailfish kullanıcılarına gerçekten eşsiz bir harita deneyimi sunmak için Jolla ile işbirliği yapacaklarını duyurdu.

Kaynak: Appello builds Maps for Sailfish OS

13 Kasım 2013 Çarşamba

HERE Haritaları, Uygulama Mağazası ve Binlerce Android Uygulaması

Jolla'nın bugün yaptığı basın açıklamasına göre Sailfish işletim sistemi, HERE harita ve konumlandırma teknolojileriyle bütünleşme sağlayarak, geliştiricilerin uygulamalarını Jolla Store'a gönderebilecekleri Jolla Harbour sitesini yayına alarak ve binlerce Android uygulaması sunan Yandex.Store ile işbirliği yaparak önemli bir dönüm noktasını daha geride bıraktı.


HERE yetenekleriyle donatılmış Jolla akıllı telefonlar

Jolla, bir Nokia servisi olan HERE ile konumlandırma hizmetleri ve harita teknolojileri için bir lisans anlaşması yaparak Sailfish kullanıcılarına dünya çapında 190'ın üzerinde ülkeden güncel harita verileri ve lokanta, otel gibi yerlere ait zengin konum bilgileri sağlayacak.


Dünyanın herhangi bir yerinde konumlandırma bilgilerini hızlı ve doğru bir şekilde sağlayan hizmetler tüm mobil harita deneyimi için gereklidir. Ayrıca dünya çapında bir harita ve konumlandırma bilgileri Jolla'yı tam donanımlı bir mobil işletim sistemi olmaya bir adım daha yaklaştırıyor. Haritalar, kullanıcı deneyimini tamamlamak için Jolla'nın ayrılmaz bir parçasıdır.

"Sailfish işletim sisteminde HERE'in lider konumlandırma servislerinin kullanılacak olmasından ve harita uygulamamızın HERE bulut servisleriyle güçlendirilecek olmasından dolayı heyecanlıyız. Bu, müşterilerimize en iyi mobil harita deneyimini sunmamıza yardımcı olacaktır." diyor Jolla yönetim kurulu başkanı Tomi Pienimäki.

Jolla cihazlar için binlerce Android uygulaması Yandex.Store üzerinden erişilebilir olacak

Jolla kullanıcıları en iyi Android uygulamalarını Myriad AG tarafından sağlanan Android çalışma zamanı sayesinde Sailfish işletim sistemi üzerinde tam uyumlu olarak çalışan Yandex.Store'dan kolayca indirebilecek.


Şu anda 17 kategoride 85.000'in üzerinde uygulamaya sahip Yandex.Store, Facebook, Twitter, Foursquare, Skype, Viber ve WeChat gibi sosyal ağ ve iletişim uygulamalarından Angry Birds gibi oyunlara kadar en iyi ve en popüler başlıkları sunuyor. Yandex.Store ayrıca uygulama içinde satın alma fırsatları sağlıyor ve 37 dilde olmak üzere akıllı telefon ve tabletlerde kullanılabiliyor.

"Jolla'nın stratejisi her zaman belli pazarlardaki en saygın servis ortaklarıyla çalışmak ve uzun vadeli stratejik ortaklıklar oluşturmaktır. Avrupa'daki ilk pazarlarımızda kullanmak üzere birkaç Android uygulama mağazası alternatifini analiz ettik. Kısa bir sürede Yandex'in çok rekabetçi olduğunu ve uygulama mağazalarını Sailfish müşterilerinin ihtiyaçları için bizimle birlikte geliştirmeye istekli olduklarını gördük." diyor Tomi Pienimäki.

Geliştiriciler uygulamalarını Jolla Store'a göndermeye başlayabilir

Jolla Store, tüm Sailfish ve Android uygulamalarını kabul ediyor. Geliştiriciler, ücretsiz olarak Sailfish yazılım geliştirme kitini indirebilir ve geliştirdikleri uygulamaları harbour.jolla.com adresindeki Jolla Harbour'a göndermeye başlayabilir.


Jolla Harbour, Sailfish işletim sisteminde en iyi uygulama kalitesi ve kullanıcı deneyimi için geliştiricilere kalite kontrolleri ve yayınlama çözümleri sağlayan özgür ve ücretsiz bir uygulama yayınlama portalıdır. Sailfish Harbour'un hem yerel Sailfish uygulamalarını hem de Android uygulamalarını desteklemek gibi eşsiz bir özelliği vardır ki bu da tüketicilere Jolla akıllı telefonlarında ve Sailfish işletim sisteminde tam anlamıyla bütünleşik bir mağaza deneyimi sunar.

20 Eylül 2013 Cuma

İlk Sailfish'li Telefon Biraz Daha Detaylandı

Bugünlerde Jolla ve Sailfish cephesinde yaşanan diğer bir gelişme de daha önce teknik özellikleri hakkında pek bilgi verilmemiş olan cihaz hakkında yeni açıklamalar yapılması.
Yeni gelen bilgiler ışığında Jolla akıllı telefonun teknik özellikleri biraz daha netleşti. Buna göre Jolla akıllı telefon 4.5″ büyüklüğünde ve 960×540 piksel çözünürlüğünde dokunmatik bir ekranla gelecek. Yeni akıllı telefon 1.4Ghz saat hızında çalışan çift çekirdekli Qualcomm Snapdragon yonga setinden güç alacak.

Jolla akıllı telefon 1GB sistem belleği ile gelecek. Ayrıca microSD ile genişletilebilir 16GB dahili veri kapasitesi sunacak cihazın arkasında led flaşlı 8MP ve ön yüzünde de 2MP kamera yer alacak. Cihaz bunların yanı sıra kullanıcılar tarafından değiştirilebilecek 2,100mAh'lik bir pille gelecek.

Bu satırları yazarken de ek bilgiler gelmeye devam ediyor. Cihaz GSM, 3G, 4G LTE kablosuz iletişim teknolojilerini destekleyecek ve Wi-Fi, NFC, I2C gibi teknolojilerle gelecek.

Cihaz özellikleri bazıları tarafından yeterli bulunurken bazılarını da hayal kırıklığına uğrattı.

Kaynaklar
MaxiCep - Jolla akıllı telefon detaylanıyor, 2013 bitmeden satışa sunulacak
Scroll - Jolla’nın Telefonu Detaylandı
Jolla Users Blog - More Jolla Phone specifications revealed
Jolla Tides - Jolla: Specs Updated, Pre-Order and Other News!
maemo.org - Official specs of Jolla phone surface