شاید برای شما سوال پیشآمده باشد که نرم افزار آزاد به چه معناست؟ گنو چیست؟ چرا میگوییم گنو/لینوکس؟ و … در این پست قصد داریم شما عزیزان را با مفاهیم کلی آشنا کنیم پس با ترنجی همراه باشید.
قبل از هر چیز نگاهی بر تاریخچهی گنو/لینوکس داشته باشیم. در دنیای امروز، سیستمعاملهای آزاد مفاهیم جدیدی برای دنیای رایانهها نیست. در این میان میتوان به نسخههای دانشگاهی سیستمعامل یونیکس مانند FreeBSD اشاره نمود. در سال ۱۹۹۱ یک دانشجوی رشته کامپیوتر از دانشگاه هلسینکی فنلاند، به نام لینوس توروالدز(Linus Torvalds) اعلام کرد که یک هسته آزمایشی سیستمعامل مشابه یونیکس، مسوم به MINIX ایجاد کرده است. این هسته بعدا لینوکس (LINUX) نام گرفت. توروالدز طراحی مشابه یونیکس را به دلیل شهرت یونیکس در پایداری، طراحی صحیح و قابلیتهای آن برگزید.
در آن زمان این هسته(لینوکس) برای کار برروی پردازندههای ۳۸۶ اینتل طراحی شد بود. که آن را محدود ساخته بود. در حالی که یونیکس مستقل عمل میکرد.یعنی یونیکس را میتوان بر روی هر سختافزاری اجرا نمود. با این حال توروالدز تسلیم نشد و به کار خود ادامه داد. تلاشهای او باعث هدایتش به نرمافزارهای آزاد شد. که در این بین طراحان و باقی مهندسان نیز شروع به کمک و توسعه این هسته (لینوکس) کردند.
کاربران علاقهمند به پروژهی گنو شروع به استفادهی هستهی لینوس توروالدز بههمراه ابزارهای گنو کردند. که این منجر به تولید سیستم عامل گنو/لینوکس (Gnu/Linux) شد. پس اگر بخواهیم به سیستمعامل اشاره کنیم، باید بگوییم گنو/لینوکس، نه لینوکس.
رویای ریچارد استالمن (Richard Stallman) بنیانگذار نرمافزار آزاد، برای داشتن یک سیستمعامل آزاد و غیر تجاری با آمدن لینوکس محقق شد.
فرهنگ استفاده از نرمافزار آزاد و متن باز:
بنیاد نرمافزار آزاد بر این اعتقاد است که نرمافزار باید آزاد در اختیار همگان باشد. این آزادی به مفهوم باز بون کد منبع نیز میشود. این بنیاد با ایجاد مجوز GPL که مخفف Gnu General Public License میباشد، اشتراک نرمافزارهای آزاد را توسعه بخشید. هدف از ارائهی کد منبع، قادر ساختن برنامه نویسان برای ایجاد تغییرات در کد منبع میباشد. بنابراین مجوز، هیچ نرمافزاری که تحت این مجوز ارائه میشود، نمیتواند فاقد کد منبع باشد. به بیان دیگر کد منبع باید همراه برنامه ارائه شود. همراه بودن کد منبع این امکان را به جامعهی متنباز میدهد، که بتواند نقطه ضعفها و نکات امنیتی موجود را در نرمافزار به سرعت پیدا کنند. پس نرمافزارهای آزاد بدون اشکال و ایمن خواهند ماند. در طرفی ممکن است یک حفرهی امنتی و یک باگ در یک نرمافزار متن بسته هفتهها و یا ماهها طول بکشد تا رفع شود، اما در گنو/لینوکس رفع مشکلات شاید در چند روز و یا چند ساعت برطرف شود.
به این نکته توجه کنید که با اینکه نرمافزار آزاد با کد منبع ارائه میشود، اما قادر نخواهید بود تا هر کاری با آن انجام دهید. هنگامی که نرمافزاری با مجوز GPL منتشر شود، هر گونه تغییر در مجوز آن باید با اجازهی توسعه دهندهی آن صورت بگیرد. با این حال میتوانید نرمافزار را ببینید، تغییر دهید، استفاده کنید و با همان مجوز منتشر کنید. بسیاری از نرمافزارهایی که با گنو/لینوکس ارائه میشوند آزاد هستند. پس لزوما یک نرمافزار متنباز نمیتواند آزاد باشد.
شرایط لازم برای آزاد بودن یک نرم افزار:
یک نرمافزار باید چه شرایطی داشته باشد تا آزاد تلقی شود؟
در نرمافزار آزاد، موضوع آزادی است نه قیمت. نرمافزار آزاد در مورد آزادی کاربران برای تغییر، کپی، انتشار و بررسی کدها و از همه مهمتر بهبود کدها میباشد. بطور دقیقتر نرمافزار آزاد به چهار نوع آزادی برای کاربران یک نرمافزار اشاره میکند.
۱- (آزادی صفر) آزادی برای اجرای برنامه برای هر منظور
۲- (آزادی یک) آزادی برای مطالعه و بررسی و چگونگی عملکرد برنامه و تغییر آن برای مطابقت با نیاز خود.
۳- (آزادی دو)آزادی برای توزیع مجدد کپیهایی از آن
۴- (آزادی سه) آزادی برای بهبود برنامه و انتشار مجدد این تغییرات برای عموم(دسترسی به کد منبع یک پیش شرط برای این آزادی میباشد.)
در صورتی یک نرمافزار آزاد به حساب میآید که، کاربران همهی این آزادی را داشته باشند. بنابراین شما باید برای توزیع مجدد کپیهایی از آن، چه با تغییرات و چه بدون تغییرات، چه رایگان و چه غیر رایگان، برای هر شخصی و در هر جایی آزاد باشید.
با این حال بعضی قوانین برای نحوهی توزیع نرمافزار آزاد هستند، هنگامی که با آزادیهای اصلی در تضاد نباشد قابل قبول هستند. برای نمونه copyleft قانونی است که به موجب آن شما هنگام توزیع مجدد برنامه، نمیتوانید محدودیتهایی به آن اضافه کنید، تا آزادی اصلی را برای دیگران از بین ببرد. این قانون نه تنها با آزادی اصلی در تضاد نیست، بلکه از آن محافظت میکند.
در کلام آخر، گنو/لینوکس یعنی آزادی، یعنی به اشتراک گذاشتن علم، یعنی پیشرفت و حرکت رو به جلو.
نظر شما چیست؟ آیا تابحال از نرمافزارهای آزاد استفاده کردهاید؟ در بخش نظرات میزبان شما هستیم.
از نظر من لینوکس فوق العادست
اما گنو/لینوکس , باز گذاشتن در گاوصندوقه برنامه نویساست !
دوست عزیز کسی به اجبار کدش رو در اختیار کسی نمیزاره هر تعاملی و اشتراک گذاری هست با رضایت توسعه دهنده هستش
پس اینطوری خوبه که یه شرکتی بیاد BSD رو به اسم خودش تغییر بده یه اسم داروین رو هم بزاره روی کرنلش ، بعد هم سورساشو ببنده ؟
اتفاقا به نظر من بهترین مزیت GPL همین حمایتش از حقوق مولفه
یه سوال:یعنی الان ما سیستم عاملی به نام گنولینوکس داریم؟؟؟؟ :scratch:
بله الان روی رایانه سیستم عاملی نصب کردید به اسم گنو/لینوکس.
لینوکس به تنهایی اسم یه کرنل هستش که لینوس توروالدز توسعش داده.
از طرفی همونطور که توی متن گفتم، این کرنل+ابزارهای گنو تشکیل یک سیستم عامل رو دادند.
لینوکس به تنهایی یک هستهاست که کار خاصی نمیتونه بکنه
در واقع کرنل یا هسته فقط وظیفهی کنترل سخت افزار یعنی سی پی یو، رم، و سی دی رام و … رو داره.
گنو هم نرافزارهای آزادی هستن که شما باهاشون سروکار دارید.
ولی خب در عامیانه به سیستم عامل میگن لینوکس که اگر بخوای فنی تر باشی باید بگی گنو/لینوکس.
دونستن این موضوع برای یک فردی که با سیستمعامل آزاد سرو کار داره لازمه :rose:
آقای مرادی عزیز پس افرادی که نرم افزار متن باز ارائه میدهند و رایگان در اختیار دیگران قرار می دهند چه سودی براشون داره و چطوری کسب درامد میکنن؟
یک نرمافزار آزاد لزومی نداره که حتما ازش کسب درآمد بشه. میتونه این نرمافزاری که به عنوان مثال، بنده در اختیار شما قرار دادم یک پروژه باشه. شما میرید این کدهای بنده رو مطالعه میکنید و برای خودتون تغییر میدید. و استفاده میکنید.
و حالا ممکنه شما یک نرمافزار متن باز برای شرکتی مانند تلگرام(سمت کلاینت) یا وی ال سی پلیر یا فایرفاکس و… توسعه بدید و استفاده تجاری داشته باشید. در اینجا هم فقط بحث توسعه نیست بلکه پشتیبانی هم مطرح میشه.