মঙ্গল কিউরিওসিটি রোভারের সফ্টওয়্যারটি কী অন্তর্নির্মিত ছিল?


544

মঙ্গল কৌতূহল জলদসু্য সফলভাবে অবতরণ করেছে, এবং প্রচার ভিডিওগুলি "সন্ত্রাসের 7 মিনিটের" এক সম্পর্কে সেখানে অতিরঞ্জন কোডের 500,000 লাইন হচ্ছে। এটি একটি জটিল সমস্যা, সন্দেহ নেই। তবে এটি প্রচুর কোড, অবশ্যই এর পিছনে একটি দুর্দান্ত প্রোগ্রামিংয়ের প্রচেষ্টা ছিল। এই প্রকল্প সম্পর্কে কেউ কি কিছু জানেন? আমি কেবল এটি একরকম এমবেডেড সি এর কল্পনা করতে পারি C.


91
কেন কেউ ধারণা করবে যে প্রকল্পের সাথে জড়িত কেবল একটি ভাষা রয়েছে।
রিগ

5
ভাল কথা, অবশ্যই, এটি সম্ভবত এর সাথে যুক্ত প্রযুক্তির একটি প্রশস্ততা পেয়েছে। আমি সে সব সম্পর্কে আরও জানতে চাই :)
ইনফিনিটিগুলি

3
কোন অংশ? মহাকাশযান? জলদসু্য? ইনস্ট্রুমেন্ট? গ্রাউন্ড সিস্টেম? যেমন অন্যান্য মন্তব্যগুলি ইঙ্গিত করে, সম্ভবত বিভিন্ন উপাদানগুলিতে বেশ কয়েকটি ভাষা ব্যবহৃত হয়েছে। এটি এমন প্রশ্নের বাইরে নয় যে সমবেতকারীকে কিছু সময়ের সমালোচনামূলক উপাদানগুলির জন্য ব্যবহার করা হয়েছিল।
গ্রিনম্যাট

67
সত্যি কথা বলতে কি, যখন আমি 500kloc চিত্র দেখি তখন নিজেকে "কেবলমাত্র" ভাবতে পেরেছিলাম? হাস্কেল থাকলে এটি বাস্তবসম্মত হতে পারত তবে পূর্ববর্তী প্রকল্পগুলি এবং তাদের নিম্ন স্তরের ভাষা সম্পর্কে কিছুটা পড়ার পরে এটিকে খুব কম মনে হয়েছিল। নীচে উদ্ধৃত 2.5 মিও লোক সি সি কোডটি আরও বিশ্বাসযোগ্য।
ফিলিপ কামেনারস্কি

19
আরও আকর্ষণীয় প্রশ্ন যে "কোন ভাষায়?" হয় "কি প্রক্রিয়ার সঙ্গে?" । এটিই প্রক্রিয়াটি পার্থক্য সৃষ্টি করে এবং নাসা কয়েক দশক ধরে কঠোর ব্যবহার করে আসছে।
dmckee

উত্তর:


506

এটি BAE দ্বারা নির্মিত একটি RAD750 প্রসেসরে 2.5 মিলিয়ন লাইন সি চালাচ্ছে । JPL একটি বিট আরো তথ্য রয়েছে কিন্তু আমি সন্দেহ বিবরণ অনেক প্রচারিত নেই না। দেখা যাচ্ছে টেস্টিং স্ক্রিপ্টগুলি পাইথনে লেখা ছিল।

অন্তর্নিহিত অপারেটিং সিস্টেমটি উইন্ড রিভারের ভেক্স ওয়ার্কস আরটিওএস । প্রশ্নে থাকা আরটিওএসকে সি, সি ++, অ্যাডা বা জাভাতে প্রোগ্রাম করা যেতে পারে। তবে, কেবল সি এবং সি ++ ওএসের মান, অ্যাডা এবং জাভা এক্সটেনশান দ্বারা সমর্থিত। উইন্ডস নদী ভিএক্স ওয়ার্কের হু ও হু হু করে একটি বিস্তর পরিমাণ সরবরাহ করে ।

অন্তর্নিহিত চিপসেটটি প্রায় অযৌক্তিকভাবে শক্ত । এর চশমাটি প্রথমে তেমন মনে হয় না তবে প্রতি 15 বছর অন্তর এটির একটি এবং একটি "ব্লুস্ক্রিন" থাকার অনুমতি রয়েছে। মনে রাখবেন, এটি রেডিয়েশন থেকে বোমা হামলা চালিয়ে যা একজন মানুষকে বহুবার হত্যা করতে পারে। মহাকাশে, দৃust়তা ওভার গতিতে জয়ী হয়। অবশ্যই, এর মতো দৃust়তা ব্যয় করে আসে। এই ক্ষেত্রে, এটি দুর্দান্ত $ 200,000 থেকে 500,000 ডলার।

একজন ইরলং প্রোগ্রামার কম্পিউটার এবং কিউরিওসিটিতে কোডবেজের বৈশিষ্ট্য সম্পর্কে কথা বলেছেন


48
জেপিএল সি ল্যাঙ্গুয়েজ কোডিং মানগুলি, বিশেষত "গ্রাউন্ড সফ্টওয়্যার" এর পরিবর্তে এম্বেডযুক্ত পরিবেশের জন্য যেমন তারা বলে। lars-lab.jpl.nasa.gov/JPL_ কোডিং_ স্ট্যান্ডার্ড_সি.পিডিএফ
প্যাট্রিক হিউজেস

80
@ ডায়নামিক: এটি এত গুরুত্বপূর্ণ একটি মিশন যে নাসা এটি ঝুঁকি নেবে না। মানুষ লিখেছেন সমাবেশ আরও ত্রুটি করে, এটি একটি পরিমাপযোগ্য সত্য।
এমসাল্টারস

22
সংকলিত সি কোড মেশিন কোড, সমাবেশ ভাষা মেশিন কোড, আমি পার্থক্যটি দেখতে পাচ্ছি না, আপনি এটিতে নামলে কোনও বিশাল পারফরম্যান্স পার্থক্য নেই।
রামহাউন্ড

23
নাসা তাদের কোডটি সম্পর্কে বাহ্যিকভাবে যত্নবান। সমস্ত কিছু (সবকিছু) প্রথমে স্পাকে করা হয় এবং বারবার পর্যালোচনা করা হয়, চেক করা হয় এবং পরিমার্জন করা হয়। যখন এটি লাইফ কোড স্ট্রিমে স্থাপন করা হয় তবে এটি প্রায় নির্দিষ্ট স্পেসের রেফারেন্সের কাটা এবং পেস্ট হয়। কোড স্ক্রিপ্টগুলি কমপক্ষে যতটা মনোযোগ দেওয়া হয় এবং সমালোচনামূলক প্রয়োজন না হলে কোনও 'ঝলমলে' বা চতুর কোড ট্রিক্সের অনুমতি দেওয়া হয় না।
স্টিফান

99
@Amarghosh: হাঁ, এবং এই ধরনের মহাকাশ যেমন :) একটি উচ্চ বিকিরণ পরিবেশ মাধ্যমে কত ভাল আপনার সেল ফোন কাজ দেখতে পেলে এটা যায়
whatsisname

175

কোডটি এমইআর ( স্পিরিট অ্যান্ড অপারচিউনিটি ) এর উপর ভিত্তি করে তৈরি করা হয়েছে , যা তাদের প্রথম ল্যান্ডার, এমপিএফ ( সোজোরনার ) এর ভিত্তিতে ছিল । এটা তোলে C- এর 3.5 মিলিয়ন লাইন (তা স্বতঃজেনারেট অনেক), একটি RA50 প্রসেসর দ্বারা উত্পাদিত বুকে গুলি চালাচ্ছেন বিএই এবং VxWorks অপারেটিং সিস্টেম। দশ লক্ষেরও বেশি লাইন হাতে কোডড ছিল।

কোডটি 150 টি পৃথক মডিউল হিসাবে প্রয়োগ করা হয়েছে, প্রতিটি পৃথক ফাংশন সম্পাদন করে। উচ্চ মিলিত মডিউলগুলি এমন উপাদানগুলিতে সংগঠিত করা হয় যা সেগুলিতে থাকা মডিউলগুলি বিমূর্ত করে এবং "নির্দিষ্ট ফাংশন, ক্রিয়াকলাপ বা আচরণ নির্দিষ্ট করে দেয়" " এই উপাদানগুলি আরও স্তরগুলিতে সংগঠিত হয় এবং সেখানে "শীর্ষ-স্তরের 10 টিরও বেশি উপাদান নেই।"

উত্স: কীনোট আলাপ দ্বারা বেঞ্জামিন Cichyমহাকাশযানের ফ্লাইট সফটওয়্যার (FSW -10) এ 2010 ওয়ার্কশপ , স্লাইড, অডিও এবং ভিডিও (মিশন ওভারভিউ, স্লাইড 80 এ স্থাপত্য আলোচনা দিয়ে শুরু হয়)।


হ্যাকার নিউজের কেউ জিজ্ঞাসা করেছিলেন "বেশিরভাগ সি কোডটি স্বয়ংক্রিয়ভাবে উত্পন্ন হয় তার মানে কি তা নিশ্চিত নয়। কোনটি থেকে?"

আমি ১০০% নিশ্চিত নই, যদিও সম্ভবত সে বছর বা অন্য বছরে একটি পৃথক উপস্থাপনা রয়েছে যা তাদের স্বয়ংক্রিয় উত্পাদন প্রক্রিয়া বর্ণনা করে describes আমি জানি যে এফএসডাব্লু -11 সম্মেলনে এটি সাধারণভাবে জনপ্রিয় একটি বিষয় ছিল।

সিমুলিঙ্ক একটি সম্ভাবনা। এটি একটি ম্যাটল্যাব উপাদানটি যান্ত্রিক প্রকৌশলীগুলির মধ্যে জনপ্রিয়, এবং তাই বেশিরভাগ নেভিগেশন এবং নিয়ন্ত্রণ প্রকৌশলীদের, এবং তাদের কোডিংয়ের কথা চিন্তা না করে জিনিসগুলিকে 'কোড' এবং সিমুলেট করার অনুমতি দেয়।

মডেল-ভিত্তিক প্রোগ্রামিং অবশ্যই এমন একটি জিনিস যা শিল্প ধীরে ধীরে সচেতন হয়ে উঠছে, তবে আমি জানি না এটি জেপিএলে কতটা ভালভাবে জড়িয়েছে বা প্রকল্প শুরু হওয়ার পরে তারা যদি এটি ব্যবহার করতে বেছে নিয়েছিল।

তৃতীয় এবং সম্ভবত সম্ভাবনা যোগাযোগ কোডের জন্য। সমস্ত স্পেস সিস্টেমের সাথে, আপনাকে গ্রাউন্ড সফ্টওয়্যার থেকে ফ্লাইট সফ্টওয়্যারটিতে কমান্ড প্রেরণ করতে হবে, এবং ফ্লাইট সফ্টওয়্যার থেকে টেলিমেট্রি গ্রহণ করতে হবে এবং স্থল সফ্টওয়্যার দিয়ে এটি প্রক্রিয়া করতে হবে। প্রতিটি কমান্ড / টেলিমেট্রি প্যাকেট একটি ভিন্ন ভিন্ন ডেটা কাঠামো, এবং প্রয়োজনীয় যে উভয় পক্ষই একই প্যাকেট সংজ্ঞা থেকে কাজ করছে এবং প্যাকেটটি ফর্ম্যাট করে যাতে এটি একদিকে সঠিকভাবে ফর্ম্যাট হয় এবং অন্যদিকে পার্স হয় ed এর মধ্যে ডেটা টাইপ, আকার এবং এন্ডিয়েননেস সহ পুরোপুরি সঠিক জিনিস পাওয়া জড়িত (যদিও আধুনিকতা সাধারণত একটি বিশ্বব্যাপী জিনিস; আপনার বিভিন্ন প্রান্তিকতা সহ একাধিক প্রসেসর বহন করতে পারেন)।

তবে এটি কেবল পৃষ্ঠতল। লগিং, কমান্ড / টেলিমেট্রি বৈধকরণ, সীমাবদ্ধতা পরীক্ষা করা, এবং ত্রুটি পরিচালনার মতো জিনিসগুলি পরিচালনা করতে আপনার উভয় পক্ষের প্রচুর পুনরাবৃত্ত কোড দরকার। এবং তারপরে আপনি আরও পরিশীলিত জিনিসগুলি করতে পারেন। বলুন যে আপনার কাছে একটি হার্ডওয়্যার রেজিস্ট্রার মান সেট করার জন্য একটি আদেশ রয়েছে এবং সেই মানটি নির্দিষ্ট প্যাকেটে টেলিমেট্রিতে ফিরে পাঠানো হয়। আপনি এই গ্রাহক সফ্টওয়্যার তৈরি করতে পারেন যা এই টেলিমেট্রি পয়েন্ট পর্যবেক্ষণ করে যখন এই নিবন্ধের মান সেট করা থাকে, শেষ পর্যন্ত টেলিমেট্রি পরিবর্তনটি প্রতিবিম্বিত করে changes এবং অবশ্যই, কিছু টেলিমেট্রি পয়েন্টগুলি অন্যের চেয়ে গুরুত্বপূর্ণ (যেমন মূল বাসের স্রোত) এবং একাধিক প্যাকেটে নামার জন্য মনোনীত করা হয়, যার মধ্যে ফ্লাইটের পাশের অতিরিক্ত অনুলিপি এবং গ্রাউন্ড সাইডে ডেটা-নকল অন্তর্ভুক্ত রয়েছে।

সব কিছুর পরেও, স্ট্যাটিক টেক্সট ফাইলগুলির একটি সংগ্রহ (এক্সএমএল, সিএসভি বা কিছু ডিএসএল / আপনার কী আছে) লিখতে অনেক সহজ (আমার মতে), পার্ল / পাইথন স্ক্রিপ্টের মাধ্যমে চালনা এবং প্রেস্টো! কোড!

আমি জেপিএল তে কাজ করি না, তাই আমি ব্যতিক্রম ভিডিওতে নেই এমন কোনও বিবরণ দিতে পারি না। আমি শুনেছি যে অটোজেনারেটেড সি কোডটি পাইথন স্ক্রিপ্টগুলি দ্বারা রচিত এবং এফএসডাব্লু নেতৃত্বের উপর নির্ভর করে কোনও প্রকল্পে অটোকোডিংয়ের পরিমাণ অনেক বেশি হয়।


8
এটি উইন্ডোভার্সকে ঠিকাদার হিসাবে কাজ করার জন্য উইন্ড রিভারের বিষয়ে কিছুটা আলোকপাত করতে পারে: উইন্ড্রিভার // নিউজ / প্রেস / পিপিআরটিএমটিএল? আইডি : ১০০৯০ আমি পড়েছি যে নাসার এমন একটি দল রয়েছে যার কাজ হিসাবে যতগুলি বাগ খুঁজে পাওয়া যায় তারা অন্য দলের লিখিত কন্ট্রোল সিস্টেম কোডে থাকতে পারে। বাগ-সন্ধানকারী দলটি তাদের খুঁজে পাওয়া বাগের জন্য পুরস্কৃত হয় এবং তারা আরকেন বাগগুলি খুঁজে পাওয়ার ক্ষেত্রে বেশ ভাল quite কোনও ত্রুটি পাওয়া গেলে, ভবিষ্যতে অনুরূপ বাগগুলির সম্ভাবনা দূর করতে কীভাবে সফ্টওয়্যার ডেভ প্রক্রিয়াটি উন্নত করা যায় তা নির্ধারণের জন্য একটি 5 ওয়াই-টাইপ বিশ্লেষণ করা হয়। একটি খুব শ্রমসাধ্য এবং ব্যয়বহুল প্রক্রিয়া।
জিম রাদেন

15
@ জিম্যাডেন যখন তদন্তের জন্য ব্যর্থতার সরাসরি ব্যয় যখন কয়েকশো মিলিয়ন থেকে কয়েক বিলিয়ন ডলার এবং কয়েক বছর ধরে (যদি হয়) তখন কিউএর পুনরায় প্রচেষ্টা চূড়ান্তভাবে ন্যায্য হয়। কয়েক ডজন / কয়েক শতাধিক গ্রেড শিক্ষার্থী বছরের পর বছর কাজ হারিয়ে ফেলে এবং তাদের পিএইচডি কাজটি পুনরায় চালু করতে এবং বিভিন্ন নতুন অধ্যাপক যারা তাদের সময়কালের ট্র্যাক গবেষণা সরবরাহের জন্য এটি থেকে ডেটা গণনা করছিলেন তাদের আকারে অপ্রত্যক্ষ ব্যয় অন্য বড় হিট তবে এটি আরও শক্ত নাসার বাজেটে লাইন আইটেমগুলির চেয়ে পরিমাণ নির্ধারণ করুন।
ড্যান নীলি

1
সি থেকে স্বয়ংক্রিয়ভাবে উত্পাদিত কি ছিল? দয়া করে আমাকে বলুন যে এটি সিমুলিংক ছিল না। :-)
উইলিয়াম পায়েেন

2
@ উইলিয়াম পেইন মূল বক্তব্যটিতে উল্লেখ করা হয়েছে যে এর কয়েকটি হ'ল এক্সএমএল বর্ণনা থেকে পাইথন প্রোগ্রাম দ্বারা উত্পাদিত প্রোটোকল এনকোডিং / ডিকোডিং রুটিনগুলি (পৃথিবীর সাথে যোগাযোগের জন্য)।
টি

1
আইসিডি থেকে স্বয়ংক্রিয়ভাবে কোড উত্পন্ন করা খুব শীতল। আমি আইডিয়া পছন্দ! যদিও আমি এক্সএমএল এর পরিবর্তে ওয়াইএএমএল ব্যবহার করতাম। :-)
উইলিয়াম পায়েেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.