CP/M, מערכת הפעלה בפרספקטיבה היסטורית

לא מזמן נזכרתי לפתע במשהו שמסגיר את גילי: CP/M
בזמנו, היתה זו מערכת ההפעלה הנפוצה ביותר ואלמלא יהירות וחוסר מזל של Digital Research (בקיצור DRI), היא היתה תופסת את מקומה של מיקרוסופט במהלך ההיסטוריה.
תחילת הסיפור בשנות ה־70 עת אינטל הוציאה את הדור השני שלה, ה־8080. היה זה מעבד 8-ביט הראשון שניתן לעשות עימו משהו שימושי. גארי קילדל, המייסד של DRI, פיתח את הגרסה הראשונה של מערכת ההפעלה עבור אינטל. קילדל היה אדם מוכשר ביותר ולזכותו עומדות אבני דרך נוספות בהסטוריה של המחשוב כגון ניתוח זרימת נתונים אשר עד היום משתמשים בה בתכן מהדרים (קומפילרים בעברית), ה־BIOS הראשון ו־PL/M.
PL/M היתה שפת המחשב הראשונה שנכתבה עבור מיקרו-מעבדים. בניגוד לשפות על כגון C או פסקל היא חסרה ספריה סטנדרטית של I/O. היכן שהחסירה מלאה בפונקציות גישה ישירה לחומרה.
יש לי פינה חמה לשפה זו שהיתה השנייה שלי לאחר בייסיק. בימים ההם התבקשתי להשקיע מספר שעות ולכתוב תוכניות דיאגנוסטיקה לחומרה עליה עבדנו. מאחר ולמחלקה שלי לא היו אמצעי פיתוח, שלחו אותי למחלקה אחרת ושם עשו לי טובה ונתנו לי להשתמש בדבר הכי עתיק שהיה להם MDS עם דיסקטים של 8" (זה לא טעות – 8"). הצביעו בפני על כמה קלסרים ששקלו קילוגרמים אחדים ושלחו אותי להסתדר. ה"כמה שעות" הפכו לימים ובסופם הצגתי בגאווה את תוכנית האסמבלי שכתבתי. המנהל שלי לא ידע נפשו מרוב אושר. הנה נקרתה לו ההזדמנות להתנתק מהתלות בקבוצת הפיתוח ששכנה בעיר אחרת, ולקבל כל מה שהוא רוצה – מקומית. מייד הוטלו עלי עוד ועוד משימות תוכנה. לאחר מספר חודשים ואלפי שורות קוד הגעתי למצב בו חברי לקבוצה העדיפו להשתמש בגרסאות הראשונות שהוצאתי ושמרו מרחק בטוח מהגרסאות החדשות. קשה היה להאשימם ואני חוויתי קשיים גדלים והולכים לתחזק את מפלצת האסמבלי. מלא יאוש עשיתי צעד קיצוני ביותר, והלכתי לקבל עצה. מהנדס התוכנה במחלקה האחרת השתומם עד מאד לשמוע שאני עובד באסמבלי, הצביע על שורת קלסרים מעל זו שלקחתי בפעם הראשונה והציע לי לעבוד עם PL/M.
יחסית לאסמבלי, היתה PL/M חלום רטוב. התחביר היה פשוט ביותר וגם הקרבה לחומרה. בהתלהבות רבה נגשתי לכתיבה מחדש של התוכנה הדיאגנוסטית, וכשכמעט השלמתי אותה הגיעה סוף סוף התוכנה הדיאגנוסטית ממחלקת הפיתוח, וייתרה את הצורך בפרוייקט שלי…
אינטל אימצה לחיקה את PL/M ויצרה גרסאות למגוון המיקרו מעבדים שיצרה החל ב־8080 ובהמשך ל־8086 וגם למיקרו בקרים 8048, 8051 היתה גרסה. היו אלה ימים שהשפה שלטה לחלוטין בנוף הישומים של מעבדי אינטל, וגם כשהופיעו מהדרי C למעבדי X86, עדיין היו הרבה שהעדיפו PL/M בגלל פשטותה והרמה הטובה של המרת הקוד לשפת מכונה.

בניגוד ל־PL/M אינטל לא התלהבה מ־CP/M ובחרה לפתח מערכת הפעלה משלה שנקראה ISIS. אינטל, מהיותה חלוצה בתחום המיקרו-מעבדים נאלצה לעשות יש מאין באותם ימים. מאחר והמחשב האישי עדיין לא הומצא, פיתחה אינטל עמדות עבודה בתכול מזעזע שנקראו MDS. אותן עמדות היו לחם חוקו של כל מפתח שרצה לעבוד עם מעבדי אינטל. למרבה הצער הריצו ה־MDS את ISIS.

CP/M לא נפגעה ממהלך זה. רוב היצרנים של מחשבי 8-ביט השתמשו בצירוף של Z80 + CP/M. המתחרה הראשית של אינטל היתה חברת Zilog אשר מעבד ה־Z80 מתוצרתה הווה תחליף משופר ל-8080 האינטלי ואף הוסיף מספר הוראות מכונה נחוצות. בחברה בה עבדתי השתמשו בלוחות אם מתוצרת אינטל. מחירו של כל לוח שכזה היה אלפי דולר והוא הצריך הוצאות נלוות נוספות כגון סל כרטיסים ועוד. יום אחד בקשו ממני להכין פרויקט קטן של קופסה שתנטר מספר כניסות ותדווח בפורט סריאלי. הממונה עלי, ג', התכוון להשתמש באחד מכרטיסי המחשב של אינטל. נזכרתי בפרסומת שראיתי במגזין Byte עם לוח אם Z80  המריץ CP/M  ומחירו כעשירית ממחיר לוח האם של אינטל. הבאתי לו את הגליון והצעתי לחסוך ולהשתמש בכרטיס זה. ג' לא התלהב, אולם הסכים לרכוש. כשהגיע הכרטיס חיברתי מתח, חיבור טורי, וכונן דיסקטים, 5.25" ולתוכו הכנסתי את הדיסקט של CP/M. לאחר שהכל עלה ויכולתי לראות שהכל בסדר, קראתי לג' והתחלתי בהדגמה. ג' הפשיר והלך לקרוא למנהל הבכיר ר'.

ר' היה מהנדס מכונות, שהתמנה למנהל מחלקת הפיתוח בזכות יכולות עלומות וחברים טובים עוד יותר.  הוא הסתכל מספר שניות בצג שהבהב עם שורת הפקודה ושאל האם היצרן של לוח האם הוא יצרן מאושר… ג' הבין בחושיו החדים לאן נושבת הרוח צחק על הנסיון הנואל שלי להביא מוצרים נחותים ועזב עם הבכיר תוך שיחה נלהבת על היתרון בשימוש ביצרנים מאושרים (שעולים פי־10). כך הקיץ הקץ על נסיוני להוזיל עלויות, ואני זכיתי בכרטיס CP/M הראשון שלי.

הסימן הראשון לדעיכת CP/M היה הכרזת ה־8086 של אינטל. CP/M היתה מערכת הפעלה של 8-ביט, ול־8086 נדרשה מערכת של 16-ביט. התחלתו של ה־8086 היתה מהוססת שכן ה־Z80 לא היה רחוק ממנו בביצועים והשוק ציפה לראות את המעבד שתוציא Zilog. אלא שלמזלה של אינטל, Zilog אכזבה, ה־Z8000 היה רחוק מהצפיות שתלו בו, והלקוחות חזרו לאינטל. DRI התבסמו בנתיים מהצלחת CP/M ולא מיהרו להוציא גרסת 16-ביט. ידיהם היו מלאות עבודה בפרוייקטים נוספים והעתיד נראה מבטיח.

IBM רקחה בנתיים את המהפיכה שתשנה את חיי כולנו. יש מספר גרסאות להשתלשלות המאורעות ובחרתי בחביבה עלי. IBM הגיעו אל DRI בהמלצתו של…ביל גייטס. הלה ביצע פרוייקט של התאמת שפת Basic למחשב העתידי והמליץ להם על CP/M-86, גרסת 16-ביט שעדיין לא שוחררה למערכת ההפעלה. כאשר הגיעו נציגי IBM לדון עם DRI בהתאמת CP/M למחשב האישי קידמה את פניהם אישתו של קילדל, דורוטי. קילדל השאיר לה את עניני המשא ומתן והעדיף לטוס במטוסו האישי אל לקוח חשוב לשם התקנת תוכנה. נציגי IBM התחילו את הפגישה בבקשה לחתימה על הסכם NDA סטנדרטי (הסכם לשמירת סודיות).  בעצת עורך הדין של החברה, סירבה דורותי לחתום ללא אישור בעלה והפגישה התפוצצה. נציגי IBM נועצו שוב בביל גייטס והלה שחושיו העסקיים לא נפלו מכשרונו לתכנות, נטל על עצמו למצוא פתרון. כמה שבועות לאחר מכן הוא הציע ל־IBM מערכת הפעלה תואמת CP/M בשם DOS-86. פול אלן שותפו של גייטס נשא ונתן עם היצרן המקורי הסכם זכויות ומערכת ההפעלה הופצה עם המחשב האישי של IBM.

כאשר DRI הבינו ש־IBM הסתדרה בלעדיהם, הם השיגו עותק של DOS וראו שיש פה חיקוי של CP/M. לצערם החוק לא היה ברור במקרה זה והסיכויים להשיג משהו דרך תביעה משפטית היו נמוכים. במקום, הם איימו על IBM בתביעה, ואלה נאותו להציע את CP/M-86 כאופציה לבחירה במקום DOS, וזאת בתמורה לשחרור מאיום בתביעה משפטית. קילדל זלזל בסיכויי הצלחה של המחשב האישי של IBM, ולא הציב מחיר תחרותי. אי לכך במחירון של IBM הופיע DOS במחיר של $40 ואילו CP/M-86 במחיר של $240.

DOS והמחשב האישי שגשגו והענין ב־CP/M גווע. קילדל עצמו לא הצטיין כאיש עסקים. הוא נהנה יותר להשתתף במיזמים חלוציים כגון מערכת הפעלה מרובת מעבדים שנקראה MP/M, שפות התכנות Logo ו־Lisp ובהשראת אפל Lisa, יצר סביבה גרפית למחשב האישי שנקראה בשם GEM. ב־1991 רכשה נובל את DRI בעסקה שעשתה את קילדל לאדם עשיר.

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

לרענון הזכרון וברור פרטים השתמשתי במקורות הבאים (למעבר לאלו בגוף המאמר):
ויקיפדיה, הערך CP/M
האתר של ג'ון אליוט, מכיל עוד עתיקות נוספות מלבד CP/M
האתר ה"לא רשמי" של CP/M

פורסם בקטגוריה כללי, עם התגים . אפשר להגיע לכאן עם קישור ישיר.

3 תגובות בנושא CP/M, מערכת הפעלה בפרספקטיבה היסטורית

  1. מאת מוטי‏:

    טעות עריכה – "אינטל אימצה לחיקה את CP/M" – צ"ל "PL/M" ..

  2. מאת רם און‏:

    פוסט מגניב. הזכיר לי את ימי האסמבלי שלי על ה- z80a של ה- spectrum.

להגיב על Oldie לבטל

האימייל לא יוצג באתר. שדות החובה מסומנים *