سیستم عامل لینوکس چیست؟
بهتر است در قدم اول، با مفهوم سیستم عامل یا Operation System آشنا شویم. در علوم کامپیوتر، سیستم عامل به این صورت تعریف میشود:
سیستم عامل یا OS، یک واسطه نرم افزاری بین سخت افزار (کامپیوتر و قطعات آن) و کاربر است که امکان تعامل دوطرفه این دو را فراهم میکند.
لینوکس، یک سیستم عامل رایگان و متنباز است که با هدف ارائه یک سیستم عامل رایگان در اوایل دهه 1990 منتشر شد. این سیستم عامل، به عنوان یکی از قدرتمندترین سیستم عاملهای دنیا شناخته میشود و طیف وسیعی از نیازهای کاربران در حوزههای مختلف را پوشش میدهد.
استفاده از سیستم عامل Linux بین توسعه دهندگان نرم افزار و مهندسان کامپیوتر بسیار رایج است. همچنین افرادی که در زمینه IT و مهندسی کامپیوتر فعالیت میکنند، استفاده زیادی از نسخههای مختلف لینوکس دارند. لینوکس، مبتنی بر هسته یا کِرنِل لینوکس است که در ادامه درباره آن صحبت میکنیم.
کِرنِل در Linux چیست؟
Kernel یا هسته، اصلیترین بخش یک سیستم عامل است که وظایف اساسی را برعهده دارد. اگر بخواهیم به سادهترین شکل ممکن، کرنل و اهمیت آن را توضیح میدهیم، میتوانیم بگوییم کرنل، همان چیزی است که به پردازنده کامپیوتر میگوید چه کاری را انجام داده و چه کاری را انجام ندهد! در نتیجه سیستم عامل بدون هسته یا کرنل، کاملا بلااستفاده است. در صورتی که Kernel وجود نداشته باشد، امکان اجرای هیچ نرم افزاری نیست؛ در نتیجه امکان استفاده از سیستم عامل به شکل عادی نیز وجود نخواهد داشت!
از طرف دیگر، کرنلها به نرم افزارها احتیاج دارند؛ زیرا اگر نرم افزاری برای اجرا وجود نداشته باشد، پس وجود کرنل نیز بیفایده است و نبودن آن، بهتر از بودنش است!
با این تعاریف، میتوان گفت کرنل لینوکس، در واقع هسته مرکزی آن است که توزیعهای مختلف لینوکس، مبتنی بر آن توسعه پیدا میکنند. درباره توزیعهای لینوکس در ادامه توضیحاتی ارائه شده، اما قبل از آن بهتر است با خلاصهای از تاریخچه سیستم عامل لینوکس آشنا شویم
تاریخچه سیستم عامل لینوکس
در سال 1971، شرکت تلفن و تلگراف آمریکا یک سیستم عامل به نام یونیکس (Unix) معرفی کرد که برای استفاده در رایانههای خانگی مناسب بود. امکان استفاده از این سیستم عامل برای همه افراد امکانپذیر بود و به نوعی، میتوان آن را مارد همه سیستم عاملهای امروزی دانست؛ اما یک مشکل وجود داشت! قیمت سیستم عامل یونیکس در آن زمان، بسیار گران بود و همه افراد نمیتوانستند از آن استفاده کنند.
این موضوع به مذاق یکی از دانشجوهای دانشگاه هلینسکی به نام لینوس توروالدز (Linus Torvalds) خوش نیامد. وی و تعدادی از کاربران یکی از نسخههای یونیکس با نام Minix برای توسعه دهنده آن درخواستهایی برای بهبود و اعمال تغییراتی روی این سیستم عامل ارسال کردند؛ اما از طرف سازنده آن پاسخ مناسبی دریافت نکردند. نتیجه این کار، تصمیم لینوس برای توسعه یک سیستم عامل آزاد و انتشار آن برای همه مردم دنیا بود؛ و حاصل آن در سال 1991 منتشر شد و چیزی است که امروزه با نام کرنل لینوکس میشناسیم!
چند سال بعد، کرنل لینوکس با GNU که یک سیستم عامل شبهیونیکس و نوعی خط فکری برای توسعه نرم افزارهای آزاد بود، ادغام شد. نتیجه آن تبدیل به هسته امروزی توزیعهای لینوکس شد که اسم صحیح آنها، توزیعهای گنو/لینوکس است.
شما میتوانید هر طور که خواستید، سیستم عامل لینوکس و هسته آن را ویرایش کنید؛ بدون اینکه چیزی را به کسی توضیح دهید. فلسفه لینوکس و برنامههای متنباز نیز چیزی شبیه به همین است؛ یک نرم افزار غیرانحصاری را دانلود کنید، آن را به اختیار خود دستکاری کنید و به کسانی که به آن نیاز دارند، بدهید و این چرخه را ادامه دهید!
لینوکس چه کاربردهایی دارد؟
بیایید این سوال را به شکل دیگری مطرح کنیم: سیستم عامل لینوکس چه کاربردهایی ندارد؟
تقریبا در هر حوزهای که نیاز به اجرای یک برنامه نرم افزاری باشد، میتوان از لینوکس به عنوان سیستم عامل استفاده کرد. هر یک از ما روزانه از چندین سیستم عامل مبتنی بر هسته لینوکس استفاده میکنیم که حتی روحمان هم از آنها خبر ندارد! برای مثال، به احتمال زیاد موبایل شما دارای سیستم عامل اندروید است؛ و اندروید نیز با استفاده از کرنل لینوکس ساخته شده و نوعی از سیستم عاملهای مبتنی بر آن محسوب میشود!
از طرف دیگر، اکثر سرورها از یکی از توزیعهای گنو/لینوکس مناسب سرور استفاده میکنند. بیراه نیست که از لینوکس با لقب «قدرتمندترین سیستم عامل سرور» یاد میشود؛ زیرا در انواع سرورها نظیر وبسرورها، سرورهای ایمیل، File Servers و Database Serverهای مختلف مورداستفاده قرار میگیرد!
در زمینه اینترنت اشیا نیز استفادههای گستردهای از لینوکس میشود. برای مثال، رزبری پای (Raspberry Pi) یکی از مشهورترین بردهای مورداستفاده در زمینه IoT است که از سیستم عامل لینوکس و توزیعهای آن پشتیبانی میکند. توسعه نرم افزار، سیستم عاملهای موبایل و استفاده در هک و امنیت سایبری، نمونههای دیگری از کاربردهای لینوکس هستند.
چرا باید از لینوکس استفاده کنیم؟
اما چه دلایلی باعث استفاده گسترده از لینوکس شده و چرا باید از آن استفاده کنیم؟ دلایل محکمی برای این کار وجود دارد که در ادامه، برخی از آنها را تشریح میکنیم.
متنباز و رایگان
همانطور که گفته شد، لینوس توروالدز هسته لینوکس را با هدف دسترسی عمومی و همگانی مردم جهان به یک سیستم عامل رایگان توسعه داد. در نتیجه، لینوکس به صورت کاملا رایگان و به صورت متنباز معرفی و منتشر شد. با وجود لینوکس، همه میتوانستند از رایانههای خانگی استفاده کنند.
علاوه بر این، هر توزیع لینوکس دارای صدها برنامه و امکانات است که در اکثر نسخهها وجود دارند و نیازی به صرف هزینه برای دسترسی به آنها نیست.
قدرتمند
لینوکس دارای قدرت و عملکرد بسیار بالایی است که میتواند برای هر کاربردی مناسب باشد. برای جامعه بزرگ نرم افزارهای آزاد، تفاوتی بین یک کاربر مبتدی کامپیوتر یا یک توسعه دهنده حرفهای یا حتی یک شرکت بزرگ در زمینه سرور وجود ندارد؛ زیرا برای هرکدام از این افراد، حداقل 5 توزیع گنو/لینوکس توسعه پیدا کرده است!
امنیت بالا
یک بار جمعی دوستانه از دانش آموزان کامپیوتر داشتیم که حرف از هک و امنیت نه چندان جالب سیستم عاملهای رایج به میان آمد. یکی از دوستان در بحث شرکت کرد و گفت:« امنیت اندروید کشکه! برا نصب هر برنامهای کلی آنتی ویروس و فیلتر رو رد میکنی آخرشم یه برنامه که فکرشو نمیکنی، میزنه کل گوشی رو داغون میکنه! امنیت فقط ویندوز…»
اما ویندوز هم از نظر امنیت مشکلاتی دارد که هر ساله باعث از دست رفتن اطلاعات و نفوذ هکرها به آن میشود. در جامعه لینوکس، موارد این چنینی به ندرت مشاهده میشود و عمده مشکلات امنیتی نیز یا با بروزرسانیهای منظم و دقیق برطرف شده یا کاربران با استفاده از دانش خود در زمینه امنیت سایبری، از اطلاعاتشان حفاظت میکنند. البته لینوکس دارای اقدامات امنیتی داخلی درون کرنل خودش بوده و در این زمینه، بسیار عالی عمل کرده است!
البته کاربران دسکتاپ که از لینوکس استفاده میکنند، حدود 1 درصد از کل کاربران دسکتاپ را تشکیل میدهد و طبیعی است هکرها و تهدیدکنندگان امنیت، کاربران ویندوز و مک را مورد هدف قرار دهند!
مناسب برای توسعه دهندگان
توسعه دهندگان در زمینههای مختلف، نیاز به آزادی عمل زیادی در سیستم عامل خود دارند. این افراد ممکن است به امکانات خاصی نیاز داشته باشند که در ویندوز یا مک قابل دسترسی نیست و مجبور به استفاده از لینوکس هستند. از طرف دیگر، این اجبار برای افرادی که در برنامه نویسی با زبان C مهارت دارند، یک فرصت است؛ زیرا میتوانند امکانات موردنیاز خود را با کدنویسی درون سیستم عامل Linux پیاده سازی کنند.
تنوع و آزادی عمل
برخی از افراد، علاقه دارند هرچیزی که دستکاری کنند و امکانات یا ویژگیهای جدیدی به آن اضافه کنند. حتی برخی دیگر دوست دارند بدانند هرچیزی، چطور کار میکند و چه سازوکارهایی در آن وجود دارد؟
برای افرادی که این کارها را در دنیای کامپیوتر انجام میدهند، سیستم عامل لینوکس یک بهشت است! آنها میتوانند آزادانه به هسته لینوکس دسترسی داشته باشند و آن را تغییر دهند، کدهایی را به آن اضافه کنند و برخی از امکانات اضافی و ناخواسته را از آن حذف کنند. همچنین اگر دانش برنامه نویسی کافی داشته باشند، میتوانند توزیع لینوکس خودشان را توسعه داده و از آن استفاده کنند!
احیای کامپیوترهای قدیمی
نصب هرکدام از نسخههای ویندوز، نیازمند سخت افزار خاصی است و نمیتوان آنها را روی رایانههای قدیمی نصب کرد. برای مثال، ویندوز 10 که در حال حاضر محبوبترین و پراستفادهترین نسخه این سیستم عامل است، امکان نصب روی کامپیوترهایی که متعلق به 20 سال قبل هستند را ندارد. با این وجود، برخی از توزیعهای لینوکس به قدری سریع و سبک هستند که بتوان با استفاده از آنها، جان دوبارهای به کامپیوترها و لپتاپهای قدیمی بخشید و آنها را احیا کرد.
چرا از لینوکس استفاده نکنیم؟
اما برخی موارد نیز ممکن است باعث عدم تمایل برخی افراد به استفاده از لینوکس شود. البته بسیاری از این مشکلات، دارای راه حلهای مختلف هستند؛ اما در کل، به عنوان معایب سیستم عامل لینوکس شناخته میشوند.
- دشواری در استفاده: به دلیل ساختار حرفهای و نیاز به دانش کافی در زمینه کامپیوتر، استفاده از لینوکس برای افراد مبتدی در کامپیوتر میتوانند گیج کننده باشد.
- یادگیری چالش برانگیز: برای افرادی که تمام عمر با ویندوز یا Mac کار کردهاند، یادگیری و تعامل با سیستم عاملی مثل لینوکس دشواری زیادی دارد.
- ناپایداری و پشتیبانی: وجود مشکلات ناخواسته در توزیعهای مشهور و پشتیبانی غیررایگان آنها، از دیگر معایب استفاده از سیستم عامل لینوکس هستند.
- تعداد بالای توزیعهای لینوکس: وجود تعداد بسیار بالایی توزیع بینوکس، باعث سردرگمی کاربران میشود و انتخاب را سخت میکند.
- محدودیتهای نرم افزاری: بسیاری از نرم افزارهای پرکاربرد تنها برای ویندوز و Mac و به ندرت، برای لینوکس منتشر میشوند. نرم افزارهای متنباز نیز توان رقابت جدی با رقبای انحصاری خود را ندارند.
- محدودیتهای سخت افزاری: از طرف دیگر، بسیاری از تولید کنندگان قطعات کامپیوتر، درایورهای خود را برای ویندوز یا مک توسعه میدهند؛ در نتیجه ممکن است نتوانید از برخی لوازم کامپیوتر در سیستم عامل لینوکس خود استفاده کنید.
توزیع لینوکس به چه معناست؟
همانطور که قبلتر گفتیم، لینوکس به صورت متنباز و رایگان منتشر شده و هرکسی میتواند کدهای هسته آن را به دلخواه خود ویرایش کند. برخلاف سیستم عاملهایی نظیر ویندوز یا Mac که دارای مدیریت متمرکز و تحت کنترل یک شرکت هستند، لینوکس به صورت آزاد در اختیار همه افراد قرار دارد و استفاده و ایجاد تغییرات در آن، کاملا ازادانه انجام میشود. اگر دانش برنامه نویسی C و اسمبلی را دارید، میتوانید از کرنل لینوکس استفاده کنید و سیستم عامل مناسب خودتان را توسعه دهید.
برخی از شرکتها و سازمانها، نسخههایی از لینوکس را به صورت درون سازمانی مورداستفاده قرار میدهند. همچنین برخی دیگر از این شرکتها، به توسعه توزیعهای تجاری روی آوردهاند که به صورت غیررایگان عرضه میشوند. در کل، هرکسی میتواند توزیع لینوکسی خود را توسعه داده و مالکیت آن را دراختیار داشته باشد؛ اما هیچ ادعایی برای مالکیت هسته سیستم عامل لینوکس وجود ندارد!
همچنین بخوانید: چگونه برنامه نویسی را شروع کنیم؟
محبوبترین توزیعهای سیستم عامل لینوکس چیست؟
اما اگر بخواهیم از لینوکس استفاده کنیم، کدام توزیع را انتخاب کنیم؟ اصلا بهترین توزیعهای لینوکس چیست و چه کاربردی دارند؟ یک جمله معروف بین کاربران حرفهای لینوکس وجود دارد:« بهترین توزیع لینوکس، همان توزیعی است که روی کامپیوتر شما عملکرد بهتری دارد».
جدول زیر، برخی از مهمترین و در عین حال، محبوبترین توزیعهای لینوکس را درون خود جای داده است.
نام توزیع | مناسب برای | سطح دشواری | قیمت |
Ubuntu | کاربری عمومی | متوسط | رایگان |
Mint | کاربری عمومی | اسان | رایگان |
Elementary | کاربری عمومی | اسان | رایگان |
MX Linux | کاربری عمومی | اسان | رایگان |
Zorin | کاربری عمومی | اسان | رایگان |
Ubuntu Server | سرور و شبکه | متوسط | رایگان؛ همراه با پیشنهادات غیررایگان |
RHEL | سرور و شبکه | سخت | 349 تا 12000 دلار |
Puppy | سیستمهای ضعیف | متوسط | رایگان |
Bodhi | سیستمهای ضعیف | آسان | رایگان |
Arch | کاربری حرفهای | سخت | رایگان |
Gentoo | کاربری حرفهای | سخت | رایگان |
Fedora | چندمنظوره | متوسط | رایگان |
Manjaro | چندمنظوره | متوسط | رایگان |
Debian | تقریبا همهمنظوره | متوسط | رایگان |
تفاوت توزیعهای Linux چیست؟
همانطور که گفته شد، ممکن است برای یک کاربرد خاص، چندین توزیع مختلف از لینوکس وجود داشته باشد؛ اما سوالی که مطرح میشود، این است که تفاوت این توزیعها با یکدیگر چیست؟
مهمترین تفاوت توزیعهای لینوکس، در نرم افزارهای عمومی آنها است. اگر یک توزیع سبک و کمحجم را نصب کنید، متوجه تعداد اندک نرم افزارهای عمومی آن میشوید؛ در صورتی که یک توزیع عادی نظیر اوبونتو، دارای نرم افزارهای نسبتا زیادی است و میتواند پاسخگوی نیاز بسیاری از کاربران باشد. از طرف دیگر، برخی از توزیعها با اهداف خاصی تولید میشوند و ممکن است تنها در یک بخش، از یک توزیع مشابه بهتر باشند.
بهترین کار این است که تعدادی از توزیعهای مشهور و رایگان لینوکس را نصب و مورداستفاده قرار دهید. به این صورت میتوانید بهترین مورد را بسته به نیاز خود انتخاب کنید.
تفاوت ویندوز و Linux چیست؟
اما ویندوز به عنوان بزرگترین و محبوبترین سیستم عامل در جهان است که تفاوتهای اساسی با لینوکس دارد. در جدول زیر، برخی از مهمترین تفاوتهای لینوکس و ویندوز را به صورت خلاصه برای شما آوردهایم.
شاخصه | ویندوز | لینوکس |
توسعه دهنده | شرکت مایکروسافت | لینوس توروالدز و جامعه توسعه دهندگان لینوکس |
دسترسی به کد منبع | غیر؛ متنبسته | بله؛ متنباز |
سال انتشار | 1364 شمسی؛ 1985 میلادی | 1370 شمسی؛ 1991 میلادی |
نوع هسته (کرنل) | ویندوز NT، ویندوز CE، ویندوز 9x و DOS | یکپارچه با نام “Linux Kernel” |
دشواری در نصب | متوسط | متغیر؛ به توزیع مورداستفاده بستگی دارد. |
آسانی استفاده | آسان؛ دارای رابط کاربری جذاب و اسان برای عموم افراد | متوسط؛ رابط کاربری متنوع اما نیازمند یادگیری دستورات مختلف |
شخصیسازی | امکانات اندک و محدود | امکانات متنوع و کاربردی |
نرم افزارهای قابل استفاده | به دلیل وجود کاربران بیشتر، نرم افزارهای متنوعی دارد. | نرم افزارهای کمتر و گاها ناسازگار |
پشتیبانی | شرکت مایکروسافت | انجمنهای لینوکس |
مدیریت بستهها | Windows Installer (فرمت MSI) و فروشگاه ویندوز (فرمت Appx) | yum, Zypper و Apt-get؛ وابسته به توزیع مورداستفاده |
بروزرسانی | نسبتا زیاد؛ سرعت پایین نصب و نیاز به ریاستارت کامپیوتر | بروزرسانی کمتر اما کاربردی، کنترل دقیق و سرعت دانلود و نصب بالا |
امنیت | جمعآوری اطلاعات خصوصی کاربران برای بهبود رابط کاربری | عدم جمعآوری اطلاعات، پروتکلهای امنیتی بهتر و رمزنگاری |
هزینه استفاده | 99 تا 199 دلار | اکثر توزیعها رایگان هستند |
برای برنامه نویسی، باید لینوکس یاد بگیریم؟
پاسخ به این سوال کمی چالش برانگیز است!
در همین ابتدا بدانید نیازی نیست برای شروع برنامه نویسی از لینوکس استفاده کنید. سیستم عاملهای ویندوز و مک قدرت و توان لازم برای ارائه هر آنچه در مسیر برنامه نویسی نیاز دارید را دارند؛ اما در نهایت، هر دوی اینها با هدف تجارت و فروش سیستم عاملهای دسکتاپ برای کامپیوترهای خانگی تولید شدهاند. و مهمترین چیز برای صاحبان این سیستم عاملها چیست؟ آفرین؛ سود بیشتر!
اما سیستم عامل لینوکس با هدف ارائه یک سیستم عامل عمومی و رایگان به همه مردم جهان متولد شد و هیچ نهاد و سازمانی، نمیتواند آن را بفروشد! همچنین از آنجایی که لینوکس و توزیعهایش، به صورت تخصصی تولید شده و به نوعی، اولین کاربران آن متخصصان کامپیوتر بودهاند، پیشرفتهای زیادی از نظر عملکرد، سرعت و بهینهسازی را گذرانده است. در نتیجه برای برنامه نویسی، گزینه بهتری محسوب میشود.