Sistem operasi apa yang digunakan dalam pesawat terbang, dan bahasa pemrograman apa yang mereka kembangkan? [Tutup]

113

Saya bertanya-tanya apakah ada yang tahu apa sistem operasi yang digunakan dalam pesawat komersial (katakanlah Boeing atau Airbus).

Juga, apa bahasa pemrograman waktu-nyata (lebih disukai)? Saya mendengar bahwa Ada digunakan di Boeing, jadi pertanyaan saya adalah - mengapa Ada? apa kriteria Boeing-guys harus memilih bahasa ini? (Saya kira Java tidak akan menjadi pilihan yang bagus jika benar-benar mengangkat kolektor sampah).

adhg
sumber
11
Ketika saya pertama kali melihat pertanyaan ini saya pikir itu bertanya tentang sistem yang menjalankan film dalam penerbangan dan semacamnya di belakang kursi. Saya pernah berada di penerbangan Delta di mana mereka me-reboot sistem itu dan Anda bisa tahu bahwa itu menjalankan Linux, varian Debian yang saya percaya.
Kris Harper
1
@ root45: ahhhhhh ... Saya akui itu bahkan tidak terlintas di benak saya. Bisa jadi. Saya telah melihat beberapa menjalankan beberapa QNX saya pikir, dan yang lainnya menjalankan Windows Embedded.
haylem
17
"Sistem operasi apa yang digunakannya?" "Kupikir itu Vista." "Kita akan mati!"
StuperUser
1
@StuperUser: Salah satu episode IT Crowd favorit saya. ( youtube.com/watch?v=8y4akOH8v8Q - 2:34 menit). Juga, bukan hanya maskapai komersial, tetapi akan menarik untuk mengetahui lebih banyak tentang apa yang menggunakan pesawat militer, jika tidak sama. Vista, lol.
Awal
1
@Piskvor: ada VM waktu nyata untuk Java (seperti dalam bahasa, bukan platform). Saya tidak tahu apakah varian JavaRT telah digunakan untuk sistem penerbangan yang serius (dan dihuni), tetapi saya telah melihatnya digunakan untuk model atau drone.
haylem

Jawaban:

157

Avionik

Untuk sistem kontrol pesawat, kami tidak berbicara tentang sistem operasi tetapi tentang avionik , avionik terintegrasi atau sistem udara komputer pada umumnya. Dan mereka sebenarnya adalah kombinasi dari banyak sistem independen atau saling bergantung, untuk fungsi yang berbeda ( kontrol penerbangan , penghindaran tabrakan , cuaca, komunikasi, kotak hitam ...).

Setiap controller biasanya merupakan modul independen (perangkat keras dan perangkat lunak) untuk alasan keamanan dan keselamatan yang jelas: mereka adalah sistem kontrol dan pemantauan yang kritis dan jika salah satu dari mereka gagal atau rusak, itu adalah "ketidaknyamanan" yang agak besar bagi orang-orang yang tergantung pada pesawat. Ketergantungan mengambil semua artinya ketika Anda berada di mesin terbang. Jadi biasanya itu

  • dibangun khusus untuk tujuan misi mereka,
  • dibangun untuk bekerja secara independen dan berinteraksi dengan sistem lain,
  • dibangun untuk toleran terhadap kesalahan sendiri DAN untuk kegagalan sistem lain yang terhubung dengannya (karena Anda tidak ingin sistem suara pilot menurunkan kontrol mesin, misalnya).

Ini bukan komputer besar yang menjalankan semuanya. Jika Anda memikirkannya dari sudut pandang pesawat militer dan bukan pesawat komersial (meskipun dalam hal ini serupa, gambar mungkin membantu): jika suatu bagian ditembak, Anda lebih suka setidaknya memiliki beberapa bagian lain yang dapat untuk terus berjalan (bagian yang mengendalikan sistem komunikasi dan keselamatan mungkin menarik untuk tetap hidup ...). Karenanya juga banyak tombol yang Anda lihat di pesawat jet, untuk melacak status berbagai sistem.

Mereka biasanya dibangun sebagai komponen khusus yang mengoperasikan sistem mereka sendiri, atau mereka dijalankan dan dijadwalkan oleh mikro-kernel (dalam kebanyakan kasus, dengan dukungan untuk kemampuan real-time ).

Ini tergantung pada vendor dan negara, tentu saja, tetapi mereka biasanya setidaknya harus mengikuti serangkaian peraturan, persyaratan desain, dan spesifik protokol yang agak ketat, yang memungkinkan untuk:

  • kontrol kepatuhan mereka yang ketat terhadap standar keamanan dan keselamatan,
  • inter-komunikasi dengan sistem lain (jauh lebih baik jika pesawat yang Anda lepas landas di Reykjavik dapat "berbicara" dengan peralatan kontrol-darat di Tokyo ...)

Upaya Standardisasi

The DO-178B (revisi tahun 1992) dan penggantinya DO-178C (revisi 2012) (dan sekelompok dokumen terkait) adalah contoh dari sertifikasi referensi untuk tingkat kepatuhan tersebut, dan diakui oleh FAA (AS), EASA (UE), dan Transport Canada, antara lain. Beberapa organisasi lain terlibat dalam pembuatan dokumen semacam itu, seperti EUROCAE .

Sistem udara seperti itu biasanya perangkat lunak yang dipesan lebih dahulu, tetapi sistem berikut diketahui digunakan di beberapa pesawat:

Untuk memberi Anda gagasan samar-samar tentang unsur-unsur yang dibangun dalam sistem avionik, daftar akronim avionik ini menunjukkan beberapa di antaranya (dengan beberapa tumpang tindih).

Bahasa yang terkenal digunakan dalam Komersial dan Militer Avionik

Terlepas dari para tersangka yang biasa kita kenal di dunia pemrograman "arus utama", Anda akan menemukan beberapa nama yang sering dirujuk seperti Ada , dan beberapa bahasa yang kurang dikenal seperti (tanggal dan sekarang "pensiun" sejak 2010) JOVIAL .


Pertanyaan terkait StackExchange:

haylem
sumber
2
@ mattnz: Terima kasih. Tapi sejujurnya agak jauh dari apa yang diminta OP. Saya mencoba memberikan wawasan dan petunjuk yang bermanfaat untuk keperluan dokumentasi, tetapi ketika sampai pada detail implementasi aktual, lebih sulit untuk menemukan data yang sulit.
haylem
"Dan mereka sebenarnya kombinasi dari banyak sistem independen atau saling tergantung," maksud Anda ada perangkat keras terpisah untuk ini?
stijn
2
Ya, mereka cenderung dibuat perangkat keras tujuan. Tidak ada rak x86 pcs yang menjalankan pesawat Anda.
Rig
3
@stijn: Ya, ya. Pikirkan seperti ini. Mereka adalah sistem kontrol dan pemantauan kritis . Jika salah satu dari mereka gagal, itu berarti masalah besar, dengan F super besar dan kurang sopan dari itu. Jadi biasanya itu a) dibuat khusus untuk tujuan misi mereka b) dibangun untuk bekerja secara independen dan berinteraksi dengan sistem lain c) dibangun untuk toleran terhadap kesalahan sendiri DAN untuk kegagalan sistem lain yang terhubung ke (karena Anda tidak ingin sistem suara pilot menurunkan kontrol mesin, misalnya). Ini bukan komputer besar yang menjalankan semuanya.
haylem
@stijn: Pikirkan itu dari perspektif pesawat militer daripada yang komersial, jika itu membantu: jika bagian tertembak, Anda lebih suka setidaknya beberapa bagian lain dapat terus berjalan (saya katakan bagian yang mengendalikan sistem komunikasi dan keselamatan mungkin menarik untuk tetap hidup ...). Karenanya juga banyak tombol yang Anda lihat di pesawat jet, untuk melacak status berbagai sistem.
haylem
22

Sebagian besar pesawat modern menggunakan RTOS tujuan umum (sistem operasi realtime) cukup banyak hal yang sama yang digunakan dalam otomatisasi pabrik, pembangkit listrik, kapal dll

Airbus menggunakan beberapa, termasuk INTEGRITAS dari Northrop-grumman dan memprogramnya dalam C / C ++, Boeing menggunakan VxWorks antara lain

Martin Beckett
sumber
2
Pernyataan "... RTOS tujuan umum ..." meremehkan apa yang diperlukan RTOS untuk membuatnya menjadi sistem avionik, ini hampir sama dengan RTOS yang digunakan di ACME Corps Digital TV Reciever.
mattnz
3
Tidak, kecuali VxWorks dapat digunakan untuk apa saja dari Mar Rover hingga ponsel Blackberry Anda
Martin Beckett
Maaf itu QNX yang digunakan di Blackberry, bukan VxWorks. Tetapi prinsip yang sama berlaku - COTS rtos dapat digunakan di pesawat
Martin Beckett
12

Untuk apa nilainya: Untuk pesawat ruang angkasa (satelit dan antarplanet) C dan C ++ masih dominan (dan dengan kepatuhan yang sangat ketat terhadap standar ISO), umumnya menjalankan VxWorks. Labs umumnya akan tetap dengan C atau C ++ berdasarkan pada keakraban pengembang, kepercayaan pada compchain toolchain, dan standar pengkodean internal. Ada alasan kuat untuk kedua bahasa untuk perangkat lunak penerbangan waktu-nyata, tetapi masing-masing organisasi cenderung tetap dengan satu atau yang lain. Instrumen tambahan, di sisi lain, umumnya diprogram dalam Forth, C, dan bahasa skrip yang semakin modern seperti Lua.

Bill VB
sumber
3
Biasanya itu juga bagian dari C atau C ++, seperti MISRA C atau JSF C ++, sejauh yang saya baca.
Coder
10

Juga perlu dicatat bahwa sistem kontrol sering dikembangkan menggunakan desain berbasis model menggunakan Simulink. Desain kemudian dikonversi menjadi kode C secara otomatis. Manusia masih membaca dan memvalidasi kode.

Ben Martin
sumber
Profesor saya memang menyebutkannya ketika berbicara tentang sistem kritis dalam Rekayasa Perangkat Lunak.
Penjualan Dielson
Saya percaya Airbus menggunakan SCADE untuk spesifikasi fungsional perangkat keras dan perangkat lunak dalam sistem kontrol penerbangan mereka. Alat ini dapat menghasilkan kode C atau Ada.
dodgy_coder