متن باز (Open Source) چیست و چه ویژگی ها و نقاط ضعف و قوتی دارد؟
متن باز (Open Source) و معنی لغوی این واژه:
- متن باز (Open Source) چیست و چه ویژگی ها و نقاط ضعف و قوتی دارد؟
- نرم افزار متن باز (Open Source) چیست؟
- نقاط قوت
- رایگان بودن
- خلاقیت جمعی
- افزونه (پلاگین) های بیشتر و بهتر
- رفع بهتر باگ ها
- نقاط ضعف
- نبود پشتیبانی فنی
- امکان سو استفاده و کاهش امنیت
- معرفی متن باز های معروف
- لینوکس
- اندروید
- تلگرام
- وردپرس
- متن باز (Open Source) در ایران
- مشخصات (از ویکی پدیا)
- ۱. توزیع مجدد آزاد
- ۲. کد منبع
- ۳. کار مشتق شده
- ۴. نگهداری تمامیت کد منبع نویسنده اصلی نرمافزار
- ۵. بین افراد و گروهها تبعیضی گذاشته نشود
- ۶. هیچ تبعیضی در نوع استفاده از نرمافزار وجود نداشته باشد
- ۷. توزیع اجازهنامه
- ۸. اجازهنامه نباید مخصوص یک محصول باشد
- ۹. اجازهنامه نباید نرمافزارهای دیگر را محدود کند
- ۱۰. اجازهنامه باید از نظر تکنولوژی بیطرف باشد
واژه “متن باز”(به انگلیسی=”Open Source” که “اُپِن سورس” تلفظ میشود)را شاید زیاد در این حوزه شنیده باشید.
مخصوصا با ورود و نفوذ گوشی های اندرویدی به بازار ایران.
زیرا اندروید هم از دسته سیستم عامل های متن باز به حساب می آید.
اما نرم افزار اپن سورس چیست؟چه فرقی با بقیه نرم افزار ها دارد؟مزایا و معایب آن کدام ها هستند؟
نرم افزار متن باز (Open Source) چیست؟
بهترین تعریفی که میتوان برای نرم افزار متن باز (Open Source) ارائه داد این است:نرم افزاری که مشتری هم میتواند سازنده آن باشد.
یعنی این نرم افزار ها به شما اجازه میدهند که هر تغییری که دوست داشتید را در آنها ایجاد کنید.
زیرا در کنار فایل اصلی برنامه که دانلود میکنید،میتوانید کدهای اصلی آن را هم از شرکت سازنده دریافت کنید.
اگر دانش کافی در زمینه برنامه نویسی داشته باشید قادر خواهید بود هر بخشی را ویرایش کرده و یک ورژن اختصاصی از نرم افزار برای خودتان بسازید.
نرم افزار های معمولی،یعنی آنهایی که متن باز نیستند،این اجازه را به شما نمیدهند.
شرکت سازنده به دلیل توجیه ها و قوانینی که برای خود دارد، مایل نیست که کدهای اصلی برنامه را در اختیار عموم مردم قرار دهد.
این کار هم مزایا و معایب خودش را دارد.
اما متن باز بودن دقیقا در نقطه ی مقابل این مدل قرار دارد.پس همه ی نرم افزار ها متن باز نیستند.
متن باز (Open Source) بودن را میتوان یک روش برای ساخت اپلیکیشن ها در نظر گرفت.
زیرا همانطور که در ادامه توضیح میدهیم،برنامه هایی که با این روش تولید میشوند آینده متفاوتی دارند.
نقاط قوت
این روش هم مانند تمام راه های دیگر دارای خوبی ها و کمبود هایی است.
برای آشنایی بهتر با برنامه های متن باز (Open Source) باید با نقاط قوت و ضعف آنها هم آشنا باشید.
رایگان بودن
اولین و بهترین خصوصیت این نرم افزار ها رایگان بودنشان است.
هر اپلیکیشنی که بصورت متن باز تولید و ارائه میشود،رایگان در دسترس عموم قرار میگیرد.
در برخی قوانین که برای این برنامه ها وجود دارد حتی نرم افزار هایی که از روی این برنامه ها ساخته میشوند و روانه بازار میگردند نیز باید رایگان باشند.
همچنین همه قادر خواهند بود تا به کدهای اصلی(کدهای منبع که به آنها Source Code گفته میشود)دسترسی داشته باشند.
خلاقیت جمعی
وقتی توسعه دهندگان زیادی روی یک برنامه کار کنند مطمئنا خلاقیت و نتیجه بهتری حاصل میشود.
این موضوع مسلم است که چند مغز بهتر از یک مغز کار میکنند.درباره نرم افزار ها هم همین موضوع صدق میکند.
معمولا کسانی که به ویرایش نرم افزار اقدام میکنند برنامه نویس ها و توسعه دهندگان حرفه ای هستند.
شرکت صاحب نرم افزار هم این اپلیکیشن های دستکاری شده را بررسی میکند و از نکات مثبت آنها برای به روز رسانی های بعدی استفاده میکند.
در این فرآیند ممکن است بخش های خلاقانه ای به نرم افزار اصلی افزوده شود که تیم سازنده نرم افزار اصلا در مورد آن حتی فکر هم نکرده باشند.
افزونه (پلاگین) های بیشتر و بهتر
از جمله فعالیت هایی که توسعه دهندگان برای نرم افزار های متن باز (Open Source) انجام میدهند درست کردن افزونه (Plugin) برای آنهاست.
پلاگین ها بسته های کوچک نرم افزاری هستند که برای افزودن یک قابلیت جدید یا برطرف کردن یک کمبود در برنامه اصلی ایجاد میشوند.
به عنوان مثال ممکن است مرورگر اینترنت شما توانایی استفاده مستقیم از مدیریت دانلود جداگانه ای که خودتان نصب کرده اید را نداشته باشد.
این مشکل با اضافه کردن یک افزونه به مرورگر حل میشود.(مثلا برای IDM،باید افزونه IDM Integration Module را روی مرورگر نصب کنید).
یکی از کارهای توسعه دهندگان این است که برای اپلیکیشن های متن باز افزونه های مختلف تولید کنند.
معمولا شرکت های معتبر این افزونه ها را بعد از بررسی و تایید،روی سرور های خود قرار میدهند تا برای همه در دسترس باشند.
رفع بهتر باگ ها
باگ داشتن یکی از ویژگی های تمام اپلیکیشن های جدید است.بسیار کم پیش می آید که یک نرم افزار جدید دارای باگ نباشد.
به همین دلیل معمولا شرکت های نرم افزاری قبل از ارائه رسمی،نسخه آزمایشی محصول خود را در اختیار توسعه دهندگان و برنامه نویس ها قرار میدهند.
آنها وظیفه دارند که همه ی قسمت ها را بررسی کنند و اگر اشکالی مشاهده کردند به شرکت گزارش دهند.
این مرحله یک گام اساسی و حساس برای تست امنیت محصول هم به حساب می آید.
این فعالیت برای برنامه های متن باز به صورت بسیار گسترده تر انجام میشود.
یعنی کد اصلی در اختیار همه ی کاربران قرار میگیرد،هرکدام از آنها اگر مشکلی را مشاهده کنند آنرا با استفاده از سرویس های Feedback به اطلاع سازنده میرسانند.
پس شرکت میتواند به سرعت از مشکلات موجود با خبر شده و آنها را برطرف نماید.
نقاط ضعف
بعد از اینکه نکات مثبت را درباره این روش بررسی کردیم،باید از ضعف هایی که در این نوع از اپلیکیشن ها مشاهده میشود را نیز بشناسیم.
نبود پشتیبانی فنی
پشتیبانی فنی از نرم افزار های متن باز مشکل و در بسیاری از موارد غیرممکن است.
زیرا هر لحظه هر کاربر در هر قسمت از کره زمین در حال تغییر و به روز رسانی این نرم افزار ها است.
مطمئنا شرکت سازنده نمیتواند همه ی این تغییرات را پوشش دهد و بررسی کند.به همین دلیل پشتیبانی فنی از طرف سازنده معنی خود را از دست میدهد.
امکان سو استفاده و کاهش امنیت
وقتی کد منبع یک برنامه در اختیار همه قرار داشته باشد با کمی بی اخلاقی میتوان از آنها سو استفاده کرد.
این مورد مخصوصا در اپلیکیشن هایی که با اطلاعات مهم کاربران سر و کار دارند بیشتر مشاهده میشود.
بعنوان مثال نرم افزار تلگرام دارای کلاینت(نسخه های غیر رسمی مثل موبوگرام و طلاگرام و …)های زیادی در ایران است.
اصلا بعید نیست که یک نسخه غیر رسمی دارای اشکالات امنیتی باشد و بتواند مشکلاتی را ایجاد کند.
معرفی متن باز های معروف
لینوکس
سیستم عامل لینوکس که برای لپتاپ و دسکتاپ به کار میرود از سیستم عامل های متن باز (Open Source) است.
این سیستم عامل از امنیت بالایی برخوردار هست.به طوری که گفته میشود ویروس های بسیار کمی برای آن نوشته شده است.
اندروید
یک سیستم عامل مخصوص گوشی های موبایل که بر پایه لینوکس ساخته شده.
اندروید توسط شرکت گوگل،غول اینترنتی،تولید و ارائه شده و در حال حاضر (سال ۲۰۱۸) محبوب ترین سیستم عامل موبایل جهان به حساب می آید.
تلگرام
یک نرم افزار پیام رسان محبوب در ایران که بیش از ۴۰ میلیون کاربر ایرانی دارد و اخیرا نسخه جدید آن با نام “تلگرام ایکس” هم روانه بازار شده است.
تلگرام هم از ویژگی متن باز بودن بهره میبرد.معروفترین کلاینت آن در ایران،موبوگرام است.
وردپرس
وردپرس قدرتمندترین سیستم مدیریت محتوا در جهان میباشد.
از این سیستم برای مدیریت وبلاگ ها و وبسایت های اینترنتی استفاده میشود.
همچنین دارای افزونه های قدرتمند و زیادی است که میتوانید از سرور های WordPress آنها را دریافت کنید.
متن باز (Open Source) در ایران
نرم افزار های متن باز در ایران هم پایگاه دارند.مرکز ملی توسعه و بکارگیری نرمافزارهای بومی و آزاد (متن باز) ایران،به نام “متنام”،روز چهارشنبه مورخ ۲۲ خرداد ۱۳۹۲ در ساختمان دوم سازمان فناوری اطلاعات ایران افتتاح شد و شروع به کار کرد.
برای معرفی و آشنایی با این مرکز ملی،به وبسایت آنها به نشانی matnam.ir مراجعه کردم.
اما متاسفانه با یک وبسایت بسیار ضعیف و ابتدایی روبرو شدم. صفحه های تماس با ما و درباره ما کلا خراب بودند.
در سایت “متنام” هیچ آگهی خاصی مبنی بر به روز رسانی یا وجود مشکل و عذر خواهی وجود نداشت و این در حالی است که ایجاد یک وبسایت با نرم افزار ها و زبان های متن باز رابطه بسیار تنگاتنگی دارد.
جای تاسف است که مرکز ملی توسعه نرم افزار های متن باز (Open Source) در ایران نتواند از همین نرم افزار ها که حیطه تخصصی اش میباشد برای ساخت سایت خود استفاده کند.
امیدواریم این مشکلات به زودی حل شوند.
مشخصات (از ویکی پدیا)
طبق گفته وبسایت ویکی پدیا،نرم افزار هایی که بصورت متن باز (Open Source) ارائه میشوند باید دارای یک سری ویژگی ها باشند.
اکثر آنها را به زبان ساده تر در مقاله توضیح دادیم اما اصل آنها را هم بدون تغییر برای شما قرار میدهیم:
نرمافزارهای متنباز باید دارای ۱۰ تعریف زیر باشند:
۱. توزیع مجدد آزاد
نرمافزار باید بدون نیاز به حق امتیاز یا هر گونه پرداختی برای فروش،امکان توزیع به صورت آزاد را داشته باشد.
۲. کد منبع
کد نرمافزار باید شامل نرمافزار باشد و اجازه توزیع کد نرمافزار داده بشود(برای مثال از یک صفحه وب قابل دانلود باشد).
۳. کار مشتق شده
اعمال تغییرات و کارهای بعدی روی نرمافزار امکانپذیر باشد و این نرمافزار جدید را بتوان تحت همان شرایط نرمافزار اولیه و اصلی تکثیر کرد.
۴. نگهداری تمامیت کد منبع نویسنده اصلی نرمافزار
مجوز نرمافزار ممکن است اجازه تغییر در اصل متن برنامه را به کاربران ندهد و تنها اجازهٔ افزودن وصلههای نرمافزاری و کامپایل مجدد برنامه را بدهد.
در این شرایط توسعه دهندگان تنها میتوانند توزیعهایی به کمک وصلههای نرمافزاری خود ایجاد نمایند.
مجوز نرمافزاری میباید صراحتاً ایجاد توزیع تازه با تغییر مجدد در کد اصلی را محدود نماید.
نرمافزار توزیع شده تحت این مجوز میباید حتمن نام نسخهای تازه را داشته باشد.
۵. بین افراد و گروهها تبعیضی گذاشته نشود
اجازهنامه نباید بین افراد یا گروهها تبعیضی بگذارد.
۶. هیچ تبعیضی در نوع استفاده از نرمافزار وجود نداشته باشد
هیچ گونه تبعیض و تمایزی بین هر فعالیتی که در راستای نرمافزار انجام میگیرد وجود نداشته باشد.
برای مثال نرمافزاری نباید بین استفادهٔ تجاری یا تحقیقاتی تبعیض قائل شود.
۷. توزیع اجازهنامه
مجوز باید به هرکسی که یک کپی از نرمافزار را دریافت میکند نیز اختصاص یابد،بدون اینکه آنها نیاز به توافق و هماهنگی با اجازهنامهٔ دیگری داشته باشند.
۸. اجازهنامه نباید مخصوص یک محصول باشد
حقوق داده شده در مجوز یک نرمافزار نباید وابسته به این باشد که بخشی از بسته بزرگتری است.
در صورتی که نرمافزار از محصول دریافت شده نیز جدا شود،باید همان حقوق را در استفاده،توزیع و ویرایش،به دریافت کننده نرمافزار را اعطا کند.
تمام کسانی که آن نرمافزار را که قبلاً به عنوان بخشی از محصول بزرگتری بوده است دریافت یا توزیع مجدد میکنند باید تمامی حقوق را مانند محصول اصلی داشته باشند.
۹. اجازهنامه نباید نرمافزارهای دیگر را محدود کند
شرایط تعریف شده در مجوز نباید توزیع نرمافزار را درکنار نرمافزارها با مجوزهای دیگر محدود کند.
برای نمونه نمیتواند تعیین کند که تمامی نرمافزارهای ارائه شده در لوح فشرده باید متن باز باشند.
۱۰. اجازهنامه باید از نظر تکنولوژی بیطرف باشد
اجازهنامه نباید مختص یک تکنولوژی خاص باشد.