חינם, קוד פתוח, יוניקס ומק

מָבוֹא

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

קוד פתוח בחינם

הרעיון הראשון שרכש כדי להבין מהי תוכנהלְשַׁחְרֵרETקוד פתוחהאם זה שלמקור קודוקוד התוכנה המקור הוא מה שהמתכנת כתבו זה כתוב בשפה עם התחביר של דיוק מוחלט והוא מובן מאוד על ידי מתכנתים אחרים.

לדוגמה, הנה קוד המקור של יישום זעיר אשר הושק בטרמינל מציג "שלום mac4ever!" ::

#לִכלוֹל<stdio.h>
int main (בטל) {
Printf ("שלום mac4ever! \ N");
}

למרות כמה שורות אזוטריות, קריאת השורה השלישית יכולה להכניס את השבב לאוזן של כל אחד ביחס למטרה וההיגיון הפנימי של התוכנית (print = תצוגה באנגלית):פוסטר "שלום mac4ever!"ו

קוד מקור מיניאטורי זה כתוב ב- C. מחשבים אינם מבינים את C, בני אדם עם זאת יכולים להבין זאת. כך שהמחשב יודע מה לעשות עם קוד המקור הזה, הוא הכרחימַהְדֵרו הפעולה של עריכת קוד המקור, (הַהדָרָהלכן) הופך קוד זה קריא על ידי בני אדם לסוויטה לא מובנת של 1 ו- 0, שהוראות המובנות על ידי המעבד. לדוגמה כאן (בחלק הקסדצימאלי) של תוכן התוכנית שלמעלה, לאחר שנערך:

11 40 64 79 6C 64 5F 73 74 75 62 5F 62 69 6E 64
65 72 00 51 72 00 90 00 72 10 11 40 5F 65 78 69
74 00 90 00 72 18 11 40 5f 70 75 74 73 00 90 00
00 02 5f 00 0C 73 74 61 72 74 00 4B 00 04 5F 00
27 6d 61 69 6e 00 50 4E 58 41 72 67 00 55 65 6E
76 69 72 6f 6e 00 67 00 02 6d 68 5f 65 78 65 63
75 74 65 5f 68 65 61 64 65 72 00 47 5f 70 72 6f
67 6E 61 6d 65 00 6C 02 00 00 00 03 00 CC 1D 00

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

.cstring
LC0:
.
.טֶקסט
.globl _main
_רָאשִׁי:
LFB3:
PushQ %RBP
LCFI0:
MovQ %RSP, %RBP
LCFI1:
Leaq LC0 ( %RIP), %RDI
התקשרו _puts
לַעֲזוֹב
לְהַשְׁרוֹת
LFE3:
. סעיף __ טקסט, __ eh_frame, compaced, no_toc+strip_static_syms+live_support
EH_Frame1:
. סט L $ SET $ 0, LECIE1-LSCIE1
. LONG L $ SET 0 $
Lscie1:
. לונג 0x0
. בייט 0x1
.ascii "zr \ 0"
. בייט 0x1
. בייט 0x78
. בייט 0x10
. בייט 0x1
. בייט 0x10
.byte 0xc
. בייט 0x7
. בייט 0x8
. בייט 0x90
. בייט 0x1
.align 3
קיץ 1:
.globl _main.eh
_main.eh:
LSFDE1:
. סט L $ SET $ 1, LEFDE1-LASFDE1
LONG L $ SET $ 1
LASFDE1:
. lasfde1-eh_frame1
. קוואד LFB3-.
. סט L $ הגדר 2 $, LFE3-LFB3
. Quad L $ SET 2 $
. בייט 0x0
. בייט 0x4
. סט L $ הגדר 3 $, LCFI0-LFB3
. LONG L $ SET 3 $
. בייט 0xe
. בייט 0x10
. בייט 0x86
. בייט 0x2
. בייט 0x4
. סט L $ הגדר 4 $, LCFI1-LCFI0
. LONG L $ SET 4 $
. בייט 0xd
. בייט 0x6
.align 3
LEFDE1:
.subsections_via_symbols

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

המטאפורה של מתכון הבישול

Le Libre, l'Open-Source, UNIX et le Mac

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

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

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

באופן דומה, אנחנולְלַקֵטקוד המקור של התוכנה, ובכך הופך אותה ליישום (הצורה הבינארית של התוכנה) שניתן להפעיל ולהשתמש או להפיץ לאנשים אחרים.

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

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

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

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

L'Ocend Open

Le Libre, l'Open-Source, UNIX et le Mac

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

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

אֵמוּן

Le Libre, l'Open-Source, UNIX et le Mac

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

האיכות

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

המשתמש הוא חבר

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

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

המחיר

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

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

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

Le Libre, l'Open-Source, UNIX et le Mac

החופשי

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

חירות 0: הפעל את התוכנית

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

חירות 1: שנה את התוכנית

יש לך את הזכות ללמוד את התפקוד הפנימי של התוכנית (קוד המקור חיוני לעשות זאת) ולהשתמש בגרסה המותאמת בתנאים שהוגדרו על ידי Freedom 0 (כלומר ללא תנאים).

חירות 2: שתף את התוכנית

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

חירות 3: שתף את השינויים שלך

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

יתרונות אתיים

Le Libre, l'Open-Source, UNIX et le Mac

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

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

דוגמה הנוגעת ל- Mac: לאחר שהקימההַבָּא-סטיב ג'ובסוהצוות שלו כתב אקצה קדמילִשְׁפּוֹךGCC, המהדר החופשי שלפיתוח תוכנה בחינם, על מנת להיות מסוגל להרכיב את המטרה C, שפה המשמשת כיום למדי ב- Mac מכיוון שהיא קשורה מאודמִסגֶרֶתקָקָאוֹ. בתחילה, זהקצה קדמיהיה אמור להיות הבעלים אבלFSFיישמו את הרישיוןGPL(הרישיון החינמי העיקרי) ועכשיוGCCאוסף את האובייקטיבי-C בזכות קוד בחינם, על הטוב ביותר של כולם, אפילו אפל.

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

סרטון ארוך

ה- Mac, בכל זה?

מה הקשר עם ה- Mac?אתה יכול לשאול אותך באופן לגיטימי. כל זה קשור למילה קסומה במקצת:יוניקסו
כשהוא עוזב את אפל בשנת 1985, סטיב ג'ובס הקים חברה משלו,הַבָּאמהם אמרתי לך ממש למעלה. לאחר מכן הוא היה זקוק למערכת הפעלה ובחר את בחירתו בתוכנת קוד פתוח:BSDו

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

Le Libre, l'Open-Source, UNIX et le Mac

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

Related Posts