הצטרפות לדואר חשמלי | הסרת מנוי מדואר חשמלי | שלח מכתב | דף ראשי

 

 

 

 

 

ההיסטוריה של מערכת ההפעלה UNIX

 

26/06/2003 | דואר חשמלי | גיליון מספר 17

משה הלוי

[email protected]

 

 

לאחרונה תבעה חברת SCO את חברת IBM על הפרת זכויותיה במערכת ההפעלה יוניקס (Unix), ועל שימוש במודולים שלה במערכת ההפעלה לינוקס (Linux) שחברת IBM מכרה ללקוחותיה. חברת נובל (Novell), שמכרה בשנת 1995 את מערכת ההפעלה לחברת SCO (אז Caldera) טוענת כי הזכויות לא שייכות ל SCO אלא לנובל. הנה סקירה היסטורית קצרה של מערכת ההפעלה יוניקס שתספר את סיפורה של אחת ממערכות ההפעלה הפופולריות ביותר בכל הזמנים.

 

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

 

 

UNICS

 

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

 

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

 

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

 

שיטת "שיתוף זמנים" הומצאה על ידי קולג' דרתמות' (Dartmouth College) שבמכון הטכנולוגי של מסצ'וסט, MIT. שיטת "שיתוף זמנים" היא טכניקה לשיתוף משאבים של מחשב ברובה משתמשים לפיה מוקצבים פרקי זמן קצובים לכל משתמש בתורו, וכל משתמש נמצא באשליה שהוא המשתמש היחיד במערכת. כך, מאות משתמשים יכולים להשתמש במחשב יחיד, מבלי להרגיש שאחרים גם כן משתמשים במערכת. המערכת של דרתמות' הריצה את שפת המחשב BASIC, ונהנה תקופה מסוימת מהצלחה מסחרית.

 

המערכת של MIT שנקרא CTSS היתה למטרות כלליות והיתה גם כן להצלחה בקרב הקהילה המדעית. לאחר פרק זמן קצר, חוקרים ב MIT איחדו כוחות עם מעבדות בל (Bell Labs), חברת בת של חברת הטלפונית הלאומית של ארה"ב, חברת AT&T,  ועם חברת ג'נרל אלקטריק (General Electric), אז יצרנית של מחשבים, והחלו לתכנן מערכת דור שני שנקראה מולטיקס (MULTICS), ראשי תיבות של "שירות מחשוב ומידע מרובב" (MULTiplexed Information and Computing Service).

 

מערכת מולטיקס תוכננה לתמוך במאות משתמשים שעבדו על חומרה קצת יותר חזקה ממחשב פי סי רגיל עם מעבד 286 של אינטל (PC/AT). אבל, היו מספר סיבות לנפילתה של מערכת מולטיקס. הסיבה העיקרית היתה שהמערכת נכתבה בשפת PL/I והמהדר (קומפיילר Compiler) שלה (מהדר: תוכנית שמתרגמת פקודות משפת תכנות לשפת מכונה, שפה שמחשב מבין), לא עבד כראוי כשהמערכת שוחררה לציבור.

 

מעבדות בל הפסיקו לבסוף את הפרוייקט השאפתני לאותה תקופה, מה שהשאיר את אחד החוקרים שעבדו על מולטיקס מחוסר תעסוקה ומחפש משהו אחר מעניין לעשות.

 

החוקר ההוא, קן תומפסון (Ken Thompson), החליט לשכתב את מערכת מולטיקס על מנת שתתאים למחשב קצת יותר קטן בשם PDP-7 של חברת DEC (ידועה גם בשם: חברת דיגיטל). למרות גודלו הזעיר יחסית של מחשב PDP-7, המערכת של תומפסון עבדה בסופו של דבר, ומאמציו של תומפסון בכתיבת המערכת לא היו לשווא.   

 

כתוצאה מההצלחה בהפעלת המערכת על מחשב PDP-7, חוקר אחר במעבדות בל, בריאן קרניגן (Brian Kernighan) קרא בצחוק למערכת UNICS (קרי: יוניקס), ראשי התיבות UNiplexed Information and Coputing Service, שירות מחשוב ומידע לא מרובב (יחידני), מין משחק מילים על ראשי התיבות של מערכת מולטיקס המקורית שבה במקום המילה UNiplexed (לא מרובב למשתמש יחיד) הופיעה בה המילה MULTIplexed (מרובב להרבה משתמשים).

 

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

 

מידע נוסף על גברי היונאקס המסורסים

http://www.usrf.org/news/010308-eunuchs_china.html

 

 

השם יוניקס (UNICS) שכשמה של המערכת נתקע במוחם של החוקרים האחרים, והשם הפך רשמית לשמה של המערכת החדשה. רק מאוחר יותר הוחלפו האותיות CS באות X, ושם המערכת נכתב כ UNIX.

 

 


מחשב PDP7 של חברת DEC

 

 

 

PDP-11 UNIX

 

העבודה של קן תומפסון הרשימה כל כך את החוקרים האחרים במעבדות בל, מה שגרם לחוקרים אחרים כמו דניס ריצ'י (Dennis Ritchie) ואחרים בעקבותיו, להצטרף למאמצי הפיתוח של מערכת יוניקס.

 

שתי התפתחויות עיקריות קרו באותה תקופה למערכת יוניקס: יוניקס עברה ממחשב PDP-7 המיושן למחשב יותר מודרני באותה תקופה, PDP-11/20, ואחר כך למחשב PDP-11/45 ומחשב PDP-11/70.

 

שני המחשבים האחרונים בסדרת ה PDP של חברת DEC שלטו בעולם המחשוב של שנות ה 70. מחשב PDP-11/45 ומחשב PDP-11/70 כללו כמות זיכרון גבוהה (לאותה תקופה), חומרה מתקדמת לשמירה על תקינות המידע בזיכרון, מה שאיפשר תמיכה במספר משתמשים בו זמנית ללא חשש של איבוד מידע.

 

שלב הפיתוח השני של מערכת יוניקס כלל כתיבה מחדש של מערכת יוניקס בשפת מחשב מתקדמת יותר. על מנת לבצע זאת, תומפסון החליט לכתוב מחדש את מערכת יוניקס בשפה חדשה שהוא תכנן ועיצב, שפה שנקראה שפת בי (B Language).

 

שפת B היתה קיצור שמה של שפת BCPL, שהיתה שפה מתקדמת משפת CPL, שהיתה שפה משופרת של שפת PL שבה נכתבה מערכת מולטיקס, האמא המסורסת של יוניקס.

 

כמו כל השפות ממשפחת שפות PL, גם CPL לא עבדה ובעקבותיה גם שפת B לא עבדה כראוי, עקב עיצוב לא נכון של השפה.

 

דניס ריצ'י, שותפו של קן תומפסון לצוות הפיתוח של מערכת יוניקס, החליט לעצב בצורה שונה את השפה עבור יוניקס. ריצ'י עיצב ותכנן את שפת סי (C Language). שפת C של ריצ'י נקראה כך כהמשך לשפת B הלא מוצלחת של תומפסון שהתבססה על שפות קודמות לא מוצלחות.

 

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

 

בשנת 1974, ריצ'י ותומפסון פרסמו מסמך טכני שהיווה ציון ואבן דרך לגבי מערכת יוניקס. על עבודתם ועל פרסום אותו מסמך, הם זכו בפרס טיורינג היוקרתי, פרס הנובל של עולם המחשבים, על שמו של אחד מאבי תורת מדעי המחשב, אלן טיורינג הבריטי. הפרס ניתן להם בשנת 1984.




דניס ריצ'י (עומד) וקן תומפסון (יושב) כותבים את יוניקס על מחשב
PDP11

 

 

 

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

 

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

 

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

 

חלקם של המשתתפים בכינוסים הללו הציעו תיקונים לבאגים במערכת ההפעלה יוניקס ובקוד המקור המרכיב של את ליבת המערכת (Kernel). פרופסור אוסטרלי אחד בשם ג'ון ליאונס (John Lions) כתב הערות לקוד המקור של מערכת יוניקס, ואלו היוו את הבסיס לעבודתם המאוחרת של מדענים ומתכנתים רבים.

 

כתוצאה מהמפגשים ומהעבודות שנכתבו על מערכת ההפעלה יוניקס, רעיונות חדשים נפוצו לכל עבר ושיפורים רבים במערכת ההפעלה הוכנסו לקוד המקור.

 

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

 

מערכות יוניקס האקדמאיות בגרסאות 6 ו 7 הופצו גם לתעשיית המחשבים, לאחר שסטודנטים שסיימו ללמוד, לקחו עימם עותקים למקומות העבודה בהם התקבלו כמהנדסים.

 

עד לאמצע שנות ה 80, יוניקס הופצה כמערכת הפעלה למיני מחשבים (מחשב שלא תופס חדר שלם) על ידי מספר מפיצים שמכרו רשיונות לעבודה עם מערכת ההפעלה.

 

 

Portable UNIX: יוניקס נייד בכל מחשב (של כל יצרן)

 

מערכת יוניקס נכתבה בשפת C, מה שהפך אותה לקלה יחסית לשינוי ולהרצה בכל מחשב. כל שהיה צריך לעשות הוא לבנות קומפיילר לשפת C המתאים למחשב כלשהו של יצרן כלשהו, להדר (לקמפל) מחדש את קוד המקור, לכתוב דרייברים (תוכנה מתאמת) לכל התקן חומרה (Device Drivers) כמו מסך, דיסק ומקלדת, ולבסוף להשקיע קצת בכתיבת קוד תלוי מכונה (קוד תוכנה כתוב בשפת אסמבלי שיבצע פעולות מול המעבד של המחשב).

 

המחשב הראשון לאחר מחשב ה PDP אליו נוידה יוניקס היה מחשב Interdata 8/32. המעבר של קוד יוניקס למחשב החדש חשף את צורת החשיבה והתכנון של מערכת ההפעלה יוניקס. כך למשל, נחשף כי מספרים שלמים נשמרו רק בזיכרון של 16 ביט (סדר גודל זיכרון של שני בתים). מצביעים לזיכרון (Pointers) גם כן נשמרו בגודל של 16 ביט, מה שגרם ליוניקס לעבוד רק עם גודל זיכרון שמתחת ל 64KB, וכך גם לתוכניות של יוניקס אסור היה שיעברו גודל זה, גם אם היה מקום על הדיסק או התקליטון. נמצא גם כי יוניקס עבדה רק עם שלושה אוגרים (registers), מה שלא היה נכון לגבי מערכת מחשב שונה מ PDP כמו מחשב ה Interdata.

 

למרות שהקומפיילר לשפת C של דניס ריצ'י היה מהיר ויצר קוד ביניים טוב, הוא יצר קוד רק עבור מחשב ה PDP-11 ולא מיתן היה לייצר איתו קוד מכונה למחשבים אחרים. את הבעיה הזו פתר סטיב ג'ונסון (Steve Johnson), גם כן חוקר במעבדות בל, שעיצב וכתב קומפיילר נייד לשפת C שבשינויים קלים ניתן היה להפיק איתו קוד מכונה לכל מחשב. הקומפיילר של ג'ונסון איפשר במשך השנים להעביר את מערכת ההפעלה של יוניקס לכל מחשב של כל יצרן.

 

מעבדות בל, החברה שיצרה את יוניקס נתקלה בבעיה נוספת בעת העברת יוניקס ממחשב ה PDP למחשב Interdata: מחשב ה PDP-11 שכן בקומה החמישית בבניין. מחשב ה Interdata שכן בקומה הראשונה בבניין.

 

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

 

תוכנה בסיסית של תקשורת בין מחשבים נכתבה, ורשת של יוניקס ליוניקס נוצרה. בהמשך, הועברה מערכת ההפעלה יוניקס בצורה זו גם למחשבים אחרים, ביניהם מחשב VAX.




מחשב אינטרדאטה מתקדם עם מעל
64KB זיכרון

 

 

 

בשנת 1984, לאחר שחברת AT&T פורקה על ידי ממשלת ארה"ב, חברת AT&T הורשתה לעסוק גם בתחום המחשבים. ואכן היא עשתה זאת. זמן קצת לאחר הפירוק, חברת AT&T שיחררה את מערכת יוניקס המסחרית שלה לציבור. המערכת נקראה System III (סיסטם 3). המערכת לא התקבלה היטב בציבור, ולאחר מקצה שיפורים, היא הוחלפה על ידי מערכת חדשה שנקרא System V (סיסטם וי או סיסטם 5). מערכת יוניקס System V המשיכה להימכר וגרסאות 2, 3, 4 שלה נמכרו כאשר כל מערכת גדולה מקודמתה ומורכבת הרבה יותר בהפעלתה. הרעיון המרכזי של יוניקס כמערכת הפעלה קלה ונוחה לשימוש החל להעלם, ועד מהרה, במהדורה העשירית של המערכת שלא הופצה ברבים כמו המערכות הראשונות של AT&T, נראתה המערכת כגולם שקם על יוצריו. חברת AT&T החליטה להתמקד ולשווק את System V בלבד, כאשר למערכת זו נוספו קצת תכונות שנלקחו מגרסאות מתקדמות שבנתה ולא הופצו בסופו של דבר.

 

 

Barkeley UNIX: היוניקס של אוניברסיטת ברקלי

 

אחת מהאוניברסיטאות הרבות שרכשו את יוניקס גרסה 6, הגרסה שהופצה על ידי סטודנטים ואנשי אקדמיה לאחר ששוחרר הקוד ממעבדות בל, היתה אוניברסיטת קליפורניה בברקלי (University of California at Barkeley).

 

מכיוון שקוד המקור המלא של מערכת יוניקס גרסה 6 היה נגיש לכל, ברקלי יכלו לשנות את קוד המקור כמעט כולו. בעזרתם האדיבה של DARPA, הסוכנות למחקר ופרוייקטים של משרד ההגנה האמריקני (Defense Advanced Research Projects Agency), הפיקה ברקלי קוד משופר של מערכת ההפעלה יוניקס שרץ על מחשב PDP-11 ונקרא 1BSD, "הפצת התוכנה הראשונה של ברקלי" (First Berkeley Software Distribution). בהמשך, הופצה גם מערכת 2BSD לעבודה עם מחשב PDP-11.

 

אבל, המערכת החשובה ביותר שהופצה על ידי אוניברסיטת ברקלי היתה 4BSD למחשבי VAX. למרות שלחברת AT&T כבר היה מחשב VAX עם גרסה של יוניקס ל VAX שנקרא 32V, זו היתה למעשה גרסה 7 של יוניקס (ברקלי עבדו ושיפרו כבר את גרסה 6).

 

לעומת זאת, מערכת יוניקס של ברקלי בגרסה הרביעית שלה (4BSD), כללה מספר רב של שיפורים. בין השיפורים שנכללו בגרסת יוניקס הרביעית של ברקלי, נכללו עבודה עם זיכרון וירטואלי (Virtual Memory) ומערכת דפדוף בזיכרון (Paging), המאפשרות לתוכניות שנכתבו להיות גדולות יותר מכמות הזיכרון הפיזי במערכת על ידי שמירת מקטעים בדפי זיכרון (שנשמרים בפועל בדיסק או בהתקן אחר) ושחזורם מאוחר יותר.

 

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

 

גולת הכותרת במערכת היתה הוספת התמיכה ברשתות מחשבים ובתקשורת בין מחשבים שונים. לראשונה, העולם הכיר את פרוטוקול הרשת של BSD שנקרא TCP/IP, פרוטוקול שהפך לתקן דה פאקטו לעבודה ברשתות תקשורת בין מחשבים, מה שהפך אותו פופולרי יותר מתקן בינלאומי אחר לרשתות שנכתב על ידי ארגון התקינה ISO, וידוע בשם "מודל השכבות" OSI.

 

אוניברסיטת ברקלי הוסיפה למערכת יוניקס עזרי תוכנה נוספים כמו עורך טקסטים בשם vi, מעטפת פקודות חדשה בשם csh, תמיכה בשפות תכנות כמו פסקל (Pascal) וליספ (Lisp) ושפות תכנות נוספות.

 

השיפורים הללו גרמו לחברות כמו סאן מיקרוסיסטמס (Sun Microsystems), חברת DEC ואחרות לבסס את מערכות היוניקס שלהן על גרסת היוניקס של ברקלי ולא על הגרסה "הרשמית" של AT&T, היא System V. כתוצאה מכך, המערכת של ברקלי הפכה למערכת מושרשת היטב באקדמיה, במחקר ובמשרד ההגנה.

 

 

Standard UNIX: יוניקס סטנדרטי

 

בשנות ה 80 המאוחרות, שתי מערכות ולא תואמות של יוניקס היו נפוצות בשוק: מערכת 4.3BSD של ברקלי ומערכת System V Release 3 של חברת AT&T. בנוסף, כמעט כל יצרן אחר של יוניקס הוסיף ליוניקס את התוספות הלא סטנדרטיות שלו למערכת.

 

עולם היוניקס נחלק לשני חלקים. תוכנית שפעלה במערכת אחת, לא עבדה במערכת השניה. הדבר גרם ליישומים מסחריים למערכת יוניקס לא להיות פופולריים במערכות אחרות של יוניקס, מכיוון שלא היתה תאימות בין המערכות, בניגוד גמור למשל לתוכניות שנכתבו למערכת ההפעלה דוס (DOS), והתאימו הן למערכת ההפעלה PC DOS של חברת IBM ולמערכת ההפעלה MS DOS של מיקרוסופט.

 

ניסיונות ליצור סטנדרטים למערכת יוניקס כשלו. חברת AT&T למשל, פיתחה את SVID (System V Interface Definition), שהגדירה את מערכת הקבצים, מבנה הקבצים, ממשקי משתמש וכדומה. המסמך של AT&T נועד לשמר את מערכת יוניקס System V בשטח אצל המשווקים, אבל היתה חסרת השפעה לחלוטין על המערכת המתחרה BSD של ברקלי.

 

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

 

מאות אנשים מהתעשייה, האקדמיה והממשלה עסקו בפיתוח התקן. השם שניתן לפרוייקט היה POSIX (פוסיקס). פוסיקס (POSIX) הם ראשי תיבות של Portable Operating System, מערכת הפעלה ניידת. הסיומת IX לשם נועדה לתת שם יוניקסי משהו.

 

לאחר מאמצים מרובים, נכתב תקן POSIX על כל עשרת חלקיו, מתקן מספר 1003.1 ועד לתקן מספר 1003.10.

 

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

 

תקן POSIX נכתב בצורה כזו שאם יישום כלשהו היה בשתי מערכות יוניקס של ברקלי וזו של AT&T, הוא הוכנס לתקן. אם לא, הוא לא הוכנס.

 

שפת C, השפה שהמציא דניס ריצ'י ממעבדות בל, ובה נכתבה מערכת יוניקס מחדש ב 1969, עברה סטנדרטיזציה על ידי ANSI (ראשי תיבות של American National Standards Institute), מכון התקנים הלאומי האמריקאי, וכן על ידי גוף התקינה הבינלאומי ISO.

 

לרוע המזל, דבר מוזר ומצחיק אירע לאחר הסטנדרטיזציה של יוניקס: בנוסף למערכת יוניקס של ברקלי, מערכת BSD, ומערכת היוניקס System V  של חברת AT&T, הופיע בשטח גוף נוסף שהחליט להגדיר את יוניקס קצת אחרת.

 

קבוצה של יצרני תוכנה ומחשבים שהונהגה על ידי חברת IBM, חברת DEC, חברת HP וחברות אחרות, לא אהבה את הרעיון שמעתה רק חברה מסחרית אחת, היא AT&T, תשלוט על מערכת יוניקס לאחר שהתקבל התקן. החברות האחרות הקימו את OSF, קרן התוכנה הפתוחה (Open Software Foundation), על מנת ליצור מערכת הפעלה העומדת בתקן שהציעה IEEE ולשלב סטנדרטים אחרים שהוצעו, אבל גם להוסיף פיצ'רים (מאפיינים) נוספים למערכת כמו למשל מערכת חלונות (שנקראה X11), ממשק גרפי למשתמש (שנקרא MOTIF) ועוד.

 

חברת AT&T בתגובה הקימה את איגוד UI, הוא UNIX International, שלמעשה ביקש לעשות את אותו הדבר, ולשלב תקנים נוספים, כמו תקן IEEE. מהלכה של חברת AT&T גרם ליצירתם של שני גופים תעשייתיים שמציעים גרסאות של יוניקס, מה שגרם למשתמשים לחזור למצב ההתחלתי שבו אין תקן ויש מספר מערכות יוניקס שונות אחת מרעותה.

 

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

 

 

MINIX: מערכת יוניקס ראשונה ופשוטה להמונים

 

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

 

 

לינוקס (Linux): מערכת תואמת יוניקס להמונים

 

בשנת 1991 כתב מתכנת פיני בשם לינוס טורוואלדס (Linus Torvalds) מערכת הפעלה תואמת יוניקס בשם לינוקס (Linux), הנושאת את שמו. למעשה, כתב לינוס את הליבה (kernel) של מערכת ההפעלה, על מנת שזו תתאים למחשב אישי תואם IBM עם מעבד של חברת אינטל .

 

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

 

באמצע שנות ה 90, אוניברסיטאות בעולם חילקו לסטודנטים את מערכת ההפעלה החדשה לינוקס, שכללה 12 דיסקטים של 3.5 אינטש, על מנת שהללו יתקינו אותם במחשביהם הביתיים, ולא יצטרכו לבוא למעבדת המחשבים כדי לעבוד על יוניקס אמיתי.

 

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

 

כבר היום, עשרות חברות תוכנה ומשווקי לינוקס, משווקים גרסאות שונות של לינוקס. כל חברה מוסיפה את הפיצ'רים (מאפיינים) שלה, ולינוקס של חברה אחת, אינו תואם תמיד לינוקס של חברה אחרת.

 

בשנות ה 2000, המאבקים על יוקרה, על כסף ועל שליטה בשוק מערכות ההפעלה מתחיל ונגמר בתביעות בבית המשפט. חברת SCO רכשה בשנת 1995 את יוניקס מחברת נובל שלטענתה החזיקה בזכויות של יוניקס. לטענת חברת SCO, היא כעת בעלת הזכויות של יוניקס. חברת IBM, המוכרת מערכות יוניקס משלה (מערכת AIX) וגם את מערכת ההפעלה לינוקס, נתבעת על ידי חברת SCO.

 

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

 

האם מיקרוסופט פוחדת שמערכת הפעלה תואמת יוניקס בשם לינוקס תשלוט?

 

 

 

 

~~~

חלק מהחומר במאמר מבוסס על הספר:

Modern Operating Systems, Andrew S. Tenenbaum