"תוכנה חופשית" או "קוד פתוח", אל תעשה שימוש לפני שהבנת את ההבדל!

יניב אוזרזון

יניב אוזרזון

מנכ"ל ושותף מייסד

"תוכנה חופשית" או "קוד פתוח", אל תעשה שימוש לפני שהבנת את ההבדל!

יניב אוזרזון

יניב אוזרזון

מנכ"ל ושותף מייסד

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

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

מעט רקע

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

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

ראשית התוכנה החופשית

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

אין זה מקרי כי באותה השנה בדיוק הצהיר ריצ'רד סטולמן, על פרויקט שאפתני להחזיר את החופש בתוכנות חזרה אל המשתמשים. מטרתו הסופית הייתה להחליף את כל התוכנות המסחריות בתוכנות חופשיות, והראשונה שבהן מערכת ההפעלה יוניקס. לפרויקט ולמערכת ההפעלה העתידית קרא GNU, שם רקורסיבי אשר משמעו "Gnu's Not Unix". כתיבת התוכנה נעשתה באופן מבוזר על ידי אנשים שונים אשר כל אחד תרם חלק לאפליקציות מערכת ההפעלה.

לצורך מימון פרויקט ה-GNU הוקמה עמותה בשם Free Software Foundation (FSF) ועל מנת לשמור על החופש בתוכנה ולמנוע הפיכתה למסחרית נכתב רישיון תוכנה ייעודי, General Public License (GPL), בהתאם לערכים ולארבע החרויות אשר בבסיס הגדרתה של "תוכנה חופשית" על פי סטולמן וה-FSF.

מטרתו הראשונית של פרוייקט ה GNU הושלמה רק ב 1992 בעזרתו של סטודנט פיני בשם לינוס טורוולד אשר כתב, באופן עצמאי ומנותק מפרויקט ה GNU, קרנל (kernel) תואם למערכת ההפעלה יוניקס ולפי כך תואם גם לאפליקציות אשר נכתבו על ידי פרויקט ה GNU. את הקרנל שחרר לינוס תחת השם לינוקס ורישיון ה GPLv2, ומערכת ההפעלה נקראה GNU Linux. לימים הסתייג לינוס מהתנהלות ה FSF ומרשיון ה GPLv3, גרסתו השלישית של ה General Public License.  

עלייתו של הקוד הפתוח

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

גישתו של סטולמן וה-FSF העלתה דאגה בקרב תומכים רבים של רעיון התוכנה החופשית כי גישה זו תפגע בהפצתם של רעיונות התנועה המקוריים. בשנת 1998 נוסד ה- Open Source Initiative (OSI), על ידי אריק ריימונד (מחבר המאמר המכונן "הקתדרלה והבזאראשר צוטט רבות) וברוס פרנס, במטרה למתג מחדש את התוכנות החופשיות, תוך שימת דגש על הערך של פיתוח תוכנה באופן שיתופי על ידי קהילה מבוזרת של מפתחים ומתוך אמונה כי מבנה זה של פיתוח יוצר תוכנה בטוחה ואמינה יותר, שכן יותר אנשים בוחנים את קוד המקור.

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

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

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

ההבחנה אם תוכנה מסוימת נחשבת "תוכנה חופשית" או "תוכנת קוד פתוח" תלויה ברישיון תחתיו היא מופצת, והאם רשיון זה מוכר על ידי ה- FSF, OSI או שניהם. למרות שישנה חפיפה בין הרשיונות, ישנם לא מעט יוצאים מן הכלל. לדוגמא, הסכם הקוד הפתוח של נאס"א אשר אושר על ידי ה-OSI, אך לא על ידי ה-FSF הרואה בו כמגביל מדי. כמו כן, ישנן תוכנות פופולריות כגון, MongoDB ו- ElasticSearch, אשר נכון להיום, מופצות תחת רישיון ה-SSPL אותו גם ה-OSI אינו מקבל כעונה להגדרה של קוד פתוח.

סיכום

היום כל תוכנה מסחרית מורכבת ברובה (כ 70% בממוצע) מרכיבי קוד פתוח ותוכנות חופשיות. עולם התוכנה אימץ את התוכנות החופשיות והקוד הפתוח באופן שלא ניתן לערעור. אפילו סטיב באלמר חזר בו במרוצת השנים ("I may have called Linux a cancer but now I love it "). האימוץ הנרחב מחייב הבנה של המושגים וניהול רכיבי הקוד הפתוח והתוכנה החופשית על מנת להימנע משילוב רישיונות סותרים העלולים לסכן את הקניין הרוחני של החברה או שימוש ברכיבים בעלי חולשות אבטחה ידועות.

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

Share on facebook
Share on twitter
Share on linkedin
Share on telegram

שתף את הבלוג

שתף את הבלוג

Share on facebook
Share on twitter
Share on linkedin
Share on telegram

קבע פגישה עוד היום!

קבע פגישה עוד היום!

דילוג לתוכן