התקנת Cygwin - ברוכים הבאים לדף הבית של צבי מלמד

‫מדריך התקנה סביבת עבודה ‪ Cygwin + Bochs + XV6‬ב ‪Windows‬‬
‫מבוא‬
‫מסמך זה מכיל הוראות התקנה שדרושות לביצוע התרגילים בקורס מערכות הפעלה במכללה האקדמית תל‪-‬אביב‬
‫יפו‪ .‬הוראות התקנה אלו כוללות את המרכיבים הבאים‪:‬‬
‫א‪.‬‬
‫ב‪.‬‬
‫ג‪.‬‬
‫ד‪.‬‬
‫ה‪.‬‬
‫‪ – cygwin‬זהו אוסף של כלים‪ ,‬שבאופן מסורתי פותחו לסביבת ‪ Linux/Unix‬ועברו "הסבה" )‪(porting‬‬
‫לרוץ על ‪ .Windows‬הסביבה הזאת דרושה בכדי לקמפל את ‪ XV6‬וכמו כן היא מספקת ‪ SHELL‬ואוסף כלים‬
‫שימושיים לעבודה במוד של ‪ Command-Line‬בקורס‪.‬‬
‫‪ – Bochs‬זהו האמולטור הרשמי של הקורס‪ .‬התכנה רצה על ‪ WINDOWS‬ומדמה "מכונה ערומה" של‬
‫ארכיטקטורת ‪ .X86‬על מכונה זאת נטענת מערכת ההפעלה ‪( xv6‬עקרונית יכולנו לטעון מערכת אחרת)‪\.‬‬
‫‪ – qemu‬זהו אמולטור אחר‪ .‬יש מי שמעדיפים להשתמש בו מסיבות של מהירות ריצה או נוחיות‪/‬ממשק‪.‬‬
‫פרט לכך אין הבדל מאוד עקרוני‪.‬‬
‫‪ – xv6‬תיקייה זאת מכילה את מערכת ההפעלה‪.‬‬
‫‪ – Linux-Ubuntu-VMWARE‬אתם צריכים שתהיה לכם מערכת לינוקס‪ Ubuntu .‬היא אחת ההפצות‬
‫המקובלות של ליונוקס‪ .‬הדרך לעשות זאת היא להתקין תכנת אמולטור שנקראת ‪,VMWare-Player‬‬
‫ועליה (או מתוכה) בוחרים את ההפצה של ‪ .UBUNTU‬זה מתואר במסמך נפרד ‪-‬‬
‫‪http://tzvimelamed.com/lab/files/vmware-linux-Installation-guide.docx‬‬
‫הקדמה‪:‬‬
‫בשביל להתקין את סביבת העבודה צריך את הקבצים של ‪ cygwin‬וקובץ ההתקנה של ‪ ,bochs‬אני‬
‫השתמשתי בקובץ הבא‪ http://www2.mta.ac.il/qume-bochs-gcc%20enviermaent.rar :‬מכיוון שהוא‬
‫מכיל גם התקנה של ‪ cygwin‬וגם את קובץ ההתקנה של ‪ bochs‬אם השגת את הקבצים ממקור אחר או‬
‫שהתקנת כבר על המחשב חלק מהדברים אין צורך להוריד מחדש את כל הקבצים‪.‬‬
‫לאחר שהורדת את הקובץ‪ ,‬יש לעשות חילוץ (‪ )Extract‬לקובץ לאיזה תיקיה שמתחשק לך‪ ,‬לצורך המדריך‬
‫אני אניח שחילצת את הקבצים לתיקיה ‪ ,C:\OS_Lab_Install‬לצורך כך אפשר להשתמש בתוכנות כגון‪:‬‬
‫‪ 7zip ,WinRAR‬או כל תוכנה שאתם מעדיפים שיודעת להתמודד עם קבצי ‪.RAR‬‬
‫התקנת ‪:Cygwin‬‬
‫‪‬‬
‫‪‬‬
‫בתיקייה ‪ C:\OS_LAB_Install‬ישנו קובץ בשם ‪ cygwin.rar‬יש לעשות חילוץ לקובץ זה לכונן \‪ C:‬כך שתיווצר לך‬
‫התיקייה ‪.C:\cygwin‬‬
‫אם ברצונך להריץ פקודות כגון‪ ... ,ls, make, grep :‬מחוץ לסביבת העבודה של ‪( cygwin‬למשל בחלון ‪CMD‬‬
‫רגיל) יש להוסיף למשתנה המערכת ‪ PATH‬את הערך הבא‪:‬‬
‫‪;C:\cygwin\bin;C:\cygwin\usr\local\bin‬‬
‫תאריך עדכון אחרון‪3/3/2015 :‬‬
‫‪‬‬
‫הערה‪ :‬בסביבת העבודה ‪ cygwin‬הערך של ‪ PATH‬הזה נוצר באופן אוטומטי ולכן אין צורך להוסיף ערך זה‬
‫אם הכוונה היא לעבוד רק בסביבת ‪ cygwin‬בלבד‪.‬‬
‫התקנת ‪ ,WGET‬שלב אופציונלי שיכול להקל על פתירת התרגילים‪,‬‬
‫בסביבת ה ‪ cygwin‬שהתקנת חסרה התוכנית ‪ wget‬שמאפשרת למשתמשים להוריד קבצים ישירות מתוך‬
‫הסביבה ללא שימוש בדפדפן‪ .‬לצורך הוספת כלי זה לסביבה יש להוריד את הקובץ הבא‪:‬‬
‫‪ http://users.ugent.be/~bpuype/cgi-bin/fetch.pl?dl=wget/wget.exe‬ולשים אותו בתיקייה‬
‫‪.c:\cygwin\bin‬‬
‫כמו כן‪ ,‬קיים מסמך נפרד שמסביר קצת יותר על ‪ – WGET‬למשל "מה זה ‪ WGET‬ולמה זה טוב" – בלינק‬
‫‪ . http://tzvimelamed.com/lab/how-to/how-to-wget.html‬כמו כן‪ ,‬אם יותר נוח לכם‪ .‬קיים עותק של‬
‫‪ WGET‬באתר הקורס‪. http://tzvimelamed.com/lab/tar/wget.tar :‬‬
‫בדיקה שהמערכת עובדת‪:‬‬
‫היכנסו לתיקיה ‪ c:\cygwin‬והריצו מתוכה את הקובץ ‪ ,cygwin.bat‬ייפתח לכם חלון דומה לחלון למעלה‬
‫בחלון שנפתח יש להקליד את הפקודה הבאה‪:‬‬
‫‪ls /‬‬
‫אם לאחר הרצת הפקודה קיבלת את תוכן התיקייה ‪ c:\cygwin‬אז המערכת מותקנת כמו שצריך‪.‬‬
‫כדאי שתנסו מספר פקודות בסיסיות נוספות כמו‬
‫‪date‬‬
‫‪pwd‬‬
‫‪echo hello‬‬
‫תאריך עדכון אחרון‪3/3/2015 :‬‬
‫התקנת ‪.bashrc, .aliasrc‬‬
‫שני הקבצים האלו‪ ,‬שהשם שלהם מתחיל בנקודה ‪ .bashrc, .aliasrc -‬הם קבצים שתכנת ‪ BASH‬שרצה בחלון‬
‫‪ CIGWIN‬שפתחנו‪ ,‬קוראת בתחילה העבודה (למעשה היא קוראת את ‪ .bahsrc‬והקובץ הזה עושה ‪ include‬לקובץ‬
‫‪ .).aliasrc‬הם מכילים הגדרות וקיצורים שונים שעשויים להיות מאוד שימושיים בהמשך המעבדה‪.‬‬
‫בכדי להתקין אותם‪:‬‬
‫א‪.‬‬
‫ב‪.‬‬
‫ג‪.‬‬
‫ד‪.‬‬
‫ה‪.‬‬
‫הורידו את הקובץ – הלינק הבא‪http://tzvimelamed.com/lab/files/bashrc.tar :‬‬
‫וודאו שאתם מעתיקים אותו לתיקיית הבית שלכם ב‪ .CYGWIN -‬בד"כ זאת התקייה‪:‬‬
‫>‪c:Cygwin\home\<user-name‬‬
‫מתוך החלון ‪ Cygwin/bash‬הריצו את הפקודה ‪tar –xf bashrc.tar‬‬
‫וודאו שהקבצים נוצרו‪ ,‬על ידי הרצת הפקודה *]‪ls –la .[ba‬‬
‫כמו כן‪ ,‬אם משהו לא עובד‪ ...‬קראו את הלינק הקצר הבא‪http://tzvimelamed.com/lab/how- :‬‬
‫‪to/how-to-bashrc.html‬‬
‫התקנת ‪:bochs‬‬
‫‪‬‬
‫‪‬‬
‫בתיקייה ‪ C:\OS_LAB_Install‬ישנו קובץ התקנה של ‪( bochs‬הקובץ נקרא ‪ )Bochs-2.6.2.exe‬יש להריצו‬
‫ולהתקין את ה ‪ ,Bochs‬יש לזכור לאיזה תיקייה מתקינים את ה ‪ ,bochs‬ברירת המחדל היא ‪C:\Program Files‬‬
‫‪( (x86)\Bochs-2.6.2‬למערכות עם מעבד ‪ )X64‬או ‪( C:\Program Files\Bochs-2.6.2‬למערכות עם מעבד ‪.)X86‬‬
‫הוספת ‪ bochs‬ל ‪:cygwin‬‬
‫יש לפתוח את הסביבה של ‪ ,cygwin‬ולרשום את הפקודה הבאה‪:‬‬
‫‪cp "/cygdrive/c/Program Files (x86)/Bochs-2.6.2/"b*.exe /usr/local/bin/‬‬
‫‪‬‬
‫כאשר יש להחליף את ‪ c/Program Files (x86)/Bochs-2.6.2/‬בתיקייה בה התקנת את ‪.bochs‬‬
‫הערה‪ :‬משתנה מערכת ‪ BXSHARE‬מצביע לתיקייה המכילה קבצי קונפיגורציה עבור ה ‪ bochs‬למשל באיזה‬
‫‪ BIOS‬להשתמש‪ ,‬איך לדמות את כרטיס המסך‪ ,‬מיפויי מקשים וכו'‪.‬‬
‫אם משתנה המערכת הזה לא קיים ה ‪ bochs‬מחפש את הקבצים האלו בתיקייה בה הוא מותקן ולכן נכון‬
‫לעכשיו לא מצאתי סיבה להגדיר את משתנה המערכת הזה‪ ,‬אם הגדרת את משתנה הזה אזי יש שתי‬
‫אפשרויות‪:‬‬
‫‪ .1‬למחוק את ההגדרה של משתנה מערכת זה כדי שה ‪ bochs‬יחפש בתיקייה ההתקנה שלו‬
‫‪ .2‬להריץ את הפקודות הבאות בתוך הסביבה של ‪ cygwin‬כדי להעתיק את הקבצים הרלוונטיים לתיקיה‬
‫שאליה המשתנה מצביע‪:‬‬
‫‪mkdir $BXSHARE‬‬
‫‪cp "/cygdrive/c/Program Files (x86)/Bochs-2.6.2/"*BIOS* $BXSHARE‬‬
‫‪cp -r "/cygdrive/c/Program Files (x86)/Bochs-2.6.2/keymaps" $BXSHARE‬‬
‫כאשר יש להחליף את ‪ c/Program Files (x86)/Bochs-2.6.2/‬בתיקיה שבה התקנת את‬
‫ה‪.bochs -‬‬
‫תאריך עדכון אחרון‪3/3/2015 :‬‬
‫הרצת ‪:XV6‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫יש לפתוח את סביבת העבודה של ‪.cygwin‬‬
‫להוריד את הקוד של ‪ XV6-rev7‬ע"י הרצת הפקודה הבאה‪:‬‬
‫‪wget http://tzvimelamed.com/lab/tar/xv6-rev7.tar‬‬
‫לחלץ את ‪ XV6‬ע"י הרצת הפקודה הבאה‪:‬‬
‫‪tar –xf xv6-rev7.tar‬‬
‫‪‬‬
‫לקמפל את ‪ XV6‬ע"י הרצת ה ‪ Makefile‬בעזרת הפקודות הבאות‪:‬‬
‫‪cd xv6-rev7‬‬
‫‪make clean‬‬
‫‪make‬‬
‫‪‬‬
‫להריץ את ‪ bochs‬ע"י הפקודה הבאה‪ ,bochs –q :‬ואם הכל עובר בהצלחה אמור להיפתח חלון‬
‫דומה לחלון הבא‪:‬‬
‫‪‬‬
‫הערה‪ :‬תלוי בגירסה של ה ‪ BOCHS‬שמותקנת‪ ..‬יכול להיות שה ‪ BOCHS‬לא עולה מיד לאחר‬
‫הפקודה ‪ , bochs –q‬כלומר נפתח החלון השחור‪ ,‬אבל שום דבר לא מתקדם‪ ...‬במקרה כזה‪,‬‬
‫צריך לחזור לחלון שבו הרצת את הפקודה ‪ bochs –q‬ולהקיש את התו ‪( c‬קיצור של ‪)continue‬‬
‫ולאחריו ‪.ENTER‬‬
‫סיכום‪:‬‬
‫מקווה שמדריך זה עזר לך להתקין את סביבת העבודה בצורה חסרת תקלות‪.‬‬
‫תאריך עדכון אחרון‪3/3/2015 :‬‬
‫תודה לאחד התלמידים במחזור חורף תשע"ה שלקח יוזמה לכתוב את המדריך בהתבסס על ניסיונו וניסיונים של‬
‫תלמידים אחרים‪ .‬הוא מעדיף שלא אפרסם את שמו‪ ...‬אז קרדיט ל"סטודנט האלמוני"‪.‬‬
‫אם יש הערות‪ ,‬תיקונים‪ ,‬בעיות במדריך ‪ -‬שילחו לי – צבי מלמד ‪ , -‬בכדי שאוכל לשפר אותו‪.‬‬
‫בברכה‬
‫צבי מלמד ‪ +‬הסטודנט האלמוני‬
‫תאריך עדכון אחרון‪3/3/2015 :‬‬