Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ההסטוריה של ה Unix

  • Login to see the comments

  • Be the first to like this

ההסטוריה של ה Unix

  1. 1. המרכז ללימודים חוץ אקדמיים מכללת רמת-גן קורס רשתות תקשורת מחשבים ואבטחת מידע שם המרצה : חיים כראל
  2. 3. UNICS   בשנות ה 40 וה 50 של המאה ה 20, הדרך יחידה לשימוש אישי במחשב היתה לשכור שעת עבודה על מסוף מחשב שהיה מחובר למחשב גדול ששכן באולם גדול . כאשר אדם , בדרך כלל מתכנת , תפס מחשב לשעה שלמה , הוא ורק הוא יכלו לעבוד על המחשב , לשלוח קלט ולקבל פלט לאחר שתוכנית שכתב והריץ בזיכרון המחשב נתנה את תוצאותיה .   בשנות ה 60, כאשר מערכות המסוגלות להריץ תוכניות אצווה ( batch ) ( אצווה : ביצוע סדרת פקודות והוראות למערכת אחת אחרי השניה בצורה אוטומטית לפי הגדרה מראש ללא צורך בהקלדה חוזרת ), החליפו את המערכות הקודמות , המתכנתים הגיעו לחדר המחשב ומסרו כרטיסים מנוקבים לאדם המפעיל . כאשר מספר רב של כרטיסים מנוקבים נאספו על ידי המפעיל , הוא הפעיל את המחשב שקלט את הכרטיסים , ביצע את ההוראות שקודדו על הכרטיס המנוקב , ונתן פלט עבור כל כרטיס שכזה . המתכנת קיבל את התוצאה לאחר כשעה של המתנה . השיטה הזו של ביצוע תוכניות והוראות מחשב ( שנוקבו על כרטיסים ) אחת אחרי השניה , והזמן היקר שהיא גזלה , במיוחד כאשר נתגלה באג בתוכנית והיה צורך לחזור על התהליך מחדש , הביאו להמצאתה של שיטת " שיתוף זמנים " ( Time Sharing ).  
  3. 4. שיטת " שיתוף זמנים " הומצאה על ידי קולג ' דרתמות ' ( 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 ) שלה ( מהדר : תוכנית שמתרגמת פקודות משפת תכנות לשפת מכונה , שפה שמחשב מבין ), לא עבד כראוי כשהמערכת שוחררה לציבור  
  4. 5.   מעבדות בל הפסיקו לבסוף את הפרוייקט השאפתני לאותה תקופה , מה שהשאיר את אחד החוקרים שעבדו על מולטיקס מחוסר תעסוקה ומחפש משהו אחר מעניין לעשות .   החוקר ההוא , קן תומפסון ( Ken Thompson ), החליט לשכתב את מערכת מולטיקס על מנת שתתאים למחשב קצת יותר קטן בשם PDP-7 של חברת DEC ( ידועה גם בשם : חברת דיגיטל ). למרות גודלו הזעיר יחסית של מחשב PDP-7 , המערכת של תומפסון עבדה בסופו של דבר , ומאמציו של תומפסון בכתיבת המערכת לא היו לשווא .   כתוצאה מההצלחה בהפעלת המערכת על מחשב PDP-7 , חוקר אחר במעבדות בל , בריאן קרניגן ( Brian Kernighan ) קרא בצחוק למערכת UNICS ( קרי : יוניקס ), ראשי התיבות UNiplexed Information and Coputing Service , שירות מחשוב ומידע לא מרובב ( יחידני ), מין משחק מילים על ראשי התיבות של מערכת מולטיקס המקורית שבה במקום המילה UNiplexed ( לא מרובב – למשתמש יחיד ) הופיעה בה המילה MULTIplexed ( מרובב – להרבה משתמשים ).  
  5. 6. מילה אחרת למערכת יוניקס החדשה שקמה מהריסות מערכת מולטיקס , היתה " יונאקס " ( EUNUCHS ) בהקשר לסירוסה של מערכת מולטיקס ( יונאקס eunuchs הוא כינוי לגברים סינים מסורסים שעבדו בארמונות המלוכה . הסירוס כלל הסרת האשכים והפין כדי למנוע מחלות זיהומיות באזור המפשעה ).   השם יוניקס ( UNICS ) שכשמה של המערכת נתקע במוחם של החוקרים האחרים , והשם הפך רשמית לשמה של המערכת החדשה . רק מאוחר יותר הוחלפו האותיות CS באות X , ושם המערכת נכתב כ UNIX .
  6. 8. PDP-11 UNIX   שתי התפתחויות עיקריות קרו באותה תקופה למערכת יוניקס : יוניקס עברה ממחשב 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 שבה נכתבה מערכת מולטיקס , האמא המסורסת של יוניקס .     דניס ריצ ' י , שותפו של קן תומפסון לצוות הפיתוח של מערכת יוניקס , החליט לעצב בצורה שונה את השפה עבור יוניקס . ריצ ' י עיצב ותכנן את שפת סי ( C Language ). שפת C של ריצ ' י נקראה כך כהמשך לשפת B הלא מוצלחת של תומפסון שהתבססה על שפות קודמות לא מוצלחות .  
  7. 9. כמו כל השפות ממשפחת שפות PL , גם CPL לא עבדה ובעקבותיה גם שפת B לא עבדה כראוי , עקב עיצוב לא נכון של השפה . לאחר שדניס ריצ ' י אפיין את שפת C , הוא כתב לה קומפיילר ( מהדר , מתרגם שפה עילית לשפת מכונה ) פשוט , קטן ומוצלח . ביחד עם שותפו קן תומפסון , הם כתבו מחדש את מערכת ההפעלה יוניקס בשפת C . שפת C היתה השפה הנכונה במקום הנכון , ומאז המצאתה של ידי דניס ריצ ' י , זו אחת משפות התכנות הפופולריות בעולם הנדסת התוכנה בכלל ובמערכות יוניקס בפרט .   בשנת 1974, ריצ ' י ותומפסון פרסמו מסמך טכני שהיווה ציון ואבן דרך לגבי מערכת יוניקס . על עבודתם ועל פרסום אותו מסמך , הם זכו בפרס טיורינג היוקרתי , פרס הנובל של עולם המחשבים , על שמו של אחד מאבי תורת מדעי המחשב , אלן טיורינג הבריטי . הפרס ניתן להם בשנת 1984.
  8. 10.   מחשב PDP-11 היה המחשב הנפוץ ביותר באותה תקופה בקרב סטודנטים ואנשי אקדמיה . כשהתקבלה מערכת יוניקס באוניברסיטאות עם קוד המקור , החלו להתקיים מפגשים טכניים בין סטודנטים ואנשי אקדמיה שנו בינם לבין עצמם כיצד ניתן לשפר את מערכת יוניקס שרצה על מחשב PDP-11 .   חלקם של המשתתפים בכינוסים הללו הציעו תיקונים לבאגים במערכת ההפעלה יוניקס ובקוד המקור המרכיב של את ליבת המערכת ( Kernel ). פרופסור אוסטרלי אחד בשם ג ' ון ליאונס ( John Lions ) כתב הערות לקוד המקור של מערכת יוניקס , ואלו היוו את הבסיס לעבודתם המאוחרת של מדענים ומתכנתים רבים . כתוצאה מהמפגשים ומהעבודות שנכתבו על מערכת ההפעלה יוניקס , רעיונות חדשים נפוצו לכל עבר ושיפורים רבים במערכת ההפעלה הוכנסו לקוד המקור .   מערכת ההפעלה המתוקנת הראשונה של יוניקס לאחר הפצתה לאוניברסיטאות , שהיתה לתקן דה פאקטו נקראה " גרסה 6" ( Version 6 ), שם שתיאר בעצם את מדריך יוניקס למתכנתים שהופץ במהדורה שישית . לאחר מספר שנים , הוחלפה גרסה 6 בגרסה 7.   מערכות יוניקס האקדמאיות בגרסאות 6 ו 7 הופצו גם לתעשיית המחשבים , לאחר שסטודנטים שסיימו ללמוד , לקחו עימם עותקים למקומות העבודה בהם התקבלו כמהנדסים .   עד לאמצע שנות ה 80, יוניקס הופצה כמערכת הפעלה למיני מחשבים ( מחשב שלא תופס חדר שלם ) על ידי מספר מפיצים שמכרו רשיונות לעבודה עם מערכת ההפעלה .
  9. 11. Portable UNIX : יוניקס נייד בכל מחשב ( של כל יצרן ) המחשב הראשון לאחר מחשב ה PDP אליו נוידה יוניקס היה מחשב Interdata 8/32 . המעבר של קוד יוניקס למחשב החדש חשף את צורת החשיבה והתכנון של מערכת ההפעלה יוניקס . כך למשל , נחשף כי מספרים שלמים נשמרו רק בזיכרון של 16 ביט ( סדר גודל זיכרון של שני בתים ). מצביעים לזיכרון ( Pointers ) גם כן נשמרו בגודל של 16 ביט , מה שגרם ליוניקס לעבוד רק עם גודל זיכרון שמתחת ל 64KB , וכך גם לתוכניות של יוניקס אסור היה שיעברו גודל זה , גם אם היה מקום על הדיסק או התקליטון . נמצא גם כי יוניקס עבדה רק עם שלושה אוגרים ( registers ), מה שלא היה נכון לגבי מערכת מחשב שונה מ PDP כמו מחשב ה Interdata .   למרות שהקומפיילר לשפת C של דניס ריצ ' י היה מהיר ויצר קוד ביניים טוב , הוא יצר קוד רק עבור מחשב ה PDP-11 ולא מיתן היה לייצר איתו קוד מכונה למחשבים אחרים . את הבעיה הזו פתר סטיב ג ' ונסון ( Steve Johnson ), גם כן חוקר במעבדות בל , שעיצב וכתב קומפיילר נייד לשפת C שבשינויים קלים ניתן היה להפיק איתו קוד מכונה לכל מחשב . הקומפיילר של ג ' ונסון איפשר במשך השנים להעביר את מערכת ההפעלה של יוניקס לכל מחשב של כל יצרן .  
  10. 12. מעבדות בל , החברה שיצרה את יוניקס נתקלה בבעיה נוספת בעת העברת יוניקס ממחשב ה PDP למחשב Interdata : מחשב ה PDP-11 שכן בקומה החמישית בבניין . מחשב ה Interdata שכן בקומה הראשונה בבניין .   מה שקרא בפועל הוא שבכל פעם שתוקן באג ונוצרה גירסה חדשה ליוניקס , היה צורך להעביר את מערכת ההפעלה לבדיקה גם על מחשב ה Interdata שנמצא בקומה הראשונה בבניין . לשם כך , הועתקו הקבצים של יוניקס לסרט טייפ מגנטי , והועברו לקומה הראשונה על ידי סחיבה פיזית של הסרט המגנטי מהקומה החמישית לקומה הראשונה . לאחר מספר חודשים של פעולה זו , התעורר הצורך לחבר שני מחשבים הממוקמים במקומות פיזיים שונים , בצורה אלקטרונית . הרעיון של חיבור שני מחשבים המפעילים יוניקס בצורה אלקטרונית , יצר לראשונה את רעיון התקשורת בין שני מערכות יוניקס .   תוכנה בסיסית של תקשורת בין מחשבים נכתבה , ורשת של יוניקס ליוניקס נוצרה . בהמשך , הועברה מערכת ההפעלה יוניקס בצורה זו גם למחשבים אחרים , ביניהם מחשב VAX .
  11. 14. 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 ), המאפשרות לתוכניות שנכתבו להיות גדולות יותר מכמות הזיכרון הפיזי במערכת על ידי שמירת מקטעים בדפי זיכרון ( שנשמרים בפועל בדיסק או בהתקן אחר ) ושחזורם מאוחר יותר .  
  12. 15. שיפור נוסף אחר היה מתן שמות ארוכים , מעל 14 תווים כפי שהיה נהוג עד כה לקבצים . מערכת הקבצים שופרה והטיפול בסיגנלים היה אמין יותר ( טיפול באירועים כמו אירועי שעון , מסך , מקלדת וכדומה ). גולת הכותרת במערכת היתה הוספת התמיכה ברשתות מחשבים ובתקשורת בין מחשבים שונים . לראשונה , העולם הכיר את פרוטוקול הרשת של BSD שנקרא TCP/IP , פרוטוקול שהפך לתקן דה פאקטו לעבודה ברשתות תקשורת בין מחשבים , מה שהפך אותו פופולרי יותר מתקן בינלאומי אחר לרשתות שנכתב על ידי ארגון התקינה ISO , וידוע בשם " מודל השכבות " OSI .   אוניברסיטת ברקלי הוסיפה למערכת יוניקס עזרי תוכנה נוספים כמו עורך טקסטים בשם vi , מעטפת פקודות חדשה בשם csh , תמיכה בשפות תכנות כמו פסקל ( Pascal ) וליספ ( Lisp ) ושפות תכנות נוספות . השיפורים הללו גרמו לחברות כמו סאן מיקרוסיסטמס ( Sun Microsystems ), חברת DEC ואחרות לבסס את מערכות היוניקס שלהן על גרסת היוניקס של ברקלי ולא על הגרסה " הרשמית " של AT&T , היא System V . כתוצאה מכך , המערכת של ברקלי הפכה למערכת מושרשת היטב באקדמיה , במחקר ובמשרד ההגנה .
  13. 17. Standard UNIX : יוניקס סטנדרטי עולם היוניקס נחלק לשני חלקים . תוכנית שפעלה במערכת אחת , לא עבדה במערכת השניה . הדבר גרם ליישומים מסחריים למערכת יוניקס לא להיות פופולריים במערכות אחרות של יוניקס , מכיוון שלא היתה תאימות בין המערכות , בניגוד גמור למשל לתוכניות שנכתבו למערכת ההפעלה דוס ( DOS ), והתאימו הן למערכת ההפעלה PC DOS של חברת IBM ולמערכת ההפעלה MS DOS של מיקרוסופט .   ניסיונות ליצור סטנדרטים למערכת יוניקס כשלו . חברת AT&T למשל , פיתחה את SVID ( System V Interface Definition ), שהגדירה את מערכת הקבצים , מבנה הקבצים , ממשקי משתמש וכדומה . המסמך של AT&T נועד לשמר את מערכת יוניקס System V בשטח אצל המשווקים , אבל היתה חסרת השפעה לחלוטין על המערכת המתחרה BSD של ברקלי .   הניסיון הרציני הראשון ליצור סטנדרט ליוניקס הגיע מגוף התקינה IEEE , המכון למהנדסי חשמל ואלקטרוניקה ) גוף תקינה בינלאומי מכובד שעסק בהגדרת תקנים למחשבים ותקשורת . המיוחד בניסיון היה שגוף נייטרלי החליט לעסוק בנושא יוניקס .  
  14. 18. מאות אנשים מהתעשייה , האקדמיה והממשלה עסקו בפיתוח התקן . השם שניתן לפרוייקט היה POSIX ( פוסיקס ). פוסיקס ( POSIX ) הם ראשי תיבות של Portable Operating System , מערכת הפעלה ניידת . הסיומת IX לשם נועדה לתת שם יוניקסי משהו .   לאחר מאמצים מרובים , נכתב תקן POSIX על כל עשרת חלקיו , מתקן מספר 1003.1 ועד לתקן מספר 1003.10.   תקן POSIX הגדיר למעשה כיצד מערכת הפעלה צריכה להבנות ומה השירותים שעליה לתת לכותבי תוכנה . כך למשל , הוגדרה הפרוצדורה open על מנת לפתוח קבצים או התקני חומרה לעבודה . פרוצדורה read קבעה שיטה לקרוא תוכן של קובץ או לקרוא מידע מתוך התקן חומרה . התקן יצר מצב שכל יצרן שרצה לכתוב מערכת הפעלה תואמת יוניקס , חייב יהיה לשלב את הפרוצדורות הנ " ל במערכת ההפעלה שלו .   תקן POSIX נכתב בצורה כזו שאם יישום כלשהו היה בשתי מערכות יוניקס של ברקלי וזו של AT&T , הוא הוכנס לתקן . אם לא , הוא לא הוכנס . MINIX : מערכת יוניקס ראשונה ופשוטה להמונים   המצב לעיל איפשר לאחרים ליצור מערכות יוניקס פשוטות הרבה יותר . אחת מהן היא מערכת MINIX שיצרה מערכת תואמת יוניקס , קלה להבנה , קלה להשגה , קוד המקור שלה נגיש וקל להשגה
  15. 19. לינוקס ( Linux ): מערכת תואמת יוניקס להמונים בשנת 1991 כתב מתכנת פיני בשם לינוס טורוואלדס ( Linus Torvalds ) מערכת הפעלה תואמת יוניקס בשם לינוקס ( Linux ), הנושאת את שמו . למעשה , כתב לינוס את הליבה ( kernel ) של מערכת ההפעלה , על מנת שזו תתאים למחשב אישי תואם IBM עם מעבד של חברת אינטל .   מערכת ההפעלה תואמת יוניקס שנקראת לינוקס , התאימה ככפפה ליד לאוניברסיטאות ולפקולטות למדעי המחשב שלא היו צריכות כעת לקנות מערכת יוניקס יקרה של IBM או של סאן כדי שסטודנטים ילמדו עליה במחשב PC רגיל .   באמצע שנות ה 90, אוניברסיטאות בעולם חילקו לסטודנטים את מערכת ההפעלה החדשה לינוקס , שכללה 12 דיסקטים של 3.5 אינטש , על מנת שהללו יתקינו אותם במחשביהם הביתיים , ולא יצטרכו לבוא למעבדת המחשבים כדי לעבוד על יוניקס אמיתי .   המערכת החדשה צברה תאוצה , וההיסטוריה של יוניקס שנכתבה לעיל חוזרת על עצמה , הפעם עם מערכת תואמת יוניקס הנקראת לינוקס .   כבר היום , עשרות חברות תוכנה ומשווקי לינוקס , משווקים גרסאות שונות של לינוקס . כל חברה מוסיפה את הפיצ ' רים ( מאפיינים ) שלה , ולינוקס של חברה אחת , אינו תואם תמיד לינוקס של חברה אחרת .
  16. 20. Harvard Mark II

×