منبع باز چیست؟
منبع باز یک مدل تولید غیرمتمرکز است که به هر کسی اجازه میدهد فناوری را تغییر داده و به اشتراک بگذارد، زیرا طراحی آن به طور عمومی در دسترس است. این اصطلاح در زمینه توسعه نرمافزار به وجود آمد تا نشان دهد که نرمافزار با معیارهای خاص توزیع رایگان مطابقت دارد. امروزه، اصطلاح “روش منبع باز” به مجموعهای از ارزشهای گستردهتر اشاره دارد که بر اساس اصول تبادل آزاد اطلاعات، نمونهسازی سریع و توسعه مشارکتی استوار است. هر کسی میتواند ایدههای جدید ارائه دهد و فناوری را بیشتر بهبود بخشد تا به صورت ارگانیک تکامل یابد.
چرا منبع باز مهم است؟
ایده منبع باز از جامعه فناوری پدید آمد. نوآوریهای فنی برای تکامل به همکاری جهانی نیاز دارند. به عنوان مثال، فرض کنید یک تیم برنامهنویسی در ایالات متحده یک فناوری منبع باز جدید برای یک برنامه مالی توسعه میدهد. یک تیم برنامهنویسی دیگر در استرالیا این فناوری را با قابلیتهای جدیدی که برای بخش بهداشت مناسبتر است، تغییر میدهد. سپس یک تیم سوم در آسیا محصولات منبع باز جدیدی را توسعه میدهد که از فناوری اصلی به عنوان یک جزء اصلی استفاده میکنند.
چنین اشتراک دانش و نوآوری جمعی به نفع کل جامعه است. قفل کردن فناوری پشت ثبت اختراعات، حق نسخهبرداری و مجوزهای گرانقیمت، پیشرفت را محدود میکند. بسیاری از پروژههای محبوب منبع باز در چند دهه گذشته منجر به پیشرفت سریع فناوری در سراسر جهان شدهاند.
اصول منبع باز چیست؟
اصول اساسی هر پروژه منبع باز به شرح زیر است:
- جامعه:
- یک جامعه منبع باز گروهی از افراد هستند که برای دستیابی به یک هدف مشترک گرد هم میآیند. ارزشها و اهداف مشترک آنها تصمیمگیری را هدایت کرده و پروژه منبع باز را به جلو میبرند.
- شفافیت:
- پروژههای منبع باز اطمینان میدهند که هر کسی در جامعه به اطلاعات و مواد لازم برای انجام بهترین کار خود دسترسی دارد. با آگاهی از تصویر بزرگتر، اعضای تیم تصمیمات موثرتری میگیرند و بر ایدهها و اکتشافات یکدیگر بنا میکنند.
- همکاری باز:
- پروژههای جامعهای کار تیمی را تشویق میکنند، بنابراین یک گروه مشکلاتی را حل میکند که افراد به تنهایی نمیتوانند. به عنوان مثال، اعضای هر ابتکار منبع باز تغییراتی را برای بهبود آنچه شخص دیگری ساخته است، ارائه میدهند. همچنین میتوانید قوانینی را تعیین کنید تا دیگران بتوانند در صورت نیاز در آینده راه حل را تغییر دهند.
- نمونهسازی سریع:
- یک پروژه منبع باز از یک رویکرد تکراری پیروی میکند، که در آن اعضای تیم نمونههای اولیه را در فواصل زمانی مکرر ایجاد و به اشتراک میگذارند. نمونهسازی سریع فرهنگ آزمایش را تشویق میکند. میتوانید تغییراتی را که کار میکنند بهبود بخشیده و به جلو ببرید و تغییراتی را که کار نمیکنند کنار بگذارید.
- شایستهسالاری فراگیر:
- جنبش منبع باز دیدگاهها و گفتگوهای متنوع را تشویق میکند. جامعه با اجماع تصمیمگیری میکند، اما موفقیت را نیز در اولویت قرار میدهد. بهترین ایدهها حمایت و تلاش بیشتری از جامعه منبع باز دریافت میکنند.
ویژگیهای نرمافزار منبع باز چیست؟
ویژگیهای هر نرمافزار منبع باز به طور نزدیک با ارزشهای جنبش منبع باز همسو هستند.
- منبع باز:
- نرمافزار منبع باز باید تحت یک مجوز منبع باز منتشر شود که معیارهای توزیع خاصی را برآورده میکند، مانند موارد زیر:
- هیچ محدودیتی در فروش یا واگذاری نرمافزار به عنوان یک جزء از توزیع نرمافزار تجمیعی وجود ندارد.
- باید شامل کد منبع باشد و توزیع آن را مجاز کند.
- باید اصلاحات و آثار مشتق شده را مجاز کند.
- حقوق مربوط به برنامه باید بدون تبعیض برای همه اعمال شود.
- نرمافزار منبع باز باید تحت یک مجوز منبع باز منتشر شود که معیارهای توزیع خاصی را برآورده میکند، مانند موارد زیر:
- طراحی باز:
- طراحی باز یک فرآیند شفاف و باز برای طراحی و برنامهریزی نرمافزار را تضمین میکند. این در مورد اجازه دادن به جامعه برای هدایت طراحی نرمافزار و نقشه راه ویژگیها است. این میتواند چالش برانگیز باشد، زیرا دستیابی به اجماع جامعه میتواند یک فرآیند زمانبر باشد. با این حال، طراحی مورد توافق جامعه منجر به محصول بهتری میشود که نیازهای کاربران را به طور موثرتری برآورده میکند.
- توسعه باز:
- توسعه باز اتخاذ فرآیندهای توسعه فراگیر و شفاف است که به همه اجازه میدهد به عنوان افراد برابر شرکت کنند. خدمات قابل دسترس عمومی، دید را به فعالیتهای توسعه میآورند. به عنوان مثال، پروژههای منبع باز معمولاً مجموعهای از استانداردها را اتخاذ میکنند که به وضوح معیارهایی را بیان میکنند که یک مشارکت بر اساس آن ارزیابی میشود. این امر به همه بهروزرسانیهای نرمافزار اجازه میدهد که بدون در نظر گرفتن اینکه آن بهروزرسانی از یک مشارکتکننده برای اولین بار یا یک توسعهدهنده ارشد باشد، به طور مساوی مورد توجه قرار گیرند.
- جامعه باز:
- جامعه باز تضمین میکند که جامعه توسعه نرمافزار یک محیط فراگیر است که در آن همه صداها شنیده میشوند و هر کسی میتواند به موقعیتهای رهبری برسد. این امر با ایجاد اهداف مشترک و ایجاد ارتباطات قوی، نیازهای توسعهدهندگان و کاربران را متعادل میکند.
نرمافزار منبع باز چیست؟
نرمافزار منبع باز نرمافزاری است که کد منبع آن برای بازرسی، اصلاح و بهبود توسط هر کسی در دسترس است. کد منبع بخشی از نرمافزار است که برنامهنویسان رایانه برای تغییر نحوه عملکرد یک برنامه یا افزودن ویژگیهای جدید آن را دستکاری میکنند. هر کسی که به کد منبع یک نرمافزار دسترسی داشته باشد، میتواند با افزودن ویژگیها یا رفع خطاهای موجود، برنامه را بهبود بخشیده یا سفارشی کند. نرمافزار منبع باز در اکثر برنامههای وب و دستگاههایی که امروزه استفاده میکنید ظاهر میشود. برخی از نمونههای نرمافزار منبع باز عبارتند از لینوکس، یک سیستم عامل منبع باز، و موزیلا فایرفاکس، یک مرورگر اینترنتی منبع باز.
تفاوت بین نرمافزار منبع باز و سایر انواع نرمافزار چیست؟
گاهی اوقات، سازمانها یا افرادی که نرمافزار را ایجاد میکنند، ترجیح میدهند به دلایل تجاری آن را کنترل کنند. آنها حقوق مالکیت انحصاری کد منبع را حفظ میکنند، به این معنی که فقط آنها میتوانند کد را برای رفع خطاها یا افزودن ویژگیهای جدید تغییر دهند. به چنین نرمافزاری، نرمافزار اختصاصی یا نرمافزار منبع بسته گفته میشود. محصولات ادوبی فتوشاپ و نورتون آنتی ویروس نمونههایی از نرمافزار اختصاصی هستند.
نرمافزار منبع باز در مقابل نرمافزار منبع بسته
سه تفاوت اصلی بین نرمافزار منبع باز و نرمافزار منبع بسته یا اختصاصی به شرح زیر است:
- قابلیت اطمینان:
- نرمافزار اختصاصی به یک سازمان یا توسعهدهنده واحد که کد را کنترل میکند، برای بهروزرسانی، بدون خطا نگه داشتن و کارکرد آن متکی است. از طرف دیگر، نرمافزار منبع باز توسط یک جامعه گستردهتر نگهداری میشود. برخی از پروژههای محبوب منبع باز هزاران مشارکتکننده از سراسر جهان دارند که تغییرات قدیمی و جدید را به طور کامل آزمایش میکنند. این امر اغلب کد منبع باز را قابل اعتمادتر میکند.
- امنیت:
-
هر کد منبع میتواند دارای نقصهای امنیتی باشد که آن را در برابر حملات سایبری آسیبپذیر میکند. با این حال، نرمافزار منبع باز از مزیت رفع سریعتر برخوردار است. هنگامی که شما یا سایر اعضای جامعه آسیبپذیریهای امنیتی را گزارش میکنید، پروژههای منبع باز در عرض یک یا دو روز یک بهروزرسانی کد را منتشر میکنند. اگر شرکتهای تجاری نرمافزار منبع باز را توسعه دهند، دید بالا فوریت را برای رفع مشکلات ایجاد میکند و حتی ممکن است منجر به نرمافزار اصلی بهتری شود.
-
در مقابل، نرمافزار اختصاصی چرخههای بهروزرسانی طولانیتری به دلایل زیر دارد:
- فروشنده ممکن است افراد کمتری داشته باشد که روی یک پروژه معین کار میکنند.
- فروشنده ممکن است ملاحظات مالی را بر نقصهای امنیتی اولویت دهد. * فروشنده ممکن است انتشار بهروزرسانی امنیتی را به تأخیر بیندازد، زیرا ترجیح میدهد چندین تغییر را بستهبندی کرده و به طور همزمان منتشر کند.
-
- مجوزدهی:
-
شرکتها معمولاً نرمافزار منبع بسته را تحت یک مجوز اختصاصی میفروشند که استفاده قانونی مجاز از نرمافزار را مشخص میکند. هیچکس نمیتواند کد اختصاصی را بدون اجازه مشاهده، ویرایش یا اصلاح کند. به عنوان مثال، مجوز اختصاصی ممکن است مجوز استفاده شخصی یا تجاری را بدهد، اما نه برای فروش مجدد. همچنین ممکن است شما را برای مدت زمان ثابت به قراردادهای خاص فروشنده قفل کند.
-
از طرف دیگر، نرمافزار منبع باز تحت مجوز منبع باز در دسترس است، به این معنی که استفاده، اصلاح و توزیع مجدد آن رایگان است. قراردادهای قفل فروشنده وجود ندارند یا بسیار انعطافپذیر هستند. توسعهدهندگان میتوانند نرمافزار را از یک وبسایت عمومی دانلود کرده و تمام کد منبع باز را در رایانههای خود مشاهده کنند. مجوزهای منبع باز همچنین به کاربران اجازه میدهد کارهای زیر را انجام دهند:
- کد منبع را برای پروژههای شخصی اصلاح کنند.
- کد اصلاح شده را در صورتی که کاربران همچنان به دیگران اجازه دهند تغییرات خود را مشاهده کنند، مجدداً توزیع کنند.
-
انواع مجوزهای نرمافزار منبع باز کدامند؟
اگرچه مجوز منبع باز نسبت به مجوز اختصاصی محدودیت کمتری دارد، سطح و دامنه مجوزها بر اساس نوع متفاوت است. در زیر برخی از انواع رایج مجوزهای منبع باز آورده شده است.
- مجوز دامنه عمومی:
- مجوز دامنه عمومی نشان میدهد که هر کسی میتواند نرمافزار را بدون محدودیت اصلاح، استفاده یا تجاریسازی کند. در بیشتر موارد، سازندگان نرمافزار منبع باز دامنه عمومی تصمیم عمدی یا داوطلبانه برای عدم کپیرایت نرمافزار گرفتهاند.
- مجوز مجاز:
- مجوزهای منبع باز مجاز حداقل الزامات را برای نحوه اصلاح یا توزیع نرمافزار شما شامل میشوند. برخی از نمونههای این نوع مجوز، مجوز آپاچی و مجوز توزیع منبع برکلی (BSD) هستند. اگرچه نرمافزار اصلی دارای حق نسخهبرداری و منبع باز است، کاربران میتوانند نسخههای اصلاح شده را تجاریسازی و مجدداً توزیع کنند.
- مجوز عمومی کمتر عمومی:
- مجوز عمومی کمتر عمومی (LGPL) به شما اجازه میدهد از اجزای منبع باز بدون محدودیت استفاده کنید. این اجزا اغلب به عنوان ماژولهای کد به نام کتابخانهها قابل دسترسی هستند، که میتوانید آنها را به هر یک از کدهای خود وصل کرده و استفاده کنید. اگر از کد منبع LGPL در برنامه خود استفاده میکنید، میتوانید برنامه را تجاریسازی کنید. با این حال، اگر کد LGPL موجود را اصلاح کنید، باید آن را مجدداً تحت همان مجوز توزیع کنید.
- مجوزهای کپیلفت:
- مجوزهای کپیلفت رایجترین مجوزهای منبع باز هستند و مجوز عمومی عمومی (GPL) یک نمونه محبوب است. شرایط مجوز کپیلفت سعی در محدود کردن تجاریسازی دارند:
- اگر اجزای منبع باز کپیلفت را اصلاح میکنید، باید تمام کد منبع جدید را به همراه برنامه خود منتشر کنید. با این حال، اگر فقط از برنامه به صورت داخلی استفاده میکنید و هرگز آن را برای عموم منتشر نمیکنید، مجبور به انجام این کار نیستید.
- میتوانید اصلاحات GPL خود را بفروشید، اما خریدار میتواند در صورت تمایل آنها را بیشتر توزیع کند.
- باید در بیانیه حق نسخهبرداری کد جدید خود به تمام نویسندگان کد قبلی اعتبار دهید.
- مجوزهای کپیلفت رایجترین مجوزهای منبع باز هستند و مجوز عمومی عمومی (GPL) یک نمونه محبوب است. شرایط مجوز کپیلفت سعی در محدود کردن تجاریسازی دارند:
چه کسی نرمافزار منبع باز را تنظیم میکند؟
ابتکار منبع باز (OSI) یک سازمان جهانی و غیرانتفاعی است که در مورد انواع نرمافزار منبع باز آموزش میدهد و از آن حمایت میکند. به عنوان یک نهاد استاندارد، تعریف منبع باز را حفظ میکند، سندی که شرایطی را که هر نرمافزاری را منبع باز میکند، به طور قانونی تعریف میکند.
با پیروی از تعریف منبع باز سازمان، میتوانید علامت تجاری مجوز تأیید شده OSI را دریافت کنید. این علامت تجاری اعتماد ایجاد میکند و دیگران را تشویق میکند تا با شما مشارکت و همکاری کنند. OSI لیستی از مجوزهای تأیید شده را نگهداری میکند و مجوزهای جدید را در جامعه منبع باز تأیید میکند. همچنین الزامات استانداردهای باز برای نرمافزار را تنظیم میکند.
استانداردهای باز چیست؟
استانداردهای باز قوانین توسعه نرمافزار هستند که از یکنواختی و قابلیت همکاری در فناوری پشتیبانی میکنند. آنها برای پیادهسازی، پذیرش و بهروزرسانی به صورت رایگان در دسترس هستند. در نتیجه، آنها بسیاری از جنبههای زندگی روزمره ما را راحتتر و آسانتر میکنند.
به عنوان مثال، استانداردها به انواع ماشینها اجازه میدهند به انواع روترهای بیسیم متصل شوند. میتوانید از لپتاپ خود برای اتصال به اینترنت از خانه و از کافه مورد علاقه خود، صرف نظر از روتر مورد استفاده آنها، استفاده کنید. بدون استانداردها، باید کافهای را با روتر سازگار با لپتاپ خود پیدا کنید!
منبع باز در مقابل استانداردهای باز
استانداردها قوانین، دستورالعملها و مشخصات برای نوشتن انواع خاصی از کد منبع هستند، نه خود کد. استانداردهای نرمافزار برای طبقهبندی به عنوان منبع باز باید از قوانین خاصی پیروی کنند. به عنوان مثال، اگر برای پیادهسازی استانداردهای خاص به فناوری اختصاصی نیاز دارید، آن استانداردها منبع باز نیستند.
چرا نسخههای تجاری نرمافزار منبع باز وجود دارد؟
سازندگان و سایر شرکتها بسیاری از پروژههای منبع باز را با فروش افزونههایی مانند تجزیه و تحلیل یا امنیت، که برای کسبوکارهای بزرگتر جذاب است، کسب درآمد کردهاند. شرکتهای خصوصی میتوانند با گنجاندن این برنامههای منبع باز در کد برنامه خود، تمام نرمافزارهای موجود در دامنه عمومی را تجاریسازی کنند. آنها همچنین میتوانند نسخههای مختلفی از یک نرمافزار را تحت مجوزهای مختلف منتشر کنند.
به عنوان مثال، فرض کنید شرکتی یک سیستم مدیریت پایگاه داده را تحت مجوز عمومی عمومی (GPL) و مجوز اختصاصی منتشر میکند. هر کسی میتواند از نسخه GPL برای توسعه نرمافزار استفاده کند، به شرطی که کد جدید را منبع باز کند. در مقابل، نسخه اختصاصی خدمات نرمافزاری اضافی مانند موارد زیر را ارائه میدهد:
- یک سرویس پایگاه داده کاملاً مدیریت شده
- یک سرویس پشتیبانگیری از دادههای درجه سازمانی
- رمزگذاری امنیتی اضافی
میتوانید نرمافزار تجاری را برای استفاده داخلی خریداری کنید یا هزینههای بیشتری برای استفاده از آن در محصولات و خدمات خود بپردازید.
آیا نرمافزار منبع باز همان نرمافزار رایگان است؟
اصطلاح نرمافزار رایگان به یک جنبش اجتماعی، که جنبش نرمافزار رایگان نیز نامیده میشود، اشاره دارد که هدف آن کسب و تضمین آزادیهای خاصی برای کاربران نرمافزار است. این جنبش تلاش میکند اطمینان حاصل کند که کاربران آزادیهای زیر را دارند:
- اجرای نرمافزار.
- مطالعه نرمافزار.
- اصلاح نرمافزار.
- به اشتراک گذاری نسخههای نرمافزار.
جنبش منبع باز ریشههای خود را در جنبش نرمافزار رایگان دارد که در اوایل دهه ۱۹۸۰ آغاز شد. برخی از گروهها میخواستند بر کاربردهای عملی فناوری تمرکز کنند و احساس میکردند که اصطلاح نرمافزار رایگان مبهم است و پذیرش تجاری را دلسرد میکند. آنها اصطلاح منبع باز را پیشنهاد کردند و در نهایت با تأسیس ابتکار منبع باز (OSI) آن را رایج و استاندارد کردند.
نرمافزار منبع باز در مقابل نرمافزار رایگان
امروزه، نرمافزار رایگان به مجوزهای منبع باز در دامنه عمومی اشاره دارد. نرمافزار منبع باز اکنون انواع بیشتری از مجوزها را شامل میشود و برخلاف جنبش نرمافزار رایگان، میتواند محدودیتهایی را برای کاربران اعمال کند. از آنجایی که اصطلاحات نرمافزار رایگان و نرمافزار رایگان به جای یکدیگر استفاده میشوند، بهتر است به نرمافزار رایگان به عنوان نرمافزار دامنه عمومی اشاره شود.
نرمافزار منبع باز در مقابل نرمافزار رایگان
اصطلاح نرمافزار رایگان به سادگی به معنای یک محصول تجاری است که برای مدت زمان محدود به صورت رایگان در دسترس است. نرمافزار رایگان همچنین میتواند نسخههای آزمایشی رایگان یا نسخههای دارای ویژگی محدود از محصولی باشد که در غیر این صورت به هزینههای اشتراک نیاز دارد. حتی اگر به نرمافزار رایگان دسترسی پیدا کنید، حق فروش مجدد، اشتراکگذاری یا اصلاح آن را به هیچ وجه نخواهید داشت.