خب من چند تا از تاپیک هایی که در این مورد بودند رو خوندم و این حس بهم القاء شد که کاربران اطلاع درستی درباره مجوز BSD و فلسفه اون ندارن. به همین دلیل تصمیم گرفتم این راهنمای کوچولو رو بنویسم به امید اینکه زمینه برای مطالعه بیشتر دوستان آماده بشه.
به طور کلی من مجوزهای نرمافزارهای آزاد/بازمتن رو به سه دسته تقسیم میکنم:
- مجوزهای کپی لفت مثل gpl
- مجوزهای تجاری مثل apache
- مجوزهای دانشگاهی مثل bsd, mit و ...
خب بد نیست تاریچه سیستم عامل هایی که از این مجوز استفاده میکنند رو مختصرا مرور کنیم:
شاید بشه گفت همه چیز با سیستم عامل 386bsd آغاز میشه که این پروژه در سال ۱۹۸۹ شروع شد اما اولین نسخه اون در سال ۱۹۹۲ منتشر شد. بعد از انتشار 386bsd گروهی شروع کردن به نوشتن و جمع کردن patch ها و بروز رسانی هایی برای این سیستم عامل. اما بعداً به طور کامل 386bsd رو fork کردند و پروژه جدیدی رو به اسم freebsd شروع کردند که امروزه همه این سیستم عامل رو میشناسیم. در همون مواقع یک گروه دیگه با یک هدف متفاوت 386bsd رو fork کردند و پروژه netbsd رو شروع کردند. اما بعداً توی این گروه اختلاف افتاد و در سال ۱۹۹۶ بعضی از توسعه دهندگان netbsd به علت اختلاف نظر پروژه رو fork کردند و یه پروژه جدیدی به نام openbsd رو شروع کردند. که هر سه تای این پروژه ها تا امروز زنده هستند و همه اونها رو میشناسیم.
خب بد نیست به بعضی از تکنولوژیهایی که این سیستم عاملها به دنیا معرفی کردند اشاره کنیم:
freebsd: هدف این پروژه طراحی و توسعه یک سیستم عامل آزاد و همه منظورست که هر کسی بتونه برای هر هدفی از اون استفاده کنه، بدون اینکه متن حقوقی خاصی ضمیمه اون شده باشه و استفاده رو محدود کنه. تکنولوژی های این سیستمعامل:
- سیستم پورتها که روشی برای نصب برنامه توی این سیستم عامل هست.
- زندانها که یک روش مجازی سازی برای اجرا کردن چندfreebsd به صورت همزمان بر روی یک freebsd هست.
- Zfs که البته از سولاریس گرفته شده و یه (دوست ندارم بهش بگم سیستم فایل اما چیز دیگه ای به ذهنم نمیرسه) سیستم فایل مدرن با امکانات زیاد هست.
- Ipfw که یک فایروال قدرمتند و بروز با امکانات زیاد هست.
و یکسری دیگه مثل dtarce، mac, geom, geli, و...
openbsd:
که حتماً همه میدونید تمرکزش بر روی امنیت هست. تکنولوژیها:
- فایروال pf که به اعتقاد خیلیها قدرمتند ترین فایروال موجود هست.
- تکنولوژی carp که به کمک اون چند تا سیستم میتونند از یه ip استفاده کنند، برای کاهای load balancing استفاده میشه.
- Openssh که یه پروتکل برای برقراری ارتباط از راه دور به صورت امن هست.
- Tmux که یه برنامه کاربران خط فرمان هست و میتونه یه ترمینال رو به چند قسمت تقسیم کنه و کلاً شبیه screen هست.
- Opencvs که یه برنامه سورس کنترل و نسخه بندی هست.
و خیلی چیزهای دیگه
netbsd:
که طراحی پرتابل اون باعث شده روی پلتفرم های زیادی قابل اجرا باشه:
- pkgsrc: که یک برنامه مدیریت بسته های نرم افزاری هست. اما فرقش با بقیه آینه که اون هم خیلی پرتابل طراحی شده و برنامه هاش رو میشه روی بقیه سیستم عامل ها هم استفاده کرد.
- IPFilter که یه فایروال مدرن هست.
- Netpgp که یه پیادهسازی از پروتکل pgp هست (شبیه gnupg)
- NPF یه فایروال دیگه
- و چیزهای دیگه
خب بریم سراغ مجوز:
به طور کلی سه نوع اجازه نامه bsd وجود داره که اولیش سال ۱۹۸۸ منتشر شد و ما کاری باهاش نداریم چون استفاده نمیشه. دومیش که به مجوز چهار بندی bsd معروف هست و در سال ۱۹۹۰ منتشر شد و ما با اون هم کار نداریم. سومین مجوز، مجوز freebsd هست که به مجوز ساده شده یا مجوز دو بندی bsd هم معروفه که ما با این کار داریم.
از این به بعد منظور از
برنامه نسخه کامپایل شده کدمنبع هست.
این مجوز به کاربر امکان این رو میده که:
- از کدمنبع به صورت رایگاه و برای هر هدفی استفاده کنه.
- از برنامه به صورت رایگان و برای هر هدفی استفاده کنه. (منظور از برنامه نسخه کامپایل شده کدمنبع هست)
- کدمنبع رو تغییر بده و اون رو سفارشی کنه.
- کدمنبعی که تغییر داده رو مجدداً منتشر کنه و اون رو به دوستاش بده. (یا بفروشه)
- برنامهای که تغییر داده رو منتشر کنه و رایگان به دوستاش بده. (یا بفروشه)
- برنامه رو بدون کدهای منبع به صورت رایگان یا تجاری منتشر کنه ( تجاری)
- یه برنامه دیگه بنویسه که از کدهای برنامه قبلی استفاده میکنه یا به اون لینک شده (تجاری)
- و در نهایت برنامه رو بدون کدهای منبع و با یک مجوز دیگه چه به صورت رایگان و چه غیر رایگان منتشر کنه. (تجاری)
محدودیتها:
- اگر برنامه اشکالی داشت و کار نکرد کاربر حق نداره از توسعهدهنده شکایت کنه.
- اگر سورس رو تغییر داد باید مجوز هم تغییر کنه.
- اگر قراره کدمنبع بدون تغییر منتشر بشه، باید یک نسخه از مجوز به همراه کدمنبع عرضه بشه.
خب به صورت کلی میشه گفت که این اجازه نامه با gpl فرق خاصی نداره به جز اینکه آزادیهای بیشتری در هنگام انتشار مجدد برنامه میده. (منظور از برنامه نسخه کامپایل شده کدمنبع یا همون باینری ها هست)
در هر صورت، اگر کاربر بخواد کدمنبع اصلی رو بدون تغییر منتشر کنه، مجبوره که مجوز رو حفظ کنه و حق نداره اون رو تغییر بده. اما اگه اون رو تغییر داد و یا خواست به صورت کامپایل شده منتشرش کنه، باید مجوز رو هم تغییر بده.
به طور کلی میشه گفت هدف gpl اینه که از برنامه محافظت کنه اما هدف bdsl اینه که از توسعهدهنده محافظت کنه. چرا که:
- کاربر حق نداره به خاطر کار نکردن برنامه از توسعهدهنده شکایت کنه.
- کاربر حق نداره تغییراتی که خودش توی برنامه اعمال کرده رو با نام توسعهدهنده منتشر کنه.
- در صورتی که قرار باشه کدمنبع بدون تغییر منتشر بشه، باید نام توسعهدهنده حفظ بشه.
یک مثال:
این اصل مجوزی هست که freebsd استفاده میکنه:
The FreeBSD Copyright
Copyright 1992-2013 The FreeBSD Project. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE FREEBSD PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of the FreeBSD Project.
خب اون بالا نوشته:
Copyright 1992-2013 The FreeBSD Project. All rights reserved.
اگر من کدمنبع freebsd رو داشته باشم و بخوام اون رو بدون تغییر منتشر کنم، مجبورم این مجوز رو هم به همراه برنامه عرضه کنم. اما اگه اون رو تغییر دادم یا بخوام اون رو به صورت باینری منتشر کنم، مجبورم مجوز رو هم عوض کنم.
این مجوز فقط ۲۵ خطه که هر خط ۷۸ حرف داره. اما
gpg gpl طولانیتره و 339 خط داره که هر خط ۷۸ حرف طول داره.
خب من یک حقوقدان نیستم قصدم از نوشتن این مطلب فقط آشنایی کاربران بود. اگر اشکالی داره لطفاً با من در میان بگذارید تا اصلاح کنم.
منابع:
ویکیپدیا
http://www.rhyous.comhttp://www.freebsd.orgممنون