يقوم دوغلاس هيرلي وبوب بهنكن في كبسولة إنديفور
SpaceX بتطوير مشاريع بسرعة في عدة اتجاهات. تعود المرحلة الأولى من صاروخ فالكون 9 ، بعد إطلاق الحمولة إلى الفضاء ، إلى الأرض لإعادة استخدامها ، على غرار اختبار نماذج المركبة الفضائية. يقوم Crew Dragon بتسليم الطاقم إلى محطة الفضاء الدولية ، ويتم إعداد الجيل الثاني من شاحنات Dragon. ينتج سرب من أقمار الاتصالات Starlink أكثر من مائة ميجابت في الثانية للمستخدمين الحقيقيين للاختبار التجريبي المفتوح.
تتطلب كل هذه المشاريع درجة عالية من الأتمتة ، وهي مسؤولية فريق تطوير البرمجيات. يتحدث خبراء SpaceX عن هذا الأمر بسرور: فهو ليس مهمًا فقط لجذب المتقدمين للوظائف الشاغرة ، ولكنه مهم أيضًا لأي شخص آخر.
تعقيد الفضاء
في 14 ديسمبر 1966 ، في تجربة إطلاق بدون طيار لسويوز ، هبطت السفينة رقم 1 7K-OK على منصة الإطلاق: أخف وزنا على أحد المحركات لم يعمل. أوقفت الأتمتة تسلسل الإطلاق قبل أن ينفصل الصاروخ عن سطح منصة الإطلاق. اقترب الأفراد من الصاروخ لتفقده وتقييم إمكانية إعادة إطلاقه. انطلق نظام الإنقاذ في حالات الطوارئ (SAS) في سويوز فجأة. حملت محركات البودرة عربة الهبوط بعناية إلى ارتفاع 700 متر وأعطتها قوة المظلات ، ولكنها أشعلت أيضًا السائل القابل للاشتعال المنسكب لنظام التحكم الحراري في حجرة الأدوات ، والذي ظل على الأرض. أضاء الجزء العلوي من الصاروخ. كما يتذكر تشيرتوك ، ذكرى كارثة نيدلينأجبر الناس على مغادرة منصة الإطلاق وهم يركضون. مات شخص واحد.
بدأ توضيح أسباب تفعيل SAS على صاروخ ثابت حتى قبل إطفاء منصة الإطلاق. أثناء الرحلة ، يقارن الصاروخ باستمرار انحرافات النظام المرجعي بالقصور الذاتي عن المسار المحسوب. إذا كان الاختلاف كبيرًا جدًا ، فسيتم تشغيل SAS. الصاروخ الذي يقف على منصة الإطلاق ما زال يتحرك: يدور مع الأرض ، والجيروسكوبات "مرتبطة" بالنجوم. عند تصميم أنظمة الطوارئ ، كان من المفترض أن تكون الأرض ثابتة. في غضون 27 دقيقة ، " ركض " حوالي 8 درجات ، وتم استقبال إشارة الاشتعال على 32 شحنة نارية من طراز SAS.
تم التغاضي عن هذا "الخطأ" حتى بدون تعقيدات أجهزة الكمبيوتر الحديثة. يتم الآن التحكم في جميع الأنظمة المهمة لأي مركبة فضائية بواسطة الإلكترونيات. هذه ليست حتى " الواصلة الأغلى في التاريخ " لمسبار مارينر 1 لعام 1962: في الأنظمة الحديثة ، مساحة الأخطاء هي عشرات ومئات الآلاف من أسطر التعليمات البرمجية. يؤدي أي عطل ملحوظ في البرنامج إلى تدهور جودة العمل أو حتى يؤدي إلى فقد الجهاز.
يبدو أن نضج الاتجاه وثقافة تطوير الفضاء قد نفت أي أخطاء "صبيانية". ولكن هذا ليس هو الحال. حتى الآن ، تنفجر الصواريخ بخطأ تحويل متغير ، وتتدلى المركبات الجوالة بانعكاس الأولوية ، والمجسات المداريةتقع بسبب وجود قيمة في نظام القياس الخاطئ . حتى Starliner ، المنافس المباشر لـ Crew Dragon ، لم يصل إلى محطة الفضاء الدولية بسبب جودة البرنامج.
نشرت SpaceX هذا الفيديو بحب ثقافة التجربة والخطأ
. مثال SpaceX مثير للفضول في هذه الخلفية. لم تكن هذه الشركة الصغيرة نسبيًا ذات الإنجازات البارزة لتحدث بدون البرامج التي تطورها فرق صغيرة وتختبرها بسرعة.
فالكون على x86
لا تنتج المشكلات عن موثوقية الكود فقط - فالمساحة معادية حتى للأجهزة. على الأرض ، نحن محميون من الإشعاع بواسطة المجال المغناطيسي والغلاف الجوي. في الفضاء ، سيؤدي تيار من الجسيمات عالية الطاقة بسهولة إلى تحويل واحد إلى صفر في خلية ذاكرة ، أو حتى تعطيل المكونات تمامًا. تتطلب الإلكترونيات الدقيقة الفضائية على الأقل شهادة خاصة ، وتلجأ أحيانًا إلى دوائر دقيقة خاصة ، على سبيل المثال ، تقنيات أشباه الموصلات المصنوعة من السيليكون والياقوت .
يتجاهل SpaceX الموقف الشديد الحساسية تجاه المعدات الفضائية. منذ إنشائها ، تميزت الشركة بحبها للمكونات الرخيصة نسبيًا. على سبيل المثال ، في عام 2005 ، أفاد الصحفيون أن أجهزة الكمبيوتر في صاروخ فالكون 1 تتواصل عبر كابل إيثرنت عادي.
كما قال مهندسو سبيس إكس ( 1 ، 2 ) في مؤتمر GDC 2015 ، على صاروخ فالكون 9 ، يتم تثبيت ثلاثة أجهزة كمبيوتر ثنائية النواة x86 في كل مرحلة. في كل جهاز كمبيوتر ، على كل من المركزين ، يعمل نظام التشغيل مع برنامج الطيران بشكل مستقل عن بعضهما البعض. يحتوي الصاروخ أيضًا على متحكمات PowerPC. يتحكمون في العديد من المحركات: المحركات ، الدفات الشبكية ، وما إلى ذلك.
تم دمج كل هذه المعدات في نظام الممثل-القاضي.
- يتم التعبير عن كل شيء تقريبًا في شكل حلقة تحكم ، وهو أمر تقليدي بالنسبة إلى TAU: عدة مرات يتم تلقي بيانات ثانية من المستشعرات ، ويتم اتخاذ قرار بشأنها والحالات السابقة للنظام ، يرسل الكمبيوتر إشارات إلى الأجهزة.
- . . , .
- . , , . , .
- Falcon 9 .
تعمل هذه البنية على تبسيط الاختبار على الأرض وتوفر المستوى المطلوب من مقاومة الإشعاع. ليست هناك حاجة لدوائر دقيقة خاصة باهظة الثمن ، والتي ، علاوة على ذلك ، قد يكون لها بنية مألوفة لعدد صغير فقط من المطورين في سوق العمل.
يتم اختبار حواسيب التحكم على ما يسمى بمقاعد صواريخ الطاولة ، "صاروخ على طاولة". تم وضع "أدمغة" فالكون 9 على سطح مستو ومتصلة أثناء عملها في صاروخ حقيقي. ثم يقوم المتخصصون بإطلاق محاكاة طيران كاملة ومراقبة سلوك النظام وأدائه والفشل المحتمل. أثناء المحاكاة ، يمكن إيقاف تشغيل أحد أجهزة الكمبيوتر الخاصة بالطيران لفهم كيفية استجابة الصاروخ لذلك.
أيضًا ، يمكن إضفاء الطابع الافتراضي على نظام التحكم بالكامل من خلال محطة عمل واحدة ، مما يجعل من الممكن إجراء اختبار آلي ضخم والتحقق من الرمز للرحلة في يوم واحد فقط.
تم تثبيت نظام مماثل ثلاثي التكرار في مركبة Dragon الفضائية ، كما قيل في GDC 2015. في ردود عام 2020 ، ألمح الموظفون بشكل غامض إلى أن مركبة Crew Dragon الفضائية يتم التحكم فيها بواسطة معالج رباعي النواة منفصل ، يمكن مقارنته في قوة المعالجة بهاتف ذكي قبل خمس سنوات.
بشكل عام ، لا يبلغ SpaceX عن نماذج المعالجات الدقيقة. من المحتمل أن تكون وحدات التحكم PowerPC مقاومة للإشعاع RAD750أثبتت كفاءتها في المركبات الجوالة والمجسات ، ومعالجات x86 هي حلول صناعية مدمجة مع توليد حرارة منخفضة وأداء متواضع.
لكن المساحة ليست مطلوبة كثيرًا. يتم التحكم في ISS نفسها بواسطة معالج Intel 80386SX-20 مع معالج رياضي 80387. حتى وقت إطلاق المحطة ، كان منتجًا منذ عشر سنوات.
في مساحة في المستعرض
في 30 مايو ، أطلقت سبيس إكس البشر إلى المدار لأول مرة. أخيرًا ، كان هناك خيار آخر لتسليم الطاقم إلى محطة الفضاء الدولية. منذ عام 2011 ، كان الحل الوحيد لذلك هو سويوز الروسية.
لاحظ جمهور البث عبر الإنترنت كيف بدت سفينة Crew Dragon أكبر من كبسولة Soyuz ذات الثلاثة مقاعد. مع حجم داخلي مماثل ، يبلغ قطر المركبة الفضائية سبيس إكس 4 أمتار مقابل 2.2 متر في الاتحاد. أعلنت شركة سبيس إكس في البداية عن المركبة الفضائية على أنها مركبة ذات سبعة مقاعد ، لكن ناسا ستطلق أربعة رواد فضاء على متن التنين المأهول.
بالإضافة إلى الاختلافات الجسدية ، كانت الطريقة الأكثر وضوحًا هي الطريقة التي تنقل بها الناس على متن السفينة. "سويوز" لا تحيد عن تقاليد هندسة الطيران: يضغط الطاقم على مفاتيح التبديل والمفاتيح ، وتعرض لوحات الإشارات المعلومات. يقوم Cru Dragon بكل شيء بطريقته الخاصة. بالنسبة لسفينة الفضاء SpaceX المستقبلية ، فإن العنصر الرئيسي هو شاشة اللمس.
يتم تشغيل شاشات Crew Dragon بواسطة محرك متصفح Chromium ، أي أن الواجهات مبنية في HTML باستخدام مكونات الويب وجافا سكريبت و CSS. كتبنا مكتبتنا التفاعلية داخليًا. يتبع تطوير الواجهات منهجية Agile مع شريط مرتفع للتغطية باختبارات الوحدة.
لقطة شاشة لمحاكاة إرساء المتصفح.
قبل الإطلاق المأهول الأول ، نشرت سبيس إكسجهاز محاكاة Crew Dragon قائم على المتصفح لرسو السفن في محطة الفضاء الدولية. بدأت المحاكاة كهواية لاثنين من مطوري الشركة. ثم قرروا الانتهاء منه ونشره لعامة الناس.
يبقى المحاكي محاكيًا: لا علاقة له بالكود الحقيقي. على الرغم من أن كلا المنتجين كتبهما نفس الفريق ، إلا أنهما مشروعان مختلفان تمامًا.
كل هذا لا يعني أن سفينة الفضاء تطير بلغة جافا سكريبت. يتم استخدام Chromium الموجود على السفينة فقط كأداة عرض لعناصر واجهة المستخدم. يقول مسؤولو SpaceX إن واجهة برنامج الطيران تحتوي على كل التكرار الضروري وتقع خارج شاشات العرض. الواجهة الخلفية مكتوبة بلغة C / C ++.
يعد استخدام محرك متصفح عادي في مركبة فضائية قرارًا جريئًا. في الردود ، أكد موظفو SpaceXأنه بغض النظر عن المجموعة التكنولوجية ، فإن معايير التطوير هي نفسها ، ومبادئ كتابة برامج موثوقة وفعالة لا تتغير ، ولفهم الأخطاء المحتملة ، يمر الاختبار في ظل ظروف مختلفة. في حالة الرفض ، هناك إخطارات وإجراءات مناسبة. أخيرًا ، تمت إضافة مئات الساعات من تدريب رواد الفضاء على أجهزة محاكاة الطيران على الأرض إلى الاختبار.
فقط في حالة وجود مفاتيح فعلية تحت شاشات اللمس. وهي مصممة للحالات الحرجة مثل حريق في قمرة القيادة للسفينة. هناك أيضًا أزرار "بدء" و "إجهاض" مادية لمعظم العمليات التي يمكن استدعاؤها من شاشات العرض. وقد وضعت وكالة ناسا متطلبات محددة لشاشات أنفسهم، والحل (سبيس اكس) في مباريات لهم . وأوضح
موظفو سبيس إكس أيضًاكيف توصلوا إلى مثل هذا الحل الذي يبدو غير تقليدي لصناعة الطيران. بدأ المشروع كنموذج أولي لعرض تصميم عينة لناسا. ثم تم إطلاق النموذج الأولي بنجاح على جهاز طيران حقيقي. لقد أحب المطورون الميزات الحديثة التي كانت موجودة في محرك المتصفح ، وهناك عدد كافٍ من المطورين في السوق.
يوضح الرسم التخطيطي كيف يتم عزل كود JavaScript عن أنظمة التحكم الرئيسية لتلسكوب جيمس ويب.
بصرف النظر عن تجربة SpaceX ، لا يوجد شيء شائن في اختيار JavaScript لمجال الفضاء. في حالة تلسكوب جيمس ويب الفضائي ، سيتم تشغيل كود JS مباشرة على السيارة. لن يتحكم بشكل مباشر ، على سبيل المثال ، في المحركات ، بل سيستدعي البرامج الأخرى فقط.
لماذا لا يوجد صوت في الفضاء؟
لأن الصاروخ يطير على لينكس.
يتم تحديث برنامج Falcon 9 بانتظام. تقريبًا كل إطلاق صاروخ يطير برمز محدث قليلاً. على الرغم من تكرار التحديثات ، إلا أن "القاعدة" لكل عملية إطلاق محددة لم يتم تكييفها بشكل خاص. يتم ذلك بواسطة أقسام أخرى في SpaceX ، والتي تجري تعديلاتها الخاصة على تكوينات الرحلة: فهي تضع متغيرات الرياح في يوم الإطلاق ، وتغير حدود التسامح مع الخطأ ، وما إلى ذلك.
يتم التحكم في Crew Dragon بواسطة نظام التشغيل Linux مع تصحيح PREEMPT_RT للتشغيل في الوقت الفعلي. لا يستخدم سبيس إكس ملفاتبعض التوزيع القياسي لجهة خارجية. قامت الشركة بتجميع النواة الخاصة بها والمرافق ذات الصلة. خلال سنوات التطوير ، بالكاد تم تعديل النواة. كانت هناك تغييرات طفيفة فقط وعدد قليل من السائقين المتخصصين للعمل مع الأجهزة.
ومن بين المشاريع مفتوحة المصدر المستخدمة هي داس U-الحذاء تحميل نظام التشغيل ، و Buildroot بناء نظام التوزيع ، ومكتبة C ++ القياسية، و Musl C مكتبة . ولكن بشكل عام ، لا تستخدم SpaceX الكثير من البرامج المكتوبة خارج الشركة وتختار مشاريع مفتوحة المصدر فقط بأعلى جودة ممكنة.
في SpaceX ، تتم كتابة الاختبارات بلغة Python ، واختبارها في LabVIEW ، وهي تطيرفي C ++. عند الكتابة بلغة C ++ ، يستخدمون تقنيات اللغة الموجهة للكائنات ، على الرغم من أنهم يفضلون إبقاء كل شيء بسيطًا قدر الإمكان.
يوفر SpaceX على مستوى الكود إمكانية التشغيل العادي مع فقدان محرك الدعم أو التحويل باستخدام خوارزمية التعويض. تحتوي آلات الدولة على جميع أنواع حالات الطوارئ. على سبيل المثال، جهاز الدولة للسفينة "التنين" وضعت الانتقال مستقلة من أقرب إلى محطة لرعاية إذا كان هناك بعض حالات الفشل. يقول
مسؤولو SpaceX أنه لا يوجد "AI" في Dragon (ربما يعني خوارزميات الشبكة العصبية) ، على الرغم من استخدام نوع من الرؤية الآلية للملاحة. وأوضح المطورونهذا لا يستبعد استخدام برامج التعلم الآلي في وقت ما في المستقبل.
ستارلينك
مشروع Starlink Satellite Internet Project هو المزيد من أجهزة الكمبيوتر. في كل عملية إطلاق ، يطلق صاروخ Falcon 9 60 قمراً صناعياً في المدار ، والتي تحتوي على أكثر من 4000 جهاز كمبيوتر Linux. وضع SpaceX عشرات الآلاف من عقد Linux وأكثر من ألف متحكم دقيق في مدار أرضي منخفض.
تُظهر الرسوم المتحركة كيف يتم
نشر الألواح الشمسية للقمر الصناعي منذ ستة أشهر ، كانت Starlink تولد حوالي 5 تيرابايت من القياس عن بُعد يوميًا ، وكوكب النجوم أصبح أكبر. عدد الأقمار الصناعية آخذ في الازدياد ، والعمل جار لتقليل كمية البيانات المرسلة. لتقليل كمية البيانات المخزنة على متن الطائرة وإرسالها إلى Earth ، يتم تشخيص بعض المشكلات على الجهاز نفسه.
يتم تشغيل كل من أقمار ستارلينك بواسطة محرك تأثير هول. نتيجة لذلك ، يأخذ القمر الصناعي الموضع المطلوب في السرب ويتجنب الاصطدام بالحطام الفضائي. لكن هذه المناورات لا تزال بحاجة إلى القيام بها بشكل صحيح ، وقسم قيادة أكبر كوكبة من الأقمار الصناعية صغير جدًا.
لذلك ، أصيب المبرمجون بالحيرةكيفية تفادي الاصطدامات والتحكم في موقع الأقمار الصناعية تلقائيًا. في النظام المطور ، يُسأل الأقمار الصناعية عن النافذة التي يجب أن تدخل - وتذهب إلى هناك بشكل مستقل. أيضًا ، عدة مرات في اليوم ، تتلقى الأقمار الصناعية بيانات من الأرض حول اقترابها من كائنات أخرى في المدار. ثم تقوم الأقمار الصناعية بشكل مستقل بحساب المناورات اللازمة والابتعاد عن الحطام الفضائي.
يتم تنفيذ ازدواجية الأنظمة الداخلية في حالة القمر الصناعي Starlink حتى حد معين فقط. نظرًا للعدد الإجمالي للرفاق ، لن تلاحظ الفرقة فقدان جندي. إذا فشلت إحدى العقدة ، فسيقوم المستخدم على الأرض بالاتصال بقمر صناعي آخر مرئي في السماء.
أثناء التطوير والاختبار ، لا يُعتبر كل من الأقمار الصناعية في أسطول Starlink ليس كقمر صناعي منفصل ، ولكن كخادم في مركز البيانات. بعض المهام بالغة الأهمية: الإدارة وتحديثات البرامج والطاقة والأمان. تتم كتابة اختبارات منفصلة لهذه التطبيقات. تسمح العديد من الميزات الأخرى بنهج أكثر مرونة ، على غرار تطوير خدمات الويب. لذلك ، ينشر الفريق بناء اختباري لعدد صغير من الأقمار الصناعية ويقارن كيف يتصرفون بالمقارنة مع بقية الكوكبة. علاوة على ذلك ، في حالة ظهور مشكلات ، يتم تحسين البرنامج أو التراجع إلى الإصدار السابق.
عملية الاختبار هذه ضرورية لتحسين النظام بسرعة. يدعي مطورو سبيس إكس أنه كان من الممكن في كثير من الأحيان إيجاد وإصلاح الإخفاقات التي كان من المستحيل التنبؤ بها على الأرض.
يقوم القمر الصناعي Starlink بتسريب بيانات المستخدم من خلاله ، ويهدد اختراق جهاز الكمبيوتر بالاستغلال. قامت SpaceX بتوفير هذا الأمر وإضافة التشفير من طرف إلى طرف. أيضًا ، ينفذ كل مكون - الأقمار الصناعية والبوابات ومحطات المستخدم - الرمز الموقع فقط ، لذلك لا يقوم المهاجم بالتسجيل في النظام لفترة طويلة.
ثقافة التنمية
يعمل معظم مهندسي البرمجيات في SpaceX في سياتل وواشنطن وهاوثورن بكاليفورنيا ، وبعضهم من مكاتب في تكساس.
فريق تطوير برامج SpaceX ، 2013 إن
صناعة الطيران التقليدية غارقة في كل من سرعة التطوير وحجم أقسام SpaceX. كما في عام 2019 ( بودكاست ، علامة 44:00) ، قال كبير مسؤولي البرمجيات في سلاح الجو الأمريكي ، نيكولاس شيلان ، إنه حيث ستحتاج الوكالات الحكومية إلى 2.5 ألف مبرمج على الأقل ، فإن سبيس إكس توظف 50. وفي الوقت نفسه ، يكتب فريق التطوير برنامجًا لـ تسع آلات مختلفة ويفحص الرمز في 24 ساعة.
تحاول SpaceX جذب المطورين من صناعة الألعاب. في GDC 2015 ، قال ممثلو الشركة إن أولئك الحاصلين على درجة علمية في علوم الكمبيوتر لم تكن لديهم مهارات إدارة الذاكرة. بشكل غير متوقع ، فإن وتيرة العمل وطرق التحسين لمطوري الألعاب مناسبة للمساحة. كما يقول Elon Musk ، بالمقارنة مع MMO ، فإن رسو سفينتين أمر بسيط للغاية.
كجزء من AMA في Reddit في عام 2013 ، تحدث الموظفون عن هيكل أقسام تطوير البرمجيات.
- 7 35 . : Falcon 9, Grasshopper Dragon. , , . .
- SpaceX. — - . , , , . , SpaceX . — - : C#, MVC4, EF, SQL; Javascript, Knockout, Handlebars, LESS; REST API, «super sexy».
- 2013 9 , . , . .
- . . — .
تقوم الشركة باستمرار بتعيين مطورين ومهندسين ، ولا يتطلب كل منصب تعليماً خاصاً. هناك عدد كثير من لهجات مختلفة في مكاتب (سبيس اكس) ، بما في ذلك من مساحة الاتحاد السوفياتي السابق. لا يمكن للشركة توظيف حامل جواز السفر الأمريكي فقط ، على الرغم من وجود قيود على نظام مراقبة الصادرات للتقنيات العسكرية . لكي يتم التوظيف ، سيحتاج الأجنبي إلى تصريح إقامة - بطاقة خضراء أمريكية. سوف يستغرق الأمر عدة سنوات للحصول عليه من الصفر. إذا كان هناك بالفعل "أخضر" ، فإن السؤال هو فقط في القدرة على إظهار مستوى المؤهلات في المقابلة.
الرئيس التنفيذي لشركة SpaceX و CTO Elon Musk معروف بكره لمدة 40 ساعة عمل في الأسبوع. لقد صرح مراراالتي تعمل 80-120 ساعة في الأسبوع. ما هو البوب ، وكذلك الرعية. الشكوى الشائعة حول Glassdoor حول SpaceX هي ضعف التوازن بين الحياة والعمل. في شهادات مجهولة ، يتحدث الموظفون والمتدربون عن الإرهاق المتكرر وردية العمل الشائعة الآن لمدة 12 ساعة .