امروزه نرم افزارهای بسیاری جهت برآورده کردن نیاز کاربران در زمینه های مختلف توسعه داده شده اند. شاید از نظر ما تفاوتی بین این نرم افزارها نباشد اما حقیقت آن است که حتی نحوه توسعه نرم افزارها در دنیای امروز بسیار مورد توجه است به شکلی که تعاریف استانداردهایی در این رابطه موجب به وجود آمدن جنبش ها و مفاهیمی نو در عرصه فناوری شده است. یکی از این مفاهیم که از اهمیت بسیار زیادی برخورددار است مفهوم نرم افزارهای متن باز یا اوپن سورس است که امروز در کلاسیک وب به تشریح انواع Open Source و کاربرد نرم افزار منبع باز خواهیم پرداخت.
اوپن سورس یا منبع باز چیست؟ آشنایی با معنی و مزایا نرم افزار متن باز
What is Open Source Software?
پیش از این در کلاسیک وب به آشنایی با مفهوم و تعریف پلتفرم در کامپیوتر پرداخته شده است. در راستای مطالبی درباره آموزش مفاهیم مختلف دنیای فناوری این بار قصد داریم به این نکته بپردازیم که مفهوم برنامه های Open Source چیست و به بررسی کاربرد آن ها در دنیای امروز ما بپردازیم.
مفهوم Open Source چیست؟
منبع باز بودن یک برنامه به معنای دسترسی رایگان به کدهای آن برای کاربران است. کاربران و هر کسی که که به نوعی به این نرم افزار دسترسی دارد قادر خواهد کدها را خوانده، آن ها را ویرایش کند و حتی نسخه مختص به خود را از برنامه را منتشر کند. کاربران همچنین قادر به کپی کردن از نرم افزار اصلی و توزیع آن بدون هیچ محدودیتی هستند. هر کسی می تواند از نرم افزار برای هر هدفی استفاده کند و برای این کار نیاز به پرداخت هیچ هزینه ای نخواهد داشت.
در مقابل نرم افزارهای منبع باز گروهی دیگر از نرم افزارها وجود دارند که به نرم افزارهای منبع بسته یا متن بسته (closed-source software) معروف هستند. این نرم افزارها بر خلاف نرم افزارهای منبع باز محدودیت های مختلفی را برای کاربران خود قائل می شوند. در نرم افزارهای متن باز فقط توسعه دهندگان اصلی می توانند به تغییر، ویرایش، کپی قانونی و توزیع آن بپردازند.
انواع نرم افزارهای متن باز
اکثر مردم فکر می کنند که نرم افزارهای متن باز فقط مورد علاقه برنامه نویسان هستند و در واقع مفهومی مختص برنامه نویسان است. در حالی که در واقعیت به هیچ وجه اینطور نیست و این را می توان با نگاهی کوتاه به لیست متنوع نرم افزار منبع باز متوجه شد. برای مثال از آنجا که بسیاری از توسعه دهندگان مفهوم نرم افزارهای متن باز از افراد پیشرو در زمینه اینترنت هم بودند بسیاری از سرویس های ارائه شده در اینترنت بر پایه همین مفهوم شکل گرفته است. به طوری که می توان گفت که هر کسی از اینترنت استفاده می کند در واقع در حال استفاده از نرم افزاری متن باز است.
هر موقع که کاربران کامپیوتر از اینترنت برای باز کردن یک صفحه وب، چک کردن ایمیل، چت با دوستان، پخش یک موسیقی یا ویدیو و دیگر کارها استفاده می کنند در واقع به شبکه ای جهانی از کامپیوترهای استفاده کننده از نرم افزارهای متن باز جهت مسیریابی و انتقال انواع داده ها متصل شده اند. مثلا امروزه می توان بسیاری از فعالیت هایی نظیر پردازش کلمه، مدیریت ایمیل ها و حتی پردازش تصاویر را از طریق سرویسی تحت عنوان محاسبات ابری انجام داد. این سرویس یکی از بهترین نمونه های نرم افزارهای متن باز است. بنابراین می توان گفت که متن باز بودن یک نرم افزار مساله ای نیست که فقط برای توسعه دهندگان دارای اهمیت باشد.
مفهوم اوپن سورس حتی در توسعه سیستم عامل ها نیز بسیار مورد استفاده قرار می گیرد. برای مثال لینوکس نسخه اوبونتو یکی از سیستم عامل های متن باز است. شما می توانید اوبوتو را دانلود کرد، نسخه های متفاوتی از آن را کپی نموده و به دوستان خود بدهید. همچنین می توانید هر چند بار که می خواهید روی سیستم های مختلف ان را نصب کنید. حتی در صورت علاقه مند بودن می توانید کد منبع این سیستم عامل را دانلود کرده و با تغییر و ویرایش آن نسخه ای به نام خود از آن منتشر نمایید.
فایرفاکس، کروم، اپن آفیس و اندروید مثال هایی دیگر از انواع نرم افزارهای متن باز هستند. در حالی که ویندوز مایکروسافت شاید معروف ترین نمونه از گروه نرم افزارهای متن بسته باشد.
تفاوت نرم افزار متن باز با نرم افزار آزاد
این دو مفهوم بسیار نزدیک به هم هستند و گاهی اوقات آن ها را به جای هم نیز به کار می برند. همانطور که گفته شد نرم افزارهای متن باز عموما به صورت رایگان در دسترس هستند و کاربران برای ایجاد چند کپی و توزیع آن ها به دلخواه خود دارای محدودیتی نیستند. نرم افزارهای موسوم به نرم افزارهای آزاد هم ممکن است دارای چنین ویژگی هایی باشند. ولی اصطلاح نرم افزار آزاد که پیشتر توسط ریچارد استالمن مطرح شده است بیش از همه به این نکته اشاره دارد که نرم افزارها در همه حال باید به صورت رایگان در اختیار کاربران قرار گیرند و کاربر در اجرا، ویرایش، توزیع و استفاده از آن با اهداف گوناگون هیچ محدودیتی احساس نکند.
نکته کلیدی تفاوت بین مفاهیم نرم افزار متن باز و نرم افزار آزاد در همین جا شکل می گیرد: هزینه. ممکن است یک نرم افزار کد منبع خود را به صورت رایگان در اختیار کاربران قرار دهد. بنابراین هر کسی می تواند آن را ویرایش کرده و نسخه ای با نام خودش از آن به بازار عرضه کند و این کار را می تواند با قیمت گذاری روی آن هم انجام دهد. یعنی ایجاد یک نسخه دستکاری شده از نرم افزاری متن باز و رایگان و توزیع آن با دریافت مبلغی مشخص (کاری که بسیاری از شرکت های داخلی هم در حال حاضر آن را انجام می دهند). اینجاست که قوانین نرم افزارهای آزاد زیر پا گذاشته می شود.
در اهداف نرم افزار های آزاد، نرم افزار در هر مرحله ای از توسعه که باشد باید به صورت رایگان در اختیار کاربران خود قرار گرفته باشد. در واقع می توان گفت که در مفهوم نرم افزار متن باز بیشترین تاکید روی در دسترس بودن کد برنامه جهت ایجاد تغییرات دلخواه کاربران است در حالی که در کمپین نرم افزارهای آزاد علاوه بر این موضوع روی در دسترس قرار گفتن نرم افزار به صورت رایگان هم تاکید ویژه ای شده است. بنابراین به طور خلاصه باید گفت که یک نرم افزار آزاد حتما نرم افزاری متن باز هم است ولی یک نرم افزار متن باز را نمی توان لزوما نرم افزاری آزاد هم به شمار آورد.
انواع لایسنس های نرم افزارهای متن باز
لایسنس های بسیاری برای توسعه نرم افزارهای متن باز وجود دارد و انتخاب آن ها بستگی به سلیقه توسعه دهندگان دارد. لایسنس های عمومی GNU یا GPL از جمله محبوب ترین این لایسنس ها است که در بساری از پروژه های متن باز مثل لینوکس از آن استفاده می شود. اگر توسعه دهنده ای از لایسنس GPL استفاده کند باید کد نرم افزار خود را هم در دسترس قرار دهد. در واقع تحت این لایسنس کسی نمی تواند نرم افزاری متن باز را تحویل گرفته و آن را تبدیل به نرم افزاری متن بسته کند و باید تغییراتی را که در آن اعمال کرده است در دسترس عموم قرار دهد.
برخی دیگر از لایسنس ها مثل BSD محدودیت کمتری را در این رابطه قائل می شوند. اگر برنامه ای تحت این لایسنس منتشر شود هر کسی می تواند از کدهای آن در برنامه های دیگر نیز استفاده کند. گرچه توسعه دهندگان نرم افزار مجبور به ارائه کدهایی که تغییر داده اند نیستند.
فواید نرم افزارهای متن باز برای کاربران
مهم ترین ویژگی نرم افزارهای متن باز این است که می توانند به رایگان در دسترس عموم قرار گیرند. مثالی که پیش از این راجع به اوبونتو گفته شد می تواند این مساله را به روشنی مشخص نماید در حالی که راجع به محصول ویندوز شرکت مایکروسافت چنین مساله ای صدق نمی کند. این موضوع به خصوص در شبکه های از اهمیت زیادی برخوردار است. شما می توانید به راحتی روی سرور از سیستم عامل لینوکس استفاده کنید یا روی ماشین های مجازی از چند کپی از این سیستم عامل بهره ببرید و در این میان نیازی به نگران بودن راجع به قانونی یا اخلاقی نبودن این کار خود نخواهید داشت. یک نرم افزار متن باز علاوه بر این نکات، انعطاف پذیر هم است. برای مثال رابط کاربری ویندوز ۸ در هنگام انتشار بسیاری از کاربرانش را نامید کرد و به این خاطر که ویندوز نرم افزاری منبع بسته است هیچ کدام از کاربران نمی توانستند تغییرات دلخواه خود را در آن ایجاد کنند و برای مثال رابط کاربری ویندوز ۷ را جایگزین آن نمایند.
اما وقتی یک نسخه اوبونتو منتشر می شود که کاربرانش به هر دلیلی با رابط کاربری آن ارتباط برقرار نکنند می توان به راحتی آن را طبق سلیقه و دلخواه خود تغییر داد. برای مثال وقتی نسخه سوم گنوم عرضه شد بسیاری از کاربران ترجیح دادند رابط کاربری گنوم ۲ را جایگزین آن کنند. در واقع آن ها می توانستند از امکانات گنوم ۳ با ظاهر سیستم عامل گنوم ۲ بهره ببرند.
علاوه بر همه این ها سیاست نرم افزارهای متن باز این است که اجازه توسعه نرم افزارهایی به مراتب بهتر از خودشان را هم با استفاده از هسته و کد مرکزی آن ها بدهند. سیستم عامل های اندروید و کروم مثال های خوبی در زمینه اوپن سورس هستند. هر دو این سیستم عامل ها از لینوکس و دیگر نرم افزارهای متن باز توسعه یافته و راه خود را پیدا کرده اند. بنابراین به طور کلی می توان مزایای نرم افزارهای متن باز برای کاربران مختلف را به شکل زیر بر شمرد:
کنترل: بسیاری از مردم این نرم افزارها را به دلیل کنترلی که نمی توانند روی آن ها داشته باشند ترجیح می دهند. همانطور که پیش از این گفته شد تقریبا همه بخش های نرم افزارهای متن باز در اختیار کاربران است و آن ها می توانند با استفاده از دانش، تخصص و سلیقه خود آن ها را تغییر دهند.
پایداری: اگر پای یک پروژه بلند مدت در میان باشد اولین انتخاب افراد حرفه ای یک نرم افزار متن باز برای پیشبرد کارهای پروژه خواهد بود. زیرا از انجا که برنامه نویسان بسیاری بر روند توسعه هر کدام از قابلیت های این نرم افزار نظارت و همکاری داشته اند می توان گفت که هر نرم افزار متن باز کار و وظیفه خود را عمدتا بدون اشکال و با ضریب اطمینان بسیار بالایی به انجام می رساند. بنابراین استفاده زا آن ها در پروژه های بلند مدت معقولانه به نظر می رسد. جهت آشنایی با بهترین نرم افزارهای کنترل و مدیریت پروژه متن باز می توانید به مطلب بهترین نرم افزار های کنترل و مدیریت پروژه آنلاین که رایگان و متن باز هستند مراجعه کنید.
آموزش: خیلی از برنامه نویسان از این نرم افزارها جهت تقویت مهارت کد نویسی با زبان های برنامه نویسی متن باز بهره می برند. از آنجایی که کد این برنامه ها در اختیار همگان است دانشجویان و علاقه مندان به برنامه نویسی می توانند با بررسی آن ها و نیز اعمال تغییرات، تمرینی عالی برای برنامه نویسی داشته باشند.
امنیت: نرم افزارهای متن باز از لحاظ امنیتی و پایداری بسیار محکم و قابل اطمینان هستند. این به این دلیل است که هر کسی می تواند اشتباهات موجود در کدها را یافته و آن را تصحیح کند و این کار تنها بر عهده یک گروه خاص نیست. از آن جا که برنامه نویس های مختلفی روی بخش های مختلف این نرم افزارها می توانند کار کنند تعمیر، به روز رسانی و تامین امنیت ان به سادگی و البته سریع تر از دیگر نرم افزارها صورت می گیرد. به همین دلیل است که اکثر سرورهای شبکه و نیز سازمان های بزرگ جهت تامین امنیت سیستم های خود ترجیح می دهند از سیستم عامل لینوکس بهره ببرند.
در صورت نیاز به مرورگر می توانید به مطلب معرفی و دانلود ۱۱ مرورگر سبک و بدون نیاز به نصب ویندوز کامپیوتر در کلاسیک وب مراجعه کنید.
تجربه و پیشنهاد شما؟
در راهنما امروز کلاسیک وب سعی کردیم که به آشنایی با مفهوم Open Source و کاربرد نرم افزار منبع باز بپردازیم. چنانچه در این رابطه تجربه و نظری دارید آن را در بخش نظرات و پیشنهادات این پست با ما و کاربران دیگر به اشتراک بگذارید.
آخرین دیدگاه ها
تا کنون دیدگاهی ثبت نشده است.