Uçaklarda hangi işletim sistemleri kullanılıyor ve hangi programlama dillerinde geliştiriliyorlar? [kapalı]


113

Ticari uçaklarda kullanılan işletim sisteminin ne olduğunu bilen var mı merak ediyordum (Boeing veya Airbus).

Ayrıca, (tercih edilen) gerçek zamanlı programlama dili nedir? Ada'nın Boeing'de kullanıldığını duydum, bu yüzden sorum şu - neden Ada? Boeing’lerin bu dili seçmek için sahip oldukları kriterler nelerdir? (Çöp toplayıcı tam olarak kalktıktan sonra uyanırsa Java mükemmel bir seçim olmaz sanırım).


11
Bu soruyu ilk gördüğümde, uçuş filmlerini çalıştıran sistemler ve koltukların arkasındaki sistemler hakkında soru sorduğunu düşündüm. Bir keresinde, sistemi yeniden başlattıkları bir Delta uçuşundaydım ve inandığım bir Debian varyantı olan Linux'u çalıştırdığını söyleyebilirdiniz.
Kris Harper

1
@ root45: ahhhhhh ... Aklımdan bile geçmediğini itiraf ediyorum. Olabilirdi. Bazıları bence bazı QNX çalıştırdıklarını, bazıları da Windows Embedded programını çalıştırdığını gördüm.
haylem

17
“Ne tür bir işletim sistemi kullanıyor?” “Sanırım Vista.” "Öleceğiz!"
StuperUser

1
@StuperUser: En sevdiğim IT Crowd bölümlerinden biri. ( youtube.com/watch?v=8y4akOH8v8Q - 2:34 dakika). Ayrıca, sadece ticari havayolları değil, aynı değilse, askeri uçakların ne kullandığı hakkında daha fazla bilgi sahibi olmak ilginç olacaktır. Vista, lol.
Bratch

1
@Piskvor: Java için gerçek zamanlı VM'ler var (dilde değil, platformda olduğu gibi). JavaRT varyantlarının ciddi (ve yaşadığı) uçuş sistemleri için kullanılıp kullanılmadığını bilmiyorum, ama modelleri veya uçağı kullandığını gördüm.
haylem

Yanıtlar:


157

havacılık elektroniği

Hava taşıtı kontrol sistemleri için işletim sistemlerinden değil, genel olarak aviyonik , entegre aviyonik veya bilgisayar kaynaklı sistemlerden söz ediyoruz . Ve aslında farklı işlevler için ( uçuş kontrolü , çarpışmadan kaçınma , hava durumu, iletişim, kara kutular ...) çok sayıda bağımsız veya birbirine bağlı sistemin bir birleşimidir .

Her denetleyici, bariz güvenlik ve güvenlik nedenlerinden ötürü genellikle bağımsız bir modüldür (donanım ve yazılım): kritik kontrol ve izleme sistemleridir ve eğer biri arızalanırsa veya hasar görürse, bu insanlar için oldukça büyük bir "rahatsızlıktır" uçağa bağlı olarak. Güvenilirlik olduğunuz zaman tüm anlamını alır içinde uçan makine. Yani genellikle

  • Görevleri için özel yapılmış,
  • bağımsız çalışmak ve diğer sistemlerle arayüz oluşturmak
  • kendi arızalarına hataya dayanıklı olacak şekilde üretildi VE ara yüzleştiği diğer sistemlerin arızalarına karşı inşa edildi (örneğin pilotun ses sisteminin motor kontrollerini devralmasını istemiyorsunuz).

Her şeyi çalıştıran büyük bir bilgisayar değil. Ticari bir uçaktan ziyade askeri bir uçak perspektifinden düşünürseniz (bu açıdan benzer olsa da, görüntü yardımcı olabilir): eğer bir bölüme ateş edildiyse, en azından bazı bölümleri mümkün kılmak isteyebilirsiniz. devam etmek için (iletişim ve güvenlik sistemlerini kontrol eden kısım hayatta kalmak için ilginç olabilir ...). Bu nedenle, farklı sistemlerin durumunu takip etmek için jet jetlerinde gördüğünüz büyük düğme demetleri.

Genellikle kendi sistemlerini işleten özel bileşenler olarak üretilirler veya bir mikro çekirdek tarafından çalıştırılır ve zamanlanırlar (çoğu durumda, gerçek zamanlı yetenekleri destekleyen).

Açıkça satıcılara ve ülkelere göre değişir, ancak genellikle en azından katı kurallar, tasarım gereklilikleri ve protokol özelliklerini takip etmeleri gerekir:

  • güvenlik ve güvenlik standartlarına tam olarak uymalarının kontrolü,
  • diğer sistemlerle iletişim (Reykjavik’te çıkardığınız uçak, Tokyo’daki yer kontrol ekipmanlarıyla “konuşabiliyorsa” çok daha iyi ...)

Standardizasyon Çabaları

DO-178B (1992 yılında revize) ve onun halefi DO-178C (2012'de revize) (ve ilgili belgelerin bir demet), bu tür uyum düzeyleri için referans sertifikaları bir örnektir ve FAA (ABD) tarafından tanınan EASA (AB) ve Transport Canada, diğerleri arasında. EUROCAE gibi bu tür belgelerin oluşturulmasında başka çok sayıda kuruluş daha bulunmaktadır .

Bu tür hava kaynaklı sistemler genellikle ısmarlama bir yazılımdır, ancak aşağıdaki sistemlerin bazı uçaklarda kullanıldığı bilinmektedir:

Size bir aviyonik sisteme yerleştirilmiş belirsiz unsurlar fikrini vermek için, bu aviyonik kısaltmalar listesi bunlardan bazılarına işaret eder (bazılarının örtüşmesi ile).

Ticari ve Askeri Aviyonikte Kullanılan Önemli Dilleri

“Yaygın” programlama dünyasında bildiğimiz olağan şüphelilerin yanı sıra, Ada gibi sıkça atıfta bulunulan isimler ve (2010'dan beri tarihli ve şimdi "emekli") JOVIAL gibi az bilinen diller ortaya çıkacaktır .


İlgili StackExchange Sorular:


2
@ mattnz: Teşekkürler. Fakat dürüstçe, OP'nin sorduğu şeyden biraz uzak. Belgelendirme amacıyla faydalı bilgiler ve işaretçiler sunmaya çalıştım, ancak gerçek uygulama ayrıntıları söz konusu olduğunda zor veri bulmak zor.
haylem

“Ve bunlar aslında çok sayıda bağımsız veya birbirine bağlı sistemin bir birleşimidir” demek istiyorsun, bunlar için ayrı bir donanım var mı?
stijn

2
Evet, amaca yönelik donanım olma eğilimindedirler. Uçağınızı çalıştıran x86 adet raf yok.
Rig

3
@ stijn: Evet, evet. Bu şekilde düşün. Bunlar kritik kontrol ve izleme sistemleridir. Bunlardan biri başarısız olursa, bu, çok büyük bir F ve bundan daha az kibarca büyük hilkat garibesi demektir. Bu yüzden genellikle a) görevlerine uygun olarak inşa edilmiş özel b) bağımsız olarak çalışmak ve diğer sistemlerle arayüz oluşturmak c) kendi başarısızlıklarına hataya dayanıklı olacak şekilde VE onun karşılaştığı diğer sistemlerin arızalarına karşı inşa edilmiş (çünkü Örneğin pilotun ses sisteminin motor kontrollerini devralmasını istemiyorum). Her şeyi çalıştıran büyük bir bilgisayar değil.
haylem

@stijn: Ticari bir uçaktan ziyade askeri bir uçağın perspektifinden düşünün, eğer yardımcı olursa: eğer bir parça vurulursa, en azından bazı parçaların devam edebilmesini istersiniz (derim ki) iletişim ve güvenlik sistemlerini kontrol eden kısım hayatta kalmak için ilginç olabilir ...). Bu nedenle, farklı sistemlerin durumunu takip etmek için jet jetlerinde gördüğünüz büyük düğme demetleri.
haylem

22

Çoğu modern uçak, fabrika otomasyonu, elektrik santralleri, gemilerde kullanılanla aynı olan genel bir amaç olan RTOS'u (gerçek zamanlı işletim sistemi) kullanır.

Airbus, Northrop-grumman'dan INTEGRITY dahil birkaçını kullanıyor ve C / C ++ ile programlıyor, Boeing VxWorks'ü diğerleri arasında kullanıyor


2
"... genel amaçlı RTOS ..." ifadesi, bir RTOS'un aviyonik bir sisteme dönüştürülmesi için neye ihtiyaç duyduğunu önemsiz kılıyor; ACME Corps Digital TV Reciever'da kullanılanlarla aynı RTOS değil.
mattnz

3
Hayır ama VxWorks bir Mar Rover'dan Blackberry telefonunuza herhangi bir şey için kullanılabilir
Martin Beckett

Üzgünüz, Blackberry'de kullanılan QNX, VxWorks değil. Fakat aynı prensip geçerlidir - COTS rtos'lar uçakta kullanılabilir
Martin Beckett

12

Neye mal olursa olsun: Uzay aracı için (uydu ve gezegenler arası olanlar) C ve C ++ hâlâ baskın (ve ISO standartlarına çok sıkı bir şekilde uyuyor), genellikle VxWorks kullanıyor. Laboratuvarlar genellikle geliştirici tanıdıklarına, derleyici araç zincirine olan güvenine ve dahili kodlama standartlarına bağlı olarak C veya C ++ ile yapışacaktır. Her iki dilin de gerçek zamanlı uçuş yazılımı için zorlayıcı nedenleri vardır, ancak her kuruluş bir veya diğerine bağlı kalma eğilimindedir. Diğer yandan, yardımcı araçlar genellikle Forth, C ve Lua gibi giderek artan modern betik dillerinde programlanır.


3
Genellikle, okuduğum kadarıyla, MISRA C veya JSF C ++ gibi bir C veya C ++ alt kümesidir.
Kodlayıcı

10

Ayrıca, kontrol sistemlerinin genellikle Simulink kullanan model tabanlı tasarım kullanılarak geliştirildiğini belirtmek gerekir. Tasarım daha sonra otomatik olarak C koduna dönüştürülür. İnsanlar hala kodu okuyor ve onaylıyorlar.


Profesörüm, Yazılım Mühendisliği'ndeki kritik sistemler hakkında konuştuğunda gerçekten bahsetti.
Dielson Satış

Airbus'ın uçuş kontrol sistemlerinde donanım ve yazılımın işlevsel özellikleri için SCADE kullandığını düşünüyorum . Araç, C veya Ada kodu oluşturabilir.
dodgy_coder
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.