פיתוח מערכות הפעלה נכתב ע"י עידן פסט - חלק ב' הקדמה מה עשינו בחלק הקודם? בפרק הקודם בנינו מערכת הפעלה בסיסית ביותר - הקוד רץ ב- Mode Real ומשתמש בפסיק

גודל: px
התחל להופיע מהדף:

Download "פיתוח מערכות הפעלה נכתב ע"י עידן פסט - חלק ב' הקדמה מה עשינו בחלק הקודם? בפרק הקודם בנינו מערכת הפעלה בסיסית ביותר - הקוד רץ ב- Mode Real ומשתמש בפסיק"

תמליל

1 פיתוח מערכות הפעלה נכתב ע"י עידן פסט - חלק ב' הקדמה מה עשינו בחלק הקודם? בפרק הקודם בנינו מערכת הפעלה בסיסית ביותר - הקוד רץ ב- Mode Real ומשתמש בפסיקות של ה- בכדי להדפיס מחרוזות למסך. כמו כן, הקוד נכתב בשפת סף טהורה. מערכת הייתה זו הפעלה BIOS מוגבלת מאוד - היא יכלה לנצל רק Address Space קטן, גודל האוגרים היה 16 ביט, ולא יושמה שום הגנה על גישה לזיכרון. מה נעשה בפרק זה? בפרק זה נלמד על המעבר ל- Mode,Protected מצב בו הגישה זיכרון ולחומרה מבוקרת ומוגנת, ונממש,BIOS אותו. נלמד לכתוב למסך בעזרת כתיבה לזיכרון, בניגוד לשימוש בפסיקות ונכתוב את תחילת הגרעין )Kernel( שלנו בשפת C. גם בפרק זה מערכת ההפעלה עדיין תרוץ Live מדיסק, ולא תהיה כתיבה לדיסק הקשיח. מערכת הפעלה סימן IV לאור האורך של הקוד שאנו נשתמש בו בפרק זה, אנו נציג ונסביר רק קטעים נבחרים במאמר עצמו. את הקוד המלא ניתן למצוא בכתובת ה- URL הבא: boot.asm ראשית נביט בקובץ boot.asm שנמצא בתיקייה.src/boot קובץ זה משמש כ- Bootloader הדואג לסביבה מתאימה להרצת מערכת ההפעלה שלנו, ומרגע שארגן סביבה זו הוא מעביר את השליטה אל הקוד. יש 2

2 לציין שקוד זה נלקח מדוגמה ב- wiki.osdev.org, וקיימים בו מספר רב של שורות קוד שאינן נחוצות במקרה שלנו, אך השארתי אותם למען אלו שירצו להעמיק ולקרוא ב- wiki ויצטרכו את השורות הנוספות בכדי להריץ את קטעי הקוד שמופיעים שם. MODULEALIGN equ 1<<0 MEMINFO equ 1<<1 FLAGS equ MODULEALIGN MEMINFO MAGIC equ 0x1BADB002 CHECKSUM equ -(MAGIC + FLAGS).. align 4 dd MAGIC dd FLAGS dd CHECKSUM push eax push ebx call kmain MODULEALIGN equ 1<<0 MEMINFO equ 1<<1 FLAGS equ MODULEALIGN MEMINFO MAGIC equ 0x1BADB002 CHECKSUM equ -(MAGIC + FLAGS) align 4 dd MAGIC dd FLAGS dd CHECKSUM נביט על תחילת הקוד: קוד זה נועד לדאוג שמערכת ההפעלה שלנו תהיה,Multiboot Complaint כך ש- Bootloader שתומך בסטנדרט זה יוכל לטעון אותה. Mutliboot Specifications באופן היסטורי כל מערכת הפעלה השתמשה ב- Bootloader משלה. רכיב זה ידע לארגן סביבה נכונה ולטעון אך ורק את מערכת ההפעלה לשמה הוא נכתב. דבר זה יצר שתי בעיות, האחת, נעלמה האפשרויות למודולריות, ואיתה רעיון ה- DRY.)Don't Repeat Yourself( השניה, התקנת מספר מערכות הפעלה על מחשב אחד הייתה סיוט. כדי לפתור בעיה זו הומצא סטנדרט בשם Multiboot שמאפשר שני 1

3 דברים עיקריים: הסטנדרט מאפשר למשתמש להתקין כל Bootloader שתומך בסטנדרט, ו- Bootloader זה יוכל להפעיל כל מערכת הפעלה שתומכת בסטנדרט, כמו כן, הוא מאפשר להתקין מספר מערכות הפעלה על אותו מחשב ולבחור באיזו להשתמש לאחר ההפעלה. ה- Bootloader שתומך ה- Multiboot הנפוץ ביותר שקיים כיום נקרא,GRUB והוא חלק מפרויקט.GNU באופן טכני, כדי שמערכת ההפעלה שלנו תהיה Multiboot Complaint אנו חייבים לשים ב הבתים הראשונים של קובץ שלנו כותר מיוחד שדרכו ה- Bootloader יכול לדעת כיצד לטעון את מערכת ההפעלה שלנו. ניתן לקרוא את ההגדרות המלאות של הסטנדרט בכתובת: מה שרלוונטי למערכת ההפעלה שלנו הוא הפורמט שהכותר צריך להיות בו והסביבה בה מערכת ההפעלה הולכת להיטען אליה. הפורמט של הכותר אמור להיראות כך )יש לציין שכל הכותר צריך להיות מיושר ל- 32 ביט(: בתים שדה שימוש בבתים אלו יש לשים את מספר ה- MAGIC )סדרת בתים מזהה( של הכותר - 0x1BADB002 MAGIC 0-3 FLAGS CHECKSUM שדות נוספים סדרה של דגלים שקובעים אפשרויות שונות של טעינת מערכת ההפעלה. מספר, שכשאר נבצע סכום שלו עם ה- MAGIC וה- FLAGS נקבל 0. שדה זה נועד להצביע על טעויות בקריאת הכותר. אם FLAGS מסוימים מודלקים ויש לספק מידע נוסף בכדי שהם יוכלו לפעול הוא יופיע בטווח בתים זה

4 מעבר לכותר אנו יודעים מספר דברים על מצבי האוגרים אחרי טעינת מערכת ההפעלה. ראשית, אנו נהייה ב- Mode Protected שי) לציין שיש עוד כמה צעדים שיש לבצע בכדי שנוכל להיות ב- Protected Mode במובן המהותי של המילה(. שנית, אוגר ה- EBX ימולא במצביע לאזור הזיכרון שבו יושב מידע אודות המערכת Information(.)Multiboot שלישית, אוגר ה- EAX ימולא במספר MAGIC שיזהה שמערכת ההפעלה נטענה על ידי Bootloader שהינו תואם את סטנדרט ה- Multiboot.0x2BADB002 - MODULEALIGN equ 1<<0 MEMINFO equ 1<<1 FLAGS equ MODULEALIGN MEMINFO MAGIC equ 0x1BADB002 CHECKSUM equ -(MAGIC + FLAGS( נביט על חלקו הראשון של קטע קוד זה: הפקודה equ אחראית על הכרזת אזור בזיכרון שיכיל קבוע מסוים. ניתן להקביל אותה בשימושה להנחיית ה- define # ב- C. כל חמשת הקבועים שאנו מכריזים עליהם פה הולכים להיכתב לשדות שצריך בכותר ה-.Multiboot כפי שניתן לראות ה- MAGIC מכיל את מה שהוגדר בסטנדרט,)0x1BADB002( וה- וה- FLAGS. מכיל את המשלים לסכום ה- MAGIC CHECKSUM מה שמעניין בקטע קוד זה הוא שני הדגלים שנקבעים. אם נשים לב לשלושת שורות הקוד הראשונות נוכל לראות שכל יעוד שלהן הוא "להדליק" את שתי הסיביות הראשונות ב- FLAGS. הסיבית הראשונה אומרת ל- Bootloader לטעון את המודולים הנוספים למערכת ההפעלה שלנו על גבולות של עמודים )על עמודים נלמד בהמשך(. הסיבית השנייה אומרת ל- Bootloader לכלול ב- Information Multiboot מידע אודות הזיכרון של המחשב. כפי שציינתי בהתחלה, אין צורך אמיתי להדליק את הדגלים האלה, אך בשביל תאימות עם דוגמאות הקוד ב- Wiki, ובשביל ערכם הלימודי, הפקודות הושארו. align 4 32( 4 שורת קוד זו דואגת ליישור לפי בתים סיביות(, שזהו היישור שסטנדרט ה- Multiboot קובע שהכותר צריך להיות בו. dd MAGIC dd FLAGS dd CHECKSUM שלושת שורות קוד אלו דואגות לכתוב את כותר הMultiboot לתוך התוכנית. כך, כאשר ה- Bootloader ינסה לטעון את מערכת ההפעלה שלנו, הוא יחפש את הכותר ב הבתים הראשונים עד שהוא ימצא אותו. זו גם הסיבה שאנחנו כותבים את הכותר כמה שיותר קרוב לתחילת הקובץ )יקח פחות זמן עד שה- Bootloader ימצא אותו(. 4

5 push eax push ebx call kmain כעת, נביט בשורות הבאות: השורה האחרונה די ברורה - היא קוראת לתווית kmain )שבתחילת הקוד של boot.asm הוגדרה כתווית חיצונית(, שהיא הפונקציה הראשונה שנקראת במערכת ההפעלה שלנו. שתי השורות הראשונות דוחפות למחסנית את הערך שנמצא באוגר EAX )שכפי שהוגדר ב- Specifications,Multiboot אמור להכיל את הערך )0x2BADB002 ואת הערך שנמצא באוגר EBX )שאמור להכיל את המצביע לטבלת ה- Multiboot - )Calling Convention( הסיבה שאנו דוחפים ערכים אלה למחסנית היא מוסכמת הקריאה.)Information שהיא מוסכמת הקריאה הסטנדרטית ב- C.,cdecl כך, הפונקציה kmain תוכל לקבל את הערכים האלו כפרמטרים. כאשר אנו כותבים ב- C את הקוד, אנו לא שמים לב בכלל ל- cdecl, אך בגלל שאנו כותבים את boot.asm בשפת סף ורוצים שהקוד יתממש עם קוד C, יש לממש את cdecl בעצמנו. cdecl כאשר אנו קוראים לפונקציה בקוד שלנו, קורה הרבה יותר בשפת המכונה מאשר קפיצה לאזור זיכרון אחר. בכדי לממש דבר זה יש צורך במוסכמת קריאה - שיטה שבה הקוד יוכל לקרוא לפונקציה, להעביר פרמטרים, לקבל תוצאה, ולהצליח לאחזר את מצב האוגרים לקדמותו )לפני הקריאה לפונקציה(. המוסכמה בשפת ה- C היא שיטה בשם.cdecl המוסכמה )באופן פשוט. קיימים מקרי קצה שלא יתנהגו כך( היא כלהלן: הפרמטרים הנשלחים לפונקציה נדחפים למחסנית מימין לשמאל. הפונקציה נקראת. הפונקציה מחזירה את התוצאה באוגר.EAX הקורא לפונקציה מפנה את הפרמטרים מהמחסנית. מוסכמת קריאה זו מאפשרת פונקציות עם מספר פרמטרים משתנה, כדוגמת.printf כדוגמה, אם נקח את קטע הקוד הבא: int bla=foo(bar,foobar); 5

6 נראה כי פלט שפת הסף יראה בערך כך:.foobar דחוף את פרמטר.bar דחוף את פרמטר.foo קפוץ אל התווית.bla לתוך קרא את התוצאה מ- EAX הוצא מהמחסנית את הפרמטרים שדחפנו. kernel.c עתה נביט בקובץ kernel.c שנמצא בתיקייה.src/kernel קובץ זה מכיל את הגרעין שלנו - החלק החשוב ביותר במערכת ההפעלה. חלק זה מהווה, כפי שמצופה משמו, את הגרעין של פעולות מערכת ההפעלה - הוא מממש את כל שכבת ההפרדה בין החומרה לתוכנה. בקובץ זה נמצא את פונקציית kmain שהיא הפונקציה הראשית שלנו - אליה הקוד קופץ מ- boot.asm. int kmain(void *mbd,unsigned int magic){ if (magic!=0x2badb002){ return -1; return 0; ניתן לשים לב שהפונקציה kmain מקבלת שתי פרמטרים, כפי שהעברנו לה ב- boot.asm. בודקת שמספר ה- MAGIC הוא אכן כמצופה, ואם לא מחזירה סטטוס שגיאה. הפונקציה הרצה בניגוד לפרק הקודם, בפרק זה נממש שיטה יותר יעילה להפוך את הקוד שלנו למערכת הפעלה שניתן להריץ. אנו נכתוב קובץ MAKEFILE שיפשט לנו את תהליך ההידור, ההרכבה והקישור, ו- script ב- bash שיפעיל לנו אוטומטית את כל תהליך ההידור וההפעלה. MAKEFILE קובץ MAKEFILE הוא קובץ המנחה את תוכנת.make תוכנה זו היא כלי לביצוע אוטומציה של תהליך בניית התוכנה - ההידור והקישור. כאשר אנו קוראים לתוכנת make היא מחפשת קובץ בשם MAKEFILE )ללא שום סיומת( בתיקייה הנוכחית. קובץ MAKEFILE מורכב מאוסף של מטרות,)targets( שלכל אחת 6

7 מהן הנחייה לגביה אופן הטיפול באותה מטרה. לכל מטרה יכולה להיות גם רשימה של מטרות שהמטרה הנוכחית תלויה בהן. תחביר הקובץ נראה כך: target: dependencies commands בנוסף, קובץ MAKEFILE יכול להכיל הכרזה על משתנים באמצעות אופרטור השוואה )= או :=, ההבל בין השניים מחוץ לנושא המאמר(. בכדי לגשת לערך המשתנים האלה יש לעטוף אותם ב-$ וסוגריים, בקובץ $(shell CMD) MAKEFILE ניתן גם לבצע וקריאות לפקודות שירוצו ב- shell באמצעות התחביר: לדוגמה, אם יש לנו פרוייקט עם שני הקבצים a.c ו- b.c, כאשר a.c תלוי ב- b.c, אנו יכולים לכתוב את ה- MAKEFILE שלו באופן הבא: CC:=gcc LD:=ld all: a.c $ ) LD) a.c b.c a.c: b.c $ ) CC) a.c b.c: $ ) CC) b.c כאשר אנו נקרא לתוכנת make ולא נציין שום מטרה, make תבצע את מטרת ברירת המחדל שלה -.all בנוסף נהוג להוסיף מטרה נוספת בשם clean שדואגת למחוק את כל הקבצים ש- make יצר ואינם נחוצים. נביט על קובץ ה- MAKEFILE שלנו: CC:=i586-elf-gcc CFLAGS:=-c all: kernel.o boot.o $(LD) $(LDFLAGS) kernel.o boot.o kernel.o: $(CC) $(CFLAGS) kernel/kernel.c boot.o: kernel.o $(ASM) $(ASMFLAGS) -o boot.o boot/boot.asm clean: $(shell rm -rf *.o kernel.bin) CC:=i586-elf-gcc CFLAGS:=-c בוא נעבור על השורות: 7

8 כפי שניתן לראות, בשורות הראשונות אנו מכריזים על משתנים. משתנים אלה קובעים איזה מהדר נשתמש, איזה דגלים יועברו ועוד. שימוש במשתנים אלה מקל עלינו בעת הרצון להשתמש במהדרים או בדגלים אחרים )למשל, נרצה להוסיף כמה דגלים שיתריעו לנו על כל חריגה מ- C סטנדרטי לחלוטין(. כפי שניתן לראות בקובץ קיים מהדר ומקשר בעלי שמות מוזרים )i586-elf-gcc( - זאת מכיוון שאני משתמש ב- Cross-Compiler בכדי למנוע תלות בספריות שקיימות במערכת ההפעלה שבה אני מהדר את הפרויקט. ניתן למצוא מדריך לבניית Cross-Compiler בכתובת: all: kernel.o boot.o $(LD) $(LDFLAGS) kernel.o boot.o לאחר מכן, אנו מכריזים על מטרה בשם all )היא המטרה שתבוצע כברירת מחדל(. כפי שניתן לראות, קבענו שמטרה זו תלויה ב- 2 מטרות אחרות. משמע, כאשר אנו מבצעים את מטרה זו, המטרות שהיא תלויה בהן תבוצענה קודם. בפקודות שמפורטות במטרה עצמה אנו מבצעים את הקישור של הקבצים שנוצרו. שימו לב שאנו יודעים שקבצים אלו קיימים כי הגדרנו שהמטרה תלויה במטרות שמייצרות אותם. clean: $(shell rm -rf *.o kernel.bin) במטרה זו אנו פשוט "מנקים אחרי עצמנו". אנו מוחקים את כל הקבצים הנגמרים ב- o. התוצאה של הידור( ואת קובץ ה- bin שיצרנו מכל התהליך. )קבצי אובייקט, מעבר לקובץ ה- MAKEFILE, אנו נשתמש גם ב- script שנכתוב ב- bash, שיבצע את כל התהליך בפקודה אחת: cd src make cp kernel.bin../iso/kernel/kernel.bin make clean cd.. mkisofs -R -input-charset utf8 -b boot/grub/stage2_eltorito -boot-infotable -no-emul-boot -boot-load-size 4 -o os.iso iso qemu -cdrom os.iso ניתן לראות שאנו מבצעים את כל תהליך ההידור, חיבור, קישור, העתקה והרצה ב- script כך שלא זה, נצטרך לכתוב את כל סדרת פקודות אלה כל פעם מחדש. אם נביט טוב על הפקודה היוצרת את תמונת הדיסק,)mkisofs( נראה שהיא שונה מהפרק הקודם. בניגוד לפרק הקודם, בו הגדרנו את הקובץ שיצרנו כתמונת האתחול, בפרק הזה אנו מגדירים קובץ בשם 8

9 stage2_eltorito כתמונה ממנה נבצע אתחול. זאת מכיוון שמפרק זה נשתמש ב- Bootloader חיצוני בשם.GRUB GRUB GRUB הוא Bootloader המהווה חלק מפרוייקט GRUB.GNU נמצא בשימוש כברירת מחדל ברוב ההפצות הנפוצות של לינוקס, וידוע ביכולתו לטעון מספר רב של סוגי קבצים שונים. בין היתר, GRUB גם יודע לטעון מערכות הפעלה בפורמט,Multiboot וזו הסיבה שמימשנו את הסטנדרט במערכת ההפעלה שלנו. ניתן להגדיר את GRUB על ידי קובץ בשם,menu.lst שקובע את רשימת מערכות ההפעלה שקיימות, את השמות שלהן, את הסדר שלהן ואת מיקומן. ניתן להגדיר ל- GRUB לטעון את מערכת ההפעלה מהזיכרון, מדיסק קשיח, מ"דיסק און קי", מפלופי, ואפילו מכתובת ברשת. )מסך טעינה טיפוסי ל- Grub ( כעת, כל שנותר זה פשוט להריץ את ה- script שכתבנו:./make.sh 9

10 מערכת ההפעלה, סימן V כמו בפרק הקודם, עתה נתחיל להדפיס אל המסך. אך בניגוד לפרק הקודם, בו היינו ב- Mode,Real ויכולנו לבצע פסיקות,BIOS בפרק זה עברנו ל- Mode,Protected וכעת אנו לא יכולים לגשת ישירות לחומרה. screen.c unsigned char *vidmem=(unsigned char *)0xb8000; הבה נביט על הקוד: void screen_print(char *string){ int i=0; while(string[i]){ if(y==25){ screen_scroll(); y=24; if(string[i]>0x1f&&string[i]!=0x7f){ vidmem[2*(x+y*80)]=string[i]; x++; if(x==80){ y++; x=0; unsigned char *vidmem=(unsigned char *)0xb8000; נביט על השורה הראשונה: נראה שמוכרז בה מצביע לאזור בזיכרון הנמצא ב- 0xb8000. להציג טקסט למסך. כתובת זו מצביעה לאזור בזיכרון בו נוכל Text Mode Graphics הכתובת 0xb8000 אינה מצביעה באמת לבייט ה- 0xb8000 -י בזיכרון, אלא ממופה לזיכרון כרטיס המסך בעזרת.MMIO משמע, מבחינת הקוד שלנו, אנו כותבים באופן רגיל לכתובת זו. אך מבחינת המעבד, המידע נכתב לחיץ מיועד על כרטיס המסך. אזור זיכרון זה מאפשר לנו לכתוב תווים בצבעים שונים למסך. 20

11 מצב ה- Mode Text הוא המצב בו אנו נמצאים לאחר איתחול בעזרת.GRUB במצב זה, המסך מחולק ל- 80 על 25 תאים, ולכל אחד מהתאים מוקצה 2 בתים - הראשון מייצג את ערך ה- ASCII של התו שהתא אמור להציג, והשני מייצג את התכונות של התו. הבית שמייצג את התכונה מחולק לשניים )או שלושה( חלקים. ארבעת הסיביות הראשונות מייצגות את הצבע של התו עצמו, וארבעת )או שלושת( הסיביות האחרונות מייצגות את הצבע של הרקע של אותו תא. במצב בו רק שלושה סיביות משומשת לייצוג צבע הרקע, הסיבית האחרונה קובעת האם התו יהבהב או לא. מצב זה מאפשר שימוש ב- 16 צבעים בלבד. void screen_print(char *string){... בפונקציה זו אנו פשוט מדפיסים את המחרוזת למסך. הפונקציה מדפיסה את התו למסך, יורדת שורה במקרה הצורך, גוללת את המסך במקרה הצורך, ואם התו הינו תו שאינו ניתן להדפסה אך מסמל קפיצה מסוימת )שורה חדשה, TAB וכו'( היא "מדפיסה" אותו באופן מלאכותי. הרצה הנה היופי של ה- MAKEFILE מתגלה: בכדי להריץ את הפרוייקט אנו רק צריכים להוסיף עוד מטרה לקובץ ה- MAKEFILE,)screen.o( לגרום ל- kernel.o להיות תלוי בה ולהריץ את ה- script שלנו מחדש! 22

12 מערכת ההפעלה, סימן VI gdt.asm descriptors.c נשים לב לשלושה קבצים חדשים שנוספו: שלושת הקבצים האלה אחראים על כתיבת ערכים ל- GDT. descriptors.hו GDT )Global Descriptor Table( GDT הוא מבנה בזיכרון שנועד לתאר תכונות של אזורי זיכרון. ה- GDT מהווה את אחד ההבדלים העיקריים בין Protected Mode ל- Mode - Real ניתן להגדיר הגבלות גישה לאזורים מסויימים בזיכרון. ה- GDT מורכז מעד 8192 "שורות" שכל אחת מהן מתארת אזור יחיד שנקרא סגמנט, והיא נראית כך: שדה סיביות 16 הסיביות הראשונות של גבול הסגמנט שאותו השורה מתארת. 24 הסיביות הראשונות של בסיס הסגמנט שאותו השורה מתארת. בית הגישה 4 הסיביות האחרונות של גבול הסגמנט. דגלים 8 הסיביות האחרונות של בסיס הסגמנט

13 בית הגישה נראה כך: סיבית שדה האם הסגמנט קיים. אמור להיות דלוק.Present 7 תמיד. הטבעת )Ring( שאותה צריך בכדי לגשת.DPL 5-6 לזיכרון. תמיד 1. 4.Executable אם הסגמנט דלוק הוא קוד, אם הוא מכובה הוא מידע. Direction/Conforming 3 2 אם הסגמנט הוא מידע, הסיבית קובעת אם הסגמנט "גדל" למטה או למעלה. אם הסגמנט הוא קוד: ערך של 0 קובע שניתן להריץ את הקוד רק מהטבעת שקבועה ב- DPL. ערך של 1 קובע שניתן להריץ את הקוד מטבעת שווה או נמוכה יותר משקבועה ב- DPL..Readable/Writeable אם סגמנט הוא קוד, הסיבית קובעת האם האזור ניתן לקריאה. אם הסגמנט הוא מידע הסיבית קובעת האם.Accessed אנו לא אמורים לשנות סיבית זו. המעבד משנה אותה כאשר הוא ניגש לסגמנט שאותו השורה מתארת

14 הדגלים נראים כך: סיבית שדה.Granularity אם הוא מכיל 0 הסגמנט מיושר לגודל של בית, אם הוא מכיל 1 הוא מיושר לגודל של עמוד.)4KB(.Size אם הוא מכיל 0, הסגמנט הינו סגמנט בעל ערך 16 ביט, אם הוא מכיל 1 אז הסגמנט הוא סגמנט בעל ערך 32 ביט. תמיד 0. תמיד 0. את ה- GDT טוענים לזיכרון בעזרת הפקודה.lgdt הפקודה מקבלת מתאר בתים שמגדירים את גודל ה- GDT, ו- 4 בתים של מצביע בזיכרון ל- GDT. של ה- GDT שמורכבת משני Ring אחת ההגנות העיקריות ב- Mode Protected היא שיטת הטבעות - לכל קוד קיימת רמת הרשאה שונה ולכל רמת הרשאה יש הגבלות משלה. רמת ההרשאה נקבעת על ידי ה- DPL )קיצור של: Descriptor )Privilege Level והיא יכולה להיות בין- 0 ל- 3, כאשר 0 היא ההרשאה הגבוהה ביותר. למרות שקיימות ארבע אפשרויות, מערכות הפעלה נפוצות משתמשות רק בשתיים מהן 0 ו- 3 לגרעין, - לקוד של המשתמש. ככל שהקוד שרץ כרגע נמצא בטבעת גבוהה יותר, כך הוא יכול להריץ פחות פקודות. לדוגמה, קוד שרץ בטבעת 3 לא אמור לגשת לחומרה, אלא דרך קריאה לקוד שנמצא בטבעת 0. דבר זה ממומש על ידי,System Calls והוא מהווה את אחד הנדבכים החשובים באבטחת המידע של המחשב האישי. נצלול אל תוך הקוד: extern void gdt_write(unsigned int); struct gdt_entry_struct { 24

15 unsigned short limit_low; unsigned short base_low; unsigned char base_middle; unsigned char access; unsigned char granularity; unsigned char base_high; attribute ((packed)); typedef struct gdt_entry_struct gdt_entry_t; struct gdt_ptr_struct { unsigned short limit; unsigned int base; attribute ((packed)); typedef struct gdt_ptr_struct gdt_ptr_t; gdt_entry_t gdt_set_gate(unsigned int base,unsigned int limit,unsigned char access,unsigned char granularity) { gdt_entry_t gdt_entry; gdt_entry.base_low=(base&0xffff); gdt_entry.base_middle=(base>>16)&0xff; gdt_entry.base_high=(base>>24)&0xff; gdt_entry.limit_low=(limit&0xffff); gdt_entry.granularity=(limit>>16)&0x0f; gdt_entry.granularity =granularity&0xf0; gdt_entry.access=access; return gdt_entry; void gdt_setup() { gdt_entry_t gdt_entries[5]; gdt_ptr_t gdt_ptr; gdt_ptr.limit = (sizeof(gdt_entry_t) * 5) - 1; gdt_ptr.base = (unsigned int)&gdt_entries; gdt_entries[0]=gdt_set_gate(0, 0, 0, 0); gdt_entries[1]=gdt_set_gate(0, 0xFFFFFFFF, 0x9A, 0xCF); gdt_entries[2]=gdt_set_gate(0, 0xFFFFFFFF, 0x92, 0xCF); gdt_entries[3]=gdt_set_gate(0, 0xFFFFFFFF, 0xFA, 0xCF); gdt_entries[4]=gdt_set_gate(0, 0xFFFFFFFF, 0xF2, 0xCF); gdt_write((unsigned int)&gdt_ptr); extern void gdt_write(unsigned int); נביט על השורה הראשונה: בשורה זו מוכרזת הפונקציה,gdt_write והיא מוכרזת כפונקציה שמוגדרת במקור חיצוני. לממש פונקציה זו רק בשפת סף, ולכן כתבנו אותה בקובץ חיצוני,.gdt.asm אנו יכולים 25

16 struct gdt_entry_struct { unsigned short limit_low; unsigned short base_low; unsigned char base_middle; unsigned char access; unsigned char granularity; unsigned char base_high; attribute ((packed)); typedef struct gdt_entry_struct gdt_entry_t; struct gdt_ptr_struct { unsigned short limit; unsigned int base; attribute ((packed)); typedef struct gdt_ptr_struct gdt_ptr_t; שורות קוד אלו מגדירות את הטיפוסים שמתארים ערך אחד ב- GDT, ואת המצביע אותו אנו הולכים לטעון לפקודה.lgdt ההכרזה " attribute ((packed))" מדריכה את המהדר לא לבצע שום ריפוד בין איברי הטיפוס ולא לשנות את היישור שלהם. void gdt_setup() { gdt_entry_t gdt_entries[5]; gdt_ptr_t gdt_ptr; gdt_ptr.limit = (sizeof(gdt_entry_t) * 5) - 1; gdt_ptr.base = (unsigned int)&gdt_entries; gdt_entries[0]=gdt_set_gate(0, 0, 0, 0); gdt_entries[1]=gdt_set_gate(0, 0xFFFFFFFF, 0x9A, 0xCF); gdt_entries[2]=gdt_set_gate(0, 0xFFFFFFFF, 0x92, 0xCF); gdt_entries[3]=gdt_set_gate(0, 0xFFFFFFFF, 0xFA, 0xCF); gdt_entries[4]=gdt_set_gate(0, 0xFFFFFFFF, 0xF2, 0xCF); gdt_write((unsigned int)&gdt_ptr); בפונקציה זאת אנו יוצרים 5 ערכים שלאחר מכן נטען ל- GDT. נקרא,Null Descriptor והוא תמיד חייב להופיע כערך הראשון. הערך הראשון ממולא באפסים. ערך זה כמו הרבה דברים בתחום פיתוח מערכות הפעלה, לא בדיוק ידוע מדוע יש צורך ב- Descriptor,Null מעבדים עוצבו כך שהם אינם ניגשים לערך ה- 0 ב- GDT, ולכן לא יקראו את השורה. מניסיוני האישי מעבדים בד"כ "שורדים" אם שורה זו לא ממולאת באפסים. לכן, רבים משתמשים בה בכדי לטעון לתוכה את הכתובת של -הGDT, בכדי לפשט את הקריאה ל- LGDT. 26

17 לאחר מכן, למשתמש. אנו מגדירים סגמנט קוד וסגמנט מידע עם הרשאות לגרעין, וסגמנט קוד ומידע עם הרשאות עתה נביט על קוד שפת הסף שטוען את המידע ל- GDT : global gdt_write gdt_write: mov eax, [esp+4] lgdt [eax] mov ax, 0x10 mov ds, ax mov es, ax mov fs, ax mov gs, ax mov ss, ax jmp 0x08:flush flush: ret בתחילת הקוד אנו מכריזים על התווית gdt_write כתווית שניתן לקרוא לה מבחוץ. כך קוד ה- C שכתבנו ב- descriptors.c יוכל לקרוא לקוד כאילו היה פונקצית C רגילה. mov eax, [esp+4] lgdt [eax] בשורות אלו אנו טוענים את הפרמטר שמועבר בקריאה לפונקציה )ראה,)cdecl הפרמטר מצביע לתוך האוגר ששומר את הכתובת של.GDT וטוענים את הערך אליו mov ax, 0x10 mov ds, ax mov es, ax mov fs, ax mov gs, ax mov ss, ax בשורות אלו אנו ממלאים את כל האוגרים שאחראים לסלקטורים )אוגר המציין, ה"שורה" ב- GDT שמתאר את הסגמנט אליו אנו רוצים לגשת( בערך 0x10. את מספר בין היתר, jmp 0x08:flush בשורה זו אנו מבצעים - FAR JUMP קפיצה לאזור קוד "רחוק". במקרה זה הקוד שאנו קופצים אליו לא באמת רחוק, אך אנו מבצעים קפיצה זו בכלל מקרה כי היא דואגת לנקות מספר אוגרים )בין היתר, היא משנה את האוגר )CS ולאתחל אותם מחדש לערכים השאנו רוצים שהם יכילו לאחר המעבר ל- Protected.Mode 27

18 השלכות על אבטחת המידע המעבר ל- Mode Protected בכלל, וה- GDT בפרט, מהווים נכס גדול לאבטחת המידע של מחשבים אישיים. לולא היינו יכולים לנהל את הגישה לזיכרון ברמה חומרתית, לא ניתן היה לאבטח בצורה מהותית את המחשב. כמו כל כלי שנועד להגן, קיימות מספר חולשות שניתן לנצל אותן בכדי לעקוף מנגנון זה. בין היתר, נמצאו כמה חולשות שנוצלו על ידי Rootkits שונים שאפשרו להוסיף שורה נוספת ב- GDT. בשורה זו הוגדר סגמנט שחולש על כל הזיכרון ובעל הרשאות מלאות. כך הקוד הזדוני יכול לגשת לאיזה מקום בזיכרון שירצה. סיכום בפרק זה עסקנו במעבר ל- Mode,Protected ב- Bootloader, כתיבה למסך ויצירת.GDT עברנו על המשמעויות של כל רכיב ועל היתרונות שהוא מספק למערכת ההפעלה. בפרק הבא נעסוק בפסיקות וטבלת ה- IDT, ונתחיל לבנות את התשתית להפרדה בין קוד הגרעין לקוד המשתמש. אתגר למי שרוצה להרחיב את מערכת ההפעלה שנכתבה עד כה - ניתן לכתוב פונקציה שתדפיס למסך את ה- Multiboot Information שמועבר ל- kmain. בהצלחה! לקריאה נוספת מדריכים ב- Wiki שקשורים לפרק זה:

19 הגדרות ה- Multiboot : לינק להורדת קוד המקור של Linux גרסה מקור טוב מאוד לקוד מסודר ועובד: תיקונים והערות לפרק הקודם: לכל רבה תודה הקוראים שהראו התעניינות במאמר. טעויות, כמה ולתקן להציף ארצה הערות והארות שזוהו על ידי הקוראים. בטבלה שהציגה את ההבדלים בין מצבי הפעולה השונים הועבר הרושם המוטעה שדפדוף וסגמנטציה הם תכונות שקיימות רק במצב הפעולה שמיישמים אותם, בהתאמה. יש לציין שזה אינו המצב, אלא הנוהג. כראיה, ניתן לראות שכחלק מפרק זה אנו יישמנו סגמנטציה ב- Mode Protected דרך ה- GDT. אך, בניגוד ל- Mode,Real סגמנטציה זו אינה באה לידי שימוש ככלי לניהול אזורי זיכרון - אנו הגדרנו 4 סגמטנים שכולם חולשים על כל הזיכרון הקיים. הקורא "Salad" ציין שנפלה טעות בהסבר על ה- BIOS. במאמר נכתב שלוח האם טוען את ה- BIOS, אך במציאות המעבד הוא האחראי על פעולה זו. המעבד מתוכנת מראש לטעון בעת ההדלקה את הפקודות שקיימות בכתובת.0xFFFFFFF0-0xFFFFFFFF דבר זה קורה כשאנו עדיין ב- Mode.Real סדרת כתובות אלו היא היחידה מעל ה- Space Address הרגיל ב- Mode Real שניתן לגשת אליה, וזאת מכיוון שבעת הדלקת המחשב כתובת הבסיס באוגר ה- CS נקבע כברירת מחדל ל- 0xFFFF0000. הפקודה בכתובת זו נקראת ה- Vector,Reset והיא בד"כ מכילה קפיצה לאזור אחר בזיכרון 0xF0000(.)JMP הכתובת שאלייה אנו קופצים, בדומה לכתובת שלה כתבנו ב- Mode,Text ממופה בעזרת ה- MMIO לקוד ששמור בצ' פי ה- וכך המעבד יכול לקרוא את ה- BIOS.,BIOS 29

PowerPoint Presentation

PowerPoint Presentation מבוא למדעי המחשב תירגול 6: כתובות ומצביעים 1 תוכנייה מצביעים מצביעים ומערכים, אריתמטיקה של מצביעים 2 3 מצביעים תזכורת- כתובות זיכרון הזיכרון כתובת התא #1000 #1004 #1008 ערך השמור בתא תא 10-4 לא מאותחל

קרא עוד

מערכות הפעלה

מערכות הפעלה מערכות הפעלה תרגול 2 קריאות מערכת ב- Linux תוכן התרגול קריאה לפונקציות ב- Linux קריאה לשירותי מערכת ב- Linux 2 תזכורת - תכנית Linux ראשונה hello.c #include int main() { char *str= Hello ; printf)

קרא עוד

PowerPoint Presentation

PowerPoint Presentation תוכנה 1 תרגול 1: סביבת העבודה ומבוא ל- Java 1 מנהלות אתר הקורס: http://courses.cs.tau.ac.il/software1/1516b/ מתרגלים: ברית יונגמן )שעת קבלה: שלישי ב- 8:00 בתיאום מראש( לנה דנקין )שעת קבלה: שלישי ב- 17:00,

קרא עוד

מבוא לאסמבלי

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

קרא עוד

2013/14 אוניברסיטת חיפה מבוא למדעי מחשב, מעבדה מטרת המעבדה: לתרגל את המעבר מאלגוריתם לקוד C כמה שיותר. הוראות:.1.2 ניתן לעבוד ביחידים או בזוגות. (יש מ

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

קרא עוד

שבוע 4 סינטקס של HACK ASSEMBLY ניתן להשתמש בשלושה אוגרים בלבד:,A,D,M כולם בעלי 16 ביטים. M אינו אוגר ישיר- הוא מסמן את האוגר של ה RAM שאנחנו מצביעים ע

שבוע 4 סינטקס של HACK ASSEMBLY ניתן להשתמש בשלושה אוגרים בלבד:,A,D,M כולם בעלי 16 ביטים. M אינו אוגר ישיר- הוא מסמן את האוגר של ה RAM שאנחנו מצביעים ע שבוע 4 סינטקס של HACK ASSEMBLY ניתן להשתמש בשלושה אוגרים בלבד:,A,D,M כולם בעלי 16 ביטים. M אינו אוגר ישיר- הוא מסמן את האוגר של ה RAM שאנחנו מצביעים עליו כרגע )A מצביע עליו(. יש שני סוגי פקודות, פקודת

קרא עוד

PowerPoint Presentation

PowerPoint Presentation תוכנה 1 תרגול 1: סביבת העבודה ומבוא ל- Java אלכסיי זגלסקי ויעל אמסטרדמר 1 בירוקרטיה אלכסיי זגלסקי שעת קבלה: שני 13:00-14:00, בתיאום מראש משרד: בניין הנדסת תוכנה, חדר 209 יעל אמסטרדמר שעת קבלה: חמישי 15:00-16:00,

קרא עוד

שאלהIgal : מערכים דו מימדיים רקורסיה:

שאלהIgal : מערכים דו מימדיים רקורסיה: אוניברסיטת בן גוריון בנגב מספר נבחן : תאריך המבחן: כ"ח תשרי תשע"ז 30.10.16 שמות המורים: ציון סיקסיק א' תכנות ב- C מבחן ב: 202-1-9011 מס' הקורס : הנדסה מיועד לתלמידי : ב' מועד סמ' קיץ שנה תשע"ו 3 שעות משך

קרא עוד

שאלהIgal : מערכים דו מימדיים רקורסיה:

שאלהIgal : מערכים דו מימדיים רקורסיה: אוניברסיטת בן גוריון בנגב מספר נבחן : תאריך המבחן: כ"ג מנ' אב תשע"ז 15.08.17 שמות המורים: ציון סיקסיק א' ב- C תכנות מבחן ב: 202-1-9011 מס' הקורס : הנדסה מיועד לתלמידי : ב' מועד סמ' ב' שנה תשע"ז 3 שעות

קרא עוד

סדנת תכנות ב C/C++

סדנת תכנות ב   C/C++ פקולטה: מדעי הטבע מחלקה: מדעי המחשב שם הקורס: מבוא למחשבים ושפת C קוד הקורס: 2-7028510 תאריך בחינה: 15.2.2017 משך הבחינה: שעתיים שם המרצה: ד"ר אופיר פלא חומר עזר: פתוח שימוש במחשבון: לא הוראות כלליות:

קרא עוד

מדריך להתקנת Code Blocks מדריך זה נועד לתאר את תהליך התקנת התוכנה של הקורס "מבוא למחשב שפת C". בקורס נשתמש בתוכנת Code::Blocks עם תוספת )אשף( המתאימה

מדריך להתקנת Code Blocks מדריך זה נועד לתאר את תהליך התקנת התוכנה של הקורס מבוא למחשב שפת C. בקורס נשתמש בתוכנת Code::Blocks עם תוספת )אשף( המתאימה מדריך להתקנת Code Blocks מדריך זה נועד לתאר את תהליך התקנת התוכנה של הקורס "מבוא למחשב שפת C". בקורס נשתמש בתוכנת Code::Blocks עם תוספת )אשף( המתאימה לקורס. האשף קובע את סביבת הפיתוח כך שתתאים לצורכי הקורס.

קרא עוד

שאלהIgal : מערכים דו מימדיים רקורסיה:

שאלהIgal : מערכים דו מימדיים רקורסיה: אוניברסיטת בן גוריון בנגב מספר נבחן : תאריך המבחן: כ"ג חשון תשע"ח 12/11/17 שמות המורים: ציון סיקסיק א' ב- C תכנות מבחן ב: 202-1-9011 מס' הקורס : הנדסה מיועד לתלמידי : ב' מועד קיץ סמ' שנה תשע"ז 3 שעות משך

קרא עוד

Comp. Arch. Lecture 1

Comp. Arch. Lecture 1 א ר כי טקטור ת מ ח ש בים ד"ר טל שיקלר סו ב ול אימייל: stal@bgu.ac.il Mother board לוח אם CPU central processing unit מעבד דוגמאות: 80x86 ו תואמיו Intel 80x86 Intel Core 2 Duo 64 bits 80x86 compatible AMD

קרא עוד

מבוא למדעי המחשב

מבוא למדעי המחשב מבוא כללי לתכנות ולמדעי המחשב 1843-0310 מרצה: אמיר רובינשטיין מתרגל: דין שמואל אוניברסיטת תל אביב סמסטר חורף 2017-8 חלק א - השיטה הבינארית שיעור 5 ו- 1? ספירה בבסיס 2 ואיך אומרים "hello" עם 0 1 ממעגלים

קרא עוד

Slide 1

Slide 1 מבוא למדעי המחשב תירגול 4: משתנים בוליאניים ופונקציות מבוא למדעי המחשב מ' - תירגול 4 1 משתנים בוליאניים מבוא למדעי המחשב מ' - תירגול 4 2 ערכי אמת מבחינים בין שני ערכי אמת: true ו- false לכל מספר שלם ניתן

קרא עוד

משימה תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם תרגול מס' 4: המתרגם שימוש במחלקות קיימות תכנות מתק

משימה תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם תרגול מס' 4: המתרגם שימוש במחלקות קיימות תכנות מתק משימה תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם תרגול מס' 4: המתרגם שימוש במחלקות קיימות 2 הפשטה שאלות כצעד ראשון נפתור בעיה הרבה יותר פשוטה האם כבר

קרא עוד

Slide 1

Slide 1 1 אובייקטים היום בתרגול: 2.)objects מחלקות )classes( ואובייקטים )מופעים, )fields( שדות המחלקה שיטות הכמסה )methods של מחלקה. ( class מחלקה - עד עכשיו השתמשנו בעיקר בטיפוסים מובנים ופונקציות המבצעות חישובים

קרא עוד

מבוא לתכנות ב- JAVA תרגול 7

מבוא לתכנות ב- JAVA  תרגול 7 מבוא לתכנות ב- JAVA תרגול 8 תזכורת - מבנה של פונקציה רקורסיבית.2 פונקציה רקורסיבית מורכבת משני חלקים עיקריים 1. תנאי עצירה: מקרה/מקרים פשוטים בהם התוצאה לא מצריכה קריאה רקורסיבית לחישוב צעד רקורסיבי: קריאה

קרא עוד

ייבוא וייצוא של קבצי אקסל וטקסט

ייבוא וייצוא של קבצי אקסל וטקסט ייבוא וייצוא של קבצי אקסל וטקסט (Importing & Exporting MS Excel Files and Text) ייבוא (Import) הפיכת קובץ טקסט, Excel מבסיס נתונים אחר. או סוגים אחרים, לטבלת,Access או העתקת טבלת Access בתחילת התהליך יש

קרא עוד

תכנות מונחה עצמים א' – תש"ע

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

קרא עוד

מבוא למדעי המחשב

מבוא למדעי המחשב מבוא למדעי המחשב שימוש במחסנית - מחשבון תוכן עניינים prefix כתיבת ביטויים ב-,infix ו- postfix postfix prefix,infix ביטויים ב- כתיבת ו- infix נוסח כתיבה ב- (operator אנו רגילים לכתוב ביטויים חשבוניים כדוגמת

קרא עוד

Slide 1

Slide 1 מבוא לשפת C תירגול 3: טיפוסים והמרות 1 מה היה שבוע שעבר? משתנים קלט/פלט scanf( ו- printf ( Redirection The Input Buffer 2 תוכנייה טיפוסי משתנים קלט/פלט מעוצב המרה בין טיפוסים קבועים 3 חישוב ממוצע בין שני

קרא עוד

HTML - Hipper Text Makeup Language

HTML - Hipper Text Makeup Language תכנות בסביבת האינטרנט 1 תיבת טקסט טופס הטופס הוא הדרך של בעלי האתר לקבל משוב מהגולשים, מאפשר לגולש להתחבר לאתר כחבר, מאפשר לבצע רכישות באתרי קניות וכד'. כשהגולש ממלא את הטופס, מועבר תוכן הטופס לדף מיוחד

קרא עוד

יצוא לחשבשבת תוכן עיניינים הגדרות - חשבונות בנק...2 הגדרות - הגדרות חשבשבת... 3 הגדרות - כרטיסי אשראי... 4 הגדרות - סוגי הכנסה... 5 יצוא לחשבשבת...6 י

יצוא לחשבשבת תוכן עיניינים הגדרות - חשבונות בנק...2 הגדרות - הגדרות חשבשבת... 3 הגדרות - כרטיסי אשראי... 4 הגדרות - סוגי הכנסה... 5 יצוא לחשבשבת...6 י יצוא לחשבשבת תוכן עיניינים הגדרות - חשבונות בנק...2 הגדרות - הגדרות חשבשבת... 3 הגדרות - כרטיסי אשראי... 4 הגדרות - סוגי הכנסה... 5 יצוא לחשבשבת...6 יצוא קופה לחשבשבת חלונות...01 כללי מדריך זה מסביר את

קרא עוד

תוכן העניינים: פרק צמצומים ומימושים של פונקציות בוליאניות... 2 צמצומים של פונקציות באמצעות מפת קרנו:...2 שאלות:... 2 תשובות סופיות:... 4 צמצום

תוכן העניינים: פרק צמצומים ומימושים של פונקציות בוליאניות... 2 צמצומים של פונקציות באמצעות מפת קרנו:...2 שאלות:... 2 תשובות סופיות:... 4 צמצום תוכן העניינים: פרק 2 3 צמצומים ומימושים של פונקציות בוליאניות 2 צמצומים של פונקציות באמצעות מפת קרנו: 2 שאלות: 2 תשובות סופיות: 4 צמצום באמצעות שיטת 6:QM שאלות: 6 תשובות סופיות: 7 מימושים בעזרת פונקציות

קרא עוד

תרגול 1

תרגול 1 מבוא למדעי המחשב 2019 תרגול 5 מחרוזות, חתימות ורקורסיה מחרוזות רצף של תווים רקורסיה קריאה של מתודה לעצמה באופן ישיר או עקיף ראינו בהרצאה מחרוזות: תווים, חתימות: העמסה- String,הצהרה, overloading אתחול רקורסיה:

קרא עוד

PowerPoint Presentation

PowerPoint Presentation 1 תוכנה 1 תרגול 1: מנהלות, סביבת העבודה ומבוא ל- Java 1 2 מנהלות I מתרגלים: יעל אמסטרדמר )שעת קבלה: חמישי ב- 12, בתיאום מראש( דביר נתנאלי )שעת קבלה: רביעי ב- 17, בתיאום מראש( http://courses.cs.tau.ac.il/software1/1415a

קרא עוד

מצגת של PowerPoint

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

קרא עוד

מבוא למדעי המחשב

מבוא למדעי המחשב מבוא כללי לתכנות ולמדעי המחשב 1843-0310 מרצה: אמיר רובינשטיין מתרגל: דין שמואל אוניברסיטת תל אביב סמסטר חורף 2017-8 חלק ב - מבוא לקריפטוגרפיה שיעור 5 (offset מונחים בסיסיים צופן קיסר (היסט,.1.2 1 Today

קרא עוד

Slide 1

Slide 1 מבוא לשפת C תירגול 8: פונקציות שבוע שעבר... מערכים מיזוג מערכים ממויינים מערכים דו-ממדיים מבוא לשפת סי - תירגול 8 2 תוכנייה פונקציות ברמת התקשורת הבין-אישית חלוקה לתתי בעיות בדומה למפתח של ספר קריאות גבוהה

קרא עוד

T01-1page

T01-1page מבוא לשפת C תירגול 1: מבוא 1 אתר הקורס webcourse.cs.technion.ac.il/234112 חדשות הקורס תרגילי בית הרצאות ותירגולים חומר עזר, מבחנים קודמים, שאלות נפוצות, ועוד... 2 אתר הקורס 3 רשימת תפוצה חובה להירשם! הודעות

קרא עוד

שאלה 2. תכנות ב - CShell

שאלה 2. תכנות ב - CShell ביה"ס למדעי המחשב 4.2.2018 האקדמית נתניה מבחן מועד א' יסודות מערכות פתוחות סמסטר חורף, תשע"ח משך המבחן: שלוש וחצי שעות. יש לענות על כל השאלות. מותר השימוש בחומר עזר כלשהו, פרט למחשבים, (מחשבונים מותר).

קרא עוד

Microsoft Word B

Microsoft Word B מרצה: שולי וינטנר. מתרגל: שלמה יונה מבוא למדעי המחשב מועד ב', סמסטר א' תשס"ג, 17/2/03 משך המבחן: שעתיים וחצי. חומר עזר: מותר כל חומר עזר, מלבד מחשב. הנחיות: 1. ודאו כי בטופס שבידיכם 8 עמודים. יש לכתוב

קרא עוד

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

תוכנה חופשית מאחורי הקלעים? על סדר היום: קצת על עצמי מה זאת תוכנה חופשית? ההיסטוריה של תוכנה חופשית כיצד תוכנה חופשית משתלבת בשוק התוכנה היתרונות של ת תוכנה חופשית מאחורי הקלעים? על סדר היום: קצת על עצמי מה זאת תוכנה חופשית? ההיסטוריה של תוכנה חופשית כיצד תוכנה חופשית משתלבת בשוק התוכנה היתרונות של תוכנה חופשית. דוגמאות מהשטח 1 ליאור קפלן 30/11/05 קצת

קרא עוד

מבוא למדעי המחשב - חובלים

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

קרא עוד

פתרון מוצע לבחינת מה"ט ב_שפת c מועד ב אביב תשע"ט, אפריל 2019 מחברת: גב' זהבה לביא, מכללת אורט רחובות שאלה מספר 1 מוגדרת מחרוזת המורכבת מהספרות 0 עד 9.

פתרון מוצע לבחינת מהט ב_שפת c מועד ב אביב תשעט, אפריל 2019 מחברת: גב' זהבה לביא, מכללת אורט רחובות שאלה מספר 1 מוגדרת מחרוזת המורכבת מהספרות 0 עד 9. פתרון מוצע לבחינת מה"ט ב_שפת c מועד ב אביב תשע"ט, אפריל 2019 מחברת: גב' זהבה לביא, מכללת אורט רחובות שאלה מספר 1 מוגדרת מחרוזת המורכבת מהספרות 0 עד 9. הדפסה ראשונה: מתבצעת לולאה שרצה מאפס עד אורך המחרוזת.

קרא עוד

Slide 1

Slide 1 מבוא למדעי המחשב תירגול 7: פונקציות 1 מה היה שבוע שעבר? לולאות מערכים מערכים דו-ממדיים 2 תוכנייה )call by value( פונקציות העברת פרמטרים ע"י ערך תחום הגדרה של משתנה מחסנית הקריאות 3 פונקציות 4 הגדרה של

קרא עוד

Slide 1

Slide 1 מבוא למדעי המחשב תירגול 1: מבוא 1 אתר הקורס webcourse.cs.technion.ac.il/234114 חדשות הקורס תרגילי בית חומר עזר, מבחנים קודמים, שאלות נפוצות, ועוד... הרצאות ותירגולים 2 אתר הקורס 3 רשימת תפוצה חובה להירשם!

קרא עוד

מבחן סוף סמסטר מועד ב 28/10/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, גדי אלכסנדרוביץ הוראות: א. בטופס המבחן 6 עמודים (כולל דף זה) ו

מבחן סוף סמסטר מועד ב 28/10/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, גדי אלכסנדרוביץ הוראות: א. בטופס המבחן 6 עמודים (כולל דף זה) ו מבחן סוף סמסטר מועד ב 28/10/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, גדי אלכסנדרוביץ הוראות: א. בטופס המבחן 6 עמודים (כולל דף זה) ו 4 דפי נוסחאות. בדקו שכל העמודים ברשותכם. ב. משך המבחן

קרא עוד

תרגול מס' 4: המתרגם שימוש במחלקות קיימות מחרוזות, קבצים, וקבלת קלט מהמשתמש

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

קרא עוד

מבוא למדעי המחשב

מבוא למדעי המחשב מבוא למדעי המחשב מחרוזות, חתימה של פונקציה ומעטפות תוכן עניינים טיפוסים מורכבים טיפוסים מורכבים ערך שם טיפוס 12 m int undef. x boolean true y boolean arr int[] כאלה שעשויים להכיל יותר מערך פרימיטיבי אחד

קרא עוד

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשעב בחינת סיום, מועד א', הנחי אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', 6.2.2012 הנחיות: 1. משך הבחינה: 120 דקות. 2. היציאה מהכיתה במהלך

קרא עוד

Microsoft Word - c_SimA_MoedB2005.doc

Microsoft Word - c_SimA_MoedB2005.doc מרצה: שולי וינטנר. מתרגל: עזרא דאיה. מבוא למדעי המחשב בחינת מועד ב', סמסטר א' תשס"ה,.2.2005 משך המבחן: שעתיים וחצי. חומר עזר: מותר כל חומר עזר, מלבד מחשב. הנחיות:. ודאו כי בטופס שבידיכם עמודים. יש לכתוב

קרא עוד

ex1-bash

ex1-bash ביה"ס למדעי המחשב סמסטר חורף תשע"ח 13.12.2017 יסודות מערכות פתוחות פתרון תרגיל מס' 7 המכללה האקדמית נתניה שימו לב: כל ההערות שבתחילת תרגילים 1-6 תקפות גם לתרגיל זה. הערה 1: החל מתרגיל זה והלאה, בכל פעם

קרא עוד

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

אוניברסיטת בן גוריון בנגב תאריך המבחן: שם המרצה: מר אלכסנדר שקולניק, בשפת JAVA מבחן ב: מבוא לתכנות מס' הקורס : מיועד לתלמידי : הנד אוניברסיטת בן גוריון בנגב תאריך המבחן: 29.01.19 שם המרצה: מר אלכסנדר שקולניק, בשפת JAVA מבחן ב: מבוא לתכנות 202.1.9031 מס' הקורס : מיועד לתלמידי : הנדסת תעשיה וניהול שנה תשע"ט א' סמ' א' מועד 3 שעות משך

קרא עוד

מבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. ב

מבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. ב מבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. בדקו שכל העמודים ברשותכם. ב. משך המבחן שלוש שעות (180

קרא עוד

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

אוניברסיטת בן גוריון בנגב תאריך המבחן: שקולניק אלכסנדר שם המרצה: מר בשפת JAVA מבוא לתכנות מבחן ב: מס' הקורס : הנדסת תעשיה וניהול מ אוניברסיטת בן גוריון בנגב תאריך המבחן: 12.02.17 שקולניק אלכסנדר שם המרצה: מר בשפת JAVA מבוא לתכנות מבחן ב: 202.1.9031 מס' הקורס : הנדסת תעשיה וניהול מיועד לתלמידי : א' מועד א' סמ' שנה תשע"ד 3 שעות משך

קרא עוד

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשעב בחינת סיום, מועד א', הנחי אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', 6.2.2012 הנחיות: 1. משך הבחינה: 120 דקות. 2. היציאה מהכיתה במהלך

קרא עוד

Disclaimer מסמך זה הינו סיכום און-ליין של השיעור ולא עבר עריכה כלל. מצאת טעות? שלח/י לי מייל ואתקן: 07/05/2009 קורס: מערכות ה

Disclaimer מסמך זה הינו סיכום און-ליין של השיעור ולא עבר עריכה כלל. מצאת טעות? שלח/י לי מייל ואתקן: 07/05/2009 קורס: מערכות ה הרעיון: דפדוף paging וזכרון וירטואלי.1.2.3 לחלק את מרחב הכתובות לדפים בגודל קבוע )למשל )4KB את הדפים ממפים לזכרון פיסי a. לא רציף b. לא כולם העברה מזכרון לדיסק לפי הצורך מספר הדף: page = addr 4K המיקום

קרא עוד

Microsoft PowerPoint - rec1.ppt

Microsoft PowerPoint - rec1.ppt תכנות מונחה עצמים בשפת ++C תר גול מ ספר 1 אוהד ב ר זילי אוניברסיטת תל א ביב חדש חדיש ומחודש תוספות של + +C לשפ ת C 1 #include Hello World using namespace std; int main() cout

קרא עוד

Microsoft PowerPoint - lec2.ppt

Microsoft PowerPoint - lec2.ppt מרחב הש מות (namespace) אוהד ברזילי אוניברסיטת תל אביב מה בתו כנית? לקוח וס פק במערכת תוכנה ממשקים הכרת מרחב השמות מניעת תלות פוטנציאלית בין רכיבים במערכת ע"י עיצוב חלופי של מבנה הממשקים 2 א ונ י ב רס

קרא עוד

Slide 1

Slide 1 בעיית התוכנית הגדולה C תוכנית גדולה המבצעת פעולות רבות, יכולה להפוך לקשה מאוד לניהול אם נשתמש רק בכלים שלמדנו עד כה: 1. קשה לכתוב ולנפות את התוכנית,. קשה להבין אותה, 3. קשה לתחזק ולתקן אותה, 4. קשה להוסיף

קרא עוד

Slide 1

Slide 1 מבוא לשפת C תירגול 10: מצביעים, מערכים ומחרוזות שבוע שעבר... מצביעים Call by reference 2 תוכנייה קשר מצביע-מערך )אריתמטיקה של מצביעים( העברת מערכים לפונקציה מחרוזות דוגמה 3 קשר מצביע-מערך 4 תזכורת: תמונת

קרא עוד

מדריך למרצים ומתרגלים 1

מדריך למרצים ומתרגלים 1 מדריך למרצים ומתרגלים 1 תוכן עניינים מדריך למרצים ומתרגלים...1 קבלת סיסמה לתחנת מידע למרצה...3 הוספת חומרי למידה...6 הוספת מורשה גישה לאתר הוספת מטלה קורס...9 לאתר הקורס...11 בחירת בודקים למטלה...17 מערכת

קרא עוד

מבוא למדעי המחשב - חובלים

מבוא למדעי המחשב - חובלים החוג למדעי המחשב אוניברסיטת חיפה מבוא למדעי המחשב סמסטר א' תשע"ג בחינת סיום, מועד ב', 20.02.2013 מרצה: ריטה אוסדצ'י מתרגלת: נעמה טוויטו מדריך מעבדה: מחמוד שריף משך המבחן: שעתיים חומר עזר: ספר של Kernighan

קרא עוד

שעור 6

שעור 6 שעור 6 Open addressing אין רשימות מקושרות. (נניח שהאלמנטים מאוחסנים בטבלה עצמה, לחילופין קיים מצביע בהכנסה המתאימה לאלמנט אם אין שרשור). ב- addressing open הטבלה עלולה להימלא ב- factor α load תמיד. במקום

קרא עוד

Slide 1

Slide 1 מבוא למחשב בשפת C צעדים הרצאה 2: ראשונים בשפת C מבוסס על השקפים שחוברו ע"י שי ארצי, גיתית רוקשטיין, איתן אביאור וסאהר אסמיר עבור הקורס "מבוא למדעי המחשב". עודכן ע"י דן רביב נכתב על-ידי טל כהן, נערך ע"י

קרא עוד

פתרון מבחן במיקרו בקרים תשעו

פתרון מבחן במיקרו בקרים תשעו פתרון מבחן במיקרו בקרים תשעו תשובה 5 א. Mov 4h,a העבר את הנתון שבאקומולטור אל כתובת 4h ב RAM הנתונים הפנימי. Mov 41h,#1h העבר מידית לכתובת 41h ב RAM הנתונים הפנימי את הנתון 1 הקסה )1 בינארי(. Cjne a,4h,note

קרא עוד

מספר זהות: סמסטר ב' מועד א' תאריך: 11102/4// שעה: 9:22 משך הבחינה: 3 שעות חומר עזר: אין מותר השימוש במחשבון פשוט בחינה בקורס: מבני נתונים מרצה: הדר בי

מספר זהות: סמסטר ב' מועד א' תאריך: 11102/4// שעה: 9:22 משך הבחינה: 3 שעות חומר עזר: אין מותר השימוש במחשבון פשוט בחינה בקורס: מבני נתונים מרצה: הדר בי מספר זהות: סמסטר ב' מועד א' תאריך: 11102/4// שעה: 9:22 משך הבחינה: 3 שעות חומר עזר: אין מותר השימוש במחשבון פשוט בחינה בקורס: מבני נתונים מרצה: הדר בינסקי הנחיות: יש לענות על כל השאלות. יש לענות על כל

קרא עוד

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

אוניברסיטת חיפה החוג למדעי המחשב.5.6 מבוא למדעי המחשב סמסטר א' תשעז בחינה סופית מועד א', מרצה: שולי וינטנר מתרגלים: סמאח אידריס, ראמי עילבו אוניברסיטת חיפה החוג למדעי המחשב.5.6 מבוא למדעי המחשב סמסטר א' תשע"ז בחינה סופית מועד א', 31.1.2017 מרצה: שולי וינטנר מתרגלים: סמאח אידריס, ראמי עילבוני, דולב שרון הנחיות: 1. משך הבחינה: 120 דקות. 2. היציאה

קרא עוד

PowerPoint Presentation

PowerPoint Presentation פרוטאוס הדרכה לפיתוח פרויקט מבוסס ארדואינו 1 הוראות הפעלה תוכנת פרוטאוס מכילה כמות גדולה מאוד של כלי עזר להבנת דרך ההפעלה של התוכנה. שני מקורות מידע עיקריים עומדים לרשות המשתמש מחוץ לתוכנה: o באתר האינטרנט

קרא עוד

תורת הקומפילציה

תורת הקומפילציה תורת הקומפילציה תרגיל בית 2 הוראות לתרגיל 2 בשפת MINI-PASCAL הפרוייקט המצורף הינו קוד שלד של מהדר לשפת mini-pascal עליכם לממש בסביבת (Eclipse (Java את הפונקציות המתאימות לפי החומר שנלמד בהרצאה ע"מ שהמהדר

קרא עוד

Microsoft Word - Ass1Bgu2019b_java docx

Microsoft Word - Ass1Bgu2019b_java docx ת ר ג י ל 1 ב ק ו ר ס מ ב ו א לתכנות 202.1.9031 JAVA סמסטר ב, ת נ א י ם ו ל ו ל א ו ת תאריך אחרון להגשה בציון מלא : 02.04.19 עד שעה : 23:55, כ ל יום איחור ל א מ א ו ש ר א ו ח ל ק ממנו מודריד 10 נקודות

קרא עוד

מספר מחברת: עמוד 1 מתוך 11 ת"ז: תשע"א מועד ב סמסטר א' תאריך: 00:11 שעה: 0 שעות הבחינה: משך כל חומר עזר אסור בשימוש בחינה בקורס: מבוא למדעי ה

מספר מחברת: עמוד 1 מתוך 11 תז: תשעא מועד ב סמסטר א' תאריך: 00:11 שעה: 0 שעות הבחינה: משך כל חומר עזר אסור בשימוש בחינה בקורס: מבוא למדעי ה עמוד 1 מתוך 11 תשע"א מועד ב סמסטר א' 14.2.2011 תאריך: 00:11 שעה: 0 שעות הבחינה: משך כל חומר עזר אסור בשימוש בחינה בקורס: מבוא למדעי המחשב יש לענות על כל 5 השאלות. בכל השאלות במבחן יש לכתוב פונקציות יעילות

קרא עוד

Microsoft PowerPoint - rec3.ppt

Microsoft PowerPoint - rec3.ppt תכנו ת מונח ה עצ מים משתני מחלקה, עצמים מוכלים ועצמים מוצבעים א וה ד ברז יל י א ונ יברס י ט ת תל אביב משתנ י מח ל קה Static Members משתני מחלקה members) (static משתנים סטטיים מוגדרי ם בתוך מח לקה ואולם

קרא עוד

Microsoft PowerPoint - Lecture1

Microsoft PowerPoint - Lecture1 Computer Organization and Programming ארגון ותכנו ת המחשב - את"מ הרצאה מבוא 2 שפה עילית מול שפ ת מ כונה שפה עילית language) (High level שפת מכונה Language) (Machine תכנית בשפ ה עיל ית (C, Pascal, ) תכנית

קרא עוד

בס"ד תרגיל 3 מועד אחרון ל כללי בתרגיל זה עליכם לכתוב תוכנה שמדמה מאגר נתונים של חנות. את מוצרי החנות תייצגו באמצעות עצים ורשימות מקושרות יהיה עליכם לנ

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

קרא עוד

מערכות הפעלה

מערכות הפעלה מערכות הפעלה תהליכים ב- Linux תרגול 3 תוכן התרגול מבוא לתהליכים ב- Linux API לעבודה עם תהליכים מבוא לניהול תהליכים בתוך הגרעין )process descriptor( מתאר התהליך )process list( רשימת התהליכים מאגר התהליכים

קרא עוד

מהוא לתכנות ב- JAVA מעבדה 3

מהוא לתכנות ב- JAVA מעבדה 3 מבוא לתכנות ב- JAVA מעבדה 3 נושאי התרגול לולאות ניפוי שגיאות לולאות - הקדמה כיצד הייתם כותבים תוכנית שתדפיס את המספרים השלמים בין 1 ל- 100 בעזרת הכלים שלמדתם עד עתה? חייבת להיות דרך אחרת מאשר לכתוב 100

קרא עוד

PowerPoint Presentation

PowerPoint Presentation תוכנה תרגול 7 :מנשקים, פולימורפיזם ועוד * לא בהכרח בסדר הזה == vs equals Point p = new Point(,2) Point p2 = new Point(,2) p == p2 p.equals(p2) מתי נכון להשתמש בכל אחד מהם? שימו לב, במחלקה שכתבתם בעצמכם

קרא עוד

תוכן העניינים

תוכן העניינים הוצאת חושבים קדימה הילה קדמן חלק ב יעוץ מקצועי: חיים אברבוך מותאם לתכנית הלימודים החדשה בבתי הספר התיכוניים מהדורה חמישית הוצאת חושבים קדימה ת.ד. 1293 רעות 71908 www.kadman.net הילה קדמן 0522 525527 kadman11@gmail.com

קרא עוד

Tutorial 11

Tutorial 11 מבוא לשפת C תרגול 8: מערכים רב-ממדיים תרגילים בנושא מערכים ורקורסיה מבוסס על השקפים שחוברו ע"י שי ארצי, גיתית רוקנשטיין, איתן אביאור וסאהר אסמיר עבור הקורס "מבוא למדעי המחשב" נכתב ע"י טל כהן, עודכן ע"י

קרא עוד

בחן במערכות הפעלה

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

קרא עוד

תשע"דד אביב תוכנה 1 תרגיל מספר 4 עיבוד מחרוזות וקריאה מקבצים הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס..(

תשעדד אביב תוכנה 1 תרגיל מספר 4 עיבוד מחרוזות וקריאה מקבצים הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס..( תשע"דד אביב תוכנה 1 תרגיל מספר 4 עיבוד מחרוזות וקריאה מקבצים הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס..(http://mdle.tau.ac.il/) בלבד הגשת התרגיל תעשה במערכת ה- mdle aviv

קרא עוד

Slide 1

Slide 1 Introduction to Programming in C תרגול 8 1 1 רקורסיה תזכורת הגדרה: המונח רקורסיה (recursion) מתאר מצב שבו פונקציה קוראת לעצמה באופן ישיר או באופן עקיף. שימוש: נוח להשתמש בפונקציות רקורסיביות על מנת לפתור

קרא עוד

Slide 1

Slide 1 מבוא למחשב בשפת C : מערכים חד ודו-ממדיים מבוסס על השקפים שחוברו ע"י שי ארצי, גיתית רוקשטיין, איתן אביאור וסאהר אסמיר עבור הקורס "מבוא למדעי המחשב". עודכן ע"י דן רביב נכתב על-ידי טל כהן, נערך ע"י איתן אביאור.

קרא עוד

תרגול מס' 1

תרגול מס' 1 תרגול 6 הסתעפויות 1 מבוסס על שקפים מאת יאן ציטרין קפיצות לא מותנות Unconditional Branch br label PC לאחר ה- fetch של פקודת ה- branch PC לאחר הביצוע של פקודת ה- branch pc label br label הקפיצה מתבצעת תמיד,

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

מבוא למדעי המחשב

מבוא למדעי המחשב מבוא למדעי המחשב תכנות מונחה אובייקטים תוכן עניינים טיפוסי נתונים מורכבים המחלקה String תזכורת לשימוש שעשינו במחלקה String str = new String( Hello ); s.o.p(str.tostring()); s.o.p(str.charat(4)); s.o.p(str.equals(

קרא עוד

PowerPoint Presentation

PowerPoint Presentation == vs equals תוכנה תרגול 7 :מנשקים, פולימורפיזם ועוד Point p = new Point(,) Point p = new Point(,) p == p p.equals(p) מתי נכון להשתמש בכל אחד מהם? שימו לב, במחלקה שכתבתם בעצמכם יש לכתוב מתודת equals על

קרא עוד

הגשה תוך שבוע בשעת התרגול

הגשה תוך שבוע בשעת התרגול מרצה: שולי וינטנר. מתרגל: שלמה יונה מבוא למדעי המחשב מועד ב', סמסטר א' תשס"ג, 17/2/03 משך המבחן: שעתיים וחצי. חומר עזר: מותר כל חומר עזר, מלבד מחשב. הנחיות: ודאו כי בטופס שבידיכם 8 עמודים. יש לכתוב את

קרא עוד

פייתון

פייתון שיעור 12: מילונים ברק גונן 1 או מילון, :hash table או,dictionary זוגות של מפתחות keys וערכים values מילון מוגדר על ידי סוגריים מסולסלים { } לדוגמה: מילון שמכיל ציונים, המפתח הוא מספר ת.ז ערך מפתח הגדרה

קרא עוד

PRESENTATION NAME

PRESENTATION  NAME נכתב ע"י כרמי גרושקו. כל הזכויות שמורות 2010 הטכניון, מכון טכנולוגי לישראל הקצאה דינמית )malloc( מערכים דו-מימדיים סיבוכיות: ניתוח כזכור, כדי לאחסן מידע עלינו לבקש זכרון ממערכת ההפעלה. 2 עד עכשיו: הגדרנו

קרא עוד

תוכן העניינים

תוכן העניינים הוצאת חושבים קדימה הילה קדמן # חלק ב יעוץ מקצועי: חיים אברבוך מותאם לתכנית הלימודים החדשה בבתי הספר התיכוניים מהדורה חמישית הוצאת חושבים קדימה ת.ד. 1293 רעות 71908 www.kadman.net הילה קדמן 0522 525527

קרא עוד

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

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

קרא עוד

מבנה מחשבים ספרתיים

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

קרא עוד

Microsoft PowerPoint - L01-n.ppt

Microsoft PowerPoint - L01-n.ppt :Altair 8800 המחשב האישי הראשון 1975 21 1977 Apple][ 22 1981 IBM PC 23 וכיום? 24 מבוא למדעי המחשב. כל הזכויות שמורות 1 הרצאה מיק רוסופ ט 1975 ב- 1975 מציעים ביל גייטס ופול אלן לחברת MITS המייצרת את ה-

קרא עוד

PowerPoint Presentation

PowerPoint Presentation מבוא למדעי המחשב תירגול 2: מבוא לתיכנות ב- C 1 תוכנייה משתנים קלט/פלט משפטי תנאי מבוא למדעי המחשב מ' - תירגול 3 2 משתנים 3 משתנים- תמונת הזיכרון הזיכרון כתובת התא #1000 10-4 לא מאותחל 67 לכל תא בזיכרון

קרא עוד

תרגיל בית מספר 1#

תרגיל בית מספר 1# ב 4 תרגיל בית מספר - 1 להגשה עד 72 באוקטובר בשעה ::725 קיראו בעיון את הנחיות העבודה וההגשה המופיעות באתר הקורס, תחת התיקייה.assignments חריגה מההנחיות תגרור ירידת ציון / פסילת התרגיל. הנחיות והערות ספציפיות

קרא עוד

Microsoft PowerPoint - T-10.ppt [Compatibility Mode]

Microsoft PowerPoint - T-10.ppt [Compatibility Mode] מבוא למחשב בשפת Matlab לולאות בלוקי try-catch :10 תרגול מבוסס על השקפים שחוברו ע"י שי ארצי, גיתית רוקשטיין, איתן אביאור, סאהר אסמיר וטל כהן עבור הקורס "מבוא למדעי המחשב" נכתב על-ידי רמי כהן,אולג רוכלנקו,

קרא עוד

Office 365 ProPlus בחינם לסטודנטים באוניברסיטת בן גוריון בנגב הוראות סטודנטים באוניברסיטת בן גוריון בנגב יכולים להוריד ולהתקין את חבילת התוכנה Office

Office 365 ProPlus בחינם לסטודנטים באוניברסיטת בן גוריון בנגב הוראות סטודנטים באוניברסיטת בן גוריון בנגב יכולים להוריד ולהתקין את חבילת התוכנה Office Office 365 ProPlus בחינם לסטודנטים באוניברסיטת בן גוריון בנגב הוראות סטודנטים באוניברסיטת בן גוריון בנגב יכולים להוריד ולהתקין את חבילת התוכנה Office 365 ProPlus בחינם. ניתן להוריד ולהתקין את הגרסאות הבאות:

קרא עוד

בגרות עז יולי 17 מועד קיץ ב שאלון ,000 א. ניתוח הנתונים מחירה של ספה הוא שקלים, והיא התייקרה ב-. 25% כאשר המחיר מתייקר ב- המחיר החדש הוא פי,

בגרות עז יולי 17 מועד קיץ ב שאלון ,000 א. ניתוח הנתונים מחירה של ספה הוא שקלים, והיא התייקרה ב-. 25% כאשר המחיר מתייקר ב- המחיר החדש הוא פי, ,000 א ניתוח הנתונים מחירה של ספה הוא שקלים, והיא התייקרה ב- 5% כאשר המחיר מתייקר ב- המחיר החדש הוא פי, 5% לכן, המחיר החדש הוא: 5,000 00 5 5 00 שקלים ממחירו הקודם 0005 תשובה: מחיר הספה לאחר ההתייקרות הוא

קרא עוד

Microsoft PowerPoint - lecture4_handnotes_2013_2.ppt [Compatibility Mode]

Microsoft PowerPoint - lecture4_handnotes_2013_2.ppt [Compatibility Mode] JMP Jcc ;Jump ; conditional jump JA/JNBE CF ZF=0, above/ not below or equal JAE/JNB CF=0, above or equal/ not below JB/JNAE CF=1, below/ not above or equal JBE/JNA CF ZF=1, below or equal/ not above JC

קרא עוד

WinZIP תוכנה לדחיסת קבצים ספטמבר 2007

WinZIP תוכנה לדחיסת קבצים ספטמבר 2007 WinZIP תוכנה לדחיסת קבצים ספטמבר 2007 תשס"ח 2007. כל הזכויות שמורות לאוניברסיטה הפתוחה. בית ההוצאה לאור של האוניברסיטה הפתוחה, רח' רבוצקי 108 ת, "ד 808, רעננה 43107. The Open University of Israel, 108

קרא עוד

<4D F736F F D20FAE5F1F4FA20ECE7E5E5FA20E3F2FA20ECE2E1E920E3E9F1F720FAEEE5F0E5FA20E6E9F8FA20E4F8F6E72E646F63>

<4D F736F F D20FAE5F1F4FA20ECE7E5E5FA20E3F2FA20ECE2E1E920E3E9F1F720FAEEE5F0E5FA20E6E9F8FA20E4F8F6E72E646F63> טי.וי.קליפ אולפן עריכה והקלטה לוידאו וסאונד שירותים מיוחדים לתחום החקירות והמשפט ניתוח וידאו וסאונד חוות דעת מקצועית טלפון : 09-7663465, פקס': 054-4212424, 077-4213465 נייד : רחוב הכיכר 4 (קניון הכיכר)

קרא עוד

מבחן בפיתוח מערכות תוכנה בשפת Java ( )

מבחן בפיתוח מערכות תוכנה בשפת Java ( ) עמוד 1 מתוך 10 )0368-3056( מבחן בפיתוח מערכות תוכנה בשפת Java בית הספר למדעי המחשב אוניברסיטת תל אביב סמסטר ב' תשס"ח, מועד ב' תאריך הבחינה: 24.09.2008 מרצה: אוהד ברזילי חומר עזר מותר בשימוש: אין משך הבחינה:

קרא עוד