מאמרים בנושא ‏תכנה ומחשבים‏.

כמה התכנה שוקלת או ניהול זכרון

ב־יום רביעי, 6 באוגוסט 2008, מאת ארתיום; פורסם תחת: לינוקס, פיתוח, תכנה ומחשבים; ‏5 תגובות

בעקבות המאמר של עידו על גודל של קובץ ריצה בפסקל ראיתי שיש מספר אי הבנות בנושא בכמה זיכרון התכנה משתמשת?

כיצד קבצי־ריצה וספריות נטענות?

כל תכנה או ספריה נטענת לזיכרון ע"י קריאה לפונקצית מערכת mmap (או פונקציות במערכות אחרות). מדוע mmap ולא קריאה לפונקציה כמו read? הסיבה היא פשוטה. נקח לדוגמה bash. אחת התכנות ה"נטענות" ביותר בלינוקס. כשאני קורא לפונקציה mmap על קובץ הריצה של bash בפעם הראשונה, המערכת מקצה דפי זיכרון וטוענת את הקובץ אליהן, אבל כש־mmap נקראת בפעם השנייה, דפי־הזיכרון שהתכנה מקבלת הם בדיוק אותם דפים פיזיים שהיו לפני. לכן, גם אם יש לי 10 תכנות של bash רצות במקביל, בפועל, היא תיטען רק פעם אחת (ליתר דיוק, רק קוד הריצה שלה ייטען פעם אחת).

אותו דבר קורא לספריות. כשתכנה א' טוענת ספריית gtk ותכנה ב' טוענת את הספרייה, הקוד נשאר משותף רק הנתונים הם שונים.

אז בואו נראה לדוגמה טבלה: מערכת בה רצות 3 תכנות: 2 bash ו־1 calc. נסתכל ככמה כל אחת משתמשת וכמה השימוש קיים בפועל.

זיכרון וירטואלי

Process Data Code           Libraries      Sum
----------------------------------------------
bash 1  1K,  /bin/bash 10K, /lib/libc 10k  21k
bash 2  1K,  /bin/bash 10K, /lib/libc 10K  21k
calc 1  1K,  /bin/calc 5K,  /lib/libc 10K  16k
----------------------------------------------
Seems to be                                57K

זיכרון פיזי

Real Memory
---------------
/bin/bash  10K
/bin/calc  5K
/lib/libc  10K
data1      1K
data2      1K
data3      1K
--------------
overall    28K

לכן, הוצאה של כל קוד משותף לספריות דינמיות זאת פעולה שבסופו של דבר חוסכת זיכרון. למשל, כל יישומי KDE בסופו של דבר יטענו עותק יחיד של kdelib ועותק יחיד של qt.

עכשיו קצת פרטים טכניים למי שמעוניין.

המשך...

אוגוסט פינגווין 2008, או "אני לא גיק!"

ב־יום שישי, 1 באוגוסט 2008, מאת ארתיום; פורסם תחת: תכנה חופשית, תכנה ומחשבים; ‏12 תגובות

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

אירועים מעניינים בכנס

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

הרצאה של אמיר שבט מ־Microsoft

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

המשך...

על מערכת ה־Cache של CppCMS.

ב־יום חמישי, 31 ביולי 2008, מאת ארתיום; פורסם תחת: תכנה חופשית, תכנה ומחשבים, CppCMS; ‏10 תגובות

אחד המרכיבים המשפיעים על ביצועים של תשתית לפיתוח אתרים היא מערכת ה־Cache. המערכת שיושמה ב־CppCMS כוללת מגוון אופציות ניהול מתקדמות, שלא זמינות בחלק מתשתיות פיתוח אתרים נפוצות כמו Django‏:

  1. מערכת טריגרים לרענון ה־Cache.‏
  2. ניהול תלויות (כמעט) אוטומטי שמקל על ניהול מידע קונסיסטנטי.

לקריאה נוספת: מערכת Cache: מבנה פנימי (אנגלית)

על קצב התקדמות תכנה חופשית

ב־יום רביעי, 30 ביולי 2008, מאת ארתיום; פורסם תחת: תכנה חופשית, לינוקס, תכנה ומחשבים; ‏8 תגובות

כשחיפשתי בווטסאפ אחת מהודעות ישנות שלי נתקלי בקטע הבא שכתבתי לפני כשנה וחצי‏ 19/01/07:

יש רשימה ענקית של באגים שקשורים לעברית שקיימים:

  • בכמה דפדפנים/מעבדי תמלילים אפשר לראות ניקוד כמו שהוא צריך להיות?
  • מתי לא יהיו בעיות בכיווניות ב-Gaim.
  • מתי יהיה אפשר לשלוח קבצים ב-ICQ ב-gaim
  • מתי יהיה מעבד תמלילים קל שתומך בעברית ראוי לשמו (או מתי AbiWord ועברית יתיידדו).
  • מתי עורכי ASCII של KDE יכירו בעברית (kate, quanta ועוד).
  • מתי מקשי קיצור בעברית יעבדו בשועל
  • מתי רוב נגני וידיאו שיתמכו בכתוביות בעברית - מהקופסה (כולל כיווניות וקידודים)

קיצור - אפשר לדבר המון - אבל מה שחסר זה מעשה...

מה השתנה מאז:

  • בכמה דפדפנים/מעבדי תמלילים אפשר לראות ניקוד כמו שהוא צריך להיות? --- עם שחרור culmus-1.0.2 שמכיל גופן David TrueType סוף סוף אפשר לעבוד עם עברית וניקוד ב־OO, גם תמיכה בניקוד השתפרה פלאים ב־AbiWord 2.6
  • מתי לא יהיו בעיות בכיווניות ב-Gaim. --- הנה טלאי שכתב שלומי שאמור לפתור את הבעיה!
  • מתי יהיה מעבד תמלילים קל שתומך בעברית ראוי לשמו (או מתי AbiWord ועברית יתיידדו). --- בבדיקה של הגרסה האחרונה של abiword יש שיפורים משמעותיים:
  • מתי עורכי ASCII של KDE יכירו בעברית (kate, quanta ועוד). --- דיאגו דואג לזה ב־KDE4!
  • מתי מקשי קיצור בעברית יעבדו בשועל? --- ב־Firefox 3 זה כבר עובד!

מכאן: 5 מתוך 7 נושאים נפתרו או קרובים להיפתר...

בקיצור... מישהו דיבר על קצב התקדמות של תכנה חופשית?

תכנה חופשית וקוד פתוח למתחילים

ב־יום שלישי, 29 ביולי 2008, מאת ארתיום; פורסם תחת: תכנה חופשית, תכנה ומחשבים; ‏25 תגובות

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

לצערי, גיליתי שלהסביר במה אני מתעסק, זה הרבה יותר קשה מלכתוב אלפי שורות קוד, לדבג אותן ולשכנע אנשים להשתמש במה שכתבתי. למרות שההורים שלי משתמשים בלינוקס ביום־יום, למרות שאבא שלי עובד עם Emacs, ‏LaTex ו־g77 עוד מתקופה שאני בכלל לא ידעתי מה זה UNIX, התגובה שקיבלתי על הסברים הייתה: "בקיצור תכנה חינמית" או כדברי אבא שלי: "халява" (לא מצאתי תרגום מדויק). כמובן, שזה רחוק מהמסר שרציתי להעביר ונפלתי לאותה מלכודת תדמיתית של "חלונות לעניים" שנתקלתי בה בעבר.

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

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

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

העמוד הבא

העמוד הבא

דפים

נושאים