Gömülü (Embedded) Sistemler ve Firmware

Hardware (Donanım) konusunda bilgi paylaşım alanıdır.
Cevapla
Kullanıcı avatarı
trwe
Terabyte4
Terabyte4
Mesajlar: 5277
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Konum: Düzce/Akçakoca

Gömülü (Embedded) Sistemler ve Firmware

Mesaj gönderen trwe » 19 Eki 2013, 15:49

Gömülü (Embedded) Sistemler ve Firmware
--------------------------------------------------------------------------------------------------------

Birçoğumuza mikroişlemciler dendiği zaman aklımıza hemen bilgisayarlar gelir. Sebep tabii ki mikroişlemcilerin bilgisayarların beyni olmasındandır. İlginç olan, bilgisayarlardaki mikroişlemcilerin sayısı şu anda dünyada olan mikroişlemcilerin yüzde 2'si kadarını kapsamaktadır. Mikroişlemcilerin geriye kalan yüzde 98'inin kullanıldığı yerler, mikroişlemciler dendiğinde aklımıza hiç gelmeyen yerlerde ya da sistemlerde gizlenmişlerdir. (Dünyada bir yılda yaklaşık 5 milyar mikroişlemci piyasaya sürülmektedir.) Bu sistemlerin bir kısmı fabrikalardaki makinelerdedir ama diğer bir kısmı ise burnumuzun dibinde, her gün kullandığımız araçların içerisindedir. Bu araçlardan bazıları: televizyon, buzdolabı, motorlu taşıtlar, cep telefonu, dijital fotoğraf makinesi, gelişmiş oyuncaklar, vs.

Saydığımız araçların herbiri kendi başına bir sistem olmasına rağmen, bu araçları birçok sistemin bileşimi olarak da düşünebiliriz. Mesela, bir araba sisteminde motor sistemi, fren sistemi, vs gibi bir çok alt sistem mevcuttur. Her bir alt sistem, kendi içinde daha da küçük sistemlere bölünebilir. Konuya alt sistem açısından bakarsak, her bir sistem daha büyük bir sistemin içerisine yerleş(tiril)miştir ya da gömülmüştür. Böyle sistemlere "gömülü sistemler" denilmektedir. Mesela, bir arabanın fren sistemi bir gömülü sistemdir çünkü araba sisteminin içine gömülmüştür.

Günümüzde gömülü sistemlerden daha akıllı olması gerekenleri mikroişlemciler ile kontrol etme eğilimi çok yaygındır ve büyük bir hızla da yayılmaktadır. Bu eğilimi görmenin en kolay yolu yukarıda da belirttiğimiz gibi mikroişlemcilerin bilgisayar dışında kullanıldığı sistemlere bakmaktır. Bu sistemlerin çoğu gömülü sistemlerdir.

Gömülü sistemlerin mikroişlemci kullananları hem donanım hem de yazılım içerirler. Mikroişlemciler ve onun bağlı olduğu bütün elektrik, elektronik, mekanik, vs. alt sistemler donanımı oluştururlar. Yazılım ise sistemin hafızasında saklanır. Mikroişlemci hafızadan yazılımı okur, ne demek istediğini anlar ve çalıştırır. Bir gömülü sistemin kullandığı mikroişlemcilerin sayısı genelde bu sistemin karmaşıklığı ya da sahip olduğu alt sistemlerin sayısı ile doğru orantili olarak artar.

Gömülü sistemlerin bir tane mikroişlemci kullananları da vardır. Bu gerçek, bu yazıda denmek istenenlere ters düşmediği için, yazının geri kalan kısmında mikroişlemci kelimesini hiç bir anlam farkı gözetmeksizin tekil ve çoğul olarak kullanacağız.

Gömülü Sistemlerin Özellikleri, Avantajları, İşleyişi

Gömülü sistemler en geniş manasıyla bilgisayar sistemidir. Gömülü sistemlerin örnekleri taşınabilir müzik çalıcılardan uzay araçlarındaki altsistemler için kullanılan gerçek zamanlı kontrol sistemlerine kadar uzanır. En ticari gömülü sistemler, düşük maliyette bir takım işleri gerçekleştirmek için tasarlanıyor. Hepsi olmamakla birlikte büyük çoğunluğunun gerçek zamanlı sistem kısıtlamalarını karşılaması gerekir. Bazı fonksiyonlarının çok hızlı olması gerekebilirken, diğer pek çok fonksiyonunun kesin zamanlama gereksinimi olması gerekmemektedir. Bu tip sistemler, gerçek zaman kısıtlarını sistem gereksinimlerine bağlanmış özel amaçlı yazılım ve donanım kombinasyonları ile karşılarlar

Gömülü sistemleri hız ve maliyet ile karakterize etmek zor olmakla beraber, maliyeti azaltan yüksek hacimli sistemler öncelikli tasarım hedefidir. Genellikle gömülü sistemlerin düşük performans gereksinimleri olur. Bu sistem donanımını, maliyeti düşürmek için basitleştirme olanağı tanır. Mühendisler gerekli fonksiyonları sağlayan "yeteri kadar iyi" olan donanımları seçerler.

Örneğin, uydu televizyon için dijital bir set-top box’ ın saniyede onlarca megabit veri işlemesi gerekir ama bu işlemlerin büyük bölümü çok kanallı dijital videoyu ayrıştıran, yönlendiren ve çözen özel tümleşik devreler tarafından gerçekleştirilir. Gömülü CPU bu işlemi kurar ve set box’ın kullanıcı ara yüzü gibi görsel öğelerini ekrana basar. Gömülü işlemcilerin hızları artıp, fiyatları ucuzlarken, yüksek hızlı veri işlemede öncülüğü daha fazla ele almaktadırlar.

Düşük hacimli gömülü sistemler için kişisel bilgisayarlar, programları sınırlayarak ya da işletim sistemini gerçek zamanlı işletim sistemiyle değiştirerek kullanılabilir. Bu durumda özel amaçlı donanım bir ya da daha fazla yüksek performanslı CPU ile değiştirilebilir. Bazı gömülü sistemler istenen görevleri yerine getirmek için, yüksek performanslı CPU, özel donanım ya da büyük belleklere ihtiyaç duyabilir

Taşınabilir müzik çalıcılar ve cep telefonları gibi büyük hacimli gömülü sistemlerde, maliyeti düşürme yönünde yapılan çalışmalar öncelik kazanır. Bu sistemler genellikle birkaç tümleşik devre, bütün fonksiyonları kontrol eden tümleşik CPU ve tek bir bellek çipi içerirler. Bu tasarımlarda her bir eleman bütün sistem maliyetini düşürecek şekilde seçilir ve tasarımları bu şart altında yapılır.

Bir disk sürücüsü olmayan gömülü sistemler için yapılan yazılıma firmware adı verilir. Firmware yazılımları cihazın içinde gömülü olarak bulunur, örneğin; bir ya da daha fazla ROM ya da Flash bellek IC çipleri içinde. Gömülü sistemlerdeki programlar genellikle pek çok donanım kaynağından mahrum bir şekilde çalışırlar. Genellikle bu tip sistemlerde disket sürücü, işletim sistemi, klavye ya da ekran yoktur. Eğer bir kullanıcı arayüzü var ise küçük bir klavye ya da likid kristal bir ekran gerekebilir.

Gömüllü sistemler, yıllarca hatasız bir şekilde çalışacağı varsayılan donanımların içinde bulunur. Bu yüzden gömülü sistem içindeki yazılımlar, kişisel bilgisayar içinde olanlardan daha dikkatli bir şekilde geliştirilip test edilir. Pek çok gömülü sistemde, disket sürücü, anahtar ya da buton gibi mekanik parçaların kullanımından sakınılır çünkü bu tip parçalar flash bellekler gibi statik parçalara kıyasla daha az güvenilirdir.

Bütün bunlara ek olarak, gömülü sistemler insanların kolaylıkla ulaşabileceği yerlere uzak olabilirler (bir petrol kuyusunun dibinde ya da uzayda bulunan bir uydu üzerinde). Dolayısıyla gömülü sistemler çok büyük veri kayıpları yaşandığı durumlarda bile kendilerini yeni baştan başlatabilmelidirler. Bu tip bir işlev watchdog timer adı verilen standart elektronik bir parça tarafından yerine getirilir.

Gömülü sistemlerde kullanılan mikroişlemciler genelde basit olanlardır. Daha doğru bir ifade ile 4-bitlik ya da 8-bitlik olan mikroişlemciler daha yaygındır. Buna rağmen eğilim, gömülü sistemlerin yaptıkları işlerin çokluğundaki ve karmaşıklığındaki artışlara paralel olarak, 16- ve 32-bitlik mikroişlemcilere doğrudur. Bugün, yarı iletken teknolojisindeki ilerlemelere paralel olarak artık gömülü sistemlerin birçoğu tek bir yonga üzerinde inşa edilebilmektedirler. Mikroişlemciler böyle bir yonganın yüzey alanının küçük bir kısmını kapsamaktadırlar. Bu arada, böyle tek bir yonga üzerinde inşa edilen sistemler, "bir yongadaki sistem" (system-on-a-chip) ya da bu terimin İngilizce kısaltması olan SoC ile anılmaktadırlar.

Gömülü sistemler, özel amaçlar için kullanılmak üzere tasarlanmış, sadece beklenilen görevleri yerine getirmeye programlanmış aygıtlardır. Belirli bir amaca yönelik olarak tasarlandıkları için, boyutları ve maliyetleri küçüktür. Taşınabilir müzik çalarlardan uzay araçlarına kadar hemen hemen her yerde gömülü sistem örnekleri bulabiliriz.

Gömülü sistem, bilgisayarın kendisini kontrol eden cihaz tarafından içerildiği özel amaçlı bir sistemdir. Genel maksatlı, örneğin kişisel bilgisayar gibi bir bilgisayardan farklı olarak, gömülü bir sistem kendisi için önceden özel olarak tanımlanmış görevleri yerine getirir. Sistem belirli bir amaca yönelik olduğu için tasarım mühendisleri ürünün boyutunu ve maliyetini azaltarak sistemi optimize edebilirler. Gömülü sistemler genellikle büyük miktarlarda üretildiği için maliyetin düşürülmesinden elde edilecek kazanç, milyonlarca ürünün katları olarak elde edilebilir.

Gömülü bir sistemin çekirdeğini, belirli bir sayıda görevi yerine getirmek için programlanan mikroişlemciler ya da mikrodenetleyiciler oluşturur. Kullanıcıların üzerinde istediği yazılımları çalıştırabildiği genel maksatlı bilgisayarlardan farklı olarak, gömülü sistemlerdeki yazılımlar yarı kalıcıdırlar ve firmware ismiyle anılırlar.

Gömülü sistemlerin en önemli özellikleri düşük güç tüketimi ve düşük maliyetleridir. Çünkü pek çok gömülü sistem on bin ya da milyon adetlerde üretilir. Gömülü sistemlerde genelde yavaş bir işlemci ve küçük hafıza boyutları kullanılır. Sebebi ise maliyetleri düşürmektir.

Yavaşlık sadece işlemci saat hızının düşmesi anlamında algılanmamalıdır. Bilgisayar sisteminin tüm mimarisi sadeleştirilerek ve basitleştirilerek maliyetleri düşürmek için gömülü sistemlerde kullanılır.

Gömülü sistemlerdeki yazılımlar, donanım kısıtlarına rağmen genelde gerçek-zamanlı (real-time) çalışırlar. Genelde işletim sistemi, disk sürücüsü, klavye ya da ekranları olmaz. Bir flaş sürücü mekaniksel olarak dönen bir disk sürücüsünün yerini, basit bir tuş takımı bir klavyenin yerini, küçük bir LCD'de PC'deki ekranın yerini alabilir. Ama yazının ilerleyen bölümlerinde de görebileceğiniz gibi böyle özellikleri olan sistemler (Hatta Linux işletim sistemi kullanan) de mevcut ve satışa sunulmuş durumda.

Aygıt yazılımı (Firmware), gömülü donanımlarda çalışan yazılıma denir ve rom/flaş hafıza ya da IC (tümleşik devre) yongası içinde bulunabilir.

Gömülü sistemler, 100% güvenilir, hata yapmayan, yıllarla ölçülebilen uzun zaman aralıklarında çalışabilecek şekilde tasarlanırlar. Burada yazılımın önemli çok büyüktür. Donanımdaki hatalar kolaylıkla tespit edilirken, aygıt yazılımı (firmware) hataları daha zor ayıklanabilir. Ayrıca yazılımın donanımı tekrar başlatma (reset/restart) özelliği mutlaka bulunmalıdır çünkü gömülü sistemleri insanların ulaşamayacağı yerlerde çalışmak zorunda olabilir (petrol kuyusu içindeki bir sistem ya da bir uzay aracındaki veya uydudaki bir sistem gibi). Yıkıcı bir veri bozulması durumunda aygıt yazılımı (firmware) kırılacak ve sistem duracaktır. Bu gibi durumlarda genelde yazılımdaki önlemlerin yanı sıra yazılımı destekleyen donanımsal bazı yeniden başlatma (restart) sistemleri geliştirilmiştir. Bekçi köpeği zamanlayıcısı (watchdog timer) yazılımda gelen bir hata durumunda sistemi yeniden başlatarak sürecin aksamasını önlemektedir.

Gömülü sistemler pek çok CPU mimarisinde tasarlanabilir. Şu an için Intel/AMD x86 mimarisi, apple/motorola/ibm powerpc ise apple machintosh mimarisi üzerinedir.

(x86 mimarisine sahip 478 iğneli Pentium 4 işlemciler için tasarlanmış, DDR RAM destekli, PICMG (Endüstriyel gömülü sistemler için özel PCI ve ISA arabirimlerinin bileşiminden oluşan özel bir soket) girişli kasalar için tasarlanmış bir anakart. Görünümü dışında normal bir PC ile hemen hemen aynı platforma sahip. )

Daha genel bir gömülü sistem yapılandırması ise yonga üzerinde sistemlerdir (system on chip). Bir uygulamaya özel tümleşik devre (application-specific integrated circuit/ASIC), tümleşik devre tasarımına entelektüel özelliğin dahil edilerek üretilmesiyle elde edilen işlemcidir.

Tipik bilgisayar programcıları gibi gömülü sistem tasarımcıları da derleyici (compiler), çevirici (assembler) ve hata ayıklayıcı kullanırlar. Bu yazılım araçları pek çok kaynaktan elde edilebilir: bu pazarda özelleşmiş yazılım firmalarından, GNU yazılım geliştirme araçlarından temin edilerek (cross-compiler: http://www.kegel.com/linux/embed/ ), eğer gömülü sistemdeki işlemci PC'dekinin bir türevi ya da akrabasıysa geleneksel PC'lerdeki yazılım araçları da kullanılabilir.

Gömülü sistemlerin genelde işletim sistemleri yoktur ya da özelleşmiş gömülü işletim sistemleri bulunabilir. Bunlara genelde gerçek-zamanlı işletim sistemleri (RTOS) adı verilir. İşletim sistemi olanlarda da Linux tercih edilir çünkü Linux açık kaynak kodlu ve bedava bir işletim sistemi olduğundan çekirdeği kullanıcılar tarafından yeniden yapılandırılıp derlenebilir.

Hata ayıklama genelde dâhili devre öykünücüsü (in-circuit emulator/ICE) veya mikro-denetleyicinin dâhili mikro-kodlarına kesme yapabilen bazı ayıklayıcılarla yapılır.

İlk kayda değer modern gömülü sistem Apollo yol gösterme bilgisayarıdır (Apollo Guidance Computer). Ay uçuşlarında görev yapan CSM ve LM birimlerinde rehberlik sistemi olarak çalışmışlardır. Esasında bu sistem Apollo projesinin en riskli adımlarından biridir. Bunun yanında, ilk endüstriyel seri üretim (mass production) gömülü sistemler ise Minuteman füzelerinde kullanılmıştır.

Pek çok tasarımcı yazılım kontrolünde olan LED'leri kullanarak geliştirme esnasında hataları göstererek üretimde hata ayıklamayı kolaylaştırmışlardır. Yaygın bir kullanım, elektronik sistem yeniden başlatma anında tüm LED'leri kapalı duruma getirir. Uygulama her bir başarımdan sonra ilgili LED'i açar veya duruma göre yanıp sönme etkisi verebilir

Gömülü Sistemlerin Tarihçesi

Kayda değer ilk gömülü sistem MIT Instrumentation Laboratory ‘da Charles Stark Draper tarafından geliştirilen Apollo Guidance Computer olmuştur. Aya yapılan yolculuklarda iki tane kullanıldı ve komuta modülü ve LEM’ in eylemsiz rehber sistemlerini çalıştırıyordu.

Projenin başlangıcında Apollo rehber bilgisayarı Apollo projesinin en riskli parçası olarak kabul ediliyordu. O zamanki tek parça entegre devrelerin kullanılması boyut ve ağırlığı azaltıyor ama riski artırıyordu.

İlk kitlesel gömülü sistem üretimi 1961 yılında Minuteman füzesi için yapılan Autonetics D-17 rehber bilgisayarı oldu. Ayrık transistor lojiğinden yapıldı ve ana bellek için bir hard diski vardı. 1966 yılında Minuteman II üretime girdiğinde, D-17 ilk defa yüksek hacimli entegre devrelerin kullanıldığı yeni bir bilgisayara yerini bıraktı. Bu program dörtlü nand kapılı IC’ lerin birim fiyatını 1000$’ dan 3$’ a çekti ve ticari kullanımlarının yolunu açtı.

Minuteman bilgisayarının önemli tasarım özellikleri, füzenin hedefi daha hassas bulabilmesi için rehber algoritmasının yeniden programlanabilir olması ve bilgisayarın kablo ve konnektörden tasarruf sağlayarak füzeyi test edebilmesiydi.

Maliyetin dikkate alınmadığı 1960’ lardaki bu ilk uygulamalardan itibaren gömülü sistemlerin fiyatları düşmeye başladı. Bunlarla birlikte işlem gücü ve fonksiyonellikte de yükseliş oldu.

İlk mikro işlemci hesap makineleri ve diğer ufak sistemlerde kullanılan intel 4004 oldu. Çalışabilmesi için harici bellek yongaları ve harici destek lojiklerine ihtiyaç duyuyordu. Intel 8080 gibi daha güçlü mikroişlemciler askeri projelerde geliştirildi ama diğer kullanıcılara da satıldı.

1970’ lerin sonunda 8-bit mikroişlemciler standart olmakla birlikte çözümleme ve giriş/çıkış işlemleri için genellikle harici bellek yongaları ve lojiklere ihtiyaç duyuyorlardı. Öte taraftan, fiyatlar hızla düşüyor ve uygulamalar küçük gömülü sistemleri lojik tasarımların içine sokuyordu. Görünebilir uygulamaların bir kısmı pahalı aygıtlardı.

1980’ lerin ortalarında harici olarak kullanılan sistem parçaları, işlemci ile beraber aynı yonganın içine girmeye başladı. Bunun sonucu olarak boyutta ve gömülü sistemlerin maliyetinde çok büyük düşüşler oldu. Bu tip entegre devrelere mikroişlemci yerine mikrokontrolör dendi ve gömülü sistemlerin yaygın bir şekilde kullanımı mümkün oldu.

Mikrokontrolör maliyeti bir mühendisin 1 saatlik maaşının altına indi ve bu gömülü sistemlerin sayısını ve gömülü sistemlerde kullanılmak üzere farklı firmalar tarafından üretilen parçaların sayısının patlamasına neden oldu. Örneğin, pek çok yeni özelliğe sahip IC’ ler, geleneksel paralel programlama arayüzleri yerine mikrokontrolörlere daha az sayıda arabağlantı sağlayan seri programlama arayüzleri ile beraber gelmeye başladı. I2C ‘ nin çıkış zamanı da bu döneme rastlamaktadır.

Mikrokontrolörler 1$’ ın altına düştüğünde, voltmetre ve değişken kapasitör gibi pahalı analog elemanların yerlerini küçük bir mikrokontrolör ile kontrol edilen dijital elektronik elemanlara bırakması mümkün oldu.80’lerin sonundan itibaren, tüm elektronik cihazlar için gömülü sistemler bir istisna değil bir standart haline geldi ve bu eğilim halen devam etmektedir. Devrelere mikroişlemci yerine mikrokontrolör dendi ve gömülü sistemlerin yaygın bir şekilde kullanımı mümkün oldu.

Gömülü Sistem Örnekleri

1. Banka ATM’ leri
2. Eylemsiz rehber sistemleri, uçuş kontrol donanım/yazılımı ve uçak ve füzelerdeki diğer tümleşik sistemlerden oluşan havacılık elektroniği modulleri
3. Cep telefonları
4. Router (yönlendirici), timeserver ve firewall (güvenlik duvarı) gibi bilgisayar ağ ekipmanları
5. Bilgisayar yazıcıları
6. Fotokopi makineleri
7. Disket sürücüler (floppy diket sürücüler ve har disk sürücüler)
8. Termostat, klima, sprinkler ve güvenlik izleme sistemleri gibi ev otomasyonu ürünleri
9. Hesap makineleri
10. Mikro dalga fırınlar, çamaşır makinesi, televizyon setleri ve DVD oynatıcı/kaydedici gibi ev elektroniği ürünleri
11. Tıbbi ekipmanlar
12. Çok fonksiyonlu kol saatleri
13. İnternet radyo alıcıları, TV set top box, ve dijital uydu alıcılar gibi multimedya uygulamaları
14. Çok fonksiyonlu yazıcılar
15. PDA’ler gibi küçük avuç içi bilgisayarlar
16. PDA ve Java destekli gelişmiş cep telefonları
17. Endüstriyel otomasyon ve izleme için PLC’ ler
18. Video oyun konsolları ve avuç içi oyun konsolları
19. Taşınabilir bilgisayarlar

Günümüzde, gömülü sistemlerden daha akıllı olması gerekenleri mikroişlemciler ile kontrol etme eğilimi çok yaygındır ve büyük bir hızla da yayılmaktadır (Buradan da mikroişlemcilerin sadece bilgisayarlarda kullanılmadığını anlıyoruz). Bilgisayarlardan farklı olarak, gömülü sistemlerde yarı kalıcı yazılımlar kullanılır. Cihazın içinde gömülü bulunan bu yazılımlara "Firmware" denir. Bu yazılımlar kişisel bilgisayarlardakilere oranla daha dikkatli geliştirilir.

Çünkü daha belirgin bir amaca hitap eden yazılımlardır ve çalıştırdıkları donanım, bu yazılımları uzun süre hatasız çalışacak varsayımıyla üretilir. Bunun yanında, gömülü sistem her an ulaşabileceğimiz bir yerde olmayabilir (bir uzay aracında ya da petrol kuyusunun dibinde). Bu yazılım, sistemin hafızasında saklanır.

Mikroişlemciler ve onun bağlı olduğu bütün elektrik, elektronik, mekanik, vs. alt sistemler ise donanımı oluştururlar. Mikroişlemci hafızadan yazılımı okur, ne demek istediğini anlar ve çalıştırır. Bir gömülü sistemin kullandığı mikroişlemcilerin sayısı genelde bu sistemin karmaşıklığı ya da sahip olduğu alt sistemlerin sayısı ile doğru orantılı olarak artar.

Gömülü sistemlerin genelde işletim sistemleri yoktur ya da özelleşmiş gömülü işletim sistemleri bulunabilir. Bunlara genelde gerçek-zamanlı işletim sistemleri (RTOS: real-time operating system) adı verilir.

Biraz da gömülü sistemlerin nasıl tasarlandığına değinelim. Öncelikle belirtmek gerekir ki, yukarıda da bahsettiğimiz gibi, mikroişlemci bulunduran gömülü sistemler hem yazılım hem donanım içerirler ki bu da işleri iyice zorlaştırır. Yazılım grubu ile donanım grubunun hem bireysel olarak, hem de sistem bakımından iletişim içinde olmaları gerekir. Bu da grupların bir arada çalışabilmeleri ve kullandıkları programlama dillerinin birbirlerininkini anlaması gerekiyor demektir. Bunun için özellikle C++ ve özel kütüphaneler kullanılmaktadır.

Bilgisayar programcıları gibi, gömülü sistem tasarımcıları da derleyici, hata ayıklayıcı ve çevirici kullanırlar. Bunun yanında bazı hazır araçlar da kullanılır. Gömülü sistem tasarımlarında biri başlangıç kodu bulunur. Bu kod başlangıçta bütün kesmeleri (interrupt) devre dışı bırakır, sistemi kontrol eder ve uygulama yazılımını başlatır. Yazılım sürecinde çeşitli denetlemeler kullanılabilir. En yaygınlarından biri LED’leri kullanmaktır. Hata ayıklama işi ise genellikle bir devre emülatör ya da mikrokontrolör tarafından çalışan mikrokodu kesebilecek bir çeşit hata ayıklayıcı yardımıyla yapılır. Sistem çok kapsamlıysa daha farklı araçlar kullanılabilir.

Bunların yanında kendi kendini test edebilen gömülü sistemler vardır. Bunlar; CPU, RAM ve program belleğinin test edilmesi, batarya, giriş–çıkış ve çevre aygıtlarının testi, kablo, güvenlik, kimyasalların kontrolü gibi testleri kendi kendine yapabilen sistemlerdir.

Gömülü Sistem Mimarileri

Gömülü sistemler çok farklı mimarilerle karşımıza çıkabilir. Bunlar:

• Kontrol Döngüsü: Yazılım basit bir döngü içerisindedir. Çevreden veya zamanlayıcıdan kesme alabilir. Aldığı kesmeye göre de yapılacak işlemi belirler. Bu mimarinin zorlayıcı yanları vardır. Öncelikle, sistemin her hangi bir donanım tetiklemesine karşı ne kadar zamanda tepki verileceğinin garanti edilemez. Ayrıca, sisteme yeni özellikler ekleneceği zaman yapının aşırı karmaşıklaşmasıyla kodlama zorlaşır

Yeni nesil bir cep telefonu
Bu tasarım metodunda yazılımın basit bir döngüsü bulunur. Bu döngü alt rutinleri çağırır. Her bir alt prosedür yazılımın veya donanımın bir parçasını yönetir. Kesmeler (interrupt), yazılımın kalan kısmı tarafından okunan sayıcıları veya bayrak değişkenlerini değiştirirler.

Basit bir API, kesmeleri aktif veya pasif yapar. İçiçe geçmiş alt prosedürlere çağrı yapar ve dıştakine geri doner. bunlar basit bir çekirdek (kernel) oluşturmanın temel adımlarıdır.

Zamanlayıcılar da ise belli peryotlarda tetiklenen kesmeler vardır. Bir zamanlayıcının süresi dolduğu zaman ilgili alt prosedür çalıştırılır yada bir bayrak değişkeni set edilir.

Donanımların tepkilerimi mutlaka yazılımsal zamanlayıcılar ile kontrol edilmelidir. Donanım sistemleri trilyonda bir defa da olsa hata yapabilirler. ama seri üretimdeki cihazlar için, yazılım ile donanımın kontrol edilme durumu yoksa bu büyük bir sıkıntı oluşturabilir

Pek çok tasarımcı her bir I/o birimini her döngüde bir kez okumayı ve sonucu bir mantıksal değişkende tutmayı önerir.

Bazı tasarımcılar ise kendi durum makinelerini tasarlayarak sadece bir yada iki şeyi her durum için kontrol eder.

Bu metodun en zayıf yanı, sitemin her hangi bir donanım tetiklemesine karşı ne kadar zamanda tepki verileceğinin garanti edilememesidir.

Interruptlar zorunlu kalınmadığı sürece devre dışı bırakılmamalıdır.

Bir diğer zayıf yan ise, sisteme yeni özellikler ekleneceği zaman yapının aşırı karmaşıklaşmasıyla kodlaanın zorlaşmasıdır. uzun zaman alan algoritmalar dikkatli bir biçimde parçalanarak ana döngü içinde sadece küçük bir parçanın bir miktar çalışması sağlanabilir.

Bu sistemin bir avantajı basit olması ve suçun yüklenebileceği bir işletim sistemi olmamasından dolayı yazılan yazılımın çalışacağının garanti edilmesidir.

• Nonpreemptive Multitasking: Bu teknik "kontrol döngüsü tekniği" ne çok benzemektedir. Farklı olarak, bunda API saklıdır. Ayrıca sisteme yeni bir yazılım eklemek, kontrol döngüsü tekniğindekinden daha kolaydır.

• Preemptive zamanlayıcılar (timers): Yukarıda özetlediğimiz iki teknikte, olaylar sırayla gerçekleşir, döngülerin işi bittikçe alt olaylara geçilirdi. Bunda ise, zamanlayıcı kesmesi kullanılır. Yani belirlenen bir zamana ulaşıldığında kesme (interrupt) oluşur ve diğer olaylara geçilir.

Bu tekniklerin dışında başka teknikler de kullanılmaktadır (Preemptive tasks, Office-style operating systems... gibi).

Sonuç olarak, gömülü sistemlerle her yerde karşılaşabiliriz. Masamızın üzerindeki küçük bir mp3 çalardan otomobillere, uydulardan yerin derinliklerindeki aletlere kadar her yerde gömülü sistemler kullanılmaktadır. Hem yazılım hem de donanım barındıran -genellikle- küçük ama önemli işler yapan, gün geçtikçe teknolojiyle karşılıklı olarak birbirlerini geliştiren sistemlerdir.

Gömülü Sistemlerin Tasarımları

Elektronik cihazlar genellikle mikroişlemci ya da mikrokontrolör kullanırlar. Bazı büyük ya da eski sistemler ise genel maksatlı büyük bilgisayarlar ya da minibilgisayarlar kullanırlar.

1. Kullanıcı Arayüzleri

PARC, Apple Computer, Boeing ve HP’ de bulunan arayüz tasarımcıları, kullanıcı eylemlerinin tipinin sayısının azaltılması gerektiği prensibini keşfettiler. Gömülü sistemlerde bu prensip daha düşük maliyetlere yönelik çalışmalarla birleştirilmektedir.

Gömülü sistemlerde yaygın olarak kullanılan standart bir arayüz iki tuştan oluşmaktadır; bunlardan biri menü sistemini kontrol etmek için diğeri ise istenilen seçimi gerçekleştirmek için kullanılmaktadır. Menüler kendilerini belgeleyebildikleri ve çok basit kullanıcı eylemleri ile seçilebildikleri için oldukça popülerdir.

Bir diğer yöntem ise çıktı tipini ufaltmak ve basitleştirmektir. Tasarım bazı durumlarda her bir arayüz çıkışı ya da sistem hatasını bilgilendirmek amacı ile ışık veren LED içerir. Ucuz bir seçenek olması açısından üzerine kullanıcının yerel dilini içeren hata çıkıntılarını gösteren baskılı matris etiketleri yapıştırılmış ışık barları kullanmaktır. Örneğin, pek çok küçük bilgisayar yazıcısı üzerinde herhangi bir dilde yazılar olan etiketlerle etiketlenmiş ışıklar kullanmaktadır. Bazı marketlerde bu tip ürünler müşterinin seçeceği dilde hazırlanmış etiketlerle satışa sunulmaktadır.

Kullanılan bir başka yöntem mode’ ların kullanıcı ekranında açıkça görünür hale getirilmesidir. Eğer bir arayüzün modları varsa, her zaman bir yöntemle ya da arayüzün kendisi tarafından otomatik olarak tersine çevrilir. Örneğin, Boeing’in standart test arayüzü bir buton ve birkaç ışıktan oluşur. Butona basıldığı zaman ışıklar yanar ve bırakılması ile birlikte hata mesajı veren ışıklar yanar. Kullanılan etiketler yalın bir İngilizce ile hazırlanmıştır.

Tasarımcılar sıklıkla farklı renkleri kullanırlar. Kırmızı tehlike anlamına gelir ya da tüm sistemi etkileyecek bir hatanın varlığını belirtir. Sarı bir takım problemlerin olduğunu yeşil ise sistem durumunda herhangi bir aksaklık olmadığını belirtir. Seçilen renkler birçok insanın anlaması açısından trafik işaretlerindeki renkler olarak belirlenir.

Eğer yapılan tasarım bir ekran gerektiriyorsa tasarımcılar genelde düz metin kullanımını tercih ederler. Eğer ürün görsel eğlence öğeleri üzerinde kurulmuş bir tasarımdan ibaretse, görselliği zengin metinler, resimler ve menüler ürün için tercih edilmelidir.

1. Platform

Gömülü tasarımlarda kullanılabilecek ARM, MIPS, Coldfire/68k, PowerPC, X86, PIC, 8051, Atmel AVR, Renesas H8, SH, V850, FR-V, M32R vb. gibi pek çok işlemci mimarisi bulunmaktadır.

Standart PC/104 küçük hacimli gömülü sistem tasarımları için sıkılıkla tercih edilmektedir. Bu tasarımlar genellikle DOS, Linux, NetBSD veya QNX ya da Inferno gibi gerçek zamanlı işletim sistemleri kullanmaktadır.

Büyük hacimli gömülü sistem tasarımlarında ise genellikle tek bir yonga üzerinde toplanmış sistemler tercih edilir ve bunun içinde uygulamaya yönelik entegre devre tasarımları kullanılır. Bu tasarımlar genelde CPU dahil tüm lojik tasarımlar FPGA kullanarak gerçeklenebilir.

2. Araçlar
Gömülü sistem tasarımcıları, bilgisayar programcıları gibi derleyici, çevirici ve hata ayıklayıcı gibi araçları gömülü sistem geliştirmekte kullanırlar. Bununla birlikte, pek çok programcıya yabancı gelebilecek bir takım araçlarda geliştirme sürecinde kullanılır.

Yazılım araçları birkaç kaynaktan elde edilebilir:

* Gömülü pazarda uzmanlaşmış yazılım şirketleri
* GNU yazılım geliştirme araçlarından çalışılacak ortama taşınarak
* Bazen de işlemci mimarisi kullanılacak gömülü işlemci mimarisine yakın olan kişisel bilgisayarlarda kullanılan yazılımlardan faydalanılabilir.
Bilgisayar programcılarının tercih etmediği ama gömülü sistem tasarımcıları tarafından kullanılan birkaç yazılım aracı bulunmaktadır;
* Sıklıkla kullanılan bir araç "in-circuit emulator" (ICE) daha modern tasarımlarda ise gömülü bir hata ayıklayıcı. Bu hata ayıklama aracı gömülü kod geliştirmede kullanılan temel yapılardan biridir. Mikroişlemci’ ye yapılan bağlantı ile sistemde geliştirilen kodların çabuk ve hızlı bir şekilde yüklenmesini ve ayıklanmasını sağlar.
* Gömülü bağlayıcılar’ ın (linker) kodun boyutunu ufaltmak ve çalışma zamanını azaltmak için pek çok optimizasyon özellikleri vardır. Bunlara ek olarak data overlays, ve bank switching gibi optimizasyon teknikleri de sağlayabilmektedirler.
* Kullanılan bir diğer araç ise gömülü uygulamaya bir CRC programı eklenmesi böylece gömülü sistem program verisini çalıştırmadan önce kontrol edebilir.
Bunların dışında kullanılan bazı programlama dilleri kullanıcıya gömülü sistemler tasarlamak amacıyla çeşitli kolaylıklar sağlar. C dili için;
* İsimlendirilmiş adres alanları
* İsimlendirilmiş depolama sınıfları
* Temel I/O donanım adresleme

3. Hata Ayıklama

Hata ayıklama genellikle bir devre emulator ya da mikrokontrolör tarafından çalışan mikrokodu kesebilecek bir çeşit hata ayıklayıcı tarafından gerçekleştirilebilir. Mikrokod kesme hata ayıklayıcıya üzerinde sadece CPU’nun çalıştığı donanım üzerinde çalışma imkânı verir. CPU tabanlı hata ayıklayıcılar bilgisayar donanımlarını CPU açısından test etmek ya da hata ayıklamak amacı ile kullanılabilir. Bunun yanında geliştiriciler, yüksek seviyeli dillerle kesme noktası ve tek adımlama kullanarak hata ayıklamalıdır çünkü bu özellikler oldukça yaygın olarak kullanılmaktadır. Bunlara ek olarak basit log kayıtlarının tutulması gerçek zamanlı eylemlerin hata ayıklamasında faydalı olur.

Gömülü sistemin karmaşıklığı arttıkça üst seviye araçlar ve işletim sistemleri tasarımların içine girmeye başlar. Cep telefonları, pda’ ler ve diğer tüketici bilgisayarları ileri düzey yazılım ve işletim sistemleri gerektirir. Bu tip sistemlerde, Linux, NetBSD, OSGi ya da Embedded Java gibi açık programlama ortamları, geniş bir markete satış yapabilmek amacı ile kullanılmalıdır.

4. İşletim Sistemi

Gömülü sistemlerin genellikle bir işletim sistemleri yoktur ya da özelleştirilmiş gömülü işletim sistemleri kullanılmaktadır. Gömülü işletim sistemleri başlığı altında ayrıntılı olarak anlatılacaktır.

5. Başlangıç

Tüm gömülü sistemlerin bir başlangıç kodu vardır. Kesmeleri iptal eder, aygıtları ayağa kaldırır, bilgisayarı test eder (RAM, CPU ve yazılım) ve ardından uygulama kodunu başlatır. Pek çok gömülü sistem kısa süreli güç kayıplarından, en son yapılan testler tekrarlanmadan kurtarılabilir.

Tasarımcılar hataları işaret etmesi açısından genellikle LED kullanımını tercih ederler. Genel bir tasarım olarak tekrar başlatma sırasında tüm cihazlara bağlı LED’ ler yanmaya başlayacaktır. Daha sonra açılış testi sırasında yazılım, LED’ lerin durumunu hata ya da normal haller için değiştirir.

6. Yerleşik Self-Test

Kendini test eden gömülü sistemlerin temel şekilleri şöyle açıklanabilir;
• CPU, RAM ve program belleğinin test edilmesi. Bu genellikle sisteme enerji verildiğinde bir kereliğine gerçekleştirilir. Güvenliğin kritik olduğu sistemlerde periyodik olarak ya da belli zaman aşımlarında gerçekleştirilir.
• Giriş, çıkış ve çevre aygıtlarının test edilmesi. Komünikasyon, analog ve kontrol sistemleri bu tip testler gerçekleştirebilir.
• Batarya ya da ona karşılık gelen enerji kaynağının test edilmesi.
• Bağlantı üniteleri arasında gerçekleştirilen iletişim testleri. Üniteler arasında yollanan ve alınan basit mesajlarla sağlanır.
• Kablo testleri. Bağlantı pinlerinin doğruluğunu test etmek için yapılır ve özellikle senkronize iletişim sistemlerinde ön plandadır.
• Donanım arama testi. Eklenen bir donanım ile ilgili bilgiler kullanıcıya döndürülerek sistem yükleme işlemine yönelik yol gösterme sağlanır.
• Tüketilebilinenlerin testi. Sistemde kullanılanların miktarı seviyesi ve pozisyonu hakkında bilgiler döndürür. Yakıt, ya da çeşitli kimyasal maddelerin kontrolü buna örnek verilebilir.
• Operasyonel testler. Bu testler sistemin çalışması esnasında yürütülen fonksiyonlara yönelik bir testtir ve sistem ayakta iken gerçekleştirilir.
• Güvenlik testi. Sistem güvenliği belli bir aralık değerine göre test edilir.

7. Güvenilirlik Rejimleri

İnsanların talep etme nedenlerine göre güvenirliğin farklı tanımları vardır. Ama güvenilirlik tipleri farklı sistemler için temel olup birbirleri arasında büyük değişiklik göstermemektedir;
• Sistem oldukça güvensiz ya da onarım maksadı ile ulaşılması imkânsız. (Uzay sistemleri, denizaltı kabloları…).
• Sistem güvenli bir şekilde kapatılamaz.
• Sistem güvensiz durumdayken çalışamaz.
Bu tanımlamalar güvenilirlik rejimi için kriter olarak seçilebilir.

Gömülü İşletim Sistemleri

1. ECos
2. FreeRTOS
3. Gömülü Linux
4. JavaOS
5. LynxOS
6. Mobilinux
7. Nucleus RTOS
8. Palm OS
9. Prex
10. VxWorks
11. Windows CE
12. Windows XP Embedded

1-ECos

eCos (embedded Configurable operating system) gömülü sistemler ve uygulamalar için geliştirilmiş açık kaynak, ücretsiz ve gerçek zamanlı bir işletim sistemidir. eCos' un kolaylıkla yapılandırılabilir olması istenilen uygulamaya yönelik kararlı bir işletim sistemi oluşturmaya, çalışma zamanında en iyi performans elde etmeye ve donanım kaynaklarının optimum kullanımına olanak tanır.

eCos birkaç yüz kilobyte' lar civarında düşük bellek kapasitesine sahip ya da gerçek zamanlı gereksinimleri olan sistemlere için tasarlanmıştı. Gömülü Linux' u destekleyecek kadar RAM' e sahip olmayan sistemlerde kullanılır. Şu an için, uygulama ve servis gereksinimleri hariç minimum 2 MB RAM civarında kullanılabilmektedir. eCos ARM, CalmRISC, FR-V, Hitachi H8, IA-32, Motorola 68000, Matsushita AM3x, MIPS, NEC V8xx, PowerPC, SPARC, SuperH ve Nios II gibi farklı donanım platformları üzerinde çalışabilmektedir.

2- FreeRTOS

FreeRTOS pek çok mikrokontrolöre taşınabilen gömülü cihazlar için tasarlanmış gerçek zamanlı işletim sistemidir. GPL lisansının değiştirilmiş bir şekli altında dağıtılmaktadır. Bu lisans kullanıcıya ait kodların kapalı kalmasını bunun yanında kernel' in açık kaynak olarak kullanılmasına izin vermektedir buda FreeRTOS' un ticari kullanımını kolaylaştırmaktadır. FreeRTOS' ücretsiz olarak indirilip kullanılabilmektedir. Desteklediği mimariler;

• ARM Cortex-M3
• ARM architecture ARM7
• AVR
• x86
• PIC mikrokontrolör PIC18
• Renesas H8/S
• MSP430
• HCS12
• 8052
• MicroBlaze

Kurulum işlemi her türlü mimari için önceden hazırlanmış konfigurasyon işlemi ile gerçeklştirilebilir. FreeRTOS işdüzenleyicisi küçük ve basit olacak şekilde tasarlanmıştır. FreeRTOS CORTEX-M3 mikrokontrolörleri için tasarlanmış gerçek zamanlı bie kernel' e sahip ilk işletim sistemi olmuştur.

3-Windows XP Embedded

Windows XP Embedded ya da XPe Microsoft tarafından gömülü sistemler için tasarlanmış bir işletim sistemidir. Windows XP Professional ile temel olarak aynı ikili dosyaları kullanmak ile birlikte özellikle Windows' un Win32 API tam desteğini isteyen OEM, ISV ve IHV geliştiricilerine pazarlanmaktadır. Mevcut Windows uygulamalarını ve cihaz sürücülerini çalıştırabilmektedir.

XPe' nin Windows CE ile herhangi bir bağlantısı yoktur. İkisi de farklı cihazları hedeflemekte ve herbirinin OEM üreticilerinin dikkate aldığı eksi ve artı yönleri bulunmaktadır. Örneğin, XPe hiçbir zaman CE' nin üzerinde çalıştığı kadar az yer kaplamayacaktır. Bununla birlikte, CE XPe' nin kullandığı Win32 API' lerini kullanamayacak ve mevcut sürücü ve uygulamaların çok büyük kısmını çalıştıramayacaktır.

XPe' nin kullanımının hedeflendiği cihazlar; ATM' ler, yiyecek ve meşrubat otomatları, yazar kasalar, atari makinaları, endüstriyel robotlar, ince istemciler, elektronik ev eşyalerı, NAS cihazları vb.

İşletim sisteminin kullanıcı tanımlı versiyonları PC dışında heryerde kullanılabilir. XPe XP Pro ile aynı donanımı (x86 mimarisi) destekleyebilmesine rağmen lisans sınırlamalarından dolayı standart PC' lerde kullanılmamaktadır.

4- VxWorks

VxWorks Unix tabanlı, Wind River Systems tarafından geliştirilen gerçek zamanlı bir işletim sistemidir. POSIX uyumlu bellek yönetimi, çok işlemci desteği, kullanıcı ara yüzü için kabuk (shell), sembolik ve kaynak seviyesinde hata ayıklama ve performans takip yeteneklerine sahiptir.

VxWorks Unix benzeri işletim sistemlerinden farklı olarak, üzerinde Unix ya da Windows çalışan bir makinada farklı işlemci mimarileri için yapılan çapraz derleme ile geliştirilir.

5- Prex

Prex BSD Lisansı altında dağıtılan gerçek zamanlı gömülü işletim sistemidir. Bellek yönetimi, process'ler arası iletişim (mesajlar ve paylaşık bellek) ve kernel içersinde multithreading özelliklerini sağlamaktadır. Bunların yanında uygulamaya özel nitelikleri örneğin kullanılacak dosya sisteminin tasarımını kullanıcıya bırakmaktadır. Prex şu anda IBM PC' ler ve Game Boy oyun konsolları üzerinde kullanılmaktadır.

6-Palm OS

PalmOS, PalmSource firması tarafından cep bilgisayarları (PDA’lar) için tasarlanan bir işletim sistemidir. PalmSource firması Palm isim hakkını Mayıs 2005’te PalmOne (Şimdiki Palm) firmasına satmıştır. PalmSource hazırlamakta olduğu Linux tabanlı yeni işletim sisteminin isminin ne olacağı konusunda henüz bir açıklama yapmamıştır.

1- PalmOS tarihi
2- Yazılım tabanı
3- Yazılım geliştirmek

1- PalmOS tarihi

PalmOS orijinal olarak US Robotics firmasının çıkardığı Pilot isimli PDA için Jeff Hawkins tarafından tasarlanmıştır. İşletim sisteminin ilk sürümü Pilot 1000 ve Pilot 5000 cihazlarında kullanılırken ikinci sürümü PalmPilot Personal ve PalmPilot Professional isimli PDA’larda kullanılmıştır.

Palm III serisinin çıkışı ile PalmOS’un üçüncü sürümü duyurulmuştur. İşletim sistemi bundan sonra 3.1, 3.3, 3.5 gibi güncellemelerle pek çok yeni özellik kazanmıştır. PalmOS 4.0 ise m500 serisinin çıkışı ile duyurulmuştur.

Tungsten T serisi ile duyurulan PalmOS 5.0 ise ARM mimarisindeki işlemcilere destek vermekteydi. Eski programlar PACE (Palm Application Compatibility Environment) denilen bir emülasyon ortamında çalıştırılmaktaydılar.

Palm şirketi PalmOne ve PalmSource olarak ikiye ayrıldı. PalmOne donanım işini üstlenirken PalmSource’da yazılım işini üstlendi. Yani PalmOne PDA’ları üretecek, PalmSource da işletim sistemi işini üstlenecekti. Bu ayrılma ile farklı firmaların da PalmOS işletim sistemini kullanan cihazları üretmesi teşvik edilmek isteniyordu. PalmOne şirketi Mayıs 2005'de Palm isim haklarını satın alarak tekrar Palm adını almıştır.

PalmSource firması 2003 PalmOS 6'yı çıkardı. Şubat 2004'de PalmSource PalmOS 5'e PalmOS Garnet, PalmOS 6'ya da PalmOS Cobalt isimlerini verdiğini açıkladı. Eylül 2004'de 6.1 sürümü duyurulan PalmOS Cobalt’ı kullanan bir cihaz şu ana kadar piyasaya çıkmadı.

PalmSource 2004'ün sonlarında Linux tabanlı bir PalmOS sürümü üzerinde çalışmaya başladıklarını duyurdu. Haziran 2005'de ise diğer ürünlerin geliştirilmesini durdurduklarını ve Linux tabanlı PalmOS üzerinde yoğunlaştıklarını duyurdular.

Eylül 2005'de PalmSource, Japon ACCESS firması tarafından satın alındığını açıkladı.

Kasım 2005 itibari ile PalmOS tabanlı cihazları üreten en büyük firma olan Palm, PalmSource’un verdikleri ile yetinmeyerek PalmOS üzerinde birçok değişiklik yapmıştır. Bu değişiklikler cihazların günümüz standartlarında kalabilmesini sağlamasına rağmen, PalmOS’un kararlı yapısını etkilemiş, onu daha çok iş yapabilen ama daha sorunlu bir işletim sistemi haline getirmiştir.

2- Yazılım tabanı

PalmOS için yirmi beş binden fazla üçüncü parti yazılımlar geliştirilmiştir. Bu yazılım tabanı PalmOS’un önemli avantajlarından biridir.

3- Yazılım geliştirmek

PalmOS için birçok yazılım geliştirme aracı üretilmiştir. Metrowerks CodeWarrior, Handheld Basic, NS Basic, AppForge, Pocket Studio, OrbForms Designer, CASL, Pocket C ve PDA Toolbox gibi yazılımlar ile PalmOS programları geliştirilebilir. Palm aynı zamanda J2ME ve MIDP profillerini de desteklemektedir

7-Nucleus RTOS

Mentor Graphics'in gömülü sistemler bölümü Accelerated Technology tarafından üretilen gerçek zamanlı işletim sistemidir.

8-Mobilinux

Mobilinux mobil cihazlarda kullanılan Linux tabanli gömülü işletim sistemidir. Mobilinux tek işlemcili mobil telefonlar' daki batarya güç tüketimini optimize etmek maksadı ile tasarlanmış açık kaynak ve açık standart bir teknolojidir. Linux 2.6 kernel kullanmaktadır. Ön yüklemesi çok hızlıdır ve genellikle 1 sn' nin altında tamamlanmaktadır. KDrive (TinyX olarakta bilinir) ve GTK+ üzerine kurulmuş grafik arayüzüne sahiptir.

9-LynxOS

LynxOS Unix tabanlı LynuxWorks tarafından çıkarılan gerçek zamanlı bir işletim sistemidir. LynxOS bütünüyle POSIX' e uygundur ve yakın bir zamanda da Linux' e uyum entegrasyonunu tamamlamıştır. LynxOS özellikle havacılık, uzay, akeri sanayii, endüstriyel süreç denetimi ve telekomünikasyon gibi uygulama alanları için tasrlanmış gerçek zamanlı gömülü sistemlerde kullanılır. ARM ve PowerPC mimarilerini desteklemektedir.

10-JavaOS

JavaOS Java virtual machine üzerinde çalışan ve Sun Microsystems tarafından geliştirilmiş bir işletim sistemidir. Unix ya da Unix tabanlı işletim sistemlerinin C programlama dilinde yazıldığı gibi JavaOS' de Java programlama dili kullanılarak yazılmıştır.
1- Mikrokernel
İşletim sisteminin kullandığı mikrokernel üzerinde çalıştığı donanıma bağlıdır. Desteklenen platformlar; ARM, PowerPC, RISC, SPARC, StrongARM, x86
2 - Virtual Machine (sanal makina)
Java virtual machine mikrokernel’ in üzerinde çalışır.
3 - Sürücüler
Tüm cihaz sürücüleri Java ile yazılmıştır ve virtual machine tarafından çalıştırılmaktadır.
4 - Pencereleme Sistemi
AWT API kullanan bir grafik ve pencereleme sistemi de Java’ da yazılmıştır.
5 - Uygulamaları
JavaOS gömülü sistemler üzerinde çalışmak üzere tasarlanmıştır ve multimedya sistemleri, network altyapıları ve ATM’ ler temel uygulama alanlarıdır.
6- Dış Bağlantılar

11-Gömülü Linux

Gömülü Linux Linux işletim sisteminin cep telefonları, PDA'ler, elde taşınabilir medya oynatıcılar ve diğer tüketici elektroniği cihazları gibi gömülü sistemlerde kullanılan adıdır.

Geçmişte gömülü sistemler için yapılan yazılımlar doğrudan assembler'da yazılarak geliştiriliyordu. Geliştiriciler tüm donanım sürücülerini ve arayüzlerini baştan geliştirmek zorundaydı. Daha sonraki uygulamalarda, küçük bir ücretsiz yazılım seti ile desteklenmiş Linux kernel'in gömülü cihazların sınırlı donanım alanlarına sığdırılabildiği çalışmalar gerçekleştirilmişti. Tipik bir gömülü Linux dağıtımı 2 MB alan üzerinde yer kaplamaktadır. Diğer gömülü işletim sistemleri; VxWorks, QNX, LynxOS, Windows CE, Windows NT Embedded, Palm OS.

Gömülü Linux'un diğer gömülü işletim sistemlerine olan avantajları;
1. Açık kaynak olması
2. Küçük yükleme alanı (2 MB civarı)
3. Genellikle ücretsiz olması ve kurulum başına lisans bedeli talep etmemesi
4. Olgun ve kararlı olması (10 yıldan fazla bir süredir pek çok cihazın içinde kullanılmakta)
5. İyi desteklenmesi

IBM, Intel, LynuxWorks, Motorola, Panasonic, Samsung, Sharp, Siemens ve Sony gibi firmaların katılımıyla oluşan Gömülü Linux Birliği (ELC http://www.embedded-linux.org/ ), 15 Temmuz 2003 tarihinde San Francisco'da, ürün geliştiricileri, kullanıcı arayüzü tasarımcıları ve gömülü Linux uygulamaları için gerçek zamanlı performans çalışmaları yapan tasarımcılara yardım edecek bir yönergeler dizisinin hazırlanması amacı ile standartlaşma etkinliklerinin yeni bir evresinin başlatıldığı duyuruldu. Standardın amacı, küresel olarak kabul edilen, test uygulamaları sunacak ve pazarlamayı iyileştirecek, marka oluşturacak bir platformun yaratılmasıydı. 2002 yılında ELC, Embedded Linux Consortium Platform Specification (ELCPS) isimli standardını tanıttı.

2005 yılında OSDL bünyesine katılan bu yapılanma, 21 Ocak 2007 tarihinde, aralarında Fujitsu, Intel, AMD, IBM, Oracle, Hitachi, Cisco, Motorola, Siemens, Sun Microsystems, Google, Nokia, Dell ve Toshiba gibi 60 kadar dev firmanın bir araya gelerek oluşturduğu Linux Foundation'a ile birleşti.

12- Windows CE

Windows CE (İngilizce Compact Edition, yani Küçük Sürüm olduğu söylenir, ancak Microsoft bunu doğrulamamıştır), Microsoft tarafından taşınabilir cihazlar için yazılmış bir işletim sistemidir. Windows CE, sanılanın aksine küçültülmüş bir Windows değil özel olarak yazılmış, ayrı bir işletim sistemidir. Windows’un küçültülmüş sürümlerine bir örnek olarak Windows XP Embedded sayılabilir.

Windows’un küçültülmüş bir sürümü olmadığı için "normal" Windows programları Windows CE altında kullanılamazlar. Bunun diğer bir sebebi de, Windows CE işletim sisteminin çok farklı işlemci mimarilerinde çalışabilir olmasıdır. Öte yandan, daha sonra da açıklanacağı üzere Windows CE için program yazması Windows için program yazmaya fazlasıyla benzediğinden, bazı yazılımların Windows CE sürümü de vardır.

Windows CE, birçok alanda kullanılabilir:
• Ucuz taşınabilir PC’ler
• Çok küçük PC’ler
• Pocket PC’ler
• Cep telefonları
• TV setleri
• Benzer elektronik araçlar

Bir programcı için Windows CE’nin en büyük avantajı, önceden tanıdığı Win32 arayüzüne çok benzer bir arayüz sunmasıdır: diyalog pencereleri, registry ve DirectX Windows CE’de aynı ya da oldukça ufak değişikliklerle kullanılabilir. Windows CE’de asenkron işlemler bulunmamaktadır (ör. WSAAsyncSelect, asenkron dosya erişimi). Ayrıca bazı Win32 API fonksiyonlarına ait parametreler, Windows CE yazılım geliştirme kitinde tanımlandığı halde kullanılmamalıdır.

Windows CE üzerinde .NET Compact Framework ile de uygulama geliştirilebilir. "Normal" Windows altında program yazmak için sıkça kullanılan Visual Studio aracı, ya da eMbedded Visual C++, Windows CE’ye de uygun kod üretebilir ve derleyebilir. Bunun için Microsoft’tan gerekli yazılım geliştirme kiti indirilebilir. eMbedded Visual C++ ve yazılım geliştirme kitleri (SDK) ücretsizdir. Windows CE Emulator’ü ile geliştirilen yazılım alete aktarılmadan önce test edilebilir.

Windows CE, aşağıdaki yazılım ve donanımları desteklemektedir:

• Word, Excel, Outlook ve son olarak PowerPoint’in Windows CE sürümleri vardır
• Internet Explorer Mobile başta olmak üzere bazı web tarayıcılarını kullanılabilir, MSN Messenger’ın Windows CE sürümü vardır
• Opera Web Browser, 2006 yılında 4 farklı işlemci mimarisinde çalışmak üzere (X86, ARM, SH4 ve MIPS) Windows CE için yeni browser çekirdeğini kullanan iki ayrı web browser ve web browser yazılım geliştirme kiti hazırlamıştır
• Windows Media Player’a ek olarak birçok alternatif yazılım sayesinde (The Core Pocket Media Player gibi) birçok çoklu ortam dosyası açılabilir
• Windows CE, aygıt sürücüsü bulunduğu takdirde Wi-fi, Bluetooth, GSM, GPRS, EDGE, 3G veya VPN gibi sayısız bağlantı desteğine sahiptir
• Birçok çevre birim (USB diskler gibi) desteklenir

Windows CE, gerçek zamanlı işletim sistemidir. Pocket PC 2002, Pocket PC 2003 ve Windows Mobile 5.0 işletim sistemlerinin temeli Windows CE’ye dayanır. Windows CE, Intel x86, ARM, MIPS ve SH4 gibi farklı işlemci mimarileri üzerinde, 1MB gibi oldukça küçük hafızayla çalışabilir.

Windows CE 120 günlük deneme kiti ya da tam sürümüyle beraber, geliştirmenin yapılacağı PC’ye kurulmak üzere Platform Builder isimli bir uygulama gelir. Bu uygulamada işlemci mimarisi, işletim sistemiyle beraber alete yüklenecek uygulamalar, aygıt sürücüleri ve platforma özel diğer bileşenler seçilir ve bir Windows CE imajı oluşturulur.

Platform Builder, aynı zamanda seçilen imaja ait bir yazılım geliştirme kiti de üretir. Bu kitin Visual Studio 2005'e ya da eMbedded Visual C++’a eklenmesiyle, oluşturulan imajda çalışacak uygulamalar geliştirebilir. İmaj daha sonra yine Platform Builder vasıtasıyla alete aktarılır. Platform Builder ile beraber kernel debugger, profiler gibi birçok yardımcı uygulama da gelir. Bu uygulamalar sayesinde oluşturulan imajdaki sorunların tespiti kolaylaşır.

Windows CE’de, diğer rakiplerinin bazılarından farklı olarak, fakat tıpkı Windows NT’de olduğu gibi, zamanlayıcı (scheduler) için en küçük görev (task), ipliktir (thread). Windows CE, öncelik zamanlaması (priority scheduling) ile çalışır. Windows CE’de oldukça önemli bir başka yöntem daha kullanılır, bu da öncelik değişimidir (priority inversion).

Microsoft, Windows CE ile beraber Internet Explorer’da çalışmak üzere bir adet Macromedia Flash ActiveX’i de sunmaktadır

Windows CE ve türevlerinin standart implementasyonlarında DCOM desteği sınırlıdır. COM ve OLE otomasyonu (automation) sınırlıdır. Bu işlemler 70-800KB hafıza gerektirebilir. Zayıf COM desteği ve performans kaygısı sebebiyle, Windows CE işletim sistemleri üzerinde COM bileşenleri kullanımından kaçınılır.

Windows CE işletim sistemi, özel durumları (exception) desteklemektedir. Ancak Win32 debugging API (dbghelp) Windows CE’de bulunmamaktadır (ticari bir implementasyonu bulunmaktadır). Bundan dolayı özel durumların çözümlenmesi (stack trace) ya da çalışma zamanında kullanılan bazı teknikler Windows CE üzerinde kullanılamamaktadır.

Herkese İyi Günler
TRWE_2012
Düzce_Akçakoca
:oops: :oops: :) :)
TRWE_2016
FEDAKARLIK OLMADAN ZAFER OLMAZ....!
-----------------------------
LINUXMASTER 2018
ZAFER'E GİDEN YOL,FEDAKARLIKTAN GEÇER...!
-----------------------------



Cevapla