لینوکس چیست؟ چطور به وجود آمد و کجا استفاده میشود؟
لینوکس چیست؟
احتمالا اسم لینوکس را شنیده باشید. به احتمال زیاد همین الان هم از آن استفاده میکنید و خودتان خبر ندارید. امروز که این مقاله را مینویسم لینوکس همه جا هست. از سیستمهای خانگی گرفته تا ابرکامپیوترها. از خودرو گرفته تا هواپیما. در این مقاله بررسی میکنیم که لینوکس فقط یک سیستم عامل نیست و چیزی بیشتر از این حرفهاست. میفهمیم که در دنیای بزرگ تکنولوژی فقط ویندوز وجود ندارد.
اینم بخونید بد نیست: هرآنچه دربارهی راهنمای خرید سرور اختصاصی ویندوز نیاز دارید
سیستم عامل چیست؟
سیستم عامل (Operating System) یک نرمافرار است که مدیریت سخت افزار و نرم افزار را به عهده میگیرد و خدماتی ارائه میدهد. در واقع سیستم عامل یک پوسته بین ماشین و کاربر است که تعامل با رایانه را برای کاربر آسانتر میکند.
سیستم عامل فقط محدود به کامپیوترهای خانگی (PC) یا لپ تاپ (Laptop) نیست. دقت کنید که طیف وسیعی از دستگاههای دیجیتال دارای OS هستند. مثل ساعت هوشمند، گوشی هوشمند، روترها، ابرکامپیوترها، کنسولهای بازی، وبسرویسها و غیره.
سیستم عامل کارهایی مختلفی انجام میدهد. مثلا مدیریت حافظه (Memory Management) یا مدیریت فایل (File Management) را به عهده میگیرد. چندین task یا وظیفه را در کنار هم انجام میدهد. مدیریت دستگاههای ورودی و خروجی را به عهده میگیرد (I/O Management) ارتباط به شبکه اینترنت را راحت میکند. از تداخل پردازشها (Process) جلوگیری میکند و غیره.
سیستم عامل در چه دستگاههایی و به چه میزان استفاده میشود؟
هر سخت افزار سیستم عامل مخصوص خود را میخواهد. کامپیوترهای خانگی و لپتاپها به طور عمده از 3 سیستم عامل استفاده میکنند :
- ویندوز : 75%
- مک اواس : 13%
- لینوکس 1.5%
- 10% باقی مانده هم از OSهایی مثل Chrome OS، BSD و غیره استفاده میکنند
در گوشیهای هوشمند اندروید بسیار جلوتر از iOS قرار دارد. لیست زیر میزان استفاده از سیستم عاملهای موبایلی را نشان میدهد :
- اندروید : 74%
- آی اواس : 23%
- 3% باقی مانده از ویندوزفون و غیره استفاده میکنند
در تبلت اوضاع فرق میکند و اپل موفق شده بازار بیشتری را جذب کند :
- آی اواس : 74%
- اندروید : 25%
- 1% باقی مانده هم از ویندوز، بلکبری و غیره استفاده میکنند
توجه : این آمار در سال 2019 تهیه شده و ممکن است سالهای بعد تغییر کند
هسته سیستم عامل چیست؟
سیستم عامل بخشهای مختلفی دارد که Component نام دارند. هسته یا Kernel مهمترین Component یک سیستم عامل است. از کرنل به عنوان مغر متفکر سیستم یاد میشود. در واقع کارهای اساسی و حیاتی توسط هسته کنترل و مدیریت میشود. برخی از وظایف کرنل عبارتند از :
مدیریت CPU
با الگوریتمهای مختلف مشخص میکند که هر برنامه چقدر از پردازشگر استفاده کند. همچنین کار با چندین پردازشگر در هسته سیستم عامل تعریف میشود.
مدیریت حافظه
در زمان بارگذاری سیستم عامل، هسته یک بخش جدا از حافظه را اشغال میکند و خودش را از دید کاربر پنهان میکتد. هسته حافظه دستگاه را شناسایی کرده و تعامل بین RAM و CPU را ممکن میکند.
مدیریت دستگاهها
هسته قطعات مختلف مثل اسکنر، پرینتر، کارت گرافیک، کارت صدا، کارت شبکه و غیره را شناسایی میکند. در واقع شناخت قطعات و کار با آنان یکی از وظایف مهم کرنل است.
حالا که فهمیدید سیستم عامل چیست و هسته آن را درک کردید، میتوانید لینوکس را بشناسید.
Linux سیستم عامل نیست. Linux به تنهایی یک هسته یا Kernel است
ریچارد استالمن و لینوکس | خالق گنو
Unix یک سیستم عامل قدرتمند بود که در آزمایشگاه بل توسعه یافت. اما متاسفانه کدبسته و انحصاری بود. ریچارد استالمن در سال 1983 قبل از اینکه لینوکس وچود داشته باشد ایده ساختن یک سیستم عامل آزاد و غیرانحصاری شبیه به یونیکس را مطرح کرده بود.
او پروه گنو را شروع کرد. GNU مخفف بازگشتی Gnu Not Unix است. یعنی گنو شبیه به یونیکس است اما یونیکس نیست.
گفتیم که سیستم عامل اجزا یا Component های مختلف دارد. مثلا کرنل. استالمن توسعه گنو را به تنهایی شروع کرد اما بعدها برنامهنویسان دیگر از سراسر دنیا به کمک او آمدند. آنها ابزارهای مختلف یک سیستم عامل را نوشتند و تحت لایسنس GPL که ریجارد استالمن نوشته بود منتشر کردند.
اما یک جای کار میلنگید. پروژه گنو با اینکه خوب پیش میرفت اما یک مشکل اساسی داشت. برای اینکه ابزارهای گنو به درستی کار کنند و کل سیستم یکپارچه شود، نیاز به کرنل بود. توسعه کرنل گنو به کندی پیش میرفت و امیدی نبود که به نتیجه برسد. سیستم عامل GNU بدون هسته کار نمیکرد
نداشتن هسته یا کرنل مشکل اصلی پروژه گنو بود.
لینوس توروالدز و لینوکس | خالق لینوکس
ماجرا به سالها قبل برمیگردد. سال 1991، وقتی یک جوان 21 ساله فنلاندی تصمیم گرفت سیستم عامل خودش را بنویسد. او کار بر روی پروژه خود را به صورت تفریحی آغاز کرد. حتی بعدها کتابی نوشت تحت عنوان Just For Fun که نشان دهد برای سرگرمی این کار را انجام داده است. اما خروجی کارش نه تنها شوخی نبود بلکه دنیای فناوری را تکان داد.
لینوس توروالد یک مهندس نرم افزار فنلاندی است که در سال 91 میلادی یک هسته سیستم عامل نوشت و اسم آن را لینوکس گذاشت. این هسته به درستی کار میکرد اما چیزی نبود که عموم مردم بتوانند از آن استفاده کنند.
آقای توروالدز به زبان C و Assembly یک کرنل نوشت و اسم آن را لینوکس گذاشت.
اگر دوست داشتید بیشتر درباره هسته لینوکس بدانید به سایت kernel.org مراجعه بفرمایید.
اینم بخونید بد نیست: معرفی 5 توزیع برتر لینوکس برای برنامه نویسی
وقتی گنو و لینوکس ترکیب شدند
گنو به تنهایی ناقص بود و لینوکس هم به تنهایی به درد کاربران نمیخورد. لینوس توروالدز لینوکس را تحت لایسنس یا پروانه GPL منتشر کرد. به همین ترتیب ریچارد استالمن و تیمش میتوانستند از آن در پروژه خود استفاده کنند. آنها ابزارهای خودشان را با هسته ترکیب کردند و یک سیستم عامل بسیار زیبا و پایدار شکل گرفت به نام گنو/لینوکس.
گنو/لینوکس یک سیستم عامل شبه یونیکس است.
البته سازگار کردن ابزارهای گنو با لینوکس کار دشواری بود که به گفته ریچارد استالمن تلاش زیادی را طلبید.
لینوکس یا گنو/لینوکس؟ مسئله این است
بعدها یک جنگ سر اسم این سیستم عامل به راه افتاد. شاید بیشتر از 90 درصد مردم این سیستم عامل را لینوکس خالی صدا میزنند. اما اگر منصف باشیم لینوکس در کنار ابزارهای گنو یک سیستم کامل میشود و اسم گنو/لینوکس برای آن مناسبتر است. ریچارد استالمن رهبر جنبش نرم افزار آزاد اصرار داشته و دارد که مردم این سیستم عامل را گنو/لینوکس صدا بزنند.
البته بسیار مهم است که از چه محصولی استفاده میکنید. اگر گوشی شما اندرویدی است یعنی از لینوکس استفاده میکنید. اما هیچ ردی از پروژه گنو در گوشی لینوکسی شما وجود ندارد. پس گنو/لینوکس صدا زدن سیستم عامل موبایلتان اشتباه است. اما اگر بر روی کامپیوتر شخصی خود یک توزیع لینوکس مثل Ubuntu نصب کرده باشید بنا به گفته آقای استالمن عزیز باید آنرا گنو/لینوکس بخوانید. چون بسیاری از ابزارهای GNU را در خود جا داده است.
سیستم عامل لینوکس چیست؟
پس یک مرور کوتاه داشته باشیم. فهمیدیم که سیستم عامل وظیفه مدیریت منابع سیستم را به عهده دارد. سالها قبل مثل این روزها ویندوزی وجود نداشت که دنیا را تصاحب کرده باشد. اهالی کامپیوتر از یونیکس استفاده میکردند. این سیستم بسیار پایدار و قوی بود اما یک مشکل جدی داشت. اینکه انحصاری بود. ریچارد استالمن در سال 1983 شروع به ساخت سیستمی شبیه به یونیکس کرد. این سیستم هسته نداشت. بعدها هسته لینوکس به پروزه اضافه شد و سیستم عامل گنو/لینوکس خلق شد.
سیستم عامل لینوکس آزاد (Free) و متن باز (Open Source) است. همینطور بسیاری از توزیعهای لینوکس رایگان هستند. این OS به صورت ماژولار طراحی و پیادهسازی شده و بسیار پایدار است. عملکردهای اساسی مثل کنترل پردازشها، فایل سیستم، شبکه و درایورها در داخل هسته تعریف شدهاند. هر زمانی که نیاز باشد ماژول مربوطه اجرا میشود. سیستم عامل لینوکس اجزای مختلفی دارد :
برخی از اجزای لینوکس:
Shell یا شل : گاهی به آن پوسته هم میگویند. ببینید شما به طور مستقیم به کرنل دسترسی ندارید و به کمک یک واسط دستورات را اجرا میکنید. این واسط همان شل است. حالا شل میتواند گرافیکی یا متنی باشد.
ترمینال : دستورات شل به وسیله یک شبیه ساز نوشته شده و اجرا میشوند. شبیهسازی که با شل تعامل دارد ترمینال است.
Boot loader : بوت لودر هسته لینوکس را داخل حافظه اصلی (RAM) بارگذاری میکند. اکثر توزیعهای لینوکس از گراب به عنوان بوت لودر استفاده میکنند.
Package manager : پکیج منیجر اجازه مدیریت بستههای نرم افزاری را میدهد. برای نصب، آپدیت، حذف نرمافزارها در یک سیستم به کار میرود.
desktop environments : قسمتی که کاربر به صورت مستقیم با آن تعامل دارد. واسط گرافیکی که در گنو/لینوکس میبینید همان محیط کار است. محبوبترین محیطهای کار KDE و گنوم هستند.
توزیع چیست؟ توزیعهای لینوکس چه تفاوتی با هم دارند؟
قبول دارید که هدف اصلی خودرو حرکت کردن است. حالا یک مدل سیستم امنیتی حرفهای تری دارد. یک مدل آپشنهای فراوانی دارد. یک مدل کیفیت ساخت بسیار بالایی دارد و غیره. اما در آخر این خودروها باید حرکت کنند. لینوکس را یک خودرو در نظر بگیرید که مدل های بسیار زیادی دارد و هر کسی با توجه به سلیقه و حوزه کاری خودش یک مدل را انتخاب میکند. خب به این مدلها توزیع یا distribution یا به طور خلاصه distro میگویند.
اگر کاربر عادی ویندوز هستید و قصد مهاجرت به دنیای جذاب گنو/لینوکس را دارید، توزیعهایی مثل مینت و اوبونتو به دردتان میخورند. چون ظاهری زیبا و محیط کاربر پسندی دارند. اگر قصد دارید به صورت تخصصی در حوزه امنیت و نفوذ فعالیت کنید توزیع کالی پیشنهاد میشود. یا اگر یک شرکت هاستینگ قصد تهیه سیستم عامل برای سرورهای خود داشته باشد توزیع هایی مثل CentOs یا اوبونتو سرور مفید خواهند بود.
لیست زیر تعدادی از معروفترین و پراستفادهترین توزیعهای لینوکس در دنیا هستند :
- دبیان
- فدورا
- اوپن سوزه
- کالی
- ابونتو
- سنت اواس
- ردهت
- …
اگر دوست داشتید بیشتر درباره توزیع های لینوکس بدانید و بخوانید سایتی به اسم Distrowatch یا دیستروواچ وجود دارد که به صورت تخصصی درباره انواع نسخههای لینوکس محتوا تولید میکند. با اینکه سایت پوسته جذابی ندارد اما مطالب بسیار مفیدی منتشر میکند.
اینم بخونید بد نیست: معرفی 5 توزیع برتر لینوکس برای تازه کارها + لینک دانلود
تفاوت ویندوز و لینوکس
طراحی و معماری
گفتیم که پروژه لینوکس حال و هوای یونیکس را دارد. به همین خاطر هم به لینوکس شبه یونیکس میگویند. در حالی که ویندوز اطلاعات هسته سیستم عامل خود را محرمانه نگه داشته و راجع به معماری سیستم عامل خود توضیح زیادی نمیدهد. لینوکس از فایل سیستم ext استفاده میکند و ویندوز از ntfs. ویندوز از هسته پیوندی استفاده میکند و لینوکس از هسته یکپارچه و غیره.
آزادی محصول
به نظر من این مهمترین و زیباترین تفاوت ویندوز و Linux است. کدهای ویندوز بسته هستند و کسی حق مطالعه یا تغییر آنها را ندارد در صورتی که لینوکس آزاد و کدباز است. همچنین از هر نوع تغییری استقبال میکند. به همین خاطر هم یک جامع قوی و یکپارچه پشت لینوکس قرار گرفتهاند.
انحصاری بودن ویندوز در کنار آزاد بودن گنو/لینوکس به نظرم مهمترین تفاوت این 2 سیستم و برگ برنده گنو/لینوکس است.
تنوع محصول
خانواده ویندوز محدود به چند نسخه میباشد. مثلا از خانواده NT ویندوز، نسخههای xp و 7 و 8 و 8.1 و 10 امروز استفاده میشوند. در صورتی که Linux بیشتر از صدها توزیع رسمی و هزاران توزیع غیررسمی دارد. ویندوز یک سری قابلیت پیشفرض داخل سیستم عامل قرار داده اما در لینوکس هر توزیعی طیف وسیعی از سرویسها را برای کاربر فراهم میکند. ویندوز یک محیط کاری داشته و باید کاربر از همان محیط استفاده کند. در صورتی که لینوکس محیطهای متنوعی مثل KDE یا Gnome یا Unity یا … را در اختیار کاربران میگذارد.
امنیت
لینوکس معماری امن و قابل اعتمادی دارد. ویروسهای کمی برای این سیستم نوشته شدهاند و به خاطر در دسترس بودن کدها، مرتب اشکالات آن شناسایی میشوند. همچنین از Linux در سرورهای بزرگ و ابرکامپیوترها استفاده میشود. امنیت Linux زمانی بالاتر میرود که کانفیگ درستی روی آن انجام شود. اما در طرف مقابل ویندوز متاسفانه ضعفهای امنیتی بسیار زیادی داشته و مرتب مورد حمله قرار میگیرد.
پایداری
توزیع های لینوکس به پایداری معروف هستند. شما وقتی با ویندوز کار میکنید معمولا هر 1 یا 2 سال (شاید بیشتر) ویندوز را عوض میکنید تا سرعت سیستم عامل مثل روز اول شود. اما یک سیستم لینوکس ممکن است تا سالهای بسیار طولانی نیازی به تعویض نداشته باشد. توزیع های لینوکس به ندرت هنگ میکنند یا به اصطلاح Crash میکنند. اما در ویندوز مشکلاتی مثل کندی سرعت، هنگ کردن، ریست شدن سیستم و غیره وجود دارد.
هزینه
یکی دیگر از تفاوتهای مهم و اساسی این 2 سیستم عامل همین مورد است. امروز که این مقاله را مینویسم ویندوز 10 منتشر شده و قیمت نسبتا بالایی دارد. مثلا یک نسخه از ویندوز 10 در کشور ما ممکن است تا 2 الی 3 میلیون هزینه داشته باشد. مجموعه آفیس هم ممکن است میلیونها تومان هزینه برایتان بگذارند. اما در طرف مقابل اکثر توزیعهای گنو/لینوکس رایگان هستند. همچنین پکیج Libre Office که شبیه به مایکروسافت آفیس است کاملا رایگان و آزاد میباشد.
سهم بازار
بستگی دارد به چه بازاری نگاه کنیم. در سیستمهای خانگی و کامپیوترهای شخصی ویندوز پیشتاز است و سهم بسیار زیادی از بازار را در اختیار گرفته است. البته در چند سال گذشته Linux در حوزه دسکتاپ بسیار فعال شده و با توزیعهایی مثل مینت یا المنتری یا ابونتو آماده رقابت با مایکروسافت شده است.
در سرورها اوضاع کاملا متفاوت است. بسیاری از سایتهای مطرح توسط سرورهای لینوکس میزبانی میشوند. همینطور گلوگاهها و شریانهای اصلی دنیای اینترنت به کمک لینوکس مدیریت میشوند. چون اعداد و ارقام تغییر میکنند سعی میکنم زیاد از ارقام استفاده کنم. اما تقریبا 70% سایتها بر روی لینوکس اجرا میشوند.
حالا که ویندوز هست، چرا از لینوکس استفاده کنیم؟
خب وقتش رسیده یک جمعبندی داشته باشیم. این سوال بسیار مهم است و دوست داشتم آخر مقاله جوابش را بدهم. من یا هیچکس دیگر در دنیا نمیتوانیم کسی را مجبور کنیم از یک سیستم خاص استفاده کند. حتی مایکروسافت هم با تمام قدرتش نتوانسته کاملا دنیای سیستم عامل را تسخیر کند.
با تمام مزیتهای Linux و شرایط ایدهآلی که دارد، باز هم قصد تخریب ویندوز را نداریم. شاید یک جنگ قدیمی بین کاربران ویندوز و لینوکس وجود داشته باشد که به نظرم زیاد درست نیست. ما نباید به ویندوز حمله کنیم. بلکه با نشان دادن جذابیتهای لینوکس کاری کنیم که کاربران از آن استفاده کنند و دوستش داشته باشند.
اینم بخونید خوبه : سیر تا پیاز تلگرام | آبی دوست داشتنی | معرفی + حل مشکلات
اگر دنبال سیستمی هستید که طیف بسیار زیادی از بازیها و نرمافزارها را پشتیبانی میکند شاید ویندوز برایتان بهتر باشد. شما در لینوکس فتوشاپ را ندارید اما گیمپ جایش را پر میکند. یا خبری از مایا نیست اما بلستر به جای آن به کارتان میاید. اگر توانایی دل کندن از این محصولات را ندارید احتمالا ویندوز برایتان مفیدتر است.
اما اگر دوست داشتید یک سیستم آزاد داشته باشید. یک سیستم که شما آن را کنترل کنید. سیستمی که هر زمان دوست داشتید تغییرش دهید یا کدهایش را مطالعه کنید. یک سیستم که به احتمال 99% کاملا رایگان خواهد بود و جامعه بزرگی از برنامهنویسان آماده هستند که اگر به مشکل خوردید کمکتان کنند. سیستمی که به خوبی طراحی و پیادهسازی شده و امنیت بسیار بالایی دارد. سیستمی که تا حد بسیار زیاد امن و پایدار است، اگر اینها را میخواهید یک توزیع از لینوکس نصب کنید و وارد این دنیای شگفتانگیز شوید.
اگر آزادی را دوست دارید لینوکس برای شماست …
واقعا فوق العاده بود توضیحات در مورد گنو لینوکس
فکر کنم دیگه وقت مهاجرت رسیده باشه تا الان یه چند باری رفتم سراغ این سیستم عامل ولی چون خیلی بلد نبودم باهاش کار کنم دوباره برگشتم ولی این چند وقته ویندوز واقعا کلافم کرده مشکلاتی مثل آپدیت های بیموردش و …
خیلی ممنون از مطالب مفیدتون
سلام امید جان …
چقدر خوشحالم که این پست رو دوست داشتی و واست مفید بود …
امیدوارم شروع خوبی با لینوکس داشته باشی …
موفق باشی …