مقدمه
در دنیای فناوری، بسیاری از افراد تصور میکنند برای ساخت یک نرمافزار جدید باید همهچیز را از ابتدا برنامهنویسی کرد. اما واقعیت این است که در بسیاری از موارد، میتوان از نرمافزارهای موجود استفاده کرد، کدهای آنها را تغییر داد، قابلیتهای جدیدی به آنها افزود و حتی نسخهای مستقل از آنها را با نام و هویت بصری جدید منتشر کرد. این امکان به لطف مفهومی به نام اپنسورس (Open Source) یا متنباز فراهم شده است.
متنباز بودن فقط به معنای رایگان بودن یک نرمافزار نیست؛ بلکه به این معناست که کد منبع آن تحت مجوزی منتشر شده که حقوق مشخصی برای استفاده، بررسی، تغییر و بازتوزیع آن در اختیار کاربران قرار میدهد. البته این حقوق و شرایط دقیق، به مجوز نرمافزار بستگی دارد.
اپنسورس چیست؟
کد منبع (Source Code) مجموعه دستورالعملهایی است که برنامهنویسان برای ساخت یک نرمافزار مینویسند. در نرمافزارهای متنباز، این کد در دسترس قرار میگیرد تا دیگران بتوانند نحوه عملکرد برنامه را بررسی کنند، مشکلات آن را برطرف کنند یا ویژگیهای تازهای به آن اضافه کنند.
بر اساس تعریف سازمان Open Source Initiative، یکی از ویژگیهای مهم نرمافزار متنباز این است که مجوز آن باید امکان ایجاد نسخههای تغییریافته و توزیع آثار مشتقشده را فراهم کند.
به همین دلیل، یک توسعهدهنده میتواند نرمافزاری متنباز را دریافت کند، آن را متناسب با نیازهای خود تغییر دهد و نسخه جدیدی از آن را منتشر کند؛ البته باید شرایط مجوز اصلی و سایر حقوق مرتبط را رعایت کند.

آیا میتوان سورس یک نرمافزار را تغییر داد و آن را با نام خود منتشر کرد؟
بله؛ در بسیاری از موارد این کار کاملاً قانونی است. اما یک نکته مهم وجود دارد: اجازه تغییر و انتشار نرمافزار لزوماً به معنای اجازه حذف نام سازندگان اصلی، نادیده گرفتن حق نشر یا ادعای مالکیت بر تمام کدهای دیگران نیست.
برای مثال، فرض کنید یک برنامه مدیریت فایل متنباز پیدا کردهاید. میتوانید ظاهر آن را تغییر دهید، قابلیت جستوجوی پیشرفته به آن اضافه کنید، زبان فارسی را به آن بیفزایید و نسخهای با نام تجاری خود منتشر کنید. اگر مجوز نرمافزار چنین تغییرات و توزیعی را مجاز بداند و شما تمام الزامات آن را رعایت کنید، این کار میتواند قانونی باشد.
در این حالت، شما میتوانید صاحب برند، نام محصول و بخشهایی از کدی باشید که خودتان نوشتهاید؛ اما حقوق مربوط به کد اصلی و مشارکتهای دیگران همچنان تابع مجوز و قوانین مالکیت فکری خواهد بود.
برای درک بهتر این موضوع، باید با چند نوع مجوز رایج آشنا شویم.
۱. مجوزهای MIT و Apache
مجوز MIT یکی از مجوزهای ساده و منعطف متنباز است. این مجوز معمولاً اجازه میدهد نرمافزار را تغییر دهید، نسخه جدیدی بسازید، آن را توزیع کنید و حتی در محصولات تجاری به کار ببرید. با این حال، معمولاً باید اطلاعیههای حق نشر و متن مجوز را حفظ کنید.
مجوز Apache 2.0 نیز اجازه استفاده، تغییر و توزیع نرمافزار را میدهد و علاوه بر شرایط مربوط به حق نشر، مقرراتی درباره مجوزهای اختراع نیز دارد.
این مجوزها برای توسعه محصولاتی که میخواهید با برند خود عرضه کنید، میتوانند گزینههای مناسبی باشند؛ البته باید مجوز تمام اجزای مورد استفاده را جداگانه بررسی کنید.
۲. مجوز GNU GPL
مجوز GNU GPL نیز به کاربران اجازه میدهد نرمافزار را تغییر دهند و نسخههای جدید آن را منتشر کنند. تفاوت مهم آن با مجوزهایی مانند MIT این است که هنگام توزیع نسخه مشتقشدهای که مشمول GPL است، باید شرایط مربوط به همان مجوز، از جمله ارائه کد منبع متناظر و حفظ حقوق دریافتکنندگان را رعایت کنید.
بنابراین، میتوان نرمافزاری مبتنی بر GPL را با نام تجاری جدید منتشر کرد، اما نمیتوان صرفاً با تغییر نام، تمام کد آن را به یک نرمافزار انحصاری تبدیل کرد و حقوقی را که GPL به کاربران میدهد از آنها گرفت.
در نتیجه، پیش از هرگونه تغییر یا انتشار، بررسی مجوز نرمافزار اصلی ضروری است.
لینوکس؛ نمونهای واقعی از قدرت اپنسورس
یکی از بهترین نمونههای دنیای متنباز، لینوکس است. هسته لینوکس (Linux Kernel) نرمافزاری متنباز است که در بسیاری از سیستمعاملها و دستگاهها مورد استفاده قرار میگیرد. این هسته تحت مجوز GNU GPL نسخه ۲، با شرایط و استثناهای مشخص، منتشر میشود.
اما لینوکس فقط یک پروژه نیست که یک شرکت آن را توسعه دهد و همه کاربران صرفاً از همان نسخه استفاده کنند. توسعهدهندگان، شرکتها و جوامع مختلف میتوانند از هسته لینوکس و مجموعه نرمافزارهای دیگر استفاده کنند و سیستمعاملهایی متناسب با نیازهای خود بسازند.
این سیستمعاملها را معمولاً توزیع لینوکس (Linux Distribution) مینامند. یک توزیع معمولاً از هسته لینوکس، ابزارهای سیستمی، کتابخانهها، مدیر بسته، محیط گرافیکی و نرمافزارهای دیگر تشکیل شده است.
نمونههایی از توزیعهای لینوکس
اوبونتو (Ubuntu): یکی از شناختهشدهترین توزیعهای لینوکس است که برای رایانههای شخصی، سرورها و کاربردهای مختلف استفاده میشود. شرکتها و توسعهدهندگان میتوانند از اجزای متنباز آن در پروژههای خود استفاده کنند، مشروط بر اینکه مجوز هر جزء و الزامات توزیع را رعایت کنند.
دبیان (Debian): یک توزیع شناختهشده با جامعه توسعهدهندگان گسترده است که بر پایداری و تعهد به نرمافزار آزاد تأکید دارد. بسیاری از توزیعهای دیگر از دبیان منشعب شدهاند یا از بستههای آن استفاده میکنند.
لینوکس مینت (Linux Mint): توزیعی محبوب برای کاربران دسکتاپ است که تجربه کاربری ساده و آشنایی ارائه میدهد. این پروژه از اجزای مختلفی استفاده میکند که هرکدام ممکن است مجوز خاص خود را داشته باشند.
فدورا (Fedora): توزیعی با تمرکز بر فناوریهای جدید و ابزارهای مدرن لینوکس است. این پروژه در اکوسیستم نرمافزارهای متنباز نقش مهمی دارد.
آرچ لینوکس (Arch Linux): توزیعی انعطافپذیر که به کاربران امکان میدهد سیستم خود را مطابق نیازشان پیکربندی کنند. این ویژگی آن را برای کاربران حرفهای و توسعهدهندگان جذاب میکند.
چگونه یک توزیع جدید لینوکس بسازیم؟
تصور کنید یک تیم برنامهنویسی میخواهد سیستمعاملی برای مدارس طراحی کند. این تیم میتواند بهجای ساخت یک سیستمعامل از صفر، از یک توزیع موجود یا مجموعهای از اجزای متنباز استفاده کند.
برای مثال، تیم میتواند یک نسخه مبتنی بر اوبونتو یا دبیان بسازد و ویژگیهای زیر را به آن اضافه کند:
- محیط گرافیکی ساده و فارسیسازیشده؛
- نرمافزارهای آموزشی از پیش نصبشده؛
- ابزارهای مدیریت کلاس و کاربران؛
- تنظیمات امنیتی متناسب با محیط مدرسه؛
- فروشگاه نرمافزاری اختصاصی و ظاهر گرافیکی جدید.
سپس میتواند این سیستمعامل را با نام تجاری خود منتشر کند، وبسایت اختصاصی بسازد و حتی خدمات نصب، پشتیبانی و آموزش آن را بهصورت تجاری ارائه دهد.
البته این کار به معنای مالکیت انحصاری بر تمام اجزای اوبونتو یا دبیان نیست. تیم باید مجوز هر جزء را رعایت کند، اطلاعیههای لازم را حفظ کند و برای اجزایی که مشمول GPL هستند، الزامات مربوط به کد منبع و توزیع را انجام دهد. همچنین، استفاده از نامها و نشانهای تجاری پروژههای اصلی تابع قواعد مربوط به علائم تجاری است.
این نمونه نشان میدهد که ساخت یک توزیع لینوکس جدید، یکی از روشنترین مثالهای استفاده قانونی از نرمافزارهای متنباز برای ایجاد محصولی مستقل است.
آیا میتوان نرمافزارهای دیگر را هم به همین روش منتشر کرد؟
بله. این رویکرد فقط به سیستمعاملها محدود نیست. بسیاری از پروژههای متنباز در زمینههای مختلف وجود دارند که میتوان از آنها برای ساخت محصولات جدید استفاده کرد.
برای مثال:
- نرمافزارهای مدیریت محتوا: میتوان یک سامانه متنباز را توسعه داد و با افزودن قالبها، افزونهها و قابلیتهای اختصاصی، محصولی برای مشتریان خاص ایجاد کرد.
- ابزارهای طراحی و ویرایش تصویر: در صورت مجاز بودن طبق مجوز، میتوان رابط کاربری یا امکانات آنها را تغییر داد و نسخهای متناسب با نیاز یک گروه از کاربران ساخت.
- نرمافزارهای اداری: میتوان مجموعهای از ابزارهای متنباز را پیکربندی و یکپارچه کرد و محصولی ویژه کسبوکارها ارائه داد.
- برنامههای موبایل و دسکتاپ: میتوان پروژههای دارای مجوز مناسب را توسعه داد، قابلیتهای جدید اضافه کرد و نسخهای با هویت بصری اختصاصی ساخت.
نکته مهم این است که متنباز بودن یک جزء، بهتنهایی به معنای متنباز بودن تمام اجزای یک محصول نیست. باید مجوز کتابخانهها، فونتها، تصاویر، افزونهها و سایر منابع مورد استفاده نیز بررسی شود.
آیا میتوان از یک نرمافزار متنباز درآمد کسب کرد؟
بله. متنباز بودن به معنای ممنوعیت درآمدزایی نیست. بسیاری از شرکتها از طریق فروش خدمات پشتیبانی، سفارشیسازی، آموزش، میزبانی، نصب و نگهداری یا ارائه نسخههای ویژه درآمد کسب میکنند.
حتی در برخی شرایط میتوان نسخههای نرمافزار متنباز را مستقیماً فروخت. با این حال، اگر مجوز نرمافزار به دریافتکنندگان اجازه بازتوزیع بدهد، نمیتوان صرفاً با دریافت پول، حق بازتوزیع قانونی را از آنها سلب کرد.
برای مثال، شرکتی میتواند یک توزیع لینوکس اختصاصی برای سازمانها بسازد و بابت نصب، پشتیبانی بلندمدت، مدیریت امنیت و خدمات فنی هزینه دریافت کند. ارزش تجاری چنین محصولی میتواند در کیفیت خدمات، سهولت استفاده و امکانات افزوده آن باشد، نه لزوماً در انحصاری کردن تمام کد منبع.