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

אז מה זה בעצם לינוקס?

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

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

אז כדי לענות על השאלה מה זה לינוקס נענה על מה הוא כולל:

ממשק גרפי?

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

שורת פקודה/דוס/קונסול/מעטפת?

גם לא, גם אילו תוספות, אילו גם תוכנות, וברוב ההפצות יש אפילו כמה כאילו….

יוניקס?

לא רק שלינוקס היא לא יוניקס, אלא אין כמעט בכלל קשר.

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

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

אז מה נשאר? דרייברים, הפורמט של המחיצות? גם זה לא בהכרח…

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

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

אז במקום זאת עדיף לשווק את גנום, KDE, אובונטו, ולמי אכפת עם המערכת הפעלה היא לינוקס, BSD, סולאריס וכו'… המשתמש לעולם לא ישתמש ישירות בהם…


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

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

יש לי מספר רעיונות לפרוייקטים שיהיו נחמדים שיהיו ויוכלו לשפר רבות לדוגמה: ככל שיקלו את קלות הפיתוח, כך יהיו יותר תוכנות, ולכן כדאי שיהיה תכנות ויזואלי…  qt designer מתקדם רבות (כמו כל QT וKDE) על פני גלייד ומאפשר לחבר אירועים/אותות של פקדים לסלוטים של אחרים, ובקלות יכולתי לעשות כפתור שמדליק ומכבה לחילופין לד. אפשר להרחיב את זה למשהו יותר פרקטי, אם היו פקדי מודולים שיהיה אפשר לשלוח להפ פרמטרים וכו'. ככה שבלי תכנות מסובף ורק עם עיצוב אפשר לעשות תוכנות ממש טובות. ואף יהיה יותר יעיל אם יהיה איזה אתר אנטרנט שהעורך יהיה מסונכרן איתו שיהיה אפשר לעלות אליו דברים ולקבל תוספות כמו פקדים נוספים וכו'…

העתיד נמצא בווב, אז אולי דווקא כדאי להשקיע שם, יש הרבה טכנולוגיות שצריך להשקיע מבחינת פיתוח בשביל לקדם כמו SVG, פרוייקטים פנימיים בפיירפוקס כמו jetpack שזו דוגמה מצוינת למה חשובה פשטות, עצם העובדה שהחלטתי לא ללמוד עד שאוכל ליצור פלאגין בשל בפיירפוקס בגלל מורכבות של XUL, לא אומרת שאני מתכנת גרוע… (לכל אילו שחושבים שהדרך צריכה להיות קשה כדי שלא יהיו מתכנתים עצלנים…)

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

התחלתי ללמוד (שוב) C יש כמעל אלף דפים בPDF של המדריך של libc ועוד כ70 דפים במדריך של gnuc אבל לא נורא, הכל עניין של זמן, ואם גישה כזו אין לי בעיה לפתוח פרוייקט הזוי שלא אציין אותו כאן עד שיהיה בו טיפה משהו.

ומתישהו, אולי…,

אוכל לישון.

ונמשיך לאקדמיה:

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

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

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


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

  1. גרסה קניינית עם יותר פיצרים – סיבה זאת גורמת באופן ישיר לקוד הפתוח להיות נחות, שכן מראש הוא יהיה פחות טוב מהגרסה הסגורה. דוגמאות: Virtualbox, Wine/Crossover, QT, מספר הפצות לינוקס מסחריות שיוצרות גרסאות סגורות ובדוקות יותר.
  2. רישוי כפול למוצרים קנייניים – מכירת רישיונות להפצה סגורה – מה שמאפשר לחברות אחרות לפתח מוצרים ולא להחזיר לקהילה את התוספות שיצרו.
  3. תמיכה – מודל שלכאורה נראה ממש טוב לתוכנה, שכן אפשר לשחרר את הכל, אולם מצד שני מעודד חוסר נחות למשתמש. הרי ככל שמשתמש תלוי יותר בשירותי התמיכה, כך המוצר פחות רווחי.

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

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

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

איך לדעתכם קוד פתוח יפסיק להיות סוג ב'?

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


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

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

הפיתוח הגאוני הזה נעשה בידי לא אחרת מאשר קנוניקל, ואף הכניסה אותו לשימוש עוד ב2006 אולם לקח עד עכשיו זמן להסב את כל השירותים שיעבדו בשיטה החדשה. הפרוייקט התחיל ע"י Scott James Remnant, שהתחיל כמפתח בדביאן ונלקח ע"י  מרק שאטלוורת' והפך להיות אחד מחמשת האנשים בוועד הטכני של אובונטו.

מי אמר שאי אפשר להתקדם טוב רק מלעשות פרוייקט קוד פתוח בהתנדבות? והוא רק בן 29… (ולפי הבלוג שלו הוא "מוכרח" להצהיר בכל מקום שהוא גיי, אז נזכיר את העובדה גם כאן)

החלק היפה בקוד פתוח ותוכנה חופשית שפרוייקט שמישהו אחד עושה מחלחל למקומות אחרים, Upstart נלקח גם להפצת פדורה, ההפצה Maemo 5 של נוקיה לפלאפונים שלה ואפילו webOS של הפלאפון החכם של Palm Pre.

Upstart הוא לא החידוש היחיד, אם כי לדעתי הכי משמעותי. Karmic Koala בשמה גם כוללת מרכז תוכנות חדש ומהיר, עיצוב שבאמת עושה טוב לעיניים. כמו כן היא כוללת שירות אכסון על שרתיה לגיבויים בשם Ubuntu One, שהגישה אליו נעשית בקלות ע"י תיקיה מיוחדת שמקושרת אליו ומציגה ומנהלת את תוכנו.

נראה שבאמת יש מה לצפות מלינוקס ותוכנה חופשית, ומחזק את החשק להמשיך הלאה.



© 2007 הבלוג של נדב ויניק משתמש בתבנית iKon שתרגם A.M.F