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