لینوکس چیست ؟

در دنیای کامپیوتر ها ، سیستم عام ها ( Operating Systems ) نقش حیاتی در استفاده از سخت افزار ایفا می کنند. بدون یک سیستم عامل، کاربر نمی تواند از منابع سیستم مثل CPU، RAM، یا حافظه ذخیره سازی استفاده کند. در میان سیستم عامل ها، لینوکس جایگاه ویژه ای دارد. برخلاف ویندوز یا macOS که توسط شرکت های خاصی توسعه داده می شوند و عموماً پولی و بسته هستند، لینوکس یک سیستم عامل آزاد، رایگان و متن باز است که به صورت گسترده در سطح جهان مورد استفاده و توسعه قرار می گیرد. این سیستم عامل نه تنها روی دسکتاپ ها بلکه در سرور ها، تلفن های هوشمند، سوپر کامپیوتر ها، خودرو ها، تجهیزات پزشکی و بسیاری از دستگاه های دیگر اجرا می شود. در این مقاله به بررسی این که لینوکس چیست ؟ تاریخچه و کاربرد ها و نحوه عملکرد لینوکس می پردازیم .
تاریخچه و فلسفه لینوکس
پیدایش لینوکس
لینوس بندیکت توروالدز ( Linus Benedict Torvalds ) در سال ۱۹۶۹ در هلسینکی فنلاند متولد شد. او در خانواده ای فرهنگی و دانشگاهی بزرگ شد و از همان کودکی علاقه زیادی به منطق و ریاضیات داشت. اولین جرقه آشنایی او با دنیای کامپیوتر، در دهه ۱۹۸۰ و با دریافت یک کامپیوتر شخصی Commodore VIC-20 از پدربزرگش زده شد. این کامپیوتر ساده ۸ بیتی، با محدودیت های سخت افزاری زیادی که داشت، به لینوس فرصت داد تا مفاهیم اولیه برنامهنویسی را با زبان BASIC یاد بگیرد. او ساعت ها وقت صرف نوشتن برنامه های ساده و آزمایش الگوریتم ها می کرد و تفریح او در نوجوانی نوشتن و ساختن بازی های مختلف بود .
در ادامه، لینوس با انجام کار های تابستانه و جمع کردن پول تو جیبی های هفتگی توانست کامپیوتر های پیشرفته تری مثل Sinclair QL تهیه کند که به او امکان نوشتن برنامه هایی پیچیده تر را داد. این علاقه مندی به برنامه نویسی باعث شد که در دانشگاه هلسینکی رشته علوم کامپیوتر را انتخاب کند. در دوران دانشجویی، لینوس با سیستم عامل های مختلف آشنا شد و در نهایت با سیستم عامل آموزشی Minix که توسط پروفسور اندرو تننباوم طراحی شده بود، ارتباط نزدیکی برقرار کرد. Minix برای آموزش مفاهیم سیستم عامل مفید بود، اما محدودیت هایی مثل بسته بودن کد منبع داشت.
لینوس که از این محدودیت ها ناراضی بود، تصمیم گرفت خودش یک هسته سیستم عامل طراحی کند. این پروژه ابتدا تنها یک سرگرمی برای استفاده شخصی او بود، اما وقتی در سال ۱۹۹۱ در گروه خبری Usenet اعلام کرد که در حال توسعه یک سیستم عامل رایگان برای پردازنده های x86 است، توجه بسیاری از توسعه دهندگان جلب شد. نسخه اولیه این هسته در همان سال منتشر شد و جامعه ای کوچک اما فعال شروع به همکاری با لینوس کرد. این شروع یک پروژه بزرگ بود که به زودی تبدیل به ستون فقرات بسیاری از سیستم های کامپیوتری در سراسر جهان شد.
برای خواندن بیشتر درباره ی زندگی نامه لینوس توروالدز و پیدایش لینوکس می توانید کتاب ” Linux For Fun” نوشته ی لینوس توروالد با ترجمه آقای جادی میرمیرانی را مطالعه بفرمایید .
نقش پروژه GNU
در همان زمان، پروژه GNU که توسط ریچارد استالمن آغاز شده بود، مجموعه ای از ابزار ها و کتابخانه های آزاد برای ساخت یک سیستم عامل کامل فراهم کرده بود. با ترکیب هسته لینوکس و ابزار های GNU، اولین نسخه های کامل لینوکس شکل گرفتند. به همین دلیل برخی آن را GNU/Linux می نامند.
فلسفه نرم افزار آزاد و متن باز
لینوکس تحت مجوز GPL (GNU General Public License) منتشر شد. این مجوز به کاربران اجازه می دهد :
– برنامه را به صورت رایگان اجرا کنند.
– کد منبع آن را مطالعه کنند.
– آن را تغییر دهند.
– نسخه های تغییر یافته را مجدد توزیع کنند.
این فلسفه باعث رشد سریع لینوکس شد، چرا که افراد و شرکت ها می توانستند آن را به صورت قانونی و آزادانه توسعه دهند.
ساختار داخلی لینوکس
لینوکس ساختار متفاوت و منحصر به فردی نسبت به سیستم عامل های دیگر دارد که در این بخش به آن خواهیم پرداخت .
هسته ( Kernel )
هسته لینوکس، اصلی ترین بخش سیستم عامل است و وظیفه مدیریت منابع سخت افزاری و نرم افزاری را بر عهده دارد. این هسته از نوع مونولیتیک است اما قابلیت بارگذاری ماژول های مختلف را در زمان اجرا دارد. کرنل وظایفی مانند مدیریت حافظه، زمان بندی پردازش ها، مدیریت فایل سیستم ها، کنترل ورودی / خروجی و شبکه را بر عهده دارد.
فضای کاربر (User Space)
در لینوکس، برنامه های کاربردی در فضایی جدا از هسته اجرا می شوند که به آن فضای کاربر می گویند. این جدا سازی باعث افزایش امنیت و پایداری سیستم می شود. در فضای کاربر، ابزار هایی مانند Bash، رابط های گرافیکی، سرویس های پس زمینه و سایر برنامه ها اجرا می شوند.
ساختار سلسله مراتبی فایل ها
لینوکس از یک ساختار سلسله مراتبی برای مدیریت فایل ها استفاده می کند. همه چیز از دایرکتوری ریشه (Root) `/` شروع می شود و به تدریج به پوشه های مختلف تقسیم میشود:
/bin : برنامه های اجرایی پایه
/etc : فایل های پیکربندی سیستم
/home : مسیر home directory کاربران
/var : فایل های متغیر مانند لاگ ها
/usr : نرم افزار های کاربری و کتابخانه ها
/dev : فایل های مربوط به دستگاه ها مانند هارد ها
می توانید درباره ی ( ساختار فایل سیستم لینوکس ) در این مقاله بیشتر بخوانید .
توزیع های لینوکس
هر ساله توزیع ها و نسخه های زیاد و متنوعی از سیستم عامل gnu/linux منتشر می شود . در این بخش به بررسی اینکه چرا توزیع های زیادی وجود دارد می پردازیم و توزیع های معروف لینوکس معرفی می شود .
چرا توزیع های مختلف وجود دارد؟
از آن جا که لینوکس یک هسته است، توسعه دهندگان مختلف آن را با ابزار ها و برنامه های مختلف ترکیب کرده و توزیع هایی با اهداف و ویژگی های متفاوت ساخته اند. برخی برای دسکتاپ طراحی شده اند، برخی برای سرور ها، برخی برای امنیت، و برخی برای سیستم های سبک و حتی برخی برای دیوایس های متصل به اینترنت (IOT) .
معروف ترین توزیع های لینوکس :
Debian : توزیعی پایدار و بسیار محافظه کار که پایه اصلی بسیاری از توزیع های دیگر است.
Ubuntu : بر پایه دبیان، کاربر پسند و محبوب برای دسکتاپ منتشر شده.
Linux Mint : بر پایه اوبونتو، محیطی شبیه ویندوز دارد که اغلب برای مهاجرین تازه از ویندوز به لینوکس انتخاب می شود .
Fedora : پروژه ای مدرن با نرم افزار های جدید، پشتیبانی رسمی Red Hat.
Arch Linux : توزیعی مینیمال و قابل تنظیم برای کاربران حرفه ای.
Manjaro : مبتنی بر Arch، اما نصب و استفاده آسان تر دارد.
Red Hat Enterprise Linux (RHEL) : نسخه تجاری برای سازمان ها.
CentOS / Rocky / AlmaLinux : معادل رایگان RHEL برای سرور ها.
برای خواندن بیشتر درباره انواع توزیع و دیسترو های لینوکس می توانید مقاله “معرفی توزیع های لینوکس برای میزبانی وب سایت ها ” را مطالعه بفرمایید .
رابط کاربری و ابزار های لینوکس
اکثر توزیع های لینوکس در دو نوع رابط کاربری دسکتاپ (با GUI) و حالت کامندلاین منتشر می شوند . که هرکدام از این رابط ها محیط و شل های متفاوتی دارند .
محیط های دسکتاپ
در لینوکس چندین محیط گرافیکی وجود دارد که می توانید هرکدام که خواستیم را نصب ، شخصی سازی و استفاده کنیم :
GNOME : رابط کاربری رسمی و مدرن.
KDE Plasma : قابل شخصی سازی با جلوه های گرافیکی پیشرفته تر.
XFCE / LXDE : سبک و سریع برای سیستم های قدیمی تر.
Cinnamon / Mate : طراحی شده برای کاربران ویندوزی.
پوسته (Shell)
Shell یک رابط کامند لاینی است که کاربر از طریق آن با سیستم تعامل می کند. معروف ترین آن ها:
bash (Bourne Again Shell)
zsh, fish, dash
کار با شل به کاربر قدرت کنترل کامل بر سیستم می دهد.
نصب، پیکربندی و مدیریت لینوکس
در این بخش مباحث نحوه نصب و کانفیگ و مدیریت لینوکس می پردازیم .
فرآیند نصب لینوکس
نصب لینوکس معمولاً از طریق یک Live CD/USB انجام می شود. بسیاری از توزیع ها دارای نصب کننده های گرافیکی ساده هستند. مراحل کلی شامل :
پارتیشن بندی و انتخاب پارتیشن
انتخاب بسته های نرم افزاری و نصب اولیه
تنظیم کاربران و رمز عبور
مدیریت بسته ها
نصب، حذف و به روز رسانی برنامه ها در لینوکس از طریق مدیر بسته ها ( package manager) انجام می شود که در توزیع ( Distro ) های مختلف پکیج منیجر های متفاوتی استفاده می شود :
Debian/Ubuntu: apt, dpkg
Fedora/RedHat: dnf, yum, rpm
Arch: pacman
مدیریت کاربران و مجوز ها
سیستم مجوز دهی Linux به سه سطح کاربر، گروه و دیگران تقسیم می شود. که مشخص می کنید چه افرادی به چه فایل ها و دایرکتوری هایی امکان دسترسی و مشاهده یا خواندن و نوشتن داشته باشند . دستوراتی مانند chmod, chown, usermod برای تغییر این مجوز ها استفاده می شوند.
می توانید درباره ی سطوح دسترسی و linux file permision در مقاله ( سطح دسترسی فایل ها در لینوکس ( Linux File Permissions ) ) بیشتر بخوانید .
امنیت
در حالت کلی لینوکس به عنوان یکی از امن ترین سیستم عامل های دنیا شناخته می شود . در این بخش به این موضوع می پردازیم .
ساختار امنیتی
این سیستم عامل به صورت پیش فرض امنیت بالایی دارد. به عنوان مثال:
ساختار مجوز ها و مالکیت فایل ها
استفاده از sudo به جای root
SELinux و AppArmor برای کنترل دسترسی پیشرفته
دیوار آتش و ابزار های امنیتی
iptables, ufw : مدیریت ترافیک شبکه و فایروال
fail2ban : جلوگیری از حملات brute-force
clamav : آنتی ویروس رایگان
می توانید مقاله ( آموزش نصب فایروال csf )را بخوانید .
کاربرد های لینوکس
لینوکس کاربرد های بسیار متنوعی دارد . از استفاده در وسایل خانگی مثل جارو برقی و یخچال و تلوزیون هوشمند گرفته تا ابر سرور های ناسا .
لینوکس در سرور ها
لینوکس به دلیل پایداری، امنیت و مصرف منابع پایین، انتخاب اول برای میزبانی وب، سرور های دیتابیس، سرور های ایمیل و سایر سرویس های حیاتی است .
لینوکس در دسکتاپ
هر چند درصد کاربران دسکتاپ لینوکس کمتر از ویندوز است، اما در حوزه توسعه نرم افزار، لینوکس انتخاب اول بسیاری از برنامه نویسان است و مدیران شبکه و متخصصان این حوضه است .
در گوشی ها و تجهیزات هوشمند
اندروید، محبوب ترین سیستم عامل موبایل ، بر پایه هسته لینوکس ساخته شده است. همچنین بسیاری از دستگاه های IoT، تلویزیون های هوشمند ، جاروبرقی ، یخچال ، و روتر و هر تجهیزات هوشمندی که امکان مدیریت از طریق برنامه وهر دستگاهی که اتصال به اینترنت دارد نیز از لینوکس استفاده می کنند .
در ابر رایانه ها
تمام 500 ابر رایانه برتر که در جهان وجود دارند از لینوکس استفاده می کنند. دلیل آن انعطاف، عملکرد بالا و کنترل کامل بر سیستم است.
مفاهیم پیشرفته
در این بخش به مفاهیم پیشرفته تری از لینوکس می پردازیم .
مجازی سازی
KVM : مجازی سازی سطح کرنل که در مجازی سازی های وب هاستینگ کاربرد دارد .
QEMU : شبیه سازی سخت افزار
VirtualBox : برای تست و توسعه در سطح سیستم عامل کاربر
کانتینرها
Docker : اجرای برنامه ها در محیط ایزوله
LXC/LXD : کانتینرهای سبک سیستم عامل
8.3 DevOps و لینوکس
ابزار هایی مانند Ansible، Jenkins، GitLab CI، Kubernetes، و Terraform همگی در لینوکس به خوبی اجرا می شوند و دنیای DevOps را تحت سلطه خود دارند.
نتیجه گیری
لینوکس یک سیستم عامل قدرتمند، انعطاف پذیر، امن و رایگان است که کاربرد های گسترده ای از دسکتاپ های شخصی تا سرور های سازمانی، گوشی های هوشمند و ابر رایانه ها دارد. فلسفه متن باز بودن آن باعث ایجاد جامعه ای پویا و پر انرژی شده که به طور مداوم آن را توسعه و پشتیبانی می کنند. اگر به دنیای فناوری، برنامه نویسی، یا مدیریت سیستم علاقه مند هستید، یادگیری این سیستم عامل یکی از بهترین سرمایه گذاریها برای آینده شماست.