ورود به دنیای گنو/لینوکس/مروری بر تاریخچه، مفاهیم و اصطلاحات در دنیای نرمافزارهای آزاد
مفاهیم نرم افزارهای آزاد مفاهیم جدیدی در دنیای کامپیوتر نیستند زیرا در ابتدا نرم افزارهایی که به وجود آمدند همگی آزاد بودند. این گونه نرم افزارها آزادی انسان را در حیطه استفاده, توسعه, توزیع و تکثیر به رسمیت میشناسد. در یک نگاه کلی از حیث آزادی نرم افزارها به دو طبقه آزاد و غیر آزاد تقسیم میشوند , عمومااز نرم افزارهای غیر آزاد با عنوان نرم افزارهای اختصاصی نیز یاد میشود. قبل از شرح تمایز این دو لازم میدانم دراین بین تعریفی از کد منبع داسته باشم.
هنگامی که یک نرم افزار جهت یک کاربردی خاص تهیه میشود آن برنامه کاربردی توسط یکی از زبانهای برنامه نویسی نزدیک به زبان انسان نوشته میشود. کد برنامه نوشته شده با این زبانهاکه به آن کد منبع گفته میشود توسط کامپایلر و لینکر به کدهای صفرویک تبدیل میشودکه قابل فهم و اجرا برای ماشین است. در نرم افزارهای اختصاصی این کد در دسترس عموم قرار نداردوبه عنوان اسرار تجاری آن شرکت حفظ میشود همچنین با توسعه دهندگان آن نرم افزار قراردادی مبنی بر حفظ این اسرار بسته میشود و همچنین هر فردیا شرکتی که نرم افزار را تهیه میکندبر اساس قوانین کپی و مجوز آن محصول معمولا حق فقط یک نصب به ازای هر خرید را دارد. این بدان معنی است که خریدار آن محصول حق تکثیر و توزیع را ندارد همچنین با بسته بودن کد آن یعنی در دسترس نبودن کد منبع, فرد امکان اطلاع از چگونگی کارکرد سیستم را دارا نیست وبر اساس سیاست های تولید کننده محصول, کاربربه یک مصرف کننده تبدیل میشود که این کاملا خواسته شرکت های تولید کننده نرم افزار اختصاصی است. مفاهیم آزادی درحیطه نرم افزار تطبیق وشباهت جالبی به آزادی انسان در دیگر حوزه ها دارد. در مقابل نرم افزار اختصاصی نرم افزارهای آزاد وجود دارند که چهار آزادی اساسی را به ارمغان میاورند , باید به این مسئله توجه کافی داشت که کلمه Free در اینگونه نرم افزارها به معنی مجانی بودن آن نیست واین برداشت اشتباه به دلیل وجود یک کلمه Free برای دو مفهوم آزادی و مجانی در فرهنگ لغت انگلیسی است. ممکن است شمابتوانید یک نرم آزاد را به صورت مجانی نیز تهیه کنید اما الزاما همیشه اینطور نیست و ممکن است برای استفاده از آن پولی نیز بپردازیدامامعمولااینگونه نرم افزارها قابل دانلود میباشد. آزادی در نرم افزارهای آزاد به شرح زیر است: اجرای آزاد: کاربر بتواند برنامه را به هر قصدی اجرا کند. مطالعه وتغیرنرم افزار: برسی چگونگی کارکرد نرم افزار و در صورت لوزوم تغیرآن که پیش شرط آن دسترسی به کد منیع است. توزیع: حق کپی و توزیع اصل یا نسخه تغیر یافته نرم افزار به تعداد نامحدود.
انتشار: انتشار نسخه تغییر یافته نرم افزار برای استفاده عموم , که البته این انتشار نیز باید بر پایه نرم افزارهاد آزاد باشد. این آزادی ها به ترتیب از صفر شمرده میشوند , هر نرم افزاری که تحت مجوزهای نرم افزارهای آزاد منتشر میشود باید این آزادی هارا شامل شود و این حقوق را رعایت کند. در مورد مجوزهای نرم افزار آزاد جلوتر بحث خواهد شد... جالب اینجاست که نرم افزارهایی که فقط کد منبع آنها در دسترس باشد در زمره نرم افزارهای آزاد قرار نمیگیرد بلکه باید تمامی آزادی های ذکر شده را رعایت کند. تایین کننده سیاست این آزادی ها بنیاد نرم افزارهای آزاد است و البته در راس آن ریچارد استالمن که پایه گذار بنیاد نرم افزارهای آزاد میباشد. در این بین جامعه بازمتن نیز با رهبری اریک ریموند وجود دارد که ظرافت هاوحساسیت های نرم افزار آزاد را ندارداین فلسفه کمتر به مسائل اخلاقی تاکید دارد و ایجاد یک نرم افزار قابل اطمینان و بازمتن را دنبال میکند ولو در این بین سود شرکتهای تجاری در میان باشد... میتوان گفت این ریموند بود که حضور شرکت های تجاری را دراین خیل عظیم اضافه کرد که باعث پدید آمدن نسخه های تجاری نرم افزارهای بازمتن شد.
هرچند در فلسفه و سیاست ها این دو باهم متفاوت هستند اما یک هدف و دیدگاه مشترک دارند که آن هم مقابله با نرم افزارهای اختصاصی و مجوزهای آن است , میتوان این دو جنبش را دو حزب با یک جهت گیری دانست...