מהו קוד מקור, והאם מוגן כזכות יוצרים – עורך דין גיא אופיר

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

מהו קוד מקור?

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

קוד מקור הוא מושג בסיסי בתחום מדעי המחשב, אשר מתאר את כל אוסף ההוראות למחשב הנכתבות על-ידי שפת מחשבים מסויימת, הניתנת לקריאה על-ידי בני האדם, בד"כ כטקסט ולא כשפה בינארית (לדוגמא: שפת תכנות Cּּ++, Java וכו'). תוכנות התיכנות השונות נכתבו במיוחד כדי להקל את עבודתם של מתכנתים ומפתחים ע"י זה שהן ממירות מקוד מכונה לקוד מקור ולהפך (המרה זו נקראת "הידור"). דבר זה מתאפשר על-ידי פירוט הפעולות הניתנות לביצוע בכתיבת קוד המקור אשר בני אנוש יכולים לקרוא אותו יותר בקלות ("קוד מכונה" מורכב לעיתים מקוד בינארי של 0 ו- 1, ומאוד קשה לבן אנוש להבינו).

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

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

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

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

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

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

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

הפרת זכויות יוצרים בקוד מקור

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

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

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

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

לקבלת מידע נוסף, לחץ על הסרטון מטה: