منبع باز | Open Source

Hamid Davoodi Shandiz

Open source software is software with source code that anyone can inspect, modify, and enhance.

رای دهی: 5 / 5

rating_star Atmel Studio - منبع باز | Open Sourcerating_star Atmel Studio - منبع باز | Open Sourcerating_star Atmel Studio - منبع باز | Open Sourcerating_star Atmel Studio - منبع باز | Open Sourcerating_star Atmel Studio - منبع باز | Open Source
 

متن باز یا منبع باز (open source) چیست؟

اصطلاح منبع باز یا متن باز ( open source ) اشاره به چیزی است که بدلیل ساختار قابل دسترس توسط عموم ، مردم می‌توانند آنرا تغییر داده و با اشتراک بگذارند .

این اصطلاح در توسعه نرم‌افزار ، سرچشمه رویکرد خاصی در ایجاد برنامه‌های رایانه‌ای شد .

به هر حال امروز متن باز یا منبع باز (open source) گستره‌ای از ارزش‌ها که ما آنرا "مسیر متن‌باز" می‌نامیم را تعیین می‌کند.

پروژه‌ها و محصولات متن باز یا منبع باز به تبادل باز ، همکاری مشارکتی ، نمونه‌سازی سریع ، شفافیت ، شایسته سالاری و توسعه جامعه محور ( community - oriented development ) مشهور شده‌اند.

نرم افزار متن باز یا منبع باز ( open source ) چیست ؟

نرم افزار متن باز یا منبع باز به نرم افزاری اطلاق می‌شود که کد منبع (source code) آن توسط هر کسی قابل بازبینی، بررسی، ویرایش و توسعه است. یعنی برنامه‌نویسان رایانه می توانند با دستکاری و ایجاد تغییر در بخشی از نرم‌افزار یا برنامه عملکرد آن را تغییر دهند. برنامه‌نویسان رایانه که به کد منبع نرم‌افزار دسترسی دارند، میتوانند اشکالات آنرا رفع و یا ویژگی‌های جدیدی نیز به آن اضافه نمایند تا عملکردی بهتری داشته باشد.

 

تفاوت نر‌م افزارهای متن باز یا منبع باز با سایر نرم‌افزارها چیست؟

کد منبع برخی از نرم افزارها به صورت انحصاری، فقط توسط شخص ، تیم و یا سازمان ایجاد کننده آن قابل رویت ، تغییر و انتشار می‌باشد . مردم اینگونه نرم‌افزارها را صلاحاً اختصاصی (proprietary) یا متن بسته (closed source) می‌نامند.

در نرم افزارهای اختصاصی فقط نویسندگان اصلی حق کپی ، بازبینی و تغییر و انتشار نرم افزار را دارند. برای استفاده از نرم افزارهای اختصاصی کاربران باید ابتدا توافق‌نامه‌ای را امضا کنند (معمولاً در سیستم‌های نرم افزاری این توافقنامه در اولین باری که سیستم اجرا شود و یا در حین عملیات نصب نمایش داده شده و توسط کاربر تایید می‌شود) که در آن تصریح شده که کاربران نباید کاری را که خلاف میل صاحبان نرم افزار است با آن انجام دهند. مایروسافت ویندوز ، آفیس و فوتوشاپ نمونه‌هایی از نرم افزارهای اختصاصی (proprietary) هستند.

نرم افزارهای منبع باز یا متن باز (open source) اما متفاوت هستند. نویسندگان و تهیه کنندگان اولیه این نرم افزارها اجازه دسترسی به کد منبع ( source code ) این نرم افزارها را در اختیار همه کاربران برای مشاهده، یادگیری، اصلاح، تغییر عملکرد، توسعه و یا انتشار، قرار داده‌اند. نرم افزارهای لینوکس (Linux) و لیبره آفیس (libre office) چند نمونه از  نرم افزارهای متن باز یا منبع باز هستند.

مانند نرم افزارهای اختصاصی کاربران نرم افزارهای منبع باز یا متن باز (open source) نیز باید قبل از استفاده از این نرم افزارهای شرایط مجوز این نرم افزارها را قبول نمایند، اما این شرایط با شرایط مجوز نرم افزارهای اختصاصی (proprietary) به صورت چشمگیری متفاوت است.

مجوز یا لایسنس‌های متن باز یا منبع باز ، راهی را نشان می دهد که کاربران می توانند کدهای منبع نرم افزار را مطالعه ، کپی ، تغییر و منتشر نمایند. به طور کلی مجوز نرم افزارهای متن باز یا منبع باز به کاربران خود اجازه هرگونه استفاده‌ای که تمایل دارند از نرم افزار را می‌دهد. برخی از مجوزهای نرم افزارهای متن باز یا منبع باز که توسط عده‌ای کپی‌لفت (copyleft) نامیده می‌شود قیدی برای کسانی که میخواهند تغییری در این نرم افزارها ایجاد کرده و منتشر نمایند ایجاد کرده و انتشار متن باز و دسترسی به کد منبع برنامه جدید در کنار فایل های اجرایی را اجباری می‌نمایند. علاوه بر این برخی از مجوزهای متن باز تصریح می‌کند که در صورت تغییر و انتشار یک نرم افزار متن باز شما باید کد منبع برنامه را نیز منتشر نموده و اجازه دریافت هیچگونه مبلغی برای صدور مجوز استفاده یا لایسنس نرم افزار را نخواهید داشت .

نرم افزارهای متن باز ذاتاً همکاری و انتشار را با دسترسی به کد منبع خود و امکان ادغام ماژول‌ها در داخل نرم افزارهای سازمانی ترویج می‌نمایند. آنها برنامه نویسان رایانه تشویق به دسترسی، مشاهده، تغییر و انتشار نرم افزارهای متن باز یا منبع باز هر زمان که دوست دارند مینمایند، تا زمانی که آنها نیز همین امکان را با دیگران به اشتراک بگذارند.

چرا مردم ترجیح می‌دهند از نرم افزارهای منبع باز یا متن باز (open source) استفاده کنند؟

دلایل زیادی وجود دارد که مردم ترجیح می‌دهند از نرم افزارهای متن باز یا منبع باز استفاده کنند. از جمله این دلایل عبارتند از :

کنترل: خیلی از کاربران با توجه به دسترسی عمومی به کد منبع برنامه و امکان کنترل آن توسط خودشان از نرم افزارهای متن باز یا منبع باز استفاده می‌کنند .

آنها می‌توانند با بازبینی کد منبع برنامه از عدم انجام کارهایی که نباید انجام شود اطمینان حاصل نموده و یا کارکرد بخشی از نرم افزار را مطابق سلیقه یا نیاز خود تغییر دهند .

کاربران غیر برنامه نویس هم به این موضوع علاقه مندند چون می‌توانند به هر منظوری که خودشان دوست دارند از نرم افزار استفاده کنند و فقط محدود به مقاصدی که شخص دیگری برای آنها مشخص نموده نیستند .

آموزش: برخی دیگر به نرم افزارهای منبع باز یا متن باز علاقه‌مندند چون به آنها کمک می‌کند تا برنامه‌نویسان بهتری باشند .

از آنجایی که کد منبع این نرم افزارها در دسترس عموم قرار دارد دانش‌اموزان به راحتی می توانند با مراجعه و مطالعه این کدها برنامه نویسی را بهتر بیاموزند.همچنین آن‌ها می توانند با به اشتراک گذاری کد منبع خود از دیگران برای نقد و نظر دعوت کرده و با نظرات آنها توانمندیها و مهارت‌های خود را گسترش دهند. هنگامی که افراد اشتباهاتی را در نرم افزارهای متن باز کشف می کنند با اشتراک این اشتباهات از تکرار آن توسط دیگران نیز جلوگیری به عمل می‌آورند .

امنیت (security): بسیاری از افراد ترجیح می‌دهند از نرم افزارهای متن باز یا منبع باز ( open source ) استفاده کنند چون این نرم افزارها را امن‌تر و پایدارتر از نرم افزارهای اختصاصی (proprietary) می‌یابند. چون کد منبع آن توسط هرکسی قابل مشاهده بوده و از آنجا که تغییر در بخش‌هایی از ان مستلزم کسب اجازه از نویسنده اصلی نیست میتوان اشکالات یا خطاهای مشاهده شده را نیز رفع نمود. از آنجایی که معمولاً این نرم افزارها دارای جوامع برنامه‌نویسی بزرگی نسبت به تیم‌های توسعه دهنده نرم افزارهای اختصاصی هستند لذا رفع اشکالات و خطاها نیز در آنها سرعتر انجام می‌شود .

ثبات (stability): بسیاری از کاربران ترجیح می‌دهند از برنامه‌های متن باز یا منبع باز در پروژه‌های مهم و دراز مدت خود استفاده کنند. چون با توجه به در دسترس بودن کد منبع برنامه این نگرانی که روزی برنامه‌نویس اصلی سیستم دیگر علاقه یا توان کار کردن بر روی پروژه را نداشته باشد و استفاده کنندگان دچار مشکل شوند وجود ندارد .

 

نرم‌افزارهای متن‌باز باید دارای ۱۰ تعریف زیر باشند:

۱. توزیع مجدد آزاد

نرم‌افزار باید بدون نیاز به حق امتیاز یا هر گونه پرداختی برای فروش، امکان توزیع به صورت آزاد را داشته باشد.

۲. کد منبع

کد نرم‌افزار باید شامل نرم‌افزار باشد و اجازه توزیع کد نرم‌افزار داده بشود (برای مثال از یک صفحه وب قابل دانلود باشد).

۳. کار مشتق‌شده

اعمال تغییرات و کارهای بعدی روی نرم‌افزار امکان‌پذیر باشد و این نرم‌افزار جدید را بتوان تحت همان شرایط نرم‌افزار اولیه و اصلی تکثیر کرد.

۴. نگهداری تمامیت کد منبع نویسنده اصلی نرم‌افزار

مجوز نرم‌افزار ممکن است اجازه تغییر در اصل متن برنامه را به کاربران ندهد و تنها اجازهٔ افزودن وصله‌های نرم‌افزاری و کامپایل مجدد برنامه را بدهد. در این شرایط توسعه دهندگان تنها می‌توانند توزیع‌هایی به کمک وصله‌های نرم‌افزاری خود ایجاد نمایند. مجوز نرم‌افزاری می‌باید صراحتاً ایجاد توزیع تازه با تغییر مجدد در کد اصلی را محدود نماید. نرم‌افزار توزیع شده تحت این مجوز می‌باید حتمن نام نسخه‌ای تازه را داشته باشد.

۵. بین افراد و گروه‌ها تبعیضی گذاشته نشود

اجازه‌نامه نباید بین افراد یا گروه‌ها تبعیضی بگذارد.

۶. هیچ تبعیضی در نوع استفاده از نرم‌افزار وجود نداشته باشد

هیچ گونه تبعیض و تمایزی بین هر فعالیتی که در راستای نرم‌افزار انجام می‌گیرد، وجود نداشته باشد. برای مثال نرم‌افزاری نباید بین استفادهٔ تجاری یا تحقیقاتی تبعیض قائل شود.

۷. توزیع اجازه‌نامه

مجوز باید به هرکسی که یک کپی از نرم‌افزار را دریافت می‌کند نیز اختصاص یابد، بدون این‌که آن‌ها نیاز به توافق و هماهنگی با اجازه‌نامهٔ دیگری داشته باشند.

bottom-logo Atmel Studio - منبع باز | Open Source

گروه توسعه دهنده نرم افزاری و برنامه نویسی

Atmel Studio