بررسی علمی اینکه چرا *گنو* لینوکس یک سیستم عامل است و چرا باید بگیم گنو لینوکس

Gnu/Linux
Gnu/Linux


در بسیاری از سایت های خارجی و داخلی خیلی دیدید که زمانی که میخوان سیستم عامل گنو لینوکس را معرفی کنن(بسه دیگه بابا، فقط از گنو لینوکس یه معرفی شو بلدین؟ اونم با کپی پیست! برید به یک زخم دیگه نرم افزار های آزاد برسید.) یا چیزی درباره ی اون بنویسن، به جایه اینکه بگن گنو لینوکس، از لینوکس خالی استفاده میکنن. برای توضیح سیستم عامل هم خیلی از جاها این مدل عکس های زیرو که در اولی چون با جزیات اجزاء سیستم عامل را معلوم نکرده و دومی هم که کاملا غلطه، باعث اشتباه میشه.

عکس اول: معلوم نبودن اجزاء سیستم عامل
عکس اول: معلوم نبودن اجزاء سیستم عامل


عکس دوم: کاملا اشتباه
عکس دوم: کاملا اشتباه



و اما چرا گنو لینوکس یک سیستم عامله و لینوکس فقط یک هستست(فقط یک هسته خیلی پیشرفته و کامله!)

برای اینکه تفاوت این دو رو بفهمیم باید ابتدا بدونیم که سیستم عامل چیه، از چه اجزائی تشکیل شده و کارش چیه.

سیستم عامل مهمترین نرم افزاری هست که روی سخت افزار نصب میشه.

دلایل اینکه گنو لینوکس یک سیستم عامله و چرا این اشتباه فاحش رایج شده.

دلیل اول: هسته مهم ترین و معروف ترین وظیفه رو در سیستم عامل داره و برای همینم بعضی ها فکر میکنن لینوکس یک سیستم عامله.

از وضایف سیستم عامل هم میشه به:

  • برقراری ارتباط بین کاربر(نرم افزار های دیگه) و سخت افزار
  • هماهنگی بین نرم افزار های دیگه ایکه روی سیستم عامل(خودش) نصب هست.
  • مدیریت دسترسی ها
  • مدیریت پروسس ها
  • مدیریت حافظه
  • مدیریت پردازش ها
  • و ..........

اشاره کرد.


ولی چرا هر وقت در هر سایتی(بیشترشون) از سیستم عامل حرف زده شده، فقط مورد اول از موارد بالا یعنی رابط بین کاربر و سخت افزار گفته شده؟

این به خاطره اینکه سیستم عامل ها هم انواع مختلفی دارن:

چند کاربره، تک کاربره

چند وظیفه ای، تک وظیفه ای

و .....

و بسیاری از موارد بالا رو خیلی از سیستم عامل های اولیه انجام نمیدادن. حتی امروز هم سیستم عامل هایی هستن که هنوز هم اسفاده میشن ولی همه موارد بالا رو انجام نمیدن. مثلا مورد سوم(مدیریت دسترسی ها) رو ms-dos چون فقط یک سیستم عامل تک کاربره بود اصلا انجام نیمداد(چون اصلا فقط یک کاربر میتونست ازش استفاده کنه و مدیریت دستریسی کاربر ها براش بی معنی بود). دومین عکس(که کاملا غلطه رو) از دو عکس بالا رو هم معمولا برای نشان دادن کار هسته نشون میدن که هم ناقصه و هم اشتباه.

ولی، ولی مورد اول(رابط کاربر و سخت افزار) رو تمام سیستم عامل ها انجام میدن و مورد اول معروف ترین و اصلی ترین وظیفه یک سیستم عامله.

خب حالا که چی؟

خب وظیفه این مورد رو هم هسته سیستم عامل بر عهده داره که هسته سیستم عامل گنو لینوکس هم میشه لینوکس برای همین به اشتباه لینوکس رو یک سیستم عامل میدونن!

دلیل دوم: سیستم عامل ها از اجزاء مختلفی تشکیل شدن و یک هسته اصلا نمیتونه به تنهایی یک سیستم عامل باشه

سیستم عامل های مختلف از اجزاء مختلفی تشکیل شدن ولی دوتا(شمایدم بیشتر) قسمت در تمام اونها به طور مشترک وجود داره

۱- هسته

۲- رابط کاربری(متنی، گرافیکی)

شما اصلا نمیتونی از لینوکس خالی استفاده کنید چون اصلا رابطی برای برقراری ارتباط با اون نداری.

حتی نرم افزار های دیگه هم برای برقراری ارتباط با هسته از پوسته استفاده میکنن.

Kernel - Shell = 0

OS - Shell = 0

OS={Kernel, Shell}

در سیستم عامل گنو لینوکس هم پوسته ها وظیفه برقراری ارتباط بین کاربر و هسته رو دارن(مثلا بش).

زمانی که شما به پوسته ها دستوری رو میدید، پوسته ها اونو به صورتی به هسته میگن که متوجه بشه و کاری که شما میخواید رو انجام بده.

خیلی هم جالبه بعضی ها(خیلی ها) چون مهمترین وظیفه یک سیستم عامل برقراری ارتباط بین کاربر و سخت افزار هست و این کار را هم هسته لینوکس در گنو لینوکس انجام میده فکر میکنن که لینوکس یک سیستم عامله ولی اگه پوسته ها نباشن هسته حتی این کار را هم نمیتونه انجام بده. :|

درحقیقت نسخه درست عکس های بالا عکس زیره(به شکل و شمایل مختلفشون گیر نیدید. این مدل عکس ها شکل های مختلفی دارین و فقط هدفشون رسوندن مفهومه). این عکس درست و کامله. برای توضیح کار سیستم عامل هم معمولا اولین عکس از دو عکس بالا رو بهتون نشون میدن که باعث میشه به اشتباه فکر کنید که لینوکس یک سیستم عامله.

عکس درست.
عکس درست.

نکته: بش(پوسته استاندارد ۹۹٪ توزیع های گنو لینوکس) و تعداد بسیار زیادی از نرم افزار های آزاد و کتابخانه های مهم برای توسعه نرم افزار ها جزء پروژه گنو هست و برای همین هم تیکه بعدی گنو نام داره.

دلیل سوم: طرف رفته از چنتا بی سواد کپی پیست کننده، بی سوادی شونو به ارث بده!(البته منم علمی ندارم ولی حداقل مردمو به اشتباه نمیندازم)

چون از گذشته این اشتباه به وجود اومده و بیشتر صفحه ها هم در اینترنت کپی پیستن، این اشتباه خیلی رواج یافته و متاسفاده افرادی هستن که چندین سال تجربه استفاده از سیستم عامل گنو لینوکس رو دارن ولی هنوز زمانی که میخوان از لفظ سیستم عامل استفاده کنن فقط لینوکس خالی رو میگن.

خیلی از وبسایت های معروف هم که چند صفحه درباره ی گنو لینوکس نوشتن(مثل زومیت و .....) ولی حوزه اصلی شون نرم افزار های انحصاری است و اصلا دارن درباره ی چیزی که سوادشو ندارن مینویسن. و البته خیلی پر مدآ هستن. ویکی پدیا که خودش یک دانش نامه آزاد هست خیلی این غلطو در موارد بسیاری تکرار کرده.

نکته: خیلی ها هم فقط با خواندن چنتا صفحه وب و دیدن چنتا فیلمه اشتباه درباره ی گنو لینوکس که به اشتباه در اون ها بهش گفتن لینوکس، طرف فکر میکنه دیگه اوستا شده و فکر میکنه که چقدر اون اوستادا خفنن و هرچی اونا گفتنو تکرار میکنه.

دلیل چهارم: بعضی ها فقط کاربر نرم افزار های آزاد هستن و اصلا برای فلسفه اون ارزشی قائل نیستن و درکش نکردن.

بعضی از افراد فقط بخاطر اجبار، موقعیت کاری، کنجکاوی و ...... به نرم افزار های آزاد رو میارن.

خب مشکلش چیه؟

مشکلی نداره ولی اکثر این افراد تفکر نرم افزار های انحصاری رو تو ذهن دارن و اگه قرار باشه بین یک نرم افزار انحصاری و یک نرم افزار آزاد که رایگان و بهتر از نرم افزار انحصاریه هست یکی رو انتخاب کنن،

نرم افزار انحصاری رو چون فکر میکنن پولیه و خیلی خبریه(فقط الکی که شما فکر کنید خیلی خوبه سنگین و نا بهینه شده، به عنوان مثال ادوبی) انتخاب میکنن. :| با اینکه اون نرم افزار آزاد هم قدرتمند تر، راحت تر و ... هست.

اگه هم بدونن که گنو لینوکس یک سیستم عامله برای راحتی میگن لینوکس و براشون مهم نیست.

دلیل پنجم: سندرم استکهلم و لج

بعضی ها چون طرفدار شرکت هایی هستن که ازشون سوء استفاده میکنن، جاسوسی میکنن، در معرض هکر ها قرارشون میدن و ......... با اینکه هزار با شنیدن که گنو لینوکس یک سیستم عامله ولی باز میگن لینوکس.

تا هم به عمد این اشتباه را جا بندازن و هم با این کارشون فکر میکنن که دارن کفر طرفداران نرم افزار های آزاد در میارن(فقط بچه بودن خودشونو میرسونن :دی) یا حداقل برای شرکت های انحصاری که دشمنشون نرم افزار آزاده خوش خدمتی کرده باشن.

دلیل ششم: نه تنها برقراری ارتباط با سخت افزار بلکه مدیریت دسترسی ها، مدیریت پروسس ها و خیلی چیزای دیگه هم در سیستم عامل بر عهده هسته هست.

نه تنها هسته رابط بین کاربر و سخت افزاره(البته به طور غیر مستقیم) بلکه مدیریت پروسس ها، مدیریت دسترسی ها و ...... رو هم در سیستم عامل هستهست که انجام میده ولی همانطور که در دلیل دو گفتم شما باید برای مدیریت اینا بتونید با هسته حرف بزنید و چون خود هسته رابط کاربری ای نداره شما نیازمنده یک پوسته هستید که درخواست های شما رو به زبان قابل فهم هسته بهش بگه.

نکته: اصلا کرنل به تنهایی بدرد نمیخوره!

حالا اگه به جای لینوکس بگیم گنو لینوکس آسمون به زمین میاد؟

اگه این حرف رو با خودتون میگید شما جزء افرادی هستید که در دلیل چهارم معرفیشون کردم. به احتمال زیاد حتی از گنو لینوکس یک بار هم استفاده نکردید و فقط اسم نرم افزار آزاد و فلسفشو شنیدید و هیچی از مفهوم اون نمیدونید. به راحتی دست به کرک میزنید و .........

شرکت های انحصاری تلاش بسیاری رو برای منحرف کردن جنبش نرم افزار های آزاد و گمراه کردن کاربران در فهم فلسفه و مفهوم نرم افزار آزاد کردن تا بتونن جلوی کاربران را از استفاده از نرم افزار های آزاد بگیرن و ازشون پول بیشتری دربیارن حتی با جاسوسی و فروختن اطلاعاتشون و ........ . با گفتن گنو لینوکس به جای لینوکس(زمانی که دارید از لفظ سیستم عامل استفاده میکنید) به اون شرکت ها کمک نکنید.

حتما لینک های زیر را بخوانید(کمی طول میکشه ولی شما تو چند روز بخونیدش)

لینک های زیر به زبان فارسی هست و توصیه میکنم حتما بخونیدش تا دلیل و الزام وجود نرم افزار آزاد را بدونید و به اشتباه هم نیفتید. لینک دسته بندی شده فلسفه و توضیحات درست نرم افزار های آزاد، لینک سومی هست.

https://www.gnu.org/philosophy/free-sw.fa.html
https://www.gnu.org/philosophy/open-source-misses-the-point.fa.html
https://www.gnu.org/philosophy/philosophy.fa.html


حرف آخر

خب با همه ی اینا این اشتباه بی سواد نشان دهنده متاسفانه خیلی تکرار شده. خب حداقل تو عاقل باش و خودتو حداقل در این مورد از خیلی ها بهتر کن. تو کار درست را بکن حتی اگه همه غلطشو انجام بدن!