
لینوکس چیست و چگونه از آن استفاده میشود؟
لینوکس (Linux) یکی از سیستمعاملهای معروفی است که از سال ۱۹۹۰ دردسترس قرار دارد. این سیستمعامل بهعنوان فناوری پیشران برای دستگاههای اندرویدی، تلویزیون، دوربینها و حتی لوازم هوشمند شناخته میشود. از سیستمعامل لینوکس در دستگاههای مختلف از گوشیهای هوشمند تا خودروها، لوازمخانگی، اَبَرکامپیوترها، سرورهای سازمانی و… استفاده میشود. در سالهای ابتدایی بعد از معرفی سیستمعامل ویندوز، لینوکس طراحی و برنامهریزی شد؛ البته این سیستمعامل از ابتدا به همین شکل نبوده و با گذشت زمان پیشرفت کرده است. در این مطلب از آموزش سیستم عامل، قصد داریم بهطورمفصل درباره سیستمعامل Linux و unix سخن بگوییم و شما را با آن کاملاً آشنا کنیم؛ پس تا پایان مطلب با ما همراه باشید.
تاریخچه سیستمعامل لینوکس
لینوس توروالدز (Linus Torvalds) سیستمعامل لینوکس را طراحی کرده است. وی ابتدا روی سیستمعامل UNIX (نرمافزار اختصاصی) کار میکرد و بر این باور بود که به تغییر و بهبود نیاز دارد. بااینحال، وقتی طراحان یونیکس پیشنهادهایش را رد کردند، به فکر راهاندازی سیستمعاملی افتاد که پذیرای تغییرات پیشنهادی کاربران باشد. بههمیندلیل، لینوس توروالدز در سال ۱۹۹۱ هستهای به نام Linux طراحی کرد؛ اگرچه برای اجرا به برنامههایی مانند مدیریت فایل و ویرایشگر اسناد و برنامههای صوتیوتصویری نیاز داشت.
با گذشت زمان، لینوس توروالدز با برنامهنویسان دیگر در مکانهایی مانند MIT همکاری و برنامههای کاربردی برای Linux طراحی کرد. بنابراین در همان سال، سیستمعامل لینوکس با برخی از برنامهها رسماً راهاندازی شد. نسخههای ابتدایی سیستمعامل Linux بهاندازهای کاربرپسند نبودند که برنامهنویسان کامپیوتر از آن استفاده میکردند. توروالدز هرگز قصد نداشت محصول خود را تجاریسازی کند. این امر محبوبیت لینوکس را کاهش داد؛ زیرا سایر سیستمعاملهای تجاری نظیر ویندوز معروف شدند. باوجوداین، جنبه متنبازبودن سیستمعامل Linux آن را قویتر کرد.
لینوکس یکی از کاربردترین سیستمعاملها است که میتوانید با آن منابع سیستم و سرور خود را با امنیت فراوان مدیریت کنید. سیستمعامل لینوکس مانند انسانها فرزندان زیادی دارد که هرکدام با ویژگیها و قابلیتهای گوناگون ارائه شدهاند. مانند نیاز انسان به اکسیژن، لینوکس یک نیاز ضروری برای کسبوکارها است و برای همه کاری بهدرد میخورد، کافیست یکی از توزیعهای آن را انتخاب و استفاده کنید تا با قدرت جادویی این سیستمعامل آشنا شوید.
لینوکس چیست و چگونه از آن استفاده میشود؟
Linux سیستمعاملی متنباز شبیه یونیکس است که برای انواع دستگاههای مختلف مانند کامپیوترها و سرورها و تلفنهای همراه طراحی شده است. این سیستمعامل تقریباً در هر پلتفرم کامپیوتری ازجمله x86 و ARM و SPARC پشتیبانی میشود؛ ازاینرو، به یکی از سیستمعاملهای پرکاربرد تبدیل شده است.
هر نسخه از سیستمعامل لینوکس برای مدیریت منابع سختافزاری و راهاندازی و مدیریت برنامهها، نوعی رابط کاربری را ارائه میدهد. تنوع و گسترش طیف وسیعی از توسعهدهندهها و توزیعها بدانمعناست که یک نسخه Linux تقریباً برای هر کاری دردسترس قرار دارد و در اغلب حوزههای محاسباتی نفوذ کرده است. سیستمعامل Linux به روشهای گوناگونی استفاده میشود که درادامه، به آنها اشاره میکنیم.
انواع روشهای استفاده از لینوکس
- سیستمعامل سرور: Linux برای سرورهای وب، سرورهای پایگاهداده، سرورهای فایل، سرورهای ایمیل و هر نوع سرور مشترک دیگر استفاده میشود. ازآنجاکه لینوکس برای پشتیبانی برنامههای سنگین و چندرشتهای طراحی شده است، برای انواع برنامههای سرور میتوان از آن استفاده کرد.
- سیستمعامل دسکتاپ: بهعنوان محیطی متنباز در دسکتاپ، برای محاسبه بهرهوری شخصی استفاده میشود.
- سیستمعامل سرور هدلس (Headless): برای استفاده در سیستمهایی که به رابط کاربری گرافیکی (GUI) یا ترمینال و صفحهکلید متصل و مستقیم نیاز ندارند.
- سیستمعامل دستگاه یا دستگاه جاسازیشده: برای استفاده در سیستمهایی که به عملکرد محاسباتی محدود احتیاج دارند. سیستمعامل Linux برای لوازمخانگی و سیستمهای سرگرمی خودرو و لوازم سیستم فایل شبکه نیز بهکار برده میشود.
- سیستمعامل شبکه: سیستمعامل لینوکس در روترها، سوئیچ، سرورهای سیستم نام دامنه، دستگاههای شبکه خانگی و… هم کاربرد دارد.
- سیستمعامل توسعه نرمافزار: برای راهاندازی نرمافزار سازمانی استفاده میشود. با اینکه اغلب ابزارهای راهاندازی و توسعه به ویندوز یا سیستمعاملهای دیگر انتقال پیدا کردهاند، Linux هنوزهم برای برخی از ابزارهای پرکاربرد توسعه نرمافزار بهکار برده میشود.
- سیستمعامل Cloud یا مبتنیبر فضای ابری: عمدهترین ارائهدهندگان خدمات رایانش ابری دسترسی به نمونههای رایانش ابری لینوکس در سرورهای ابری، دسکتاپ و… را ارائه میدهند.
بسته به نوع اپلیکیشن، میتوان Linux را برای یکی از اهداف عمده زیر بهینهسازی کرد:
- عملکرد شبکه
- عملکرد محاسباتی
- استقرار روی پلتفرمهای خاص سختافزاری
- استقرار در سیستمهایی با میزان حافظه و ذخیرهسازی یا منابع محاسباتی محدود
Unix چیست؟
یونیکس (Unix) سیستمعاملی چندکاربره است که امکان استفاده همزمان بیش از یک نفر از منابع کامپیوتری را میسر میکند. ازآنجاکه یونیکس این امکان را فراهم میکند تا ازطریق یک ترمینال با یک کامپیوتر ارتباط مستقیم برقرار کنید، سیستمعاملی بسیار تعاملی است و دسترسی مستقیم به منابع را برای شما بهارمغان میآورد. همچنین، در یونیکس میتوانید دادهها و برنامهها را با کاربران دیگر بهاشتراک بگذارید.
این سیستمعامل عمومی از سیستمی سختافزاری شامل حافظه گسترده و پردازنده ۳۲بیتی و هارد دیسکهای سریع و بزرگ بهره میبرد. سیستمعامل یونیکس برای انواع مختلف ماشینها و کامپیوترها، ازجمله کامپیوترهای شخصی کاربردی است؛ زیرا به زبان مستقل از ماشین (C یا C++) نوشته شده است. بههمیندلیل، میتوان Unix را برای پاسخگویی به نیازهای خاص در انواع دستگاهها تطبیق داد.
تفاوت Linux و Unix
سیستمعاملهای لینوکس و یونیکس از بسیاری جهات با یکدیگر تفاوتهایی دارند. در جدول زیر، به عمده این تفاوتها اشاره کردهایم.
سیستمعامل Linux | سیستمعامل Unix |
به هسته (Kernel) سیستمعامل GNU/Linux و بهطورکلی، به خانواده توزیعهای مشتقشده از آن اشاره میکند. | به سیستمعامل اصلی توسعهیافته با AT&T و بهطورکلی، به خانواده سیستمعاملهای مشتقشده اشاره میکند. |
کد اصلی با لینوس (Linus) و GNU Foundation توسعه یافته است. | کد اصلی با AT&T توسعه یافته است. |
نام تجاری لینوکس به لینوس توروالدز تعلق دارد و مؤسسه Linux Mark آن را مدیریت میکند. | نام تجاری یونیکس را Open Group تأیید کرده است. |
دبیان (Debian) و فدورا (Fedora) مشتقاتی از GNU/Linux هستند. | IBM-AIX و HP-UX از مشتقات System-V یونیکس و FreeBSD و macOS از مشتقات Berkeley Unix هستند. |
سیستمعاملی متنباز تحت مجوز عمومی کپیلفت (Copyleft General Public License) | زیرمجموعه برکلی یونیکس تا حدی متنباز و تحت لیسانس BSD است؛ اما System-V یونیکس ممکن است تحت لیسانس تجاری اختصاصی باشد. |
تشکیلشده از انواع مختلف که با منابع متفاوت حفظ شده، با ادغام هسته | تشکیلشده از انواع مختلف که بهواسطه شرکتهای مختلف حفظ شده، هریک با هسته مجزا |
پلتفرمی مقیاسپذیر محسوب میشود که متناسب با مجموعه گستردهای از برنامههای مختلف طراحی شده است. | برای مخاطبان محدود در مجموعه مشخصی از پلتفرمها و برنامهها طراحی شده است. |
بهعنوان نرمافزار میتوان آن را دانلود و نصب کرد. | معمولاً همراه سختافزار مانند مکبوک میتوان آن را دریافت کرد. |
پشتیبانی رایگان عمومی و پشتیبانی پولی ازطریق برخی از سرویسهای ارائه خدمات | پشتیبانی پولی که به توقف فروشنده منجر میشود. |
رابطهای پیشرفتپذیر | رابطهای ثابت و بدون تغییر |
نسخههای بهروزرسانی مداوم و رفع سریع مشکلات | بهروزرسانی محدود و زمانبربودن رفع اشکالات |
پشتیبانی تمام فایلها در سیستمهای استفادهشده در سیستمعاملها | پشتیبانی اکثر نسخهها تنها از دو یا سه فایل سیستم |
ابزارهای مدیریت سیستم گسترده با تمرکز محدود، مانند Suse YAST | معمولاً هر نسخه یک ابزار مدیریت سیستم دارد؛ مانند HP SAM |
سیستمعامل ترجیحی که بهدلایل اقتصادی مراکز داده و استقرار ابری دارد. | سیستمعامل ترجیحی که بهدلیل دسترسی برنامه و سرورهای اینترنتی، برای نیازهای سرور با اهداف خاص طراحی شده است. |
اغلب خطوط فرمان و ابزارهای گرافیکی مشابه سیستمعامل یونیکس | اغلب خطوط فرمان و ابزارهای گرافیکی مشابه سیستمعامل لینوکس |
ارائه ویژگی مقیاسپذیری با استفاده از خوشهها و شبکه یا فضای ابری | ارائه ویژگی مقیاسپذیری با استفاده از خوشهها یا شبکه |
*خوشه: مجموعه کامپیوترهای هماهنگ
*شبکه: مجموعه کامپیوترهای توزیعشده
*سرویس ابری: مجموعه خوشههای مجازی
بخشها مختلف لینوکس
اگر میخواهید با سیستمعامل Linux آشنا شوید، باید اجزای تشکیلدهنده آن را بشناسید که بهعنوان معماری Linux نیز شناخته میشود. این اجزا عبارتاند از:
- بوتلودر (Bootloader): نرمافزاری برای مدیریت فرایند بوت کامپیوتر است.
- هسته (Kernel): بخش اصلی و ماهیت کلی لینوکس است که مدیریت CPU و حافظه و دستگاههای جانبی را برعهده دارد. هسته اصلیترین و ابتداییترین سطح در این سیستمعامل است.
- سیستم Init: سیستمی فرعی که فضای کاربر را Bootstaps و فرایند بوت را پس از Bootloader مدیریت میکند.
- Daemons: این بخش برای خدمات پسزمینهای (چاپ، صدا، زمانبندی و…) است که حین بوت یا پس از ورود به دسکتاپ راهاندازی میشود.
- سرور گرافیک (Graphical Server): این زیرسیستم که معمولاً با عنوان «سرور X» یا «X» نشان داده میشود، مسئول نمایش گرافیک روی مانیتور است.
- محیط دسکتاپ (Desktop Environment): این بخش اصلیترین بخشی است که کاربران با آن تعامل دارند. انواع مختلفی از محیطهای دسکتاپ (GNOME ،Cinnamon ،Mate ،Pantheon ،Enlightenment، KDE ،Xfce و …) وجود دارد و شامل برنامههای داخلی مختلف (بازیها، ابزارهای پیکربندی، مرورگرها، مدیریت فایل و…) است.
- برنامهها (Applications): ازآنجاکه برنامههای محیط دسکتاپ معمولاً کامل نیستند، لینوکس نیز مانند ویندوز و macOS نرمافزارهای متعددی برای نصب دارد. اغلب توزیعهای لینوکس نیز ابزارهایی برای دانلود و نصب برنامههای مختلف ارائه میدهند. برای مثال، توزیع لینوکس اوبونتو از ابزاری با عنوان Ubuntu Software Center بهره میبرد که امکان دسترسی به هزاران برنامه مختلف را به کاربران میدهد.
خط فرمان (Command Line) چیست؟
خط فرمان (Command Line) دسترسی مستقیم شما به کامپیوتر است. درحقیقت، کامند لاین جایی است که از نرمافزار میخواهید کارهای سختافزاریای را انجام دهد که رابطهای گرافیکی کاربر (GUI) با اشاره و کلیککردن بهسادگی نمیتوانند از آنها درخواست کنند. خطوط فرمان در بسیاری از سیستمعاملها، اعم از اختصاصی و متنباز، دردسترس قرار دارند؛ اما معمولاً به Linux مرتبط است؛ زیرا هم خطوط فرمان و هم نرمافزار متنباز باهم دسترسی نامحدودی به کامپیوتر برای کاربران ایجاد میکنند.
متنباز چیست و به چه نرمافزارهایی متنباز میگوییم؟
متنباز اصطلاحی است که به نرمافزارهای متنباز یا Open Source Software گفته میشود. نرمافزارهای متنباز کدهایی هستند که با قابلیت دسترسی عمومی طراحی شدهاند؛ یعنی هرکسی میتواند کدها را تغییر دهد و سپس نسخه تغییردادهشده را منتشر کند. امروزه، روند توسعه متنباز از طراحی نرمافزار فراتر رفته و به جنبش و روش جدیدی تبدیل شده است که مشکلات کاربران در حوزههای مختلف را بررسی و حل میکند.
این نوع نرمافزارها معمولاً ارزانتر و منعطفتر هستند و درمقایسهبا نرمافزارهای مشابه در حوزه اختصاصی خود، بیشتر عمر میکنند. این مسئله بدیندلیل است که بهجای یک نویسنده یا شرکت توسعهدهنده، افراد بیشتری آن را توسعه میدهند. نرمافزارهای متنباز به روش مشارکتی و غیرمتمرکز طراحی میشوند و با بررسی نمونههای مشابه در آن حوزه توسعه مییابند. ازجمله مثالهای مهم برای ابزارهای متنباز، میتوان به سیستمعامل لینوکس اشاره کرد.
زبانهای برنامهنویسی لینوکس
درحالحاضر، سیستمعامل لینوکس یکی از سیستمعاملهای محبوب بهشمار میرود و بسیاری از توسعهدهندگان نرمافزار از آن استفاده میکنند؛ چراکه کارکردن با آن را راحتتر میدانند. سؤالی که برای بسیاری از برنامهنویسان مطرح میشود، این است که بهترین زبان برنامهنویسی برای Linux چه زبانی است؟ برخی از زبانهای برنامهنویسی برتر برای لینوکس عبارتاند از:
- C/C++
- Java
- Python
- JavaScript/GitHub Electron
- Shell
مزایای استفاده از سیستمعامل لینوکس
همانطورکه از تفاوتهای لینوکس با سایر سیستمعاملها میتوان برداشت کرد، این سیستمعامل مزایای متعددی دارد. برخی از مزیتهای مهم استفاده از Linux بدینشرحاند:
- متنباز است و کاربران میتوانند آن را اصلاح کنند یا کدهای آن را بهبود بخشند.
- دانلود و استفاده از آن رایگان است.
- درمقایسهبا سیستمعامل ویندوز کمتر آسیبپذیر است و امنیت بیشتری دارد. هریک از برنامهها در Linux به اجازه و دسترسی ادمین و واردکردن رمزعبور نیاز دارند؛ بههمیندلیل، احتمال کمی وجود دارد که این سیستمعامل ویروسی شود.
- کامپیوترهای قدیمی را که از سیستمعاملهای قدیمی مانند فایروالها و سرورهای پشتیبان و سیستمهای ردهپایین استفاده میکنند، با کمک لینوکس میتوان احیا کرد.
- بهروزرسانی نرمافزارها در پلتفرم لینوکس سادهتر و سریعتر از ویندوز است.
- با استفاده از قابلیت سفارشیسازی در لینوکس، کاربران میتوانند تم و تصاویر پسزمینه را به آیکونها بیفزایند و درصورت لزوم نیز، ویژگیای را اضافه یا حذف کنند.
- انواع گزینههای مختلف توزیع Linux مانند فدورا، اوبونتو، آرچ لینوکس، دبیان و لینوکس مینت دردسترس قرار دارند.
- بهدلیل استفاده گسترده برنامهنویسان از Linux، همواره میتوانید برای رفع خطاها یا مشکلات خود از آنان کمک بگیرید.
- برخلاف سیستمعامل ویندوز، نیازی نیست که پس از نصب یا حذف برنامهها، دستگاه را مجدداً راهاندازی (Reboot) کنید.
- احتمال کمی وجود دارد که سیستمعامل لینوکس از کار بیفتد یا به کُندی کار کند.
- برای اطمینان از حفظ حریم خصوصی کاربران در Linux، دادههای زیادی از آنان جمعآوری نمیشود.
- شبکهها و اقدامات متعددی میتوانند بهطورهمزمان و بدون احتمال کُندی سیستم یا ازکارافتادن آن اجرا شوند.
- Linux تقریباً تمام فرمتهای فایل ممکن را پشتیبانی میکند.
- عملکرد نرمافزار یا برنامهها بهدلیل نبود مشکلات ذخیرهسازی دچار اختلال نمیشود.
- لینوکس امکان مولتیتسکینگ یا اجرای همزمان عملکردهای مختلف را فراهم میکند.