Voyager görevi için kod geliştirme süreci?


29

Voyager 1, Ağustos 2012'de yıldızlararası uzaya ulaştı ve var olan en uzak insan yapımı nesne. İkiz uzay aracının hemen ardından başlatılan Voyager 2, 1977'de, Voyager 1, yeni aylar, aktif volkanlar ve dış güneş sistemi hakkında birçok veri keşfederek Jovian ve Saturnian sistemlerini araştırdı.

Voyager 1 ve 2, 176 yılda yalnızca bir kez meydana gelen ve tarihteki en iyi seyahat eden uzay aracı olarak kalan nadir bir gezegensel hizalamadan yararlanmak için tasarlandı. Her iki uzay aracı da, dünya rekorunu dünyaya taşıyacak sesler ve görüntüler içeren 12 inçlik altın kaplama bakır disk olan Altın Kayıt adı verilen bir tür zaman kapsülü taşıyor.

Bu görevler için yazılım geliştiren insanların büyük çoğunluğunun artık emekli olduğunu, ancak son 35 yılda programlama, şimdiye kadar programlama dillerinin gelişmiş olduğunu varsayıyorum.

Böylece, 1977 yılında başladı. 35 yıl sonra, Voyager yıldızlararası uzaya ulaştı. Kaç tane kod satırı vardır ve hangi dilde yazılmıştır? Bu misyonların ardındaki gelişim süreci neydi (halen aktif)?

Peki, bu görevde kod içeren daha büyük plan neydi ve hangi dilde kod tabanı yazılır?



10
Neyse ki, bugünlerde internette böyle şeyler bulmak oldukça kolay. Okuma popularmechanics.com/space/a17991/... .
Robert Harvey,

3
Geçen 35 yıl şimdiye kadar programlama dilleri, gelişmiş programlama Evet, ama çok Voyager ve onun ilk :-) kullanılan diller olarak yok
Yüksek Performanslı Mark

Popular Mechanics bağlantısının sonuna yaklaşırken, "... uzay gemisini devam ettirmek için meclis dillerinde yeterince temeli olan" diyor.
Dbasnett

Zaman dilimine dayanan çok muhtemel bir montaj dili ve ayrıca pantolonunuzun oturduğu koltuktan daha fazla olması muhtemel, kalçadan ateş, bugün kullanılan oldukça acı verici ve pahalı işlemlerden çok.
old_timer

Yanıtlar:


19

(Düzenleme: 12/7/2017, bir yıl sonra, yetkili bir cevap buldum) NASA uzay görevlerine yönelik yazılım geliştirme makalesinde. https://www.nasa.gov/pdf/418878main_FSWC_Final_Report.pdf 31. sayfada, aşağıdaki tablo, aşağıdaki satırda, kod satırlarındaki logaritmik bir artışa uygun bir uyum gösteren grafikte yer almaktadır: (Yani, 3K'lık tahminim tam para üzerindeydi .)

  • 1969 Mariner-6 (30)
  • 1975 Viking (5K)
  • 1977 Voyager (3K)
  • 1989 Galileo (8K)
  • 1990 Cassini (120K)
  • 1997 Pathfinder (175K)
  • 1999 DS1 (349K)
  • 2003 SIRTF / Spitzer (554K)
  • 2004 MER (555K)
  • 2005 MRO (545K)

Bu başlangıçta son bir cevap arayışı içinde olan bir soruydu, bu yüzden aşağıdaki tahminde bulunduk:

Aşağıdaki yazıya göre, Apollo 11 ve diğer açık kaynaklı NASA şeyleri için kod var, ancak prob kaynağı hayal kırıklığı yaratıyor gibi görünüyor:

https://voat.co/v/programming/comments/306663

Googledim ve daha kesin bir şey bulamadım, ancak F77’de çoğu zaman yeniden yazıldığının gerçeklerinin ötesinde ve her şey mükemmel giderse, bize 2024’e kadar yıldızlararası uzayda veri gönderebilir.

Bu titizlikle kapanıyor: http://history.nasa.gov/computers/Ch6-2.html

Uçuş veri sistemi tarafından kullanılan 4K bellek sıralarının sadece "alt kısmı" kod içindir. Bu muhtemelen Voyager’daki üç bilgisayarın en karmaşıkı, bu yüzden buradan üst sınır alabiliriz. Bu nedenle, 1 bayt komut büyüklüğüne sahip talimatlar için 2k bayt hafıza, kabaca 2000 montaj talimatı olacaktır. Veya belki de 1000 satır Fortran Kanunu. Yeniden programlama için üçe katlayın), ve orijinalde kaba bir 3000 Hat montaj sınırı elde edersiniz. Bilimsel ya da titiz değil, en iyisini bulabilirim.

Ve son dakika haberi olarak, Allan Lasser , Voyager Mission'ın kontrol ve analiz yazılımına kaynak kodu için kodun (C) Caltech olduğunu ve herhangi bir FOIA isteğinin ulaşamayacağının ötesinde olduğunu ortaya koyan bir Özgürlük Yasası yaptı . bu kaynak kodunu araştırmak için daha fazla çaba gösterebilir.

Ve Allan Lasser tarafından yapılan bir FOIA talebiyle, Voyager için yapılan JPL / Caltech sözleşmesinin , NASA tarafından BT güvenliğinden ödün verebilecek ayrıntılara sahip olduğu düşünüldüğü için FOIA'nın gücünün ötesinde olduğunu öğreniyoruz.


Herhangi biri montaj talimatı başına bayt veya satır başına talimat için daha iyi istatistiklere sahipse, lütfen ekleyin. Geçmişte okuduğumu bildiğim etkileyiciliğe dair makaleyi bulamadım ...
BenPen

14

Wired'daki bu makale , kodun Fortran 5'e yazıldığını ve daha sonra Fortran 77'ye taşındığını ve bazı öğelerin şu anda C'nin bir sürümünde olduğunu açıkça ortaya koyuyor:

Uzay gemilerinin orijinal kontrol ve analiz yazılımı Fortran 5'e yazılmıştır (daha sonra Fortran 77'ye verilmiştir). Yazılımın bir kısmı hala Fortran'da, ancak diğer parçalar biraz daha modern C'ye taşındı.

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.