Home arrow Articles & papers
Newsflash
Subscribe to this page to get news about me, my life, my projects, open source, Linux and other goodies. You need an RSS reader (i.e Google Reader) for this.

 
Savunma sanayinde açık yazılım ve açık standart fırsatları
Wednesday, 05 November 2008

Bu yazı Savunma ve Havacılık Dergisi'nin Ekim 2008 sayısında yayınlanmıştır.

Yazılımın açık olmasından daha önemli bir konu standartların açık ve erişilebilir olmasıdır. Erişilebilirlikten kasıt, bu standartların her an takip edilebilmesi, katkı verilebilmesi ve gerektiğinde ülke ve savunma sanayi menfaatine daha çok uyacak maddelerin standarda yerleştirilerek, aykırı olabilecek durumların önceden tanımlanıp engellenebilecek şekilde çalışma ve gerekirse lobi yapılması şeklinde özetlenebilir.

Açık yazılımların amiral gemisi Linux, sadece açık bir ortam ve geliştirme açısından bağımsızlık değil, gerçek zamanlı işletim sistemi (RTOS) platformu da sunuyor. Kimi zaman 8 Mb’ın altında çalışabilme yeteneği sayesinde firmalar kendi RTOS’larını geliştirmek yerine Linux’tan faydalanıyor. Ancak Linux’un hem TB’lar mertebesinde depolama alanları olan sunucular, hem de oyun amaçlı masaüstü ortamlarda da kullanıldığını göz önüne alırsak, yaklaşık 150 Mb tutan ve 6 milyon satırdan oluşan çekirdeğini RTOS haline getirmek, ya da bunun bakımını yapmanın ne kadar zor olduğu anlaşılabilir. Bu gibi durumlarda hazır RT Linux çözümlerinden birisini edinip kullanmak ya da açık standart ve açık kaynak kodu olmak şartıyla ticari RT Linux seçeneklerine yönelmek olası.

Geçmişte, Linux ve dolayısıyla RT Linux’a yönlendirilen en önemli eleştiriler, bu yapının karmaşık olduğu ve yüksek satır sayısı ile öğrenmenin zor olduğu yönündeydi. Öte yandan telif hakları ile ilgili bulanıklık ve kaynak kodun açık olmasının getirdiği güvenlik endişeleri de mevcuttu. Son yıllarda özellikle standartların (STANAG-4586, OACE vb) doğrudan ya da üstü kapalı şekilde Linux’u işaret etmesi ve bu standartların Linux dışında bir yöntem ile karşılanmasının oldukça güç olması nedeniyle NATO ve Amerika Savunma Bakanlığı’nın çözümlerinde Linux kullanmak teşvik ediliyor.

Bu gelişmelerin yanında, Open Architecture Computing Environment (OACE) category 3 uyumlu RT işletim sistemlerinden birisi de Linux olunca, 21. yüzyılda üretilecek tüm suüstü savunma araçlarının temelini oluşturması bekleen DDG-1000 Zumwalt sınıfı Amerikan destroyerinde Linux kullanılmasına karar verildi. Gerçek zamanlı Linux işletim sistemi, DDG-1000’in pek çok yerinde, örneğin DAP (Distribution Application Processor) adı verilen ve geminin tüm anahtar işlemlerini yürüten sisteminde tüm temel işlevleri yerine getiriyor. Bir DAP, örneğin füze fırlatma rampasında, geminin motor sistemlerinde ya da telsiz aygıtlarında kullanılabiliyor. DDG-1000 üzerinde Linux’un kullanıldığı bir başka yer ise MGK 57 dikey fırlatma sistemi (VLS).

Kimi zaman askeri sistemlerde daha düşük maliyetli ve daha az karmaşık işletim sistemleri kullanmak gerekebiliyor. Bu durumda, tam kapsamlı bir bellek yönetimi, geniş bir I/O servis yapısı, kullanıcı yönetimi gibi kapsamlı hizmetleri olan Linux bir çözüm olmayabilir. Ancak özellikle son zamanlarda bu tür zayıf işletim sistemlerinden, son 10 yıldır teknik beceri, güvenlik ve güvenilirlik alanında atılım yapmış Linux’a kayış göze çarpmaktadır.

R-Gator robotu, yukarıda saydığımız avantajları kullanan bir rörnek. 658cc’lik, dizel motoru olan cihazda, kontrol, navigasyon ve nesnelerle iletişim işlemlerinin tamamı Linux ile yapılıyor. Bu akıllı UGV, yakınında asker olmadığı durumlarda taşıyıcı ve alan savunma unsuru olarak görev yapabiliyor. İçerdiği gerçek zamanlı işletim sistemi ile GPS noktalarını takip ederek daha önce öğretildiği işlemleri sırasıyla tekrar edebiliyor. R-Gator içinde, Lynxworks’un Bluecat Linux 2.6 sürümü var. Çekirdek açık kaynak kodlu, öte yandan üzerinde geliştirilen yazılımlar da Linux uyumlu olarak, açık POSIX standartları ile geliştirildi.

Bugün pek çok askeri uygulama sayısız farklı donanım ve sistem üzerinde çalışıyor, bunların her birisinin de farklı güvenlik seviyeleri var. Bu tür çok güvenli, güvenli ve açık uygulamaların her birisi kendine özgü güvenlik ortamında, belirli bellek ve işlemci atamasıyla çalışmak durumunda olabiliyor. Linux’un bu alandaki çözümü ise bölümlendirme ve sanallaştırma. Bu sayede aynı platform üzerinde birden fazla işletim sistemi çalışabiliyor. Sanal işletim sistemlerinin her birisi, aynı donanım ya da ağ üzerindeki farklı bir makineden izlenebiliyor ve gerektiğinde müdahale edilebiliyor. Donanımın özelliği nedeniyle tüm sanal makinelerin erişebildiği RAM bölgeleri tam izole koşuyor, bu sayede güvenlik sağlanıyor ve bir sanal makinenin diğerini etkilemesine izin verilmiyor. Elbette satın alma, işleme ve yönetim maliyetleri de önemli oranda azalıyor.

Bağımsız araştırma şirketi VDC’nin raporuna göre, Linux’un gömülü sistemlerde büyüme oranı 2006-2009 yılları arasında cep telefonlarında %16.9 iken, aynı dönemde savunma ve havacılık sektöründe bu rakam %13.3 olmuş. Dolayısıyla gömülü sistemler için savunma ve havacılık sektörü en çok büyüyen ikinci pazar olarak tanımlanıyor.

Geliştiriciler için de Linux, özellikle gömülü ortamlarda daha fazla olanaklar sağlıyor. Kaynak kodun erişilebilir olması, SDK ve API’lere ulaşmanın kolaylığı, yazılım geliştirmeyi kolaylaştırıyor ve kontrolü artırıyor. Kapalı ortamlarda ise bunun tam tersi durum söz konusu: sadece firmanın size verdiği kadarıyla yetiniyorsunuz. Geliştirme yapmak, SDK’ya yeni bir eklenti yazmak, istek üzerine özellik geliştirmek kimi zaman zor, hatta imkansız.

Linux’a dayalı gerçek zamanlı işletim sistemlerini kullanırken, satın alırken ya da geliştirirken kimi kurallara dikkat etmek gerekli. Öncelikle, geliştirici ticari bir ürün hazırlarken, özellikle bu ürün gömülü bir noktada çalışacak ise, çoğu zaman internetten indirilen bir Linux paketi işe yaramayacaktır. Bu amaçla geliştirilen özel (kimi durumlarda ücretli), ancak açık kaynak kodlu Linux çözümlerini kullanmak gereklidir. Sadece Linux çekirdeği değil, beraberinde çalışan uygulamalar, özellikle donanıma özgü sürücüler, araçlar ve derleyici ortamı derken tek bir gömülü sistemde çalışması beklenen ve birbirinden bağımsız yazılımların sayısı 20 ile 100 arasında değişebilir. Tüm bu bileşenleri birlikte çalıştırmak da ayrı bir mühendislik konusudur, dolayısıyla daha önce çalıştığı bilinen çözümlere yönelmek pek çok noktada hem zaman, hem de maliyet kazancı olarak geri döner.

Donanım desteği konusunda da inceleme yapılmalıdır. Bir gömülü sistem geliştirme projesinde hem yazılım, hem de donanım birbiri ile içiçe geçer. Etkin bir gerçek zaman ortamında, gerçek zaman davranışlarının, diğer Linux özelliklerini ezmemesi gerekir. Örneğin, 20 ms’nin altında bir hedefe ulaşmak amacıyla belirli donanımlarda çalışma özelliğini silmek, POSIX API uyumluluğu kaldırmak, veya Linux 2.6 çekirdeğinin çağrılarının bir kısmını desteklemek, gidilen bir yöntem olmamalıdır. Bazı firmalar, gerçek zaman özelliklerini sağlayabilmek için çeşitli giriş/çıkış sürücülerini bile değiştirmiştir.  

Linux altında yazılım geliştirirken çeşitli kısıtlamalarla karşılaşmak mümkün. Her ne kadar kararlı, güvenilir bir geliştirme ortamı için seçilen dillerin başında Java geliyor olsa da, zaman kritik noktalarda iki dil yaklaşımı gittikçe önem kazanıyor. Java, daha karmaşık, dinamik ve sistemler arası süreçlerin kontrol edilmesinde kullanılırken, düşük seviye fonksiyonların gerçeklenmesi, protokol yazımı ve cihazlar arası haberleşme için C’ye başvuruluyor. Öte yandan son zamanlarda gerçek zaman Java teknolojilerinin gelişmesiyle, C’ye bağımlılığın azalması da gündemde.

Son zamanlardaki teknolojik gelişmelerin ışında, savunma sanayinde yaşanan atılım ve inovasyonun Linux ve açık kaynak kodlu yazılımlarla desteklenmesi sayesinde tamamen kendi ihtiyaçlarımıza göre yerli mühendilislikle ürün geliştirmek, bu sayede üçüncü kişilerin denetim ve kısıtından kurtulmak, ürünleri daha ucuza geliştirmek ve yan sanayiyi teşvik etmek mümkün. Bu yolda ilerlerken yukarıda belirttiğim konulara dikkat etmek, lisanslama konusuna ayrıca özen ve önem göstermek, kullanılan standartların açık ve geliştirilebilir olmasını sağlamak gerekiyor.

Görkem Çetin

 
< Prev   Next >
© 2009 Görkem Çetin
Joomla! is Free Software released under the GNU/GPL License.