יבילות של תוכנה


אנחנו שומעים הרבה על קוד פתוח (Open Source), אבל לפני שנדבר עליו, וגם בגלל שאני עוסק בהיסטוריה, צריך לדבר, קודם כל, על יבילות (Portability): היכולת של העברת תוכנה ממחשב למחשב.
לפני שנות השמונים, לכל מערכת מחשב היו הסטנדרטים שלה ולפעמים, לאותו היצרן היו מערכות שונות שכל אחת חיה בעולמה שלה. לדוגמא: ל HP היו מערכות HP3000 שמיועדות לקהל העסקי, HP1000 שהיו מיועדות לרצפת ייצור ו- HP9000 שהיו מיועדות לקהל המדעי.
לכל מערכת היו: החומרה שלה (מחשבים, דיסקים, טרמינלים וכד'), מערכת הפעלה שלה עם סט פקודות ותוכנות הבנויות לתוך המערכת (ולפעמים גם בסיס נתונים מובנה), ושפות תכנות משלה.
צורה העבודה עם מערכת ההפעלה, הפקודות, ואפילו מבנה הקבצים – היו שונות לחלוטין בין מערכת למערכת.
גם שפות התכנות בין המערכות היו שונות, למעט מספר מצומצם מאד (כמו Fortran) שניתן היה להעביר את הקוד שלהם בין מערכות שונות, להדיר (compile) ולהריץ כדי לקבל תשובה זהה (בתנאי שלא עבדת עם קבצים...)
הכל התחיל להשתנות כשהופיעה מערכת הפעלה חדשה בשם UNIX (פירוט על כך בפוסט אחר). פתאום ניתן היה לבצע פקודה במערכת מסוימת, ללכת למערכת מיצרן שונה, להקיש את אותה פקודה והסיכוי היה מאד גבוה שהתוצאה תיראה דומה היות וגם למערכת זו היו תת-גוונים שונים (System V, BSD).
אחד הדברים המיוחדים במערכת הפעלה זו הוא שפת תכנות בשם C.
בבסיס השפה הייתה ההנחה שכל הפעילות ששייכת לניהול "העולם החיצוני" (קבצים Processes, Scheduling ועוד) תתבצע ע"י שגרות במערכת ההפעלה ולא בתוך התוכנה, תפיסה שונה לחלוטין משפות אחרות, לדוגמא Ada.
ולכן, ניתן היה לקחת תוכנה שנכתבה בשפת C, להדיר אותה ולהריץ אותה על מחשב של חברה אחרת והתוצאות יהיו זהות (שוב, בהנחה שהספריות דומות ושייכות לתת-גוונים דומים) – כל זאת אם הייתם מצליחים להעביר את הקוד ממכונה אחת לשנייה כי תקשורת סטנדרטית לא הייתה נפוצה, מדיה מגנטית הייתה מיוחדת לכל מערכת מחשב והדרך המקובלת הייתה לכתוב את המידע על טייפ סלילים (!) ולהעביר אותו בין מערכות.
במקביל, קרה דבר מיוחד נוסף: באמצע שנות השמונים IBM הוציאה לשוק את המחשב האישי IBM PC.
למה זה היה כל כך מיוחד ? כי עד כה, לחברות שפיתחו את החומרה של המחשבים לא היו מתחרים שפיתחו את אותה החומרה, למעט HSD ו- Amdahl שיצרו "תואמי IBM Mainframe" ואף מכרו מספר יחידות בארץ.
בגלל שהרכיבים ב IBM PC היו זולים וסטנדרטיים, היו הרבה יצרנים שחיקו אותם ויצרו תואמי IBM. השוק הוצף בתואמים זולים (יחסית).
לתוך המציאות הזו נכנסה חברה בשם GNU שאליה חבר Linus Torvalds ליצור את מערכת ההפעלה Linux שהייתה זהה למערכות ה UNIX אבל על חומרה זולה ונפוצה הרבה יותר.
רק עכשיו, שניתן היה להריץ תוכנה זהה (ואפילו קוד מכונה זהה) על פלטפורמות מיצרנים שונים, עם מערכת הפעלה זהה – ניתן להתחיל לדבר על "קוד פתוח" ועל זה בפוסט הבא...



תגובות