בתשובה לצפריר כהן, 15/09/11 16:54
לטוס על חוט 581612
הסכמה ברמה שטחית.
לאנשים יש באגים, אם יש בעולם משהו מלא באגים אלה בני האדם, כטייסים כך מתכנתים.
בני אדם כתבו את התוכנה ורובם המוחלט אינם בעלי כישורים יוצאי דופן, אנשים רגילים ונוטים לטעויות כמו כולם, אני מכירה אותם ואני מכירה את עצמי, גם אני תרמתי את מכסת הבאגים שלי.

השאלה שהשוטה הציג היא מדוע נחיתה והמראה נעשות בצורה ידנית. שאלה זו מייצגת אמונה גדולה מדי לטעמי בתוכנה. אשאל אותך שאלה אינטואיטיבית: ערפל, רוחות סערה, מי אתה מעדיף שינחית את המטוס שלך, מחשב או טייס?

קראתי עכשיו באיזה מקום שאיבדתי, שתא הטייס באיירבאס הוא "וירטואלי" לחלוטין, לטייס אין שליטה על שום דבר, כשהוא פותח מצערת הוא לא באמת פותח את המצערת אלא לוחץ על כפתור שמעביר מסר לקונטרולר שמעביר מסר למחוטל שבודק עם השמרגלה ובסוף נפתחת פיזית המצערת.

זה לא נורא כל עוד לטייס יש גם גישה ישירה למצערת. בלי מנגנון כזה קורה מה שקרה לאיירבוס באסון בתצוגה.

זה מזכיר לי את החלונות החשמליים במכוניות, אין בהם רע באופן מיוחד, בכל אופן עוד לא שמעתי על תאונות בגללם למרות שנראה שהם ממש מזמינים את זה. הרע הוא שאין בנוסף להם ידית מכאנית.
לכן את משאירה את האוטו בבת ים עם חלונות פתוחים ומקווה לטוב.
אמנם זניח, אך מפגר בעיניי.
לטוס על חוט 581618
לזה אני מסכים. אבל לא ברור לי למה את פותחת את חלונות המכונית. הרי אם תהיה בעיה, תמיד תוכלי לפתוח את דלתות המכונית.
לטוס על חוט 581625
LOL סיפור נהדר, מתאים לרגשות הבוז שלי למכונית הממוחשבת.

(אישית אני כמובן צריכה לפתוח חלון בשביל האוזניים של הכלבה, אחרת איך הן יתנפנפו כשהיא מוציאה ראש החוצה?)
לטוס על חוט 581846
אכן, סיפור משעשע. לענייננו, הוא מתחיל במשפט "BMW has told CNETAsia that an electronic fault caused the problem, rather than a system crash of the car's Windows-based central computer".
לטוס על חוט 581866
אכן, אך המשפט הזה לא אומר הרבה. יכול להיות שבאמת פיזית התנתק המצבר אבל הסיכוי לכך נמוך.
90% של הבאגים במערכות משובצות מתחילים ב electronic fault – חיווי יוצא דופן מהחומרה, למשל מאחד החיישנים או הלחצנים, שאין לו טיפול בדיאגרמת המצבים, ובמילים אחרות באג.

אלמלא זה היה באג תוכנה הפרוססור היה מרגיש שהוא תקוע ומאתחל עקב Watchdog_timer [Wikipedia] חומרה. פרוססור תקוע זה אחד הבאגים הכי מביכים בעולם.

תהייה: אין במכוניות האלה לחצן ריסטרט גדול אדום זרחני?
(מפתחי מערכות תמיד מתנגדים ללחצן כזה מתוך גאוותנות)

חוץ מזה אני קצת המומה מזה שבשביל לכוון מיזוג, מגבים, חלונות ו-CD צריך לקנות מערכת הפעלה.
(יש לקוות שהקונטרולר של ABS המונע נעילת בלמים, למשל, לא מחובר למערכת ההפעלה הזאת, אם כי אני מנחשת שדווקא כן, בגלל אבולוציית תוכנה שדיברתי עליה).
לטוס על חוט 581873
לגבי כפתור restart: דווקא מפתחים שאני מכיר היו רוצים תמיד כפתור כזה, כדי לפתור בדיוק את אותן בעיות (הם יודעים היטב שהם לא מספיק חכמים, ולכן מנסים להיות פיקחים).

אבל זה לא בהכרח יעבוד: האם מותר ללחוץ על הכפתור האדום באמצע נסיעה? ברור שלא: זה היה גורם ללא מעט תקלות ("איך מדליקים במכונית הזו את האיתות? לוחצים על הכפתור האדום הגדול הזה?"). לכן צריך גם להגן עליו עם כמה שכבות תוכנה. לדוגמה, מניעה של לחיצה עליו אם יודעים שהמכונית בנסיעה. ואיך יודעים? לפי לוגיקה שמעבדת קלט מכמה חיישנים, ושכמובן אין בה באגים.

רכב כולל כמה וכמה "מחשבים"‏1. באופן כללי מערכת תא הנהג (מחוונים, CD, ועוד) היא מחשב נפרד ופחות קריטי מזה שמנהל את הנהיגה עצמה.

1 בעיקרון כל בקר קטן מכיל היום מעבד פשוט והיינו יכולים לקרוא לו "מחשב", אבל קוראים לו בקר, כי למערכת עם פחות מ-‏64k ועם מעבד כ"כ חלש (במקרים רבים מעבד 8 סיביות) אי-אפשר לקרוא "מחשב".
לטוס על חוט 581881
זה בטח די קטנוני להעיר, אבל פעולת הכפתור האדום ההוא יכולה להיות מותנית בחיישן בודד שקיים כבר היום, ההוא שמראה שהמכונית ב-P. אני מוכן לערוך (חינם!) את כל בדיקות איכות התוכנה הנדרשות כדי להבטיח שלא יהיו באגים בתת-המערכת הזאת. הרבה יותר מסוכן לאפשר לנהג לסובב את המפתח ולהשבית את המנוע תוך כדי נסיעה, ודומני שאת זה ניתן לעשות כיום. לא ניסיתי, ואני לא ממליץ לאף אחד לנסות.

לטובת אלה שאינם בקיאים בעולמם המופלא של המחשבים אני רוצה להבהיר שהטענה שאי אפשר להבטיח במאה אחוז פעולה תקינה של תוכנית היא טענה נכונה כללית, אבל היא אינה מתיחסת לתוכנית ספציפית. עבור תוכניות מסוימות בעיקר כאלה עם מספר קטן של החלטות ("הסתעפויות") ניתן בהחלט להבטיח פעולה תקינה בכל רמת בטיחות מתבקשת (עד לגבולות קוואנטיים).
לטוס על חוט 581883
כן, חשבתי על הבעייתיות של כפתור ריסטרט. הצעה לפתרון: לשים אותו במקום כזה שרק כשידית ההילוכים במצב PARK אפשר להגיע אליו.

נכון, מכוניות חדישות כוללות היום עשרות "מחשבים" שהם לא באמת מחשבים אלא בקרים, ואני מחשיבה את זה לא כתוכנה אלא כחומרה.

הבעיה מתחילה כשתוכנה מרכזית מתערבת בפעולת הבקרים ויוצרת ביניהם קשרים, ומתייעצת עם בקר המגבים לגבי פעולת בקר ה ABS. (נניח, אף שדוגמה כזאת כנראה לא תקרה לעולם. על אף האמון הדל שלי במתכנתים, יש גבול לכל תעלול.)
לטוס על חוט 581887
אגב בקרים - 64K זה המון, 64K של קוד אני כבר לא מחשיבה כחומרה.
הפרויקט הראשון שעשיתי היה טלפון על 8051 עם 4K, שכלל תצוגה, לדים, שפופרת, הפקת צלילים, תקשורת עם מחשב מרכזי, דיאגנוזות - ובנוסף לכל ספיקרפון מלא. היה שם כר נרחב לבאגים וניצלתי אותו יפה (התחשבות, עבודתי הראשונה...)
בקר בעיניי זה כמה שורות קוד, אני מאמינה שב ABS אין יותר מכמה שורות טריויאליות.
לטוס על חוט 666925
הגעתי לדיון הזה במקרה ואני מפנה את השאלה או לג'וד, אם היא עוד פה, או לאנשים אחרים שיודעים לענות: מה זה מחוטל ומה זה שמרגלה, ואם אפשר תנקדו. בתודה מראש.

חזרה לעמוד הראשי המאמר המלא

מערכת האייל הקורא אינה אחראית לתוכן תגובות שנכתבו בידי קוראים