Remove ads
מכונה המעבדת תכניות מוויקיפדיה, האנציקלופדיה החופשית
מַחְשֵׁב הוא מכונה אלקטרונית המסוגלת לעבד נתונים על פי תוכנה, כלומר על פי רצף פקודות נתון מראש. מערכת מחשב כוללת את החומרה של המחשב, את הציוד ההיקפי הנלווה אליה, את מערכת ההפעלה המנהלת את פעולת המחשב ואת התוכנה המופעלת בו.
עיינו גם בפורטל פורטל המחשבים הוא שער לערכים הקשורים למחשבים. הפורטל סוקר את ההיסטוריה של המחשב, את השימושים במחשב, את טכנולוגיות המחשוב, את האישים מתחום המחשוב, וכמובן – את נושאי התוכנה. |
בנוסף למחשבים לשימוש כללי, המשמשים למגוון רחב של משימות, כמעט כל מכונה או מכשיר חשמלי הנמצאים בשימוש מסוף המאה ה־20 מכילים מחשב המשובץ בהם ואחראי על תפקודיהם השונים.
מחשבים הם חלק בלתי נפרד מחיי היומיום של המין האנושי במאה העשרים ואחת, והשימוש בהם נעשה כמעט בכל תחום ובכל מקצוע.[1] חברות, גדולות כקטנות, בתי עסק, משרדים ממשלתיים, בנקים, גופים ציבוריים ותעשיות שונות (מתעשיית הטקסטיל ועד לתעשיית הקולנוע) מסתמכים במידה רבה על מחשבים למטרות שונות, החל משמירת מידע וטיפול בו וכלה בשליטה על רובוטים העובדים בפסי ייצור. רוב הגופים כלל לא יוכלו לתפקד בלעדי המחשבים. גם עבור האדם הפרטי הפך השימוש במחשב לחלק בלתי נפרד משגרת החיים.
כדי שמכונה תיחשב כמחשב עליה לקיים שני תנאים:
חלקה הראשון של ההגדרה דורש תגובה באופן מוגדר היטב. הכוונה היא שבהינתן פקודה או רצף של פקודות, נוכל לדעת בדיוק מה תהיה פעולת המכונה על ידי בדיקת ההגדרות של הפקודות הללו. לכל מחשב קיים מדריך המספק הגדרה מדויקת של כל אחת מהפקודות שהוא מבצע.
חלקה השני של ההגדרה דורש את היכולת לבצע באופן עצמאי אוסף פקודות שהוכתב מראש. בכך נבדל המחשב ממכונת חישוב, שהיא אמצעי מכני או אלקטרוני המעבד נתונים ללא תוכנית מוכתבת מראש, אלא על ידי משתמש המנחה אותו ללא הרף, צעד אחר צעד, בפעולות שעליו לבצע.
המונח "מחשב" הוא מונח כוללני מאוד המתאים למכונות רבות. קונסולת משחקים, דוגמת הקונסולה פלייסטיישן, מסוגלת להריץ משחק וידאו העונה בהחלט להגדרה של תוכנית, ואכן, אף על פי שלא נהוג לכנותה כך, מדובר במחשב. מכונות רבות יכולות לבצע רצף פקודות שניתן להן מראש בצורה מוגדרת היטב, החל מטלפון חכם המסוגל להריץ משחק, וכלה במחשבי בקרה במטוס קרב המסוגלים להטיל פצצה תוך חישוב מהירות ומרחק מהיעד.
הגדרתו של המחשב מכסה אפוא מכשירים רבים שיכולותיהם רחוקות זו מזו. מחשב אחד מצוי במשחק ילדים ותכליתו לנגן מספר צלילים ולהציג מספר תמונות, ואילו מחשב אחר מסוגל לשלוט על חללית בלתי־מאוישת. חרף ההבדלים במטרתם של מחשבים אלה, הם דומים במידה רבה בעקרונות פעולתם, וההבדל העיקרי ביניהם הוא בעוצמתם: מהירות פעולתם וגודל הזיכרון העומד לרשותם.
מכשירים עתיקים לעריכת חישובים, אבות אבותיו של המחשב המודרני, הם החשבונייה ומנגנון אנטיקיטרה, מכונה יוונית עתיקה המחשבת את תזוזת הכוכבים (מתוארכת ל־150–100 לפני הספירה).[2] בסוף ימי הביניים חלה התקדמות במתמטיקה ובהנדסה האירופיות וב־1623 בנו וילהלם שיקארד ומספר מהנדסים נוספים מחשבון מכני. מכונות אלו לא דמו למחשבים של ימינו, שכן לא היה בכוחן לבצע תוכניות שנתן להן המשתמש, אלא רק חישובים שעבורם נבנו מלכתחילה.
ב־1801 הציג הצרפתי ז'וזף מארי ז'אקאר את המצאתו, נול הפועל באמצעות כרטיסים מנוקבים ובכך טווה תבניות מסובכות מאוד. הנול של ז'אקארד לא היה מחשב אמיתי, אך היווה שלב משמעותי בהתפתחות המחשב המודרני. צ'ארלס בבג' היה הראשון שהגה ותכנן מחשב הניתן לתכנות עוד ב־1837, אך המכשיר לא נבנה מעולם, בשל קשיים כלכליים שאיתם נאלץ להתמודד, ומשום שהתקציבים שהוקצו יועדו למכונה קודמת (שגם היא לא הושלמה), שהייתה למעשה מכונת חישוב מכנית, לא מחשב, בשם מנוע ההפרשים של בבג'[3]
עד סוף המאה ה־19 הופיעו מספר חידושים, כמו הכרטיס המנוקב ושפופרת הריק שלימים יתגלו כשימושיים בתחום המחשוב. הכרטיסים המנוקבים שימשו כבר אז לצורך עיבוד נתונים רחב־היקף בארצות הברית, שבוצע במכונות טבולציה (tabulating machines) שתכנן הרמן הולרית'.
במחצית הראשונה של המאה ה-20, פתרו מדענים רבים בעיות חישוביות באמצעות מחשבים אנלוגיים שהשתמשו במודל מכני או אלקטרוני של הבעיה כבסיס לחישוב. אף על פי שמכונות אלה נעשו מתוחכמות יותר ויותר עם השנים, הן הפכו לנדירות עם פיתוחו של המחשב הדיגיטלי הניתן לתכנות.
בשנות ה־30 וה־40 של המאה ה־20 נבנו בהדרגה מכשירי חישוב חזקים יותר וגמישים יותר. עם השנים החלו להופיע במכשירים תכונות דומות למחשב המודרני, כגון הסתמכות על אלקטרוניקה דיגיטלית במקום אנלוגית (פותחה בעיקר על ידי קלוד שנון ב־1937[4]) ואפשרויות תכנות נרחבות יותר של המכונות. הצבעה על מכונה אחת מסוימת מבין אותן מכונות כ"מחשב הדיגיטלי הראשון" היא מטלה קשה ואולי אף בלתי אפשרית.
המחשבים הספרתיים הראשונים שפותחו בשנות ה־30 וה־40 של המאה ה־20:
הצוות שפיתח את אניאק זיהה את הקושי בתכנות מחדש של המחשב, ולכן הציע ב־1948 תכנון נוח ואלגנטי בהרבה מזה שהיה קיים עד אז; תכנון זה יכונה בהמשך "ארכיטקטורת פון נוימן". מודל זה הפך לבסיסם של מרבית המחשבים המודרניים עד ימינו. מאמצע עד סוף שנות ה־40 החלו מספר מיזמים לפיתוח מחשבים, המבוססים על המודל של פון נוימן. הראשון שבהם הושלם בבריטניה. הראשון שהושלם ופעל היה מחשב שנקרא Small-Scale Experimental Machine, אך הדגם הראשון שפותח ובאמת היה בו שימוש היה מחשב ה־EDSAC.
ב־1955 החל לפעול בישראל מחשב שנבנה במכון ויצמן: ויצק (WEIZAC - Weizmann Automatic Calculator), שהיה אחד מהמחשבים האלקטרוניים הראשונים בעולם והראשון שפעל מחוץ לאירופה וארצות הברית. המחשב פעל עד 1963.[6] במשך שש שנים היה ויצק המחשב היחיד שפעל בישראל, ורק ב־1961 הצטרף אליו מחשב שני, שנרכש עבור ממר"ם.
השימוש במחשבים מבוססי שפופרות ריק נמשך לאורך שנות ה־50 של המאה ה־20.
המחשבים המבוססים על שפופרות ריק הוחלפו במחשבים מבוססי טרנזיסטורים. מחשבים אלה היו קטנים יותר, מהירים יותר, זולים יותר, ויציבים הרבה יותר. הללו תרמו לכך שאת המחשבים מבוססי הטרנזיסטורים ניתן היה לייצר באופן מסחרי החל מסוף שנות החמישים. בשנות השישים של המאה ה־20 אומצה טכנולוגיית המעגלים המשולבים, שסייעה להמשך המגמה של הקטנת והוזלת המחשבים, כשבמקביל פותחו לצרכים מיוחדים מחשבי על, בעלי מהירות חישוב גדולה במיוחד. בעשור זה הופיעו גם מחשבים ייעודיים רבים, כמו מחשבי משימה של מטוסי קרב וחלליות, ומיני מחשבים שהתאימו לשימושים שונים ומגוונים. החל מראשית שנות השבעים של המאה העשרים הופיעו מיקרו מעבדים, שאיפשרו לבנות מחשבים קטנים וזולים יותר ויותר, ובאמצע העשור איפשרו את הופעת המחשב האישי.
מגמת הוזלת מחירי המחשבים והקיטון בגודלם נמשכת עד היום. ניתן עדיין למצוא לא מעט מחשבים שגודלם כגודלו של ארון גדול. מחשבים אלה מצויים בעיקר במעבדות מחקר הזקוקות להם לשם חישובים מסובכים מאוד ומכונים מחשבי־על, או בחברות גדולות הזקוקות להם לשם עיבוד טרנזקציות רבות מאוד, אלו נקראים מחשבים מרכזיים (mainframe). למרות זאת, המחשבים השכיחים ביותר, באופן גורף, הם המיקרו־מחשבים שגודלם קטן בהרבה. בקבוצה זו ניתן למצוא את המחשבים האישיים והמחשבים הניידים ששכיחותם כה גדולה עד כי הפכו בשפת היום יום למונח נרדף למונח "מחשב" עצמו, ואת הטלפונים הסלולריים שכמעט בלי יוצא מהכלל מכילים מעבד.
צורת המחשב הנפוצה ביותר איננה המחשב האישי, וגם לא הטלפון הנייד, אף על פי שמחשבים אלו נפוצים ביותר. המחשבים הנפוצים ביותר הם מיקרו־בקרים, שנמצאים במערכת משובצת מחשב. אלו הם מחשבים זעירים המשובצים במכונה אחרת ומשתלבים בפעולתה. מחשבים משובצים ניתן למצוא בטלפונים סלולריים, מצלמות דיגיטליות, מקלטי טלוויזיה, מערכות שמע, ממירי כבלים, תנורי מיקרוגל, וכן הלאה. מערכות מורכבות יותר כמו מכוניות, מטוסים, ומערכות נשק שונות מכילות לעיתים עשרות ואף מאות מיקרו בקרים. למעשה, גם המחשב האישי המודרני מכיל, בנוסף למעבד המרכזי שלו, עוד מספר מיקרו בקרים ייעודיים שאחראים על תת־מערכות ספציפיות כמו המקלדת, בקר התצוגה, בקר הרשת, ועוד.
הפיכתם של המחשבים לקטנים יותר וזולים יותר לא הביאה לירידה בביצועיהם וביכולותיהם. למחשבים בתחילת המאה ה־21 יכולות גדולות מעריכית מאלה של קודמיהם, ויכולות אלו ממשיכות לגדול באותו הקצב. תופעה זו מתוארת בחלקה על ידי חוק מור ולפיו היא תימשך גם בעתיד.[7]
באופן מפתיע, על אף התקדמותה המסחררת של הטכנולוגיה בכל הקשור למחשבים, מרבית המחשבים בתחילת המאה ה־21 בנויים על פי אותו מודל שלפיו נבנו ראשוני המחשבים, מכונת פון נוימן.
לפי המודל, בנוי המחשב מארבע קבוצות רכיבים עיקריות. הרכיבים מחוברים ביניהם על ידי חבילות חוטים הנקראים "אפיקים" (באנגלית: buses). כלל הרכיבים מונָעים, לרוב, על ידי שעון פנימי או "טיימר" (אם כי גם אירועים אחרים יכולים להשפיע על בקרת הפעולה).
ארבע קבוצות הרכיבים הם:
התקני הקלט־פלט הם האמצעים שבעזרתם מתקשר המחשב עם העולם החיצון. בעזרת התקני הקלט מקבל המחשב מידע שלו הוא זקוק מהחוץ, ובאמצעות התקני הפלט הוא שולח החוצה מידע חיוני (תוצאות חישובים או הודעות אחרות שעליו להעביר). מכורח המציאות חייב כל מחשב לפחות מספר התקני קלט־פלט בסיסיים, אחרת לא נוכל להורות לו מה לעשות ולא נוכל לדעת את תוצאות הפעולות שהוא מבצע.
התקני קלט דרושים לשם העברת פקודות ונתונים למחשב. בלעדיהם לא נוכל להעביר למחשב את רצוננו ואז לא יהיה בו שום שימוש עבורנו. בעבר צוידו המחשבים בקורא כרטיסים מנוקבים, המידע הנחוץ הועבר למחשב בצורה בינארית כחורים על גבי הכרטיסים, והקורא תרגם זאת למספרים בזיכרון. כיום, התקני הקלט הבסיסיים, המצויים כמעט בכל מחשב, הם מקלדת ועכבר. במחשבים מסוימים יש התקני קלט נוספים, כמו הסורק ומצלמת האינטרנט, שמטרתם העברת מידע ייחודי יותר למחשב: במקרה של סורק ומצלמת אינטרנט מדובר בתמונות או בסרטים.
התקני פלט דרושים לשם העברת מידע מהמחשב לעולם החיצון, לרוב למשתמש. מידע זה כולל את תוצאות הפעולה שהתבקש המחשב לבצע, הודעה על שגיאות או על אזהרות, בקשות לקלט ובמקרה של מערכת משובצת מחשב, השפעה של ממש, לדוגמה הזזת רובוט. בעבר היה התקן הפלט העיקרי סוג כלשהו של מדפסת, שפלטה את תוצאות המחשב. כיום, התקן הפלט העיקרי הוא הצג, אך גם המדפסת והרמקולים שכיחים למדי. במקרה של מערכת משובצת מחשב, המכונה שעליה שולט המחשב היא התקן הפלט. אם למשל שולט המחשב על רובוט, אז הרובוט עצמו הוא התקן הפלט העיקרי של המחשב. ללא התקני הפלט לא יוכל המחשב לדווח על תוצאות הפעולה שביצע עבורנו והן יאבדו כאילו לא בוצעה הפעולה מעולם.
למרות החלוקה בין התקני קלט להתקני פלט, לעיתים משמש מכשיר אחד לשתי המטרות. לדוגמה, מכשור המשמש להעברת נתונים ממחשב אחד לשני הוא התקן פלט עבור המחשב האחד והתקן קלט עבור השני. כונן התקליטור, למשל, יכול לשמש הן כהתקן פלט (צריבה עבור מחשב אחר), הן כהתקן קלט (קבלת נתונים ממחשב אחר) והן כהתקן אחסון נתונים (שמירת נתונים צרובים עבור אותו מחשב).
קיימות קבוצות רבות של התקני קלט־פלט שונים. קבוצה אחת (נרחבת מאוד) של התקני קלט־פלט היא אמצעי אחסון המידע המשניים. עם קבוצה זו נמנים הדיסק הקשיח, כונן התקליטורים, הדיסק און קי ורבים אחרים שהמשותף ביניהם הוא, שכולם אמצעי אחסון מידע איטיים יחסית אך בעלי קיבולת מידע גבוהה ואמינות גבוהה (בניגוד לזיכרון המחשב המהיר עשרות מונים אך קטן יחסית ומתרוקן בכל הפעלה מחדש של המחשב). קבוצה נוספת היא זו של התקנים המאפשרים תקשורת בין מחשבים בכלל, וגישה לרשתות בפרט, בין אם לרשת מחשבים או לרשת האינטרנט. היכולת להעביר מידע בין קבוצות מחשבים פתחה חלון אפשרויות רחב במיוחד, בייחוד כאשר מדובר על מיליוני מחשבים המחוברים יחדיו ברשת האינטרנט. קיימים התקני קלט־פלט נוספים המיועדים למטרות ממוקדות יותר, החל ממצלמה, עבור הכנסת תמונה למחשב, וכלה במכשירים מתוחכמים יותר לשימושים מקצועיים, כמו התקנים המעבירים למחשב רישומי דופק או נוכחות זיעה ומשמשים, למשל, בעת ביצוע בדיקת פוליגרף.
זיכרון המחשב משמש לאחסון הפקודות והנתונים השונים.
ניתן להמשיל את זיכרון המחשב לרשימת תאים, לדוגמה תאי דואר. לכל תא יש כתובת ויכולת להכיל בתוכו כמות קבועה של מידע. הכתובת היא מספר ייחודי המייצג את התא, ובאמצעותו ניתן לגשת אל התא לשם אחסון מידע או אחזורו. התאים מצויים זה אחר זה בזיכרון, וכתובותיהם עוקבות. המידע יכול להיות פקודה המורה למחשב מה לעשות, או לחלופין נתון. הנתונים יכולים להיות הקלט שעל המחשב לעבד, תוצאות ביניים של חישובים שעשה המחשב ואולי ישתמש בהם בהמשך (מסיבה זו הזיכרון הוא חלק בלתי נפרד מתהליך העיבוד של המעבד), או התוצאות של פעולת המחשב. לפי ארכיטקטורת פון נוימן, לכל תא היכולת להכיל פקודה או נתון ואין צורך בתא מיוחד לכל אחד מסוגי המידע.
היחידה האריתמטית־לוגית מסוגלת לבצע שלושה סוגים של פעולות בסיסיות:
יחידת השליטה היא הגורם הקושר יחדיו את כל הרכיבים. היחידה קוראת פקודות ומידע מהזיכרון או מהתקני הקלט־פלט. היא מפענחת את הפקודות ומתחילה לפעול לפיהן. היא מספקת ליחידה האריתמטית־לוגית את הנתונים הדרושים, לפי הפקודה, ומכוונת אותה לבצע את סוג הפעולה הנדרשת. לאחר מכן שולחת יחידת השליטה את התוצאה בחזרה אל הזיכרון או אל התקני הקלט־פלט המתאימים. בתוך יחידת השליטה ישנו מונה השומר את כתובת הזיכרון שבה שמורה הפקודה הנוכחית עליה עובד המחשב, שמו "מונה הפקודות". קיימות פקודות לבקרת זרימה, שמטרתן שינוי המונה או שינויו תחת תנאים מסוימים (אם מתקיים תנאי מסוים). בכך מתאפשרות חזרות מרובות על מספר פקודות (לולאות) או "קפיצות" לקטעי קוד אחרים (למשל, פונקציות). לעומת זאת, רוב הפקודות אינן משפיעות על המונה ולאחר ביצוען מקודם המונה במספר השקול לגודלה של פקודה (הגודל תלוי במחשב המדובר), דבר המוביל למעבר לפקודה הבאה ברצף הפקודות בזיכרון.
יחידת השליטה והיחידה האריתמטית־לוגית מזוהות לרוב כרכיב אחד הנקרא מעבד (CPU - Central Processing Unit). במרבית המחשבים, החל משנות ה־80 ועד ימינו, נמצאות יחידת השליטה והיחידה האריתמטית־לוגית על גבי רכיב אחד הנקרא מיקרומעבד. במעבד מתרחשות הבאת הפקודות, תרגומן, הבאת הנתונים, עיבודם ולבסוף, שמירת התוצאות בזיכרון.
מבין כל מרכיבי המחשב, המעבד הוא הקובע יותר מכל את אופיו של מחשב זה, ואת התוכניות שניתן לבצע עליו. לפיכך המעבד הוא "מוחו" של המחשב.
עקרון הפעולה של המחשב פשוט למדי, אולי פשוט עד כדי פליאה יחסית ליכולות המרשימות של מחשבים כיום.
אופן פעולת המחשב הוא פועל יוצא של מבנהו. המעבד קורא פקודה מהזיכרון, מבצע אותה (כאשר הוא נעזר ביחידה האריתמטית־לוגית שבמעבד לשם הביצוע), שומר את התוצאות בזיכרון, במידת הצורך, ואז קורא את הפקודה הבאה. תהליך זה נמשך עד שהמעבד מגיע לפקודת עצירה.
בשל פשטות אופי פעולתו של המעבד ניתן היה לצפות שכוחו הרב של המחשב נובע מאוסף פקודות רחב, אך למעשה מדובר במספר מצומצם של פקודות מוגדרות היטב ופשוטות למדי. כל פקודה ניתנת לסיווג לאחד או יותר מארבעת התחומים הבאים:
נראה שיש מכנה משותף בין סוגי הפקודות. העברת מידע ממקום למקום דומה למדי לביצוע הליך אריתמטי או לוגי על נתונים (למשל, חבר 0 לתוכנו של תא זיכרון 57 ושים את התוצאה בתא זיכרון 80, זהה להעתקת תוכנו של תא זיכרון 57 לתא זיכרון 80). שינוי רצף הפקודות נראה כאילו הוא מוכל בתחום של בדיקת נתונים (תמיד ניתן לשאול האם תא זהה לעצמו, ואם כן - לקפוץ לפקודה אחרת בזיכרון). הסיבה לכך נעוצה במבנה הפקודות. כמו הנתונים, מיוצגות גם הפקודות בקוד בינארי, רצף של 0 ו־1. לדוגמה, אחת מפקודות ההעתקה במעבדי אינטל x86 מיוצגת כך: 10110000. כל פקודה היא מספר מסוים שאותו מבין המעבד ולפיו הוא פועל. בנוסף, כל פקודה היא אטומית. כלומר, הפקודה "בדוק האם תוכנו של תא זיכרון מספר 73 קטן מתוכנו של תא זיכרון מספר 15 והכנס את התשובה לתא זיכרון מספר 14" היא פקודה אחת בודדת מבחינתו של המחשב. אין מדובר ברצף של פקודות ולא ניתן לבקש מהמחשב לבצע רק בדיקה או רק הכנסה. הפקודה "הכנס לתא זיכרון" היא פקודה נפרדת בעלת ייצוג בינארי שונה. אטומיות הפקודה משמעה שהמעבד יודע לבצע את הפקודה ברמת החומרה, כלומר, הרכיב עצמו מקבל את הפקודה ומאותו רגע מבצע אותה לבדו. הדבר שונה מהמקרה שבו צריך לקבל פקודה אחת להשוואה ופקודה אחרת להכנסה, משום שבמקרה שכזה היה צריך לגשת לזיכרון פעמים רבות יותר, וגישה לזיכרון היא תהליך איטי בהרבה מאשר ביצוע ברמת החומרה.
לכל מעבד אוסף פקודות שאותן הוא מבין. אוסף זה נקרא "שפת המכונה" של אותו מעבד. כפי שנאמר קודם, גישה לזיכרון לשם קבלת פקודה היא תהליך איטי יחסית ולכן פקודה אחת שמכילה בתוכה שתי פעולות תתבצע מהר יותר מאשר קבלת כל אחת מהפעולות בתור פקודה נפרדת. מצד שני, יקר יותר ומסורבל יותר לבנות מעבד המבין סוגים רבים של פקודות שונות. פרט לכך, הוספת פקודת ענק מקטינה את יעילותן של פקודות קטנות יותר. כל יצרן מעבדים בוחר לעצמו היכן עובר הגבול ועד כמה מורכבות תהיינה פקודותיו. למרות זאת, ישנן פקודות רבות שניתן למוצאן בנוסחים שונים בכל מעבד כמעט, הן בשל הצורך בהן והן בשל נסיבות היסטוריות: התרגלות ציבור המתכנתים לפקודות אלה.
מחשבים גדולים יותר כמו מחשבי־העל, שרתי חברות וכדומה, נבדלים מהדגם לעיל בעיקר במספר מעבדיהם: במקום מעבד אחד הם מכילים מספר מעבדים. מחשבי־על מסוימים מחזיקים אף אלפי מעבדים.
מעבר למעבד ולזיכרון מכילים מחשבים רבים חומרה נוספת לשם פעולות ייחודיות הנדרשות על ידי מערכות ההפעלה. רכיבים אלה תורמים בעיקר לביצועים מהירים יותר ולאו דווקא מוסיפים למחשב יכולות נוספות. המחשב מבצע בצורה רציפה את הפקודות שניתנות לו, יכולות החישוב שלו גדולות מאלה של האדם פי כמה אך לא כאן מסתכם כוחו הרב. הרבה מהיכולות המיוחסות למחשב נובעות לאו דווקא מיכולותיו המכניות אלא מהאלגוריתמים שנכתבו במיוחד כדי לנצל יכולות אלה. כתיבת תוכניות מורכבות על סמך הפקודות הבסיסיות שהוצגו כאן, מהווה חלק אינטגרלי בפעולת המחשב.
בעבר מקובל היה לחלק מחשבים לפי גודלם ולפי עוצמת העיבוד שלהם: מיקרו מחשבים, מיני־מחשבים, מחשבים מרכזיים ומחשבי־על. טשטוש הגבולות בין הקטגוריות, החלפת מיני מחשבים ברשתות של מחשבים אישיים, והיעלמותו של המסוף הביאו לירידה בחשיבות שיטת המיון הזו, עד להפיכתה ללא־רלוונטית באמצע שנות ה־90 של המאה ה־20.
כיום מקובל למיין מחשבים למחשבים אישיים – מחשבים המשמשים אדם בודד ולשרתים – מחשבים המשמשים יותר מאדם אחד; בין שתי הקטגוריות מצויות תחנות עבודה, אשר לרוב משמשות אדם אחד, אך לעיתים משמשות מספר אנשים.
מחשבים אישיים משמשים לרוב משתמש יחיד. מחשבים אישיים קטנים הם טלפונים חכמים. עוצמת העיבוד והזיכרון איננה שונה בהרבה מאלה של מחשבים ניידים. מחשבים אלה נקראים "טלפונים" מסיבות היסטוריות, ומכיוון שחלק מהותי מהשימוש בהם הוא לצורכי תקשורת (שיחות טלפון, שליחת SMS, גלישה ברשת האינטרנט, שיחות צ'אט ושליטה אלחוטית ברכיבים אחרים).
מחשבים אישיים מעט גדולים יותר הם הטאבלטים, המשמשים בעיקר לצורכי גלישה באינטרנט ובידור.
המחשבים האישיים - לפטופים ומחשבים נייחים - הנפוצים בימינו הם בעיקר משני סוגים:
הן מחשבי PC והן מחשבי מקינטוש מיוצרים בשני גדלים: מחשבים ניידים (Notebook, Laptop), שבהם המחשב, המקלדת והצג ארוזים במארז קומפטי אחד, הנוח לניוד, ומחשבים נייחים (Desktop), המיועדים להצבה על שולחן העבודה (או לצדו).
לפטופים ומחשבים נייחים משמשים לעיתים קרובות יותר ממשתמש בודד, דבר המתבטא במערכות ההפעלה הנפוצות בהם, שכולן תומכות (כברירת מחדל) בריבוי משתמשים. זאת בניגוד למערכות ההפעלה הנפוצות בטלפונים חכמים.
תחנות העבודה ניצבות בין עולם המחשבים האישיים לבין עולם השרתים. לרוב הן משרתות משתמש יחיד, אך לעיתים הן משרתות מספר משתמשים בעת ובעונה אחת. הן חזקות ויקרות מן המחשבים האישיים, ומשמשות לרוב ביישומים מקצועיים שבהם יש צורך בעוצמת עיבוד רבה, כגון עיבודים גרפיים או תכנון וייצור בעזרת מחשב (CAD).
שרתים הם מחשבים המשמשים יותר ממשתמש אחד. הם עולים על המחשב האישי לפחות בהיבט אחד. כך, למשל, שרתי קבצים מכילים מערכת דיסקים אמינה, מהירה וגדולת־נפח במיוחד, ואילו שרתי יישומים מכילים מספר רב של מעבדים, התורמים ליכולת עיבוד גבוהה. נהוג למיין שרתים לשרתים קטנים, בינוניים (Mid-range) – אשר החליפו, למעשה, את המיני־מחשבים מן העבר, וגדולים.
המחשבים המרכזיים (Mainframe) הם תת־קבוצה של השרתים הגדולים. הם נבדלים מיתר השרתים הגדולים בהיבטים הבאים:
מחשבי העל הם תת־קבוצה של שרתים בינוניים ושרתים גדולים. הללו הם שרתים הבנויים במיוחד למשימה אחת – עוצמת חישוב גבוהה. כיום ישנה נטייה לבססם על רכיבי מדף, ולהחליף מעבדים ייעודיים ויקרים באוסף של מעבדים מסחריים זולים רבים (Intel Xeon, AMD EPYC) הפועלים במקביל.
מטרת קיומו של המחשב היא הרצת תוכניות המחשב. התוכניות הן המורות למחשב אילו פעולות לבצע - כדי לגרום למחשב לבצע פעולה כלשהי יש לכתוב תוכנית מתאימה שתורה למחשב לבצע פעולה זו. ללא תוכניות, המחשב הוא קליפה ריקה.
תוכנה היא השם הכללי לכל תוכניות המחשב, בניגוד לחומרה שהיא מכלול רכיביו הפיזיים של המחשב. תוכנית מחשב היא רשימת פקודות שעל המחשב לבצע. גודל התוכנית יכול לנוע בין תוכנית המורכבת ממספר קטן של פקודות פשוטות לתוכנית המורכבת ממספר רב של פקודות מסובכות ואולי אף טבלאות של מידע. בתוכניות מחשב מורכבות יש מיליוני פקודות, רבות מהן מבוצעות מספר רב מאוד של פעמים במהלך ריצת התוכנית. לשם המחשה, מחשב אישי ממוצע שיוצר ב־2005 יכול להריץ כ־3 מיליארד פקודות בשנייה, וזמן ריצתה של תוכנית עלול לקחת בין מספר שניות למספר דקות ולעיתים אף יותר מכך. כלומר, הרצתה של תוכנית מסוימת כרוכה בביצוען של מיליארדי פקודות על ידי המחשב. זהו מקור כוחו הרב של המחשב: הוא אינו נובע מיכולתו של המחשב לבצע פקודות מסובכות, אלא דווקא מיכולתו לבצע ברצף מיליוני, ולעיתים אף מיליארדי, פקודות פשוטות. סידורן של פקודות פשוטות אלה לכדי תוכנית הוא אחריותם של אנשי מקצוע - המתכנתים.
פקודות התוכנית, ההנחיות הניתנות למחשב, כתובות בשפת מכונה, שפה שאותה מבין המחשב, או ליתר דיוק, מעבד המחשב, ישירות וללא צורך בשום תרגום או שלב ביניים. שפת המכונה היא הרכיב המקשר בין עולם החומרה לעולם התוכנה. המעבד קורא את הפקודה ומבצע את הדרוש. בשל היות שפת המכונה לא ברורה ומסורבלת לקריאה מצדו של אדם, דורשת הכתיבה בה זמן רב והיא מועדת לשגיאות. לכן, בפועל, מתכנתים אינם כותבים בשפת מכונה פרט למקרים חריגים ביותר. כתחליף, נעשה שימוש בשפות תכנות, הללו מאפשרות למתכנת לתאר את הפעולות שברצונו להורות למחשב לבצע, בשפה קרובה יותר לשפה טבעית, שפת בני־אדם, ולאחר־מכן מתרגמות את שכתב לשפת מכונה, תוך שימוש במהדר או מפרש.
מידת קרבתן של שפות התכנות לשפת המכונה או לשפה טבעית, משתנה. ישנן שפות סף (Assembly) הקרובות מאוד לשפת מכונה, ומרבית פקודותיהן הן ייצוג באנגלית של הפקודות התואמות בשפת מכונה. מאידך, ישנן שפות עיליות, שהן שפות המבוססות על עקרונות מופשטים שאינם בהכרח חופפים לפעולות הבסיסיות שהמחשב מסוגל לבצע, שפת פרולוג היא דוגמה לשפה מסוג זה. מרבית שפות התכנות הן שפות עיליות, המסתמכות על פעולות המחשב הנפוצות הנכונות למרבית המחשבים, אך מקיימות הפשטה שלהן למושגים רחבים. לדוגמה, המונח המופשט "לולאה" המסתמך על היכולת המובנית ברוב מוחלט של המחשבים לקפוץ לקטעי קוד שונים בהתקיים תנאי מסוים. שפת C אינה שפת סף, אך רבים, כולל יוצריה, רואים בה "שפה נמוכה" ולא שפה עילית, היא נמצאת בתחום שבין שפת הסף לשפות העיליות.
עם המעבר משימוש בלעדי במחשב למטרות קטנות ומוגדרות של מומחים בתחום, לשימוש בתעשייה ולאחר־מכן במגזר הפרטי, לשם מטרות שונות ומגוונות, עלו מספר צרכים חדשים. משהופקדו המחשבים על ביצוען של מטלות רבות ושונות, היה צורך בתוכנה שתתזמן ותריץ באופן ממוכן את התוכניות השונות. בנוסף, בעת שהמחשב הוצא מידי המומחים לידי ההמון, לא ניתן היה עוד לסמוך על מקצועיותו של מפעיל המחשב והתעורר צורך בתוכנה שתגן על המחשב ורכיביו מפני טעויות שעלול המשתמש לעשות. התשובה לבעיות אלה ואחרות הייתה מערכת ההפעלה.
ניתן לראות במערכת ההפעלה כתוכנה הראשית של המחשב. זוהי התוכנה שאותה רואים המשתמשים כאשר המחשב מופעל ורבים טועים לחשוב שהיא חלק מן המחשב עצמו. מערכת ההפעלה אחראית על תיאום בין המשתמש, התוכניות והחומרה.
תחילה היה השימוש במערכות ההפעלה בעיקר לצורך תזמון והרצה של מטלות ללא צורך בהתערבות אדם, אך עם עלייתו של רעיון המקביליות, שלפיו יכולות מספר תוכניות לרוץ בו־זמנית על גבי אותו המחשב, ואף מספר משתמשים יכולים להשתמש במקביל באותו המחשב, הפכה מערכת ההפעלה לגורם הכרחי ומשמעותי. תפקיד מערכת ההפעלה הוא לתאם בין התוכניות השונות והמשתמשים השונים, שאינם מודעים לעובדה שאינם היחידים הפועלים במחשב. מטרתה לדאוג שכל התוכניות יתבצעו באופן תקין ולא יפגמו האחת בשנייה. מערכת ההפעלה מאפשרת לכל תוכנית לפעול כאילו היא היחידה הרצה בזמן נתון, ודואגת שלא תיווצר התנגשות בין התוכניות השונות. תפקיד זה הוא משמעותי ביותר משום שהוא מאפשר למספר תוכנות לרוץ במקביל וחוסך זמן רב.
מערכת ההפעלה אחראית גם על התיאום בין תוכנה לחומרה. הדבר נותן לה להגן, מחד, על החומרה מפני שימוש לא נכון ומאפשר, מצד שני, יצירתו של ממשק תכנות יישומים אחיד שאינו דורש מכל תוכנית לדעת מהם פרטי המערכת. מספיק שמערכת ההפעלה תדע מהם ההתקנים המצויים במחשב וכל שאר התוכניות יכולות לבקש ממנה לבצע את הפעולות הנחוצות. משום שמערכת ההפעלה יועדה בדיוק למשימה זו, סביר להניח שהדרך שבה תבצע את אותן פעולות תהיה יעילה יותר. דוגמה להתקן שהגישה אליו עוברת דרך מערכת ההפעלה הוא הכונן הקשיח. מסיבה זו, יכולה מערכת ההפעלה לשמש גם כמנגנון הגנה שאינו מאפשר למשתמשים לבדוק קבצים שאינם מורשים לבדוק. כך מתאפשר שימוש באותו המחשב על ידי מספר משתמשים כשכל משתמש אינו מעוניין ששאר המשתמשים יוכלו לראות או לשנות את המידע שברשותו.
מחשבים הם חלק בלתי נפרד מהחיים המודרניים. עם הירידה במחירי המחשבים והקטנת גודלם, התפשט השימוש במחשבים לתחומים רבים, עד כי בחלקם כבר לא ניתן להסתדר בלעדיהם.
תחילה היה השימוש המרכזי במחשבים בחישובים מדעיים, לרוב לשם מטרות צבאיות. המחשב אניאק תוכנן במקור לחישוב טבלאות ירי־בליסטי עבור ארטילריה, אך השתמשו בו גם לחישוב צפיפויות לאורך חתך של נייטרונים כעזר בתכנון פצצת המימן, דבר שהאיץ בצורה משמעותית את פיתוחה (כיום גם נעשה שימוש רב במחשבי על למטרות הדמיה של נשק גרעיני). מחשבים רבים שימשו לפריצת צפנים, למשל המחשב האלקטרוני הניתן־לתכנות הראשון, קולוסוס, נבנה ב־1943, במהלך מלחמת העולם השנייה, בדיוק למטרה זו. תוך זמן קצר פרץ המחשב את תחום החישובים המדעיים והשימושים הצבאיים וחדר לתחומים אחרים.
השימוש במחשבים מתקדמים יותר, שתוכננו על פי מכונת פון נוימן, התמקד במערכות מידע לצרכים עסקיים. המחשב ליאו (LEO), שתוכנן בצורה זו ונבנה על ידי ג' ליונס ושות', בבריטניה, שימש לניהול מלאי ולמטרות נוספות, שלוש שנים לפני שבנתה יבמ את המחשב המסחרי הראשון הבנוי לפי מודל פון נוימן. עם הירידה במחירי המחשב והפיכתם של המחשבים לקטנים יותר התפשט השימוש בהם לארגונים קטנים יותר ויותר. עם המצאתו של המיקרו־מעבד בשנות השבעים, התאפשר ייצורם של מחשבים זולים יחסית, ובשנות השמונים הפך המחשב האישי לנפוץ מאוד והשתמשו בו לשם מטרות שונות כמו ניהול מלאי, כתיבת מסמכים והדפסתם, חיזוי מזג האוויר ומטלות הכרוכות בשימוש בגיליונות אלקטרוניים.
הירידה במחירי המחשבים הובילה לשימוש נרחב בהם בתחומים רבים, וברוב התחומים האלה תפס המחשב חלק כה נכבד עד כדי כך שקשה כיום לתאר כיצד יראה התחום ללא שימוש במחשבים. דוגמה לאחד מתחומים אלה הוא תחום האמנויות. מוזיקה, תמונות וסרטי וידאו נוצרים, נצפים ונערכים כעת באופן כמעט גורף על ידי מחשבים. תחום נוסף שהמחשבים פרצו אליו הוא תחום הבידור: תעשיית משחקי המחשב היא תעשייה נרחבת ופורחת המגלגלת סכומי כסף גדולים מדי שנה. כמו כן עם התפתחות ה־E-learning נעשה שימוש הולך וגובר בלמידה משולבת מחשב לצורכי הוראה במסגרת החינוך הפורמלי.
הקטנת המחשבים, יחד עם הירידה במחירם, אפשרה להשתמש בהם לשליטה על מכשירים מכניים. התקדמות משמעותית בתחום נעשתה בעת הניסיון לבנות מחשב קטן מספיק כדי להדריך את החללית אפולו. המפורסמים ביותר מבין המכשירים נשלטי המחשב הם כנראה הרובוטים, מכונות, לעיתים בעלות חזות אנושית פחות או יותר, ובעלי יכולות אנושיות מסוימות. רובוטים נפוצים מאוד בתחום הייצור ההמוני, שם הם מחליפים בני אדם בתפקידים מסוימים. רובוטים רב־תכליתיים דמויי אדם נותרו בגדר מדע בדיוני והשימוש בהם הוא לרוב כצעצועים או בתחום המחקר, בייחוד בתחום הבינה המלאכותית, תחום שעוסק בניסיון להעניק למחשבים יכולות שכרגע נחשבות ליכולותיו הבלעדיות של האדם. בתחום זה חלה התפתחות רבה לאורך השנים ומחשבים יכולים כבר לבצע, ברמה מסוימת, מטלות שבעבר נחשבו אנושיות בלבד כמו "לקרוא" כתב יד, לשחק שחמט, או לחשב אינטגרל בצורה סמלית (בניגוד לצורה חישובית). עם זאת, פיתוחו של מחשב המראה אינטליגנציה הדומה לזו של אדם נראה מטרה רחוקה.
למרות פרסומם של הרובוטים, הם מהווים אחוז קטן מאוד מבין המכשירים נשלטי המחשב. דוגמאות למכשירים ולכלים שונים שמשובצים בהם מחשבים הם טלוויזיות, מקררים, מכוניות ומטוסים. מערכת שבה משובץ מחשב נקראת מערכת משובצת מחשב וישנם מתכנתים המתמחים בתכנות למערכות אלו.
אחד משימושיו המרכזיים של המחשב בתחילת המאה ה־21 הוא בתחום התקשורת. הופעתם של המחשב ושל רשת האינטרנט חוללה מהפכה של ממש בתחום זה ובתחומים רבים אחרים ושינתה את התפישות שהיו נהוגות בתחומים אלו עד אז מן הקצה אל הקצה.
כבר בשנות החמישים השתמש צבא ארצות הברית במחשבים לשם תיאום מידע בין מקומות שונים. בשנות השבעים החלו מהנדסי מחשבים במכוני מחקר בארצות הברית לקשר בין מחשביהם באמצעות טכנולוגיות תקשורת. ניסיון זה לקשר בין מחשבים מומן על ידי סוכנות במשרד ההגנה האמריקאי בשם ARPA. רשת המחשבים שנוצרה נקראה לכן ARPANet. עם השנים התפתחו הטכנולוגיות שבהן השתמשו ב־ARPANet השימוש בהן גבר, ולבסוף פרצה הרשת את גבולות השימוש האקדמי והצבאי וכונתה אינטרנט. הופעתה של הרשת גרמה להגדרה מחדש של טבעו וגבולותיו של המחשב. ג'ון גייג' וביל ג'וי מחברת סאן מיקרוסיסטמס הגדילו ואמרו כי "הרשת היא המחשב".
מאז פריצתו של האינטרנט הותאמו מערכות ההפעלה ותוכנות שונות כדי לאפשר גישה ממחשב אחד למחשב אחר ברשת, כולל להתקני הקלט־פלט שלו, להתקנים אחרים ולמידע המאוחסן עליו, כאילו היה המחשב השני חלק מהמחשב הראשון. תחילה היו אמצעים אלה נחלתם הבלעדית של מי שעבדו בסביבות ההיי־טק, אך בשנות התשעים, עם התפשטות הדואר האלקטרוני, ה־World Wide Web והפיתוח של טכנולוגיות רשת מהירות אך זולות כמו Ethernet ו־ADSL, הפך השימוש באינטרנט לנפוץ. מספרם של המחשבים המחוברים לאינטרנט גדל בהתמדה. גם טלפונים ניידים וקונסולות משחקי וידאו מסוימות מסוגלים להתחבר לאינטרנט תוך שימוש ברשתות אלחוטיות.
האינטרנט שינה לחלוטין תפישות שהיו נהוגות עד הופעתו, משום שהוא מאפשר תקשורת שאינה תלויה במקום המשתמש וכן מאפשר העברת מידע ואחסונו לשם גישה בכל זמן, מכל מקום. יצירתה של ויקיפדיה, אנציקלופדיה חינמית וחופשית לכל, שמגבלות של גודל בשל צורכי אחסון או הדפסה אינם חלים עליה, היא דוגמה מצוינת לכך.
בתחום החינוך האינטרנט מאפשר למידה מקוונת, אשר יכולה להתבצע במסגרת הכיתה או כלמידה מרחוק.
המחשב התקדם רבות מאז המצאתו מבחינות רבות ובהן מהירות העיבוד שלו ונפח הזיכרון שלו, אך עדיין אינו מסוגל לבצע מטלות רבות. לרוב נובעת אי־יכולתו של המחשב מכך שזמן פתרון הבעיה, בדרכים המוכרות לנו, גדל מהר מאוד, באופן מעריכי, יחסית לגודל הבעיה. לשם פתרון בעיות מסוג זה, הוצעו מספר דגמים חליפיים לדגם המחשב המוכר לנו כיום.
מחשב שאינו מתבסס על ביטים חשמליים נקרא Unconventional computer(אנ'). אחד מהראשונים האלו תוכנן להיות מחשב מכני שנקרא מנוע הפרשים.
סוג אחד של דגמים שהוצג שואב את רעיונותיו מעולם הביולוגיה והביולוגיה המולקולרית. חישוב באמצעות DNA, למשל, מציע לנצל את העובדה כי תאים מתחלקים בצורה מעריכית לשם פתרון בעיות על ידי חישוב מקבילי מסיבי. נכון להיום קיימת כמות מרבית מסוימת של DNA בה ניתן לטפל, דבר המגביל את המערכת.
דגם נוסף אף הוא נלקח מעולם הביולוגיה הוא רשת עצבית מלאכותית שבדומה לפעילות העצבית של המוח, מורכב מהרבה יחידות עיבוד בסיסיות שמתקשרות באופן מקבילי עם אלפי יחידות אחרות. דגם זה קשור לתחום בינה מלאכותית.
סוג אחר של דגמים שהוצג מגיע מעולם הפיזיקה ובייחוד ממכניקת הקוונטים. הרעיון הוא לבנות מחשב שהמידע בו מיוצג על ידי שימוש במאפיינים הקוונטיים של חלקיקים והפעולות על מידע זה מבוצעות בהסתמך על תופעות ממכניקת הקוונטים, כמו סופרפוזיציה קוונטית או שזירה קוונטית. מחשב שכזה, אם ייבנה, אמור להיות מהיר יותר בצורה משמעותית ממחשב רגיל בפתרון בעיות מסוימות. בעיות אלו באות בייחוד מתחום ההצפנה ומתחום ההדמיות הקשורות למכניקת קוונטים, וקיים עניין רב לפתור אותן.
קיימים דגמים נוספים שמקור תכנונם בתחומים המוזכרים לעיל ולעיתים גם מתחומים אחרים. מרבית הדגמים החליפיים מצויים עדיין בשלב המחקר הראשוני ונראה שהשימוש בהם יתבצע רק למטרת פתרון אותן בעיות שבהן נכשלים המחשבים של ימינו.
במקצועות רבים משתמשים כיום במחשבים והשימוש שלהם עולה בהתמדה במקצועות שונים. היכולת לתפעל מחשב היא דרישת קדם בסיסית למקומות עבודה רבים. קיימים מספר מקצועות ותחומי לימוד אקדמיים המתמקדים במחשב עצמו, הן מבחינת חומרה, הן מבחינת תוכנה והן מבחינת השימוש במחשב. המינוח הקשור למקצועות ותחומים אלה נוטה להשתנות ומדי פעם אף מתווספים מקצועות ותחומים חדשים.[8][9][10] כמה תחומים הם גדולים ומוכרים הקיימים מזה זמן מה ונראה שלא יעלמו בעתיד הקרוב:
שלוש אגודות מקצועיות מרכזיות המוקדשות למחשבים:
בישראל פועלים הלשכה לטכנולוגיות המידע בישראל[14] ואיגוד האינטרנט הישראלי.[15]
עיינו גם בפורטל: | |||
---|---|---|---|
פורטל תוכנה |
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.