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