در لایههای زیرین هر نرمافزاری که استفاده میکنید، یک سورس کد وجود دارد که به فرمانهای کاربر رسیدگی و دیتایی که اجازه میدهد نرمافزار به درستی کار کند را مدیریت میکند. این پرسش که چه کسی حق دارد به این سورس کد نگاه انداخته یا دستکاری و بازتوزیعاش کند، یکی از بحثهای بنیادین و ایدئولوژیک در دنیای پردازش به حساب میآید.
طرفداران نرمافزارهای متنباز، همانطور که از نام این ایده پیداست، طرف آزادی و بیپردگی را میگیرند: این افراد احساس میکنند که مردم باید حق دسترسی به سورس کد نرمافزاری که به استفاده از آن روی آوردهاند را داشته باشند. اما همانطور که میتوان در جهان واقعی و غیر ایدهآل دید، «متنباز» در عمل ممکن است معانی متفاوت داشته باشد. در هر حوزهای که بتوانید فکرش را کنید، گستره متنوعی از نرمافزارهای متنباز داریم و در واقع این نرمافزارها، بیشترین سهم را از اکثر این حوزهها دارند.
اگر بخواهیم بسیار مختصر بگوییم، عبارت «متنباز» به نرمافزاری تعلق مییابد که کدهای زیرین آن قابل مشاهده، دستکاری و بازتوزیع باشد. (یک معنای طولانیتر و رسمیتر نیز برای متنباز وجود دارد که جلوتر به آن هم میرسیم). امکان «دستکاری و بازتوزیع» بخشهایی کلیدی در فلسفه نرمافزارهای متنباز به حساب میآیند. اما برخلاف شائبهای که این نام ممکن است به وجود آورد، صرف اینکه هرکسی بتواند سورس کد یک نرمافزار را باز کند، به معنای متنباز بودن آن نرمافزار نیست.
از برخی جهات، عبارت «نرمافزار متنباز» یک پسنام است: در نخستین دهههای علوم کامپیوتر، سورس کد نرمافزارها به عنوان عنصری مهم در پروسه در دسترس قرار میگرفت و به صورت آزادانه میان محققان و دانشمندان صنعت تبادل میشد. کامپیوترها اندک و بسیار متفاوت از یکدیگر بودند و انتظار میرفت توسط کاربر دستکاری و شخصیسازی شوند، بنابراین لازم بود همه به کد دسترسی داشته باشند.
نرمافزار به عنوان یک افزونه برای سختافزار کامپیوتر تلقی میشد و حتی تا سال ۱۹۷۴ میلادی، امکان کپیرایت قانونی نرمافزارها وجود نداشت. اما وقتی شاهد ظهور عصر مایکروکامپیوترها در اواخر دهه ۱۹۷۰ میلادی بودیم، صنعت تغییر رویکرد داد و نرمافزار دیگر چیزی به حساب میآمد که به خودی خود ارزش داشته و قابل پولسازی تلقی میشود.
به این ترتیب، دسترسی به کدهای زیرین نرمافزار میتواند و باید محدود گردد تا از حقوق سازنده محافظت شود. نامه معروف بیت گیتس در سال ۱۹۷۶ به فعالان حوزه کامپیوتر که در آن از استفاده غیرقانونی و گسترده از نخستین محصول مایکروسافت، یعنی Altair BASIC شکایت شده بود، یکی از برجستهترین مستندات این تحول بزرگ است.
درحالی که این ایدههای تازه به سرعت توسط صنعت نرمافزار که به سرعت رشد میکرد قاپیده میشدند، برخی از افراد شروع به مقابله کردند. یکی از نخستین مخالفین، ریچارد استالمن بود که بنیاد نرمافزار آزاد (FSF) را در سال ۱۹۸۵ میلادی تاسیس کرد. عبارت «آزاد - Free» در نرمافزار آزاد به این معنا بود که کاربران در دستکاری و بازتوزیع کدها، هرطور که خودشان دوست داشتند، آزاد بودند: در این صورت، هیچ قانونی علیه درآمدزایی از نرمافزار آزاد وجود ندارد. باید دقت داشت که کلمه Free دو بار معنایی «آزاد» و «رایگان» دارد. اما در این جا، صحبت راجع به آزادی، مثل «آزادی بیان» است و نه رایگان بودن مثل یک «ناهار رایگان».
اما ایده نرمافزار آزاد، بسیاری از فعالان خصوصی صنعت را که علاقه چندانی به عرضه آزادانه محصولاتشان نداشتند نگران میکرد. در سال ۱۹۹۸ میلادی، کریستین پیترسون عبارت «متنباز» را ابداع کرد تا این ایده برای تازهواردان دسترسیپذیرتر شود، خصوصا برای آن دسته از افرادی که در شرکتهای غیرانتفاعی فعالیت میکردند. اگرچه استالمن با استفاده از عبارت متنباز مخالفت کرد و گفت که این کلمه با ایدههای فلسفی و سیاسی نرمافزار آزاد فاصله دارد، اما اکنون از این عبارت بیشتر از هر چیز دیگر برای توصیف مفهوم مورد نظر استفاده میشود.
نمودار ونِ نرمافزارهای متنباز و آزاد آنقدر در برخی نقاط دچار همپوشانی میشود که گاهی هر دو در دستهبندی FOSS (نرمافزار آزاد و متنباز - Free and Open Source Software) جای میگیرند. در مجموع، تمام نرمافزارهای آزاد، متنباز هستند، اما تعداد اندکی از نرمافزارهای متنباز قوانین خاصی راجع به شرایط لایسنس دارند که باعث میشود آزاد نباشند (درباره لایسنس متنباز جلوتر صحبت خواهیم کرد).
مفاهیم نرمافزار آزاد و نرمافزار متنباز باعث شد به مرور یک پسنام دیگر هم به وجود آید: «نرمافزار مالکیتی» یا به عبارت دیگر، «هر نرمافزاری که متنباز نیست».
تمام حقوق و مسئولیتهای مربوط به نرمافزار متنباز براساس لایسنسی که نرمافزار تحت آن توزیع یافته تعیین میشود. درحالی که دکترین قانونی مربوط به کپیرایت نرمافزار به تصویب میرسید، لایسنسهای نرمافزاری هم نوشته شدند تا نقش نوعی قرارداد میان صاحب محصول و کاربر باشند و به کاربر اجازه دهند آن نرمافزار را روی کامپیوتر شخصی خود به اجرا در آورد.
لایسنسهای نرمافزاری در ابتدا به وجود آمدند تا رفتارهای کاربر را محدود کرده و از حقوق تولیدکننده دفاع کنند. اما فعالان نرمافزار آزاد دریافتند که میتوانند اهداف اولیه این لایسنسها را دگرگون کنند: لایسنس یک پکیج نرمافزاری میتواند در عوض مشمول دسترسی هرکسی به کدهای زیرین باشد و کاربر این حق را دارد که کد را ادیت و بازتوزیع کند. نخستین لایسنس نرمافزار متنباز احتمالا جواز کپیبرداری GNU Emacs باشد که در سال ۱۹۸۵ میلادی برای ادیتور متن Emacs و توسط استالمن نوشته شد.
از آن زمان، تعداد لایسنسهای متنباز و آزاد سر به فلک کشیده و هر لایسنس از منظر قواعد کلی استفاده، تفاوتهای اندک با دیگری دارد. در حالت کلی، هرکدام از این لایسنسهای متنباز به کاربران سه آزادی اساسی میدهند: اینکه بتوانند سورس کد را بخوانند، آن را ویرایش کنند و همینطور بازتوزیع. اصلیترین وجه تفاوت، قواعدی است که برای بازتوزیع به کار میگیرند:
لایسنسهای آسانگیر (Permissive Licenses): به شما اجازه میدهند سورس کد را هرطور که صلاح میدانید بازتوزیع کنید. برای مثال میتوان سورس کدی که لایسنس آسانگیر دارد را برداشته، درون نرمافزار خودتان جای دهید و بعد نرمافزارتان را با لایسنس مالکیتی منتشر کنید. لایسنس BSD یکی از شناختهترین انواع لایسنسهای آسانگیر است.
لایسنسهای کاپیلفت (Copyleft Licenses): لازم است هر کد بازتوزیع شدهای که با بهرهگیری از از کد لایسنس شده به وجود آمده، تحت لایسنسی مشابه منتشر شود. ورژنهای مختلف لایسنس GNU Plublic که توسط FSF تهیه شدهاند، لایسنس کاپیلفت هستند و هدف همواره این بوده توسعهدهندگان، مزایایی که با استفاده از کد متنباز در پروژههایشان به دست آوردهاند را با نویسنده اصلی کد به اشتراک بگذارند.
جالب است بدانید که ایدههای پشت این لایسنسها راهشان را به بیرون از دنیای نرمافزار نیز باز کردهاند. برای مثال Creative Commons یک زیرساخت قانونی برای تعیین قواعدی مشابه در رابطه با آثار هنری بصری یا نوشتاری است.
یک نرمافزار متنباز دقیقا به خاطر ماهیتش، تحت کنترل هیچ شخصیت حقیقی یا حقوقی واحد نیست. در سال ۱۹۹۸ میلادی، گروهی از توسعهدهندگان که بروس پرنز و اریک اس. ریموند از جمله آنها بودند، Open Source Initiative (یا به اختصار OSI) را تاسیس کردند. این سازمان غیرانتفاعی، دفاع از مفهوم متنباز را درون صنعت عظیم نرمافزار برعهده دارد. OSI سعی کرد در سال ۱۹۹۹ عبارت متنباز را تبدیل به علامت تجاری خود کند و شکست خورد.
معنای رسمی ارائه شده از سوی آنها برای متنباز، علاوه بر آزادی مشاهده، دستکاری و بازتوزیع کدها که در موردشان صحبت کردیم، شامل ممنوعیت لایسنسهایی نیز میشود که شخص یا اشخاصی از یک قشر خاص را از استفاده از نرمافزار، یا اجرای آن روی سیستمهایی خاص را منع میکنند.
توسعه نرمافزار به کمک کدهای متنباز در هر مکان و شرایطی ممکن است اتفاق بیفتد، از دانشگاهها گرفته تا سازمانهای بزرگ و معمولا هم شاهد الگوهایی مشابه در روند توسعه نرمافزار هستیم. اما نوعی پروسه توسعه اجتماعی نیز داریم که تنها در حوزه متنباز یافت میشود.
اریک اس. ریموند، نویسنده مقاله تاثیرگذار «کلیسای جامع و بازار» نقطه نظر جالبی درباره این پروسه ارائه کرده و میگوید پروسه باید بهگونهای باشد که هرکسی به کد دسترسی یابد و بهروزرسانیها توسط گروه متنوعی از توسعهدهندگان ساخته میشوند که سری به سورس کد زده و آنچه خود به آنها تمایل دارند را در کدها دیکته میکنند.
روندهای این چنینی توسعه متنباز معمولا در پروژههای متنباز به چشم میخورد. گاهی پروژه میتواند یک نرمافزار واحد باشد و گاهی مجموعهای از اپلیکیشنها. نرمافزار کنترل ورژن هم تمام مشارکتها را لیست و مرتب میکند. گیتهاب احتمالا محبوبترین آنها باشد.
پروژههای متنباز که گاهی توسط تنها یک نفر کلید میخورند، معمولا در یک جامعه اینترنتی کوچک دست به دست میشوند و گرچه هرکسی قادر به مشارکت در این پروژههاست، اما معمولا توسعهدهندگان معدودی واقعا در آنها مشارکت میکنند. برخی اوقات یک کمپانی بزرگ که قصد دارد از نرمافزار نهایی استفاده کند، اسپانسر پروژه میشود و حتی با اصلیترین توسعهدهندگان قرارداد امضا میکند.
نرمافزارهای متنباز بسیار فراگیرتر از آن چیزی هستند که ممکن است تصور کنید و بخش اعظمی از فونداسیون اینترنت مدرن به کمک آنها بنا شده است. احتمالا معروفترین پروژه متنباز جهان، لینوکس باشد که به میلیونها کامپیوتر و سرور در سراسر جهان قوت میبخشد. از دیگر پروژههای بسیار برجسته میتوان به وبسرور Apache، دیتابیس MySQL و ووردپرس اشاره کرد. بیشمار بستر توسعه مختلف مانند Ruby on Railns و .Net Core مایکروسافت هم به صورت متنباز منتشر شدهاند.
نرمافزارهای متنباز در حوزه کامپیوترهای خانگی و مصارف عادی کمتر موفق بودهاند. علیرغم هزینهی بالای پکیجهای نرمافزاری مالکیتی نظیر Microsoft Word و Adobe Photoshop، همتایان متنباز این محصولات نظیر OpenOffice و GIMP هیچوقت نتوانستهاند بازاری فراتر از بازار علاقهمندان سینهچاک به نرمافزارهای متنباز بیابند، عمدتا به این خاطر که جامعه متنباز از قدیمالایام، کارایی و انعطافپذیری را نسبت به سهولت استفاده در اولویت قرار داده.
حتی لینوکس هم که به زعم متخصصین کامپیوتر در اواخر دهه ۱۹۹۰ میلادی تنها یک سال با تبدیل شدن به بزرگترین سیستم عامل کامپیوتر جهان فاصله داشت هم نتوانسته راهش را به بازار مصرفکنندگان عادی باز کند. به صورت کلی، متنباز بیشتر از اینکه به دست کاربران عادی برسد، در زیرساخت کاربرد دارد.
متنباز چیزی فراتر از یک پروسه توسعه است: این یک فلسفه است که برخی از مردم را حسابی به وجد میآورد و همینطور جامعهای که هرکسی با دانش برنامهنویسی قادر به پیوستن به آن است در واقع آنطور که بنیاد لینوکس میگوید، متنباز زنجیرهای از جوامع است (و وجود سازمانهای غیرانتفاعی نظیر بنیاد لینوکس و OSI نیز بخش مهمی از همان جوامع). فلورین افنبرگر یک مقاله بسیار جذاب راجع به این نوشته که جامعه متنباز چطور به غنا و بلوغ رسید.
ممکن است گاهی هم بشنوید که مردم درباره جنبش نرمافزار آزاد یا متنباز صحبت میکنند که بر ابعاد سیاسی و قضایی متنباز نیز دلالت دارد. بسیاری از فعالان جامعه متنباز شدیدا در تلاش بودهاند که استفاده از نرمافزارهای متنباز را به دلایل متعدد فراگیر سازند: به نظر آنها، رویکرد متنباز منجر به تولید کدهایی بهتر میشود و دسترسی به سورس کد یکی از ابتداییترین حقوق کاربرانی است که قرار است از کامپیوتر شخصی خود لذت ببرند.
این ابعاد از جامعه متنباز امروزه کمتر به چشم میآید و شاید دلیلش این باشد که جنبش متنباز به پیروزی رسید. در سال ۲۰۰۱ میلادی، استیو بالمر، مدیرعامل وقت مایکروسافت گفت که به خاطر لایسنس متنباز، لینوکس «سرطانی است که خودش را به شکل یک مالکیت معنوی به هرچیزی که لمس میکند میچسباند.» امروز اما مایکروسافت به یکی از اصلیترین بازیگران حوزه نرمافزار متنباز تبدیل شده است.
این هم از این. حالا با تاریخچه مفهوم متنباز در دو دهه اخیر آشنایی کامل دارید.
پاسخ ها