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

کرنل لینوکس چیست؟ هسته یا کرنل، هسته مرکزی سیستمعامل لینوکس است که نقش چسب بین سختافزار و نرمافزارها را ایفا میکند. بدون هسته، لینوکس نمیتواند کار کند، زیرا این بخش مسئولیت مدیریت منابع سختافزاری مثل CPU، RAM و دیسک را بر عهده دارد.
کرنل لینوکس وظایف متنوعی دارد که آن را از دیگر سیستمعاملها متمایز میکند. اولاً، هسته ارتباط بین اپلیکیشنها و سختافزار را برقرار میکند، مثلاً وقتی برنامهای نیاز به خواندن فایل از هارد دارد، هسته این کار را مدیریت میکند. دوماً، مدیریت فرآیندها (Processes) را انجام میدهد، یعنی اولویتبندی کارهای سیستم برای جلوگیری از هنگ کردن کامپیوتر شما. سوماً، با کنترل دسترسیها (Permissions) امنیت را تأمین میکند. هسته لینوکس مدولار است، یعنی بدون ریبوت کردن کامل سیستم، میتوانید ماژولهای اضافی را (مثل درایور کارت گرافیک) اضافه کنید.
کرنل لینوکس فقط پایه است و بدون توزیعها (Distributions) کامل نیست. مثلاً، در مقایسه با ویندوز، هسته لینوکس رایگان و متنباز است، که اجازه سفارشیسازی میدهد. نسخههای مختلف هسته (مثل ۵.۱۵ یا ۶.۲) با بهروزرسانیها بهبود مییابند تا پشتیبانی بهتری از سختافزارهای جدید داشته باشند.
توزیعهای لینوکس چیست؟ توزیع یا Distro، مجموعهای از نرمافزارها، برنامهها و ابزارها است که با هسته لینوکس ترکیب شده تا یک سیستمعامل کامل بسازد. بدون توزیع، هسته خام است و قابل استفاده برای کاربران عادی نیست.
توزیعها بر اساس نیاز کاربران متفاوتاند. مثلاً، اوبونتو (Ubuntu) برای مبتدیان مناسب است با رابط گرافیکی ساده. دبیان (Debian) پایدار و برای سرورها ایدهآل است. فدورا (Fedora) برای توسعهدهندگان با آخرین فناوریها. آرچ لینوکس (Arch) برای کاربران پیشرفته که میخواهند سیستم را دستی سفارشی کنند. هر توزیع شامل هسته، شل، و محیط دسکتاپ است.
درس سایت distrosea.com میتونید توزیع های مختلف را امتحان کنید.


بوتلودر در لینوکس چیست؟ بوتلودر برنامهای است که سیستمعامل را بوت میکند و هسته را بارگذاری میکند. بدون آن، سیستم عامل بالا نمیآید و کاربر نمیتواند از سیستم استفاده کند. این موضوع جزو مفاهیم اساسی لینوکس و سیستم عامل است.

معروفترینها GRUB (Grand Unified Bootloader) و ISOLINUX هستند. GRUB چندسیستمه را پشتیبانی میکند (مثل بوت دوگانه ویندوز و لینوکس). ISOLINUX برای رسانههای بوتشدنی مثل USB استفاده میشود.
در نصب توزیع، بوتلودر خودکار نصب میشود. درصورت نیاز، میتوانید با استفاده از ابزار های در ترمینال یا بصورت رابط گرافیکی بوتلودر سیستمخود را مدیریت کنید.
برای مثال Grub Customizer بصورت گرافیکی و فایل کانفیگ grub در مسیر /etc/default/grub برای ویرایش بوتلودر وجود دارد
سرویس در لینوکس چیست؟ سرویس برنامهای است که در پسزمینه سیستم شما اجرا میشود و وظایف را بهصورت مداوم انجام میدهد. سرویس های مختلفی در لینوکس وجود دارد. نمونه هایی از سرویس های مهم لینوکس:
httpd: سرویس وبسرور آپاچی برای میزبانی وبسایتها.
nfsd: برای اشتراکگذاری فایلها در شبکه (Network File System).
sshd: برای دسترسی از راه دور از طریق SSH.
cron: برای اجرای خودکار وظایف زمانبندیشده (مثل بکآپ).
برای مدیریت سرویس ها، میتوانید از ابزار systemctl از طریق ترمینال بهره ببرید و در محیط گرافیکی، با ابزار هایی مثل System Monitor کار کنید.
لینوکس مدرن از Systemd برای مدیریت سرویسها استفاده میکند. دستورات کلیدی:
شروع سرویس: sudo systemctl start httpd
توقف سرویس: sudo systemctl stop httpd
فعالسازی در بوت: sudo systemctl enable httpd
بررسی وضعیت: sudo systemctl status httpd
فایل سیستم (File System) روش ذخیره و سازماندهی داده ها در یک سیستمعامل است.
فایل سیستم تعیین میکند چگونه فایلها در بلوکهای دیسک ذخیره شوند، مجوزها (Permissions) مدیریت شوند، و عملیات مثل خواندن/نوشتن انجام گیرد. لینوکس از چندین لایه استفاده میکند: کرنل فایل سیستم را مدیریت میکند، و ابزارهایی مثل mkfs برای ایجاد آن استفاده میشوند.
از نظر فنی، فایل سیستم شامل Inodes (برای metadata فایلها مثل مالک و اندازه) و Superblock (برای اطلاعات کلی مثل فضای آزاد) است. مثلاً، در ext4، هر فایل یک Inode دارد که اجازه مدیریت میلیونها فایل را میدهد.
فایل سیستم های رایج:
ext4: پیشفرض اوبونتو و اکثر توزیعها، سریع، پایدار، و مناسب برای دسکتاپ و سرور.
NTFS: پیشفرض ویندوز ۱۰ و ۱۱، برای سازگاری با درایوهای مشترک.
FAT32: پیشفرض نسخههای قدیمی ویندوز، مناسب برای USB (محدودیت حجم فایل ۴ گیگابایت).
Btrfs: پیشرفته با قابلیت اسنپشات و فشردهسازی.
ZFS: برای سرورهای پیشرفته با مدیریت داده قوی

نمایش فایل سیستم و فضای دیسک:
df -h
شل (Shell) برنامهای است که دستورات کاربر را دریافت، تفسیر، و به کرنل منتقل میکند. شلها برای اتوماسیون حیاتیاند. برخلاف GUI، شل دسترسی مستقیم به سیستم میدهد.
دانستن چگونگی کار با شل و دستورات خط فرمان، برای سرور های بدون رابط گرافیکی (GUI) حیاطی است.
Bash: پیشفرض، با سینتکس ساده و اسکریپتینگ قدرتمند. مزایا: گسترده، سازگار. معایب: کمتر مدرن.
Zsh: با Oh My Zsh، اتوکامپلیت پیشرفته و تمها. مزایا: کاربرپسند برای توسعهدهندگان. معایب: نیاز به تنظیم.
Fish: پیشنهادهای هوشمند، بدون نیاز به یادگیری سینتکس پیچیده. مزایا: آسان برای مبتدیان. معایب: کمتر سازگار با اسکریپتهای قدیمی.
با باز کردن برنامه terminal در لینوکس، میتوانید به شل دسترسی داشته باشید.

لینوکس از یک ساختار درختوار (Hierarchical) برای سازماندهی فایلها استفاده میکند که همه چیز از ریشه (/) شروع میشود. این ساختار استاندارد FHS است و فایلها را بر اساس نوع دستهبندی میکند.
/ (Root): پایه سیستم، همه دایرکتوریها زیر آن هستند.
/home: خانه کاربران، فایلهای شخصی (مثل /home/user/Documents). امنیت: مجوزهای کاربرمحور.
/etc: تنظیمات سیستم (مثل /etc/fstab برای فایل سیستمها، /etc/passwd برای کاربران). ویرایش با sudo nano.
/var: دادههای متغیر مثل لاگها (/var/log/apache2) یا دیتابیسها (/var/lib/mysql). کاربرد: بررسی لاگها برای عیبیابی.
/bin و /sbin: فایلهای اجرایی ضروری (/bin/ls) و سیستمی (/sbin/fsck).
/usr: برنامهها و کتابخانهها (/usr/bin/python، /usr/share/icons).
/tmp: فایلهای موقت، که در ریبوت پاک میشود. کاربرد: ذخیره موقت دانلودها.
/boot: فایلهای بوت مثل کرنل (vmlinuz) و GRUB.
مقایسه با ویندوز: لینوکس درایو جدا ندارد؛ همه چیز زیر / مونت میشود (مثل /media/usb برای فلش).
رانلِوِلها (Runlevels) سطوح مختلف عملیاتی لینوکس هستند که تعیین میکنند کدام سرویسها و رابطها فعال شوند.
هر رانلول سرویسهای خاصی را لود میکند و برای مدیریت منابع (مثل خاموش کردن GUI برای صرفهجویی در RAM) مفید است.
0 (Halt): سیستم کامل خاموش میشود. همه فرآیندها متوقف و فایل سیستمهاUnmount میشوند. کاربرد: برای shutdown ایمن.
1 (Single-User Mode): حالت تعمیرات با دسترسی روت. هیچ سرویس شبکهای فعال نیست، فقط کنسول CLI. کاربرد: تعمیر فایل سیستم آسیبدیده یا تغییر پسورد روت (با passwd).
2: چندکاربره بدون NFS. سرویسهای پایه فعالاند، اما شبکه فایل اشتراکی خاموش است. کاربرد: محیطهای محلی بدون نیاز به شبکه.
3: چندکاربره با CLI کامل. سرویسهای شبکه فعالاند، اما GUI نه. کاربرد: سرورها برای مصرف کم منابع (مثل وبسرورها).
4: قابلتنظیم توسط کاربر. میتوانید اسکریپتهای شخصی اضافه کنید. کاربرد: حالتهای سفارشی مثل تست نرمافزار.
5: چندکاربره با GUI. پیشفرض دسکتاپها مثل اوبونتو. همه سرویسها و رابط گرافیکی فعالاند. کاربرد: استفاده روزمره.
6 (Reboot): سیستم ریبوت میشود. همه فرآیندها متوقف و سیستم restart میشود. کاربرد: اعمال تغییرات کرنل.
کاربردها: در سرورهای ابری (مثل AWS EC2)، رانلِوِل ۳ برای کاهش هزینهها استفاده میشود. در دسکتاپ، رانلِوِل ۵ برای راحتی.
رانلولها بهینهسازی منابع را ممکن میکنند. مثلاً، در سیستمهای محدود RAM، رانلول ۳ GUI را خاموش میکند و ۲۰۰-۵۰۰ MB RAM صرفهجویی میکند.
محیط دسکتاپ (Desktop Environment) مجموعهای از نرمافزارها است که رابط گرافیکی (GUI) لینوکس را تشکیل میدهد. شامل مدیریت پنجره، فایل منیجر، نوار وظیفه، و ابزارهای سفارشیسازی است.

نرمافزاری که فقط مسئول مدیریت پنجرههای گرافیکی (مانند جابجایی، تغییر اندازه، و چیدمان پنجرهها) است.
مثالها: i3، Openbox، Awesome، bspwm.
اگر از GNOME استفاده کنید، مدیر پنجره داخلی آن (Mutter) بخشی از محیط دسکتاپ است و شما نیازی به مدیریت جداگانه آن ندارید.
برنامهای گرافیکی یا متنی است که برای مدیریت فایلها و پوشهها استفاده میشود. این ابزار امکان مرور، کپی، انتقال، حذف و سازماندهی فایلها را فراهم میکند.
یکی از محبوب ترین فایل منیجر ها Nautilus است که در محیط های GNOME بصورت پیشفرض قابل استفاده است. اما شما میتوانید فایل منیجر موردنظر خود را نصب کنید و جایگزین آن کنید.
برخی (مثل Thunar) سبک و سریع هستند، برخی (مثل Dolphin) امکانات پیشرفتهتری دارند و سنگینترند.
با درک عمیق مفاهیم اساسی لینوکس مثل سرویسها، فایل سیستم، شل، و ...، میتوانید سیستم را بهینه کنید و از لینوکس نهایت بهره را ببرید. از دستورات شل برای اتوماسیون تا انتخاب محیط گرافیکی مناسب سلیقه شما، این دانش به شما کمک میکند تا تجربه لذتبخشتری از لینوکس داشته باشید.
و در اخر اگه کاربر لینوکس هستید، کدام توزیع و کدام محیط گرافیکی را پیشنهاد میکنید؟ شخصا دوست دارم بدونم از کدوم شل استفاده میکنید و تجربههاتون رو به اشتراک بذارید.