تا به حال دلتان خواسته از چرخههای درونی نرمافزارهایی که هر روز از آن استفاده میکنید سر در بیاورید؟ مثلا سیستم عامل اندرویدی که روی گوشی هوشمند شما نصب است یا مرورگر فایرفاکس که هر روز با آن اینترنت را جستجو میکنید، هر دو متن باز هستند. اما متن باز یا Open Source بودن یعنی چه؟ در این یادداشت همراه ما باشید تا سفری داشته باشیم به جهان سرشار از خلاقیت متن بازها، تا با فلسفه و تاریخچه اوپن سورس ها، معروفترین برنامههای متن باز و معایب و مزایای هر کدام از آنها آشنا شویم.
متن باز برنامهای برای همه
متن باز یا Open Source معمولا به نرمافزارها و یا برنامههایی گفته میشود که کد منبع (source code) آنها برای همه مردم به صورت آزادانه قابل دسترسی و مشاهده باشد. به این معنی که برنامهنویسان و توسعهدهندگان نرمافزار میتوانند بدون هیچ محدودیتی کد منبع نرمافزارهای متن باز را مطالعه کنند، در آن تغییرات مختلفی ایجاد نمایند، آن را بهبود ببخشند و به صورت مجدد توزیع کنند. نرمافزارهای متن باز معمولا در مقابل نرمافزارهای انحصاری یا close source قرار میگیرند، کد منبع این قبیل نرمافزارها، محرمانه و غیرقابل دسترس است و هیچکس به غیر از سازندگان اصلی آن نمیتوانند به کد منبعشان دسترسی داشته باشند.
فلسفه متن باز بر فایده عمومی و خلاقیت جمعی استوار است
نگرش اصلی پشت نرمافزارها و سیستمعاملهای متن باز این است که ما باید نرمافزار را به عنوان یک کالای عمومی در نظر بگیریم نه یک محصول تجاری صرف که هدف آن صرفا بالا بردن سود و کاهش زیان است. بر اساس این نگرش، نرمافزارها باید به گونهای توسعه پیدا کنند که بتوانند بیشترین فایده را برای همه مردم داشته باشند نه اینکه صرفا به یک شرکت تجاری خاص سود برسانند. به خاطر همین هم در نرمافزارهای متن باز، کد منبع به طور کامل در دسترس عموم مردم جامعه قرار میگیرد تا همگان بتوانند آن را مطالعه کنند و سپس تغییر و یا بهبود ببخشند. علاوه بر فایدهرسانی به عامه مردم، فلسفه متن باز بر همکاری و مشارکت بین اعضای جامعه تاکید زیادی دارد. به این معنی که با همکاری تعداد زیادی از برنامهنویسها و توسعهدهندگان و روی هم انباشته شدن توان ذهنی و خلاقیت جمعی آنها، میتوان نرمافزارهای باکیفیتتر و مفیدتری خلق کرد.
اولین جوانههای متن باز ، نگاهی به تاریخچه Open Source
اولین نرمافزار متن باز در دنیا، سیستم عامل یونیکس Unix بوده است که در دهه 1960 ساخته شد. یونیکس در آن دهه توسط دو نفر به نامهای تامپسون و دنیس ریچی در آزمایشگاه بل ابداع شد. البته که از همان اول یونیکس با اسم یک نرمافزار متن باز طراحی نشده بود، بلکه تنها کد منبع آن در اختیار دانشگاهها و سازمانهای مختلف قرار میگرفت تا دانشجویان و افراد مختلف بتوانند روی پروژههای یکدیگر کار کنند و این روش در همان زمان هم باعث توسعه نرمافزارها میشد. اما در دهه 90 میلادی لینوس تور والدز جنبش نرم افزار آزاد یا Free Software را پایهگذاری کرد. از نظر این جنبش کد منبع باید برای همه قابل دسترس باشد تا افراد بتوانند آن را مطالعه کنند، تغییر دهند و مجددا منتشر کنند. همه اینها جوانههای کوچکی برای پایهریزی فلسفه و روش متن باز در دنیا بود.
در نهایت اصطلاح Open Source یا متن باز در آستانه قرن بیست و یک میلادی یعنی دقیقا در سال 1998 توسط اریک ریموند و بروس پرنس ابداع شد. از آن زمان به بعد این مفهوم دربرگیرنده تمام نرمافزارهایی است که کد منبع باز دارند.
متن بازهای دوست داشتنی
اندروید، فایرفاکس، وردپرس، همه اینها برنامههای متن باز محبوب و پرطرفدار هستند. علت محبوبیت نرمافزارهای متن باز این است که اول از همه معمولا رایگان و بدون پرداخت هزینه هستند و همین باعث میشود که افراد و شرکتهای بیشتری بتوانند از آنها استفاده کنند. در واقع نرمافزارهای متن باز نیاز به خرید مجوز یا همان license ندارند و این مهمترین مزیت رقابتی این برنامهها محسوب میشود.
دومین عامل محبوبیت نرمافزارهای متن باز این است که معمولا از نظر امنیت و قابلیت اطمینان نسبت به نرمافزارهای انحصاری عملکرد بهتری دارند. به خاطر اینکه کد منبع آنها باز و در اختیار عموم مردم است و همین باعث میشود که خطاها و آسیبپذیریهای امنیتی اینگونه نرمافزارها به سرعت شناسایی و رفع شود.
علاوه بر اینها، نرمافزارهای متن باز محبوبند چون که فرهنگ مشارکت و خلاقیت جمعی و کارگروهی را بین مردم دنیا ترویج میدهند. زیرا که توسعه و بهبود این نرمافزارها به صورت داوطلبانه و مشارکتی انجام میشود و همین کار جمعی باعث ایجاد انگیزه در توسعهدهندگان و تسریع نوآوریها در صنعت فناوری اطلاعات میشود.
یکی دیگر از دلایل محبوبیت نرمافزارهای متن باز، انعطافپذیری بسیار بالای آنها و امکان سفارشیسازی و تطبیقشان با نیازهای اختصاصی کاربران و سازمانهای مختلف است. زیرا که کد منبع آنها در اختیار همه افراد قرار میگیرد و هر فرد یا شرکتی میتواند بر اساس نیازهای خودش آنها را ویرایش، اصلاح و شخصیسازی کند. در مجموع، ویژگیهایی مانند هزینه کمتر، امنیت و انعطافپذیری بالاتر، باعث شده نرمافزارهای متن باز محبوبیت فراوانی به دست آورند.
معروفترین نرم افزارهای متن باز دنیا
- لینوکس Linux یکی از محبوبترین سیستم عاملهای متن باز در دنیا است. کدهای این سیستم عامل در دسترس همگان قرار دارد و کاربران میتوانند آن را بدون پرداخت هزینه دانلود کرده و از آن استفاده کنند و تغییراتی که میخواهند را در آن اعمال کنند. امروزه لینوکس به طور گستردهای در سرورها و ابررایانهها مورد استفاده قرار میگیرد.
- موزیلا فایرفاکس (Mozilla Firefox) یکی از محبوبترین و پرکاربردترین مرورگرهای وب متن باز در دنیاست که توسط بنیاد موزیلا توسعه داده میشود. فایرفاکس یک نرمافزار کاملا متنباز و رایگان است که کدهای منبع آن در دسترس عموم قرار دارد و کاربران میتوانند به راحتی این مرورگر را دانلود و نصب کنند. همچنین آنها میتوانند کد منبع فایرفاکس را مطالعه کرده و افزونهها یا قابلیتهای جدیدی برای آن توسعه دهند.
- وردپرس WordPress احتمالا محبوبترین پلتفرم وبلاگنویسی در دنیا است که هماکنون بیش از 60 میلیون کاربر که شامل افراد و سازمانهای مختلف میشود، از آن استفاده میکنند. این سیستم مدیریت محتوای متن باز، انتشار و بهروزرسانی محتوا را در وبسایتها برای کاربران خود بسیار آسان کرده است. اگر چه در گذشته نگرانیها و اختلافنظرهایی در مورد امنیت وردپرس وجود داشت، اما ماهیت متنباز آن باعث شد تا باگهای این سیستم به سرعت شناسایی و رفع شود.
- اندروید پراستفادهترین سیستم عامل موبایل از نوع اوپن سورس است که توسط شرکت گوگل توسعه داده شده و کد منبع آن تحت مجوز آپاچی منتشر شده است. این به معنای آن است که هرکسی میتواند کد اندروید را مشاهده کند، تغییر دهد و نسخههای سفارشیشده از آن را منتشر کند.
تفاوت متن باز با سایر نرم افزارها چیست؟
میتوان گفت که ما سه دسته نرمافزار داریم، نرمافزارهای متن باز، نرم افزارهای متن بسته (Closed Source) و نرمافزارهای رایگان free software)). نرم افزارهای رایگان به نرمافزارهایی گفته میشود که کاربر میتواند بدون پرداخت هزینه آنها را دانلود کرده و از آن استفاده کند. تفاوت اصلی بین نرمافزارهای اوپن سورس و نرمافزارهای رایگان در نحوه دسترسی به کد منبع آنها است. همانطور که قبلا هم گفتیم نرمافزارهای متنباز، کد منبع خود را در اختیار عموم مردم قرار میدهند تا هرکسی که بخواهد آن را مطالعه، تغییر، بهبود و حتی توزیع مجدد کند. اما نرمافزارهای رایگان، هرچند هیچ هزینهای برای دانلود و استفاده ندارند، ولی کد منبع آنها متعلق به شرکت تولیدکننده بوده و دسترسی به آن محدود است.
تفاوت نرمافزارهای متن باز و متن بسته چیست؟
مهمترین تفاوت متن باز با سایر نرمافزارها مانند نرمافزارهای انحصاری یا همان متن بسته این است که در برنامههای متن باز، کد منبع به صورت رایگان برای همه دیده میشود، در حالی که در نرمافزارهای متن بسته کدمنبع به صورت محرمانه نگهداری میشود. همین تفاوت در دسترسی به کد منبع سنگبنای تفاوتهای دیگر را میسازد. تفاوت دیگر نرمافزارهای متن باز با متن بسته این است که متن بازها معمولا رایگان هستند یا هزینه بسیار کمی دارند، اما متن بستهها اغلب گران قیمت هستند. علاوه بر این، نرمافزارهای متن باز معمولا قابلیت اطمینان و امنیت بیشتری دارند، چون که در دسترس بودن کد منبع آنها، امکان کشف و رفع مشکلات امنیتی را فراهم میکند. در نهایت، متن بازها امکان مشارکت عمومی را برای توسعه و بهبود برنامه فراهم میکنند، اما توسعهدهندگان نرمافزار متنبسته محدود به یک شرکت یا سازمان خاص هستند. به طور خلاصه، تفاوت اصلی این دو نوع نرمافزار متن باز و متن بسته در میزان دسترسی به کد منبع، قیمت، انعطافپذیری و سطح مشارکت عمومی است.
- هزینه پایین و امنیت بالا، مهمترین مزیت متن باز
امروزه بسیاری از سازمانها و شرکتهای بزرگ در سراسر دنیا از نرمافزارهای متن باز به عنوان بخش مهمی از زیرساختهای فناوری خود استفاده میکنند. دلیل استفاده گسترده از متنبازها را میتوان در ویژگیهای منحصربهفرد آنها جستجو کرد. ویژگیهایی مانند امنیت و پایداری بالا، توسعه مهارتهای برنامهنویسی و هزینه پایینتر که در ادامه به بررسی جزئیتر هر یک خواهیم پرداخت.
- امنیت و پایداری
نرمافزارهای متن باز مزیتهای مختلفی دارند، اما شاید مهمترین آن امنیت بالا و رایگان بودن اکثر آنها باشد. از آنجایی که هر کسی میتواند کد منبع این نرمافزارها را ببیند، احتمال پیدا شدن باگهای امنیتی و رفع آنها بیشتر میشود. از طرف دیگر شفافیت نرمافزارهای متن باز اعتماد افراد مختلف را برمیانگیزاند، زیرا که به دلیل در دسترس بودن کد منبع این نرمافزاها، افراد دقیقا میدانند که این برنامهها چه کاری انجام میدهند و مطمئن هستند که اطلاعات شخصی آنها در امان است.
- توسعه مهارتها
نرمافزارهای متن باز مبتنی بر اصل مشارکت جمعی و خلاقیت همگانی ساخته میشوند. برنامهنویسهای مختلف از سراسر دنیا میتوانند با مطالعه کدها، دانش برنامهنویسی خود را ارتقاء دهند و با تغییر و بهبود آنها در توسعه این برنامهها نقشی فعال داشته باشند و مهارتهای خودشان را افزایش بدهند.
- هزینه کمتر
نمیتوان گفت که تمام نرمافزارهای متن باز رایگان هستند. اما میتوان با قطعیت گفت که اکثر آنها رایگانند و یا قیمت کمتری نسبت به محصولات انحصاری و یا همان متن بسته دارند.
- نیمه تاریک نرمافزارهای متن باز
علیرغم مزایای بسیار متن بازها، این نوع نرمافزارها معایبی نیز دارند که باعث میشود گسترش و بهکارگیری آنها با محدودیتهایی روبهرو شود. در این بخش به برخی از مهمترین چالشهای و معایب متنبازها اشاره میکنیم.
- نبود پشتیبانی فنی
بزرگترین مشکل نرمافزارهای متن باز این است که مانند نرمافزارهای انحصاری، پشتیبانی فنی و خدمات پس از فروش رسمی ندارد. بنابراین اگر شما در نصب، راهاندازی و یا استفاده از برنامههای متن باز با مشکل مواجه شوید، نمیتوانید به سادگی با بخش پشتیبانی تماس بگیرید، این موضوع برای کاربران غیرفنی و آنهایی که دانش برنامهنویسی اندکی دارند میتواند چالشبرانگیز باشد.
- پیچیدگی بالا
بسیاری از برنامههای متن باز مانند سیستم عامل لینوکس، نصب و پیکربندی پیچیدهتری نسبت به نرمافزارهای انحصاری و تجاری دارند. بنابراین برای نصب و راهاندازی آنها شما باید تخصص و مهارت برنامهنویسی و شبکه را داشته باشید که این امر میتواند مانعی بزرگ برای استفاده گسترده برنامههای متن باز باشد.
- کمبود دفترچه راهنما
معمولا اگر در نصب و استفاده از یک نرمافزار تجاری مانند یک برنامه حسابداری با مشکل مواجه شوید، میتوانید به اسناد و دفترچههای راهنمای کاربردی و جامعی که این نرمافزارها دارند مراجعه کنید. اما برای نصب و استفاده از نرمافزارهای متن باز چنین دفترچههایی وجود ندارد و همین باعث میشود که یادگیری و کار کردن با آنها برای کاربران مبتدی دشوار و پیچیده به نظر برسد.
لایسنس متن باز چیست؟
توسعهدهندگان نرمافزارهای متن باز، محصولات خود را تحت مجوزهای مختلفی صادر میکنند. این مجوزها به کاربران اجازه میدهد که از این برنامهها برای اهداف مختلف استفاده کنند. مهمترین لایسنسهای متن باز GPL و LGPL هستند که در ادامه آنها را توضیح میدهیم.
مجوز GPL که محبوبترین مجوز اوپن سورس است، به شما اجازه میدهد برنامهای را به رایگان دانلود کنید، از آن استفاده کنید، در کدهای آن تغییرات دلخواهتان را ایجاد نمایید و آن را از نو توزیع کنید. تنها شرطش این است که اگر تغییراتی در برنامه ایجاد کردید، باید آن برنامه را دوباره تحت همین مجوز GPL منتشر کنید تا بقیه هم بتوانند رایگان از آن استفاده کنند.
AGPL نیز یکی دیگر از مجوزهای open source است که برای نرمافزارهایی به کار میرود که از طریق شبکه توزیع میشوند. مانند برنامههای تحت وب. طبق این مجوز اگر برنامه تغییر کند یا به آن چیزی اضافه شود، کد منبع آن برنامه نیز باید منتشر شود. هدف این مجوز این است که اطمینان حاصل کند تغییرات و افزودههایی که روی برنامههای مبتنی بر شبکه اعمال میشوند نیز به صورت متن باز منتشر شوند.
چرا باید لایسنسهای متن باز را بشناسید؟
مشاهده کردیم که لایسنسهای متن باز به عنوان یک چارچوب حقوقی معرفی میشوند که نحوه استفاده، توزیع و اصلاح نرمافزارهای متنباز را مشخص میکنند. درک این مجوزها برای هرکسی که در زمینه توسعه یا استفاده از نرمافزارهای متن فعال است، ضروری به نظر میرسد.
از دیدگاه توسعهدهندگان، آگاهی از لایسنسهای متن باز باعث میشود نرمافزارها از مسائل و چالشهای حقوقی احتمالی محافظت شوند. همچنین این مجوزها هستند که مشخص میکنند که چگونه تغییراتی که توسعهدهندگان بر روی نرمافزارها اعمال میکنند، مورد استفاده و توزیع قرار میگیرند. پس آگاهی و اطلاع داشتن در زمینه لایسنسهای متن باز یک مهارت ارزشمند برای توسعهدهندگان محسوب میشود. زیرا آگاهی از لایسنسهای متن باز باعث میشود آنها از مسائل حقوقی احتمالی محافظت شوند. همچنین لایسنسها مشخص میکنند که چگونه مشارکتها و تغییرات توسعه دهندگان مورد استفاده و توزیع قرار میگیرند. از سوی دیگر، کسبوکارهایی که از نرمافزارهای متنباز استفاده میکنند با درک لایسنسها میتوانند ریسکهای حقوقی را مدیریت کنند. همچنین آنها میتوانند تصمیمات استراتژیک خود را بر اساس نوع مجوزها اتخاذ کنند.
مشارکت جمعی در توسعه نرمافزار، نقش مهم فرهنگ متن باز
متن باز بودن به معنی در دسترس بودن کد منبع برنامه یا نرمافزار خاصی برای عموم افراد جامعه است. این امر منجر به افزایش همکاری، شفافیت و امنیت در توسعه نرمافزارهای خلاقانه میشود. متن بازها به دلیل همین ویژگیها روز به روز محبوبتر میشوند. از معروفترین نرمافزارهای متن باز میتوان به لینوکس، فایرفاکس، وردپرس و اندروید اشاره کرد. این نرمافزارها به دلیل هزینه کم، امنیت بالا و قابلیت شخصیسازی محبوب هستند. البته متنبازها معایبی هم دارند، مانند فقدان پشتیبانی رسمی، پیچیدگی زیاد و کمبود منابع جهت راهنمایی برای استفاده از آنها. با این حال اوپن سورسها باعث گسترش دانش و مهارتهای برنامهنویسها و توسعهدهندگان نرمافزار در سراسر دنیا شدهاند و فرهنگ مشارکت و خلاقیت جمعی را تقویت میکنند. در مجموع میتوان گفت که نرمافزارهای متن باز نقش بسزایی در پیشبرد صنعت نرمافزار و فناوری اطلاعات داشتهاند.