تاریخ امروز: ۱۴۰۱/۰۷/۷
لینوکس و توزیع های آن

لینوکس یکی از نسخه های محبوب از سیستم عامل یونیکس (Unix) است که open source (منبع باز) است و استفاده از رایگان است. لینوکس ، خصوصیات اصلی مانند دستورات و ساختار فایل سیستم را از یونیکس به ارث می برد و لیست دستورات آن کاملا مشابه یونیکس است و به همین دلیل به آن شبه یونیکس می گویند. بهتر است ابتدا کمی راجع به سیستم عامل یونیکس و نحوه ی شکل گیری لینوکس بپردازیم و سپس ساختار لینوکس و توزیع های آن را بررسی کنیم.

در سال 1972 میلادی ، زبان برنامه نویسی C توسط آقای دنیس ریچی در آزمایشگاه بل ساخته شد. در سال 1973 سیستم عامل لینوکس توسط آقای دنیس ریچی و همکارانشان در همین آزمایشگاه های بل ساخته شد. نسخه های اولیه یونیکس فاقد رابط گرافیکی بودند و مناسب کار برای محیط های شبکه بودند. به طور کلی، سیستم عامل یونیکس، پایه ساخت برخی از سیستم عامل ها مانند BSD شد، به طوری که  سیستم عامل BSD ، هسته ای مانند یونیکس دارد و مانند نسخه های اولیه آن، فاقد رابط گرافیکی است و از دستورات مشابه یونیکس برخوردار است. از BSD ، سیستم عامل Free BSD منتشر شد که رایگان است.

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

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

اجزای سیستم لینوکس

کرنل (Kernel) : بخش اصلی لینوکس است و مسئول تمام فعالیت های اصلی این سیستم عامل است. این بخش شامل ماژول های مختلف است و مستقیماً با سخت افزار اصلی ارتباط برقرار می کند و منابع سیستم را کنترل می کند. هم چنین چند وظیفه مهم دیگر نیز دارد. این وظایف عبارتند از :

  • مدیریت دستگاه : یک سیستم دارای بسیاری از دستگاه ها مانند CPU ، دستگاه حافظه ، کارت صدا ، کارت گرافیک و غیره است برای کنترل دستگاه ها). بنابراین هسته می داند که یک دستگاه چه کاری می تواند انجام دهد و چگونه می تواند آن را دستکاری کند تا بهترین عملکرد را نشان دهد. همچنین ارتباط بین همه دستگاه ها را مدیریت می کند.
  • مدیریت حافظه: عملکرد دیگری که هسته باید مدیریت کند مدیریت حافظه است. کرنل حافظه استفاده شده و استفاده نشده را کنترل می کند و مطمئن می شود که پردازش ها نباید داده های یکدیگر را با استفاده از آدرس های حافظه مجازی دستکاری کنند.
  • مدیریت فرآیند: در یک فرایند ، هسته، مدیریت زمان کافی را اختصاص می دهد و قبل از پردازش پردازنده به سایر فرآیندها ، اولویت را به فرآیندها می دهد.
  • مدیریت syestem call ها: مدیریت فراخوان های سیستمی (System Call) ها به این معنی است که یک برنامه نویس می تواند یک query بنویسد یا از هسته بخواهد یک کار را انجام دهد.

کتابخانه های سیستم (System Libraries) : کتابخانه های سیستم توابع یا برنامه های خاصی هستند که از طریق آنها اپلیکیشن ها  یا ابزارهای سیستم به ویژگی های کرنل دسترسی دارند. این کتابخانه ها بیشتر قابلیت های سیستم عامل را پیاده سازی می کنند. معروف ترین کتابخانه برای لینوکس، کتابخانه Glibc است.

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

ابزارهای توسعه : شما برای به روز رسانی سیستم خود ، ابزارها و کتابخانه های اضافی دارید. این ابزارها و کتابخانه های اضافی توسط برنامه نویسان نوشته شده و به آنها زنجیره ابزار یا toolchain گفته می شود. زنجیره ابزار یک ابزار توسعه مهم است که توسعه دهندگان برای تولید یک برنامه کاربردی از آن استفاده می کنند.

ویژگی های اساسی لینوکس

در این جا برخی از ویژگی های اساسی لینوکس را ذکر می کنیم:

منبع باز (Open Source) : کد منبع لینوکس آزادانه در دسترس است تیم های متعددی با یکدیگر همکاری می کنند تا قابلیت سیستم عامل لینوکس را افزایش دهند و به طور مداوم در حال پیشرفت است.

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

سیستم فایل سلسله مراتبی : لینوکس یک ساختار فایل استاندارد ارائه می دهد که در آن فایل های سیستم، فایل های کاربر مرتب شده اند.

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

 

توزیع های لینوکس

هسته لینوکس را می توان به دلخواه تغییر داد و هر کس یا هر شرکتی می تواند نسخه لینوکس خود را داشته باشد و آن را در بازار توزیع کند. به همین دلیل است که نسخه های متعددی از لینوکس وجود دارد. به هریک از این نسخه های متفاوت یک توزیع یا distribution از لینوکس گفته می شود. البته این نسخه ها در صورتی یک توزیع شناخته می شوند که به صورت رایگان و عمومی عرضه شوند نه این که توسط یک شرکت و به صورت خاص برای برنامه های آن شرکت ساخته شده باشد.

معمولا توزیع ها به دلایل و مصارف خاص ساخته می شوند. برای مثال برخی از توزیع های لینوکس وجود دارد که برای نصب روی سرور ها ساخته شده است تا ترافیک بالای وب را مدیریت کند. برخی توزیع ها روی روتر ها (router) ، سوییچ ها (switch) و سایر تجهیزات شبکه نصب می شوند. برخی توزیع ها برای استفاده در GPS ، سیستم اتوموبیل، گوشی های هوشمند و .. عرضه شده اند.

به طور کلی توزیع های لینوکس را می توان به دو دسته مبتنی بر Redhat یا Debian تقسیم بندی کرد:

Ubuntu : اوبونتو یک توزیع لینوکس منبع باز مبتنی بر Debian است. اوبونتو که توسط Canonical Ltd. حمایت می شود ، یک توزیع خوب برای مبتدیان محسوب می شود. این سیستم عامل در درجه اول برای رایانه های شخصی (رایانه های شخصی) در نظر گرفته شده بود اما می تواند در سرورها نیز استفاده شود.

Redhat : Red Hat Enterprise Linux   (RHEL) توزیعی از سیستم عامل لینوکس است که برای بازار تجارت توسعه یافته است. RHEL قبلاً به عنوان سرور پیشرفته لینوکس Red Hat شناخته می شد. RHEL بر اساس کد منبع آزاد و رایگان است.این توزیع از بارهای متنوع در محیط های فیزیکی ، مجازی و ابری پشتیبانی می کند.

Arch Linux : Arch Linux یک توزیع مستقل GNU/Linux برای x86-64 است که به طور مستقل توسعه یافته و به اندازه کافی متناسب با هر نقشی است. توسعه بر سادگی  و ​​ظرافت کد متمرکز است. Arch Linux از بسته Pacman خود استفاده می کند ، که بسته های باینری ساده را با یک سیستم ساخت بسته آسان برای استفاده جفت می کند. این به کاربران امکان می دهد بسته ها را از نرم افزار رسمی Arch گرفته تا بسته های شخصی خود کاربر تا بسته هایی از منابع شخص ثالث به راحتی مدیریت و سفارشی کنند. سیستم مخزن همچنین به کاربران این امکان را می دهد که به راحتی اسکریپت ها ، بسته ها و مخازن ساخت سفارشی خود را بسازند و حفظ کنند ، این امر باعث تشویق رشد و مشارکت جامعه می شود.

Centos : یک توزیع لینوکس است که یک پلتفرم محاسباتی رایگان و منبع باز با پشتیبانی جامعه ارائه می دهد که از نظر عملکردی با منبع بالادستی خود ، Red Hat Enterprise Linux (RHEL) سازگار است.

Fedora : Fedora یک توزیع لینوکس است که توسط پروژه Fedora با پشتیبانی جامعه توسعه یافته است و در درجه اول توسط Red Hat ، زیرمجموعه IBM ، با پشتیبانی اضافی از سایر شرکت ها حمایت می شود. Fedora منبع بالادستی توزیع تجاری Red Hat Enterprise Linux برای CentOS است.

Slackware  : یک توزیع لینوکس است که توسط پاتریک ولکردینگ در سال 1993 ایجاد شده است. هدف Slackware ثبات و سادگی طراحی است و “شبه یونیکس” ترین توزیع لینوکس است. تا آنجا که ممکن است تغییرات کمی در بسته های نرم افزاری از بالادست ایجاد می کند و سعی می کند موارد استفاده را پیش بینی نکند یا مانع تصمیم گیری کاربران شود.

Debian : Debian همچنین به عنوان Debian GNU/Linux شناخته می شود ، یک توزیع لینوکس متشکل از نرم افزار رایگان و منبع باز است که توسط پروژه Debian با پشتیبانی جامعه توسعه یافته است ، که توسط Ian Murdock در 1993 ساخته شد. Debian یکی از قدیمی ترین توزیع های مبتنی بر هسته لینوکس است.

KNOPPIX : یک سیستم زنده قابل بوت روی CD ، DVD یا فلش مموری USB است که شامل مجموعه ای از نرم افزار GNU/Linux ، تشخیص سخت افزار خودکار و پشتیبانی از بسیاری از کارت های گرافیک ، کارت های صدا ، دستگاه های SCSI و USB و سایر لوازم جانبی است.

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

محصولات پیشنهادی سردبیر

خواندن این مقالات را هم به شما پیشنهاد میدهیم

سبد خرید
فروشگاه
حساب من
0 مورد سبد خرید