اپن سورس چیست؟ متن باز چیست؟ Open Source چیست؟
تعریفی دیگر به نقل از ویکیپدیا:
OpenSource، به نرمافزارهایی میگویند که افراد میتوانند در کد منبع آنها، تغییر ایجاد کرده و یا اشکالات (باگ) احتمالی آنها را رفع کنند. این یک شیوهی توسعهی نرمافزار است که میتواند هم برای نرمافزارهای آزاد و هم برای نرمافزارهای با مالکیت انحصاری و تجاری به کار رود.
اکثر نرمافزارهایی را که تهیه و یا از طریق اینترنت دانلود میکنید، صرفا به صورت نسخههای کامپایل شده و آماده برای اجرا، در اختیار شما قرار می گیرند.
اعمال تغییرات دلخواه در اکثر برنامههای کامپایل شده، امری بسیار مشکل و گاها غیر ممکن است و اکثر تولیدکنندگان نرمافزارها، از ویژگی فوق به منظور صیانت و حفاظت از کدهای نوشته شده، استفاده می نمایند.
نرم افزارهای Open Source، نقطهی مقابل رویکرد فوق هستند. در اینگونه نرم افزارها، علاوه بر نسخهی کامپایل شده، کد اولیه نیز در اختیار متقاضیان قرار میگیرد و بدین ترتیب، امکان اعمال تغییرات و یا سفارشی نمودن آن، بدون هیچ مشکلی فراهم میشود که البته باید تخصص و دانش مربوطه به مواردی که در نوشتن کد منبع به کار رفته است، برای کسی که میخواهد روی آن کار کند، وجود داشته باشد.
از معروف ترینهای OpenSource در عصر حاضر
- لینوکس
- اندروید که خود نیز از هستهی لینوکس می باشد.
- نرم افزار محبوب تلگرام (البته سمت کلاینت)
- وردپرس
- جوملا
- PHP، زبان اسکریپت نویسی سمت سرور
ویژگی نرم افزارهای Open Source
- رایگان
- توزیع مجدد آزاد: نرمافزار باید بدون نیاز به حق امتیاز یا هرگونه پرداختی برای فروش، امکان توزیع به صورت آزاد را داشته باشد.
- کد منبع: کد نرمافزار باید شامل نرمافزار باشد و اجازه توزیع کد نرمافزار داده بشود (برای مثال از یک صفحهی وب قابل دانلود باشد).
- کار مشتقشده: اعمال تغییرات و کارهای بعدی روی نرمافزار امکانپذیر باشد و این نرمافزار جدید را بتوان تحت همان شرایط نرمافزار اولیه و اصلی تکثیر کرد.
- نگهداری تمامیت کد منبع نویسنده اصلی نرمافزار: مجوز نرمافزار ممکن است اجازه تغییر در اصل متن برنامه را به کاربران ندهد و تنها اجازهٔ افزودن وصلههای نرمافزاری و کامپایل مجدد برنامه را بدهد. در این شرایط توسعه دهندگان تنها میتوانند توزیعهایی به کمک وصلههای نرمافزاری خود ایجاد نمایند. مجوز نرمافزاری میباید صراحتاً ایجاد توزیع تازه با تغییر مجدد در کد اصلی را محدود نماید. نرمافزار توزیع شده تحت این مجوز میباید حتمن نام نسخهای تازه را داشته باشد.
- بین افراد و گروهها تبعیضی گذاشته نشود: اجازهنامه نباید بین افراد یا گروهها تبعیضی بگذارد.
- هیچ تبعیضی در نوع استفاده از نرمافزار وجود نداشته باشد: هیچ گونه تبعیض و تمایزی بین هر فعالیتی که در راستای نرمافزار انجام میگیرد، وجود نداشته باشد. برای مثال نرمافزاری نباید بین استفادهٔ تجاری یا تحقیقاتی تبعیض قائل شود.
- توزیع اجازهنامه: مجوز باید به هرکسی که یک کپی از نرمافزار را دریافت میکند نیز اختصاص یابد، بدون اینکه آنها نیاز به توافق و هماهنگی با اجازهنامهٔ دیگری داشته باشند.
- اجازهنامه نباید مخصوص یک محصول باشد: حقوق داده شده در مجوز یک نرمافزار نباید وابسته به این باشد که بخشی از بسته بزرگتری است. در صورتی که نرمافزار از محصول دریافت شده نیز جدا شود، باید همان حقوق را در استفاده، توزیع و ویرایش، به دریافت کننده نرمافزار را اعطا کند. تمام کسانی که آن نرمافزار را، که قبلاً به عنوان بخشی از محصول بزرگتری بوده است، دریافت و یا توزیع مجدد میکنند باید تمامی حقوق را مانند محصول اصلی داشته باشند.
- اجازهنامه نباید نرمافزارهای دیگر را محدود کند: شرایط تعریف شده در مجوز نباید توزیع نرمافزار را درکنار نرمافزارها با مجوزهای دیگر محدود کند. برای نمونه نمیتواند تعیین کند که تمامی نرمافزارهای ارائه شده در لوح فشرده ارائه شده باید متن باز باشند.
- اجازهنامه باید از نظر تکنولوژی بیطرف باشد: اجازهنامه نباید مختص یک تکنولوژی خاص باشد.
مزایای استفاده از نرم افزار منبع باز
یکی از مهمترین مزایای موجود در نرم افزار منبع باز، این است که هستهی اصلی این نرم افزار رایگان میباشد. مزیت دیگر این نوع نرمافزارها این است که کد منبع آنها قابلیت اصلاح شدن را دارد؛ بنابراین، برای پیشرفت و توسعه دادن نسخهی بعدی نرمافزار، نیازی نیست که تا آزاد شدن کد منبع آن صبر کنید و با گرفتن یک نسخه از نرمافزار، میتوانید به کد منبعی که در نرمافزار قرار داده شده است، دست یابید.
معایب نرم افزار منبع باز
در نرم افزار منبع باز نیز معایب خاصی وجود دارد. یک نمونه از نگرانیهایی که در برخی از این نرمافزارها وجود دارد، این است که هیچ پشتیبانی فنی برای آنها وجود ندارد! بنابراین، اگر یک مشکل در این نرم افزار پیش بیاید، ممکن است شخص نتواند آنها را خودش حل کند. این ویژگی را میتوان به این واقعیت نسبت داد که این نوع نرم افزارها طوری طراحی شدهاند که تغییر آن توسط کاربران مختلف و پشتیبانی فنی امکان پذیر باشد.
با این حال دانلود نرم افزار، جوانب مثبت و منفی دارد. فرد باید قادر باشد نرم افزار واقعی را از یک نرم افزار مخرب تشخیص دهد.
جمع بندی
با نگاهی به نرم افزار منبع باز، بسیار روشن است که این نوع نرم افزارها به رغم برخی کمبودها و نواقص، آیندهای بسیار روشن خواهند داشت و مردم بیشتر و بیشتر جذب آن میشوند؛ همچنین با این روش، پیدا کردن نرم افزار مناسب برای استفاده بسیار راحت میباشد.
بد نیست اشاره ای به یک مثال واقعی در دنیای نرم افزارهای Open Source داشته باشیم.
در سال ۱۹۹۱ ، Linus Torvalds، دانشجوی دانشگاه هلسینکی فنلاند یک سیستم عامل جدید مبتنی بر Minix (اقتباس شده از یونیکس) را ایجاد که نام آن را لینوکس (Linux) گذاشت. وی نسخه شماره ۰.۰۲ لینوکس را بر اساس GNU General Public Licens که شامل تعاریف قانونی جامعی در خصوص نرم افزارهای Open Source است، ارائه نمود. تعداد زیادی از افراد در سرتاسر جهان اقدام به Download لینوکس و استفاده از آن نمودند.
گروه زیادی از افراد فوق خود برنامه نویسان حرفه ای بودند که توانائی انجام تغییرات مورد نیاز در لینوکس را داشتند. Torvalds، نسخه های اصلاح شده توسط سایر برنامه تویسان را دریافت و با لحاظ نمودن تغییرات ، در سال ۱۹۹۴ نسخه شماره یک لینوکس را عرضه نمود.
با توجه به این موضوع، که همواره امکان و یا بهتر بگوییم، مجوز اعمال تغییرات و یا اصلاحات در این نوع نرم افزارها وجود دارد، تقریبا حمایت از آنان غیر ممکن و یا مشکل خواهد بود؛ بدین دلیل، برخی از شرکتهای حامی نرمافزارهای Open Source با توجه به ارائهی سرویس خدمات و پشتیبانی اینگونه نرمافزارها ، اقدام به فروش آنان مینمایند. مثلا، نرم افزار Red Hat در سال ۱۹۹۴ توسط Official Red Hat Linux عرضه گردید.
نرم افزار فوق رایگان نبوده و متقاضیان میبایست هزینهی استفاده (مالکیت) از آن را پرداخت نمایند. مهمترین ویژگی Red Hat، امکان پشتیبانی فنی از آن است.
رای اغلب سازمانها و موسسات تضمین حمایت های فنی و پشتیبانی یکی از عوامل مهم تصمیم گیری در خصوص خرید لینوکس در مقابل Download نمودن آن به صورت رایگان میباشد.
علاوه بر Red Hat، شرکت های متعدد دیگری نیز اقدام به عرضه لینوکس با توجه به سیاست ها و دیدگاه های خاص خود نموده اند .در این رابطه نرم افزارهای متعددی با محوریت لینوکس نیز طراحی و پیاده سازی شده است .
Mozilla (هسته مرورگر Netscape) ، سرویس دهنده وب Apache ، زبان اسکریپت نویسی وب PERL و فرمت فایل های گرافکیی PNG، نمونه هائی در این زمینه بوده که بر اساس ایده Open Source طراحی و پیاده سازی شدهاند.
منابع: ویکیپدیا و کامتونت + تغییرات
سلام خسته نباشید ممنون ازمطلب خوبتون