ما هو لينكس: النواة والتوزيعات ونظام الملفات بلغة مبسطة
لينكس هو نواة نظام تشغيل مفتوحة المصدر تدير المعالج والذاكرة والأقراص والشبكة. وعندما تُضاف إليها الأدوات ومدير الحزم ونظام التهيئة، تتكوّن التوزيعة، مثل Ubuntu أو Debian أو Fedora. يعمل لينكس على معظم الخوادم والحاويات والسحابة، لذلك فإن التعامل معه مهارة أساسية لمهندس DevOps ومدير الأنظمة.
لينكس هو نواة نظام تشغيل مفتوحة المصدر، تُبنى حولها أنظمة كاملة للخوادم وأجهزة سطح المكتب والأنظمة المدمجة. عندما نقول «خادم يعمل بلينكس»، فإننا لا نقصد برنامجاً واحداً، بل توزيعة: النواة مع مجموعة من الأدوات والمكتبات ومدير الحزم ونظام التهيئة. في هذه المقالة نشرح ما هو لينكس فعلاً، ومما يتكون، ولماذا لا يستغني عنه أي مهندس DevOps تقريباً.
لينكس نواة، وليس النظام كله
بالمعنى الدقيق، لينكس هو النواة (kernel) فقط. النواة برنامج يُشغَّل أولاً بعد المُحمِّل، ويبقى في الذاكرة طوال تشغيل الحاسوب. وهي توزّع وقت المعالج بين العمليات، وتخصص الذاكرة، وتتعامل مع الأقراص وبطاقات الشبكة عبر برامج التشغيل، وتتحقق من صلاحيات الوصول.
البرامج العادية لا تتعامل مع العتاد مباشرة. فعندما يحفظ المحرر ملفاً، يُجري استدعاءً للنظام (open، write، close)، ثم تقرر النواة على أي كتلة من القرص تُكتب البيانات، وهل يملك البرنامج الصلاحية لذلك. هذا التقسيم يجعل النظام أكثر استقراراً: إذا تعطّل برنامج، لا يسقط الحاسوب كله.
يمكنك معرفة إصدار النواة بأمر واحد:
$ uname -r
6.8.0-45-generic
أنشأ Linus Torvalds النواة عام 1991، وهي تُطوَّر بشكل مفتوح منذ ذلك الحين. يُنشر الكود المصدري بموجب رخصة GNU GPL الإصدار 2، ويستطيع أي شخص قراءته وتعديله وتوزيعه بالشروط نفسها.
ما هي توزيعة لينكس
النواة وحدها لا تكفي: نحتاج إلى واجهة سطر أوامر (shell)، وأدوات للتعامل مع الملفات، ومكتبات، وبرنامج لتثبيت التطبيقات. معظم الأدوات الأساسية (ls، cp، bash، grep) جاءت من مشروع GNU، لذلك يُسمّى النظام أحياناً GNU/Linux. النواة مع هذه المجموعة المجمّعة والمختبرة معاً تُسمّى توزيعة.
تختلف التوزيعات أساساً في مدير الحزم وسياسة التحديثات والجمهور المستهدف.
| العائلة | أمثلة | الحزم | أين تُستخدم |
|---|---|---|---|
| Debian | Debian، Ubuntu، Linux Mint | .deb، apt | الخوادم والسحابة وأجهزة العمل |
| Red Hat | RHEL، Fedora، Rocky Linux، AlmaLinux | .rpm، dnf | الخوادم المؤسسية |
| Alpine | Alpine Linux | apk | صور Docker التي يهم فيها الحجم الصغير |
| Arch | Arch Linux، Manjaro | pacman | المتحمسون والراغبون في أحدث الإصدارات |
يمكنك معرفة التوزيعة التي أمامك من الملف /etc/os-release:
$ cat /etc/os-release
PRETTY_NAME="Ubuntu 24.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
ID=ubuntu
ID_LIKE=debian
للتعلم وتشغيل الخوادم، يُختار غالباً Ubuntu LTS أو Debian، لوفرة الوثائق ولأن الأوامر في التعليمات المنشورة على الإنترنت تعمل عادةً دون تعديل.
بنية النظام: النواة وسطر الأوامر ومساحة المستخدم
يسهل فهم لينكس إذا تخيلناه طبقات. في الأسفل العتاد، فوقه النواة، وفوقها مساحة المستخدم: خدمات النظام والمكتبات (مثل glibc) والبرامج. بين الإنسان والنظام توجد الواجهة (shell)، وغالباً تكون bash، وهي التي تستقبل الأوامر وتشغّل البرامج.
- النواة: العمليات والذاكرة وأنظمة الملفات والشبكة وبرامج التشغيل.
- نظام التهيئة: أول عملية بمعرّف PID 1، وهي في معظم التوزيعات الحديثة
systemd، وتشغّل بقية الخدمات. - الخدمات (daemons): خادم الويب، وخادم SSH، وcron، وسجل النظام.
- الواجهة والأدوات: ما تتعامل معه في الطرفية مباشرة.
عادةً لا توجد واجهة رسومية على الخادم: يتصل مدير النظام عبر SSH ويعمل من سطر الأوامر. لذلك فإن تعلم لينكس هو قبل كل شيء تعلم الطرفية.
نظام ملفات لينكس: كل شيء يبدأ من الجذر /
لا توجد في لينكس أقراص باسم C: أو D:. توجد شجرة واحدة من المجلدات تبدأ من الجذر /. تُربط جميع الأقراص وأقراص USB ومجلدات الشبكة (تُركَّب mount) في مجلد ما داخل هذه الشجرة. ومبدأ آخر: كل شيء تقريباً في لينكس يُمثَّل كملف، سواء كان ملفاً عادياً أو مجلداً أو جهازاً، حتى معلومات العمليات.
$ ls /
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
يصف معيار FHS (Filesystem Hierarchy Standard) تنظيم المجلدات، لذلك تكون ملفات الإعداد في الأماكن نفسها تقريباً في أي توزيعة.
| المجلد | ما يحويه |
|---|---|
/etc | إعدادات النظام والخدمات: /etc/passwd، /etc/ssh/sshd_config، /etc/fstab |
/home | المجلدات الشخصية للمستخدمين: /home/alice |
/root | المجلد الشخصي للمستخدم الأعلى root |
/var | البيانات المتغيرة: السجلات في /var/log، وذاكرة التخزين المؤقت للحزم، وقواعد البيانات، وطوابير البريد |
/usr | البرامج والمكتبات المثبّتة: /usr/bin، /usr/lib |
/bin، /sbin | الأوامر الأساسية؛ وهي في التوزيعات الحديثة روابط إلى /usr/bin و/usr/sbin |
/boot | النواة (vmlinuz-*) وinitramfs وملفات المُحمِّل |
/dev | ملفات الأجهزة: /dev/sda، /dev/null |
/proc، /sys | أنظمة ملفات افتراضية: تعرض النواة من خلالها العمليات والإعدادات |
/tmp | ملفات مؤقتة، وغالباً تُفرَّغ عند إعادة التشغيل |
/opt | برامج خارجية تُوزَّع كحزمة كاملة |
/mnt، /media | نقاط تركيب الأقراص ووسائط التخزين القابلة للإزالة |
المسارات المطلقة والنسبية
يبدأ المسار المطلق بـ / ولا يتغير بحسب مكانك الحالي، مثل /var/log/syslog. أما المسار النسبي فيُحسب من المجلد الحالي، مثل ../logs/app.log. النقطة . تعني المجلد الحالي، والنقطتان .. تعنيان المجلد الأب، والشرطة المائلة المعكوسة للتيلدة ~ تعني مجلدك الشخصي.
$ pwd
/home/alice
$ cd /var/log
$ cd ..
$ pwd
/var
$ cd ~
$ pwd
/home/alice
/proc: النظام كمجموعة ملفات
المجلد /proc لا يُخزَّن على القرص، بل تُنشئه النواة أثناء التشغيل. مثلاً، يعرض cat /proc/cpuinfo معلومات المعالجات، ويعرض cat /proc/meminfo معلومات الذاكرة، ولكل عملية مجلد /proc/<PID> يحوي سطر أوامرها والملفات المفتوحة. تقرأ أدوات مثل ps وtop هذه الملفات.
التركيب (mount)
يُظهر الأمر df -h ما الذي رُكِّب أين، وكم من المساحة متاح فيه:
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 40G 12G 26G 32% /
/dev/sda1 1.1G 6.1M 1.1G 1% /boot/efi
tmpfs 393M 1.2M 392M 1% /run
تُوصف نقاط التركيب الدائمة في /etc/fstab، ويقرأ النظام هذا الملف عند الإقلاع.
كيف يقلع لينكس: من تشغيل الجهاز حتى موجه تسجيل الدخول
فهم الإقلاع يساعد عندما «لا يعمل» الخادم بعد إعادة التشغيل. الخطوات مبسّطة كما يلي:
- البرنامج الثابت (UEFI أو BIOS) يفحص العتاد ويعثر على المُحمِّل.
- مُحمِّل GRUB يعرض القائمة ويحمّل النواة وصورة initramfs من
/bootإلى الذاكرة. - النواة تُهيّئ العتاد، وباستخدام initramfs تجد نظام الملفات الجذري وتُركّبه.
- systemd يعمل كعملية PID 1 ويشغّل الخدمات بالترتيب الصحيح: الشبكة والسجلات وSSH وcron وغيرها.
- موجه تسجيل الدخول يظهر في الطرفية أو يصبح متاحاً عبر SSH.
يمكن عرض رسائل النواة أثناء الإقلاع بالأمر sudo dmesg أو journalctl -k، ومدة مراحل الإقلاع بالأمر systemd-analyze.
المستخدمون والصلاحيات: حماية مدمجة
لينكس نظام متعدد المستخدمين منذ البداية. لكل ملف مالك ومجموعة وصلاحيات للقراءة والكتابة والتنفيذ. لا يستطيع المستخدم العادي إفساد ملفات النظام، وتُنفَّذ الأعمال الإدارية عبر sudo. المستخدم الأعلى root يستطيع كل شيء، لذلك لا يُنصح بالعمل بهذا الحساب باستمرار.
$ ls -l /etc/passwd
-rw-r--r-- 1 root root 2847 Oct 1 10:12 /etc/passwd
يُقرأ هذا السطر هكذا: ملف عادي، يستطيع مالكه root القراءة والكتابة، ويستطيع الآخرون القراءة فقط.
لماذا يحتاج مهندس DevOps إلى لينكس
بالنسبة لمهندس DevOps، لينكس ليس موضوعاً من بين مواضيع أخرى، بل البيئة التي تتم فيها تقريباً كل الأعمال. وهذه أماكن ملاقاته اليومية:
- الخوادم. خوادم الويب وقواعد البيانات وطوابير الرسائل تعمل في الغالب على لينكس.
- الحاويات. يستخدم Docker آليات النواة مثل namespaces وcgroups. الحاوية عملية لينكس معزولة، والصورة مبنية على توزيعة مثل Debian أو Alpine.
- السحابة وKubernetes. الأجهزة الافتراضية في السحابة وعقد المجموعات تعمل بلينكس أيضاً.
- CI/CD. عمليات البناء في خطوط الأنابيب تُنفَّذ على مشغّلات لينكس، وسكريبتات البناء تُكتب غالباً بلغة bash.
- التشخيص. عندما تتوقف خدمة، يُبحث عن السبب في
journalctlوtopوssوdf. من دون معرفة هذه الأدوات لا يمكن تحليل الحوادث.
الحد الأدنى من المهارات: التنقل بثقة في نظام الملفات، وفهم الصلاحيات، وتثبيت الحزم، وإدارة الخدمات بـ systemctl، وقراءة السجلات، والتعامل مع العمليات والشبكة وSSH، وكتابة سكريبتات bash بسيطة.
كيف تبدأ تعلم لينكس
لا يلزم تثبيت لينكس بدلاً من نظامك الأساسي. هناك عدة طرق آمنة للتجربة:
- جهاز افتراضي (VirtualBox، VMware) مع Ubuntu Server، يمكنك كسره ثم استعادته من لقطة (snapshot).
- WSL على Windows: بيئة Ubuntu كاملة داخل طرفية Windows، ويكفي تنفيذ
wsl --install. - خادم سحابي: أقرب خيار إلى العمل الفعلي، والاتصال عبر SSH.
- حاوية Docker: الأمر
docker run -it --rm ubuntu bashيعطيك واجهة أوامر خلال ثوانٍ.
ابدأ بالتنقل (pwd، ls، cd)، ثم الملفات والصلاحيات، ثم الحزم والعمليات والخدمات. المساعدة المدمجة متاحة دائماً: man ls أو ls --help.
الخلاصة
لينكس هو النواة، والتوزيعة هي النواة مع الأدوات والمكتبات ومدير الحزم وsystemd. النظام كله شجرة مجلدات تبدأ من الجذر /، حيث تكون الإعدادات في /etc، والسجلات في /var/log، والبرامج في /usr. فهم ما هو لينكس وكيف يقلع يمنحك الأساس الذي تقوم عليه الخوادم والحاويات والسحابة. يُشرح نظام الملفات والإقلاع وإدارة النظام عملياً في دورة لينكس.
الأسئلة الشائعة
هل لينكس نظام تشغيل أم نواة؟
رسمياً، لينكس نواة، أما نظام التشغيل فتكوّنه التوزيعة، أي النواة مع أدوات GNU والمكتبات ومدير الحزم ونظام التهيئة. وفي الحديث اليومي، كلمة «لينكس» تعني النظام كله عادةً.
هل لينكس مجاني؟
النواة ومعظم التوزيعات (مثل Ubuntu وDebian وFedora) متاحة مجاناً بتراخيص مفتوحة المصدر. المدفوع هو اشتراكات الدعم، مثل Red Hat Enterprise Linux.
أي توزيعة لينكس أختار كمبتدئ؟
لتعلم إدارة الخوادم، تناسب Ubuntu LTS وDebian، لأن إصداراتهما مستقرة وتوفر وثائق كثيرة. المعرفة تنتقل بين التوزيعات، والفرق الأساسي يكون في مدير الحزم.
هل أحتاج إلى معرفة لينكس لاستخدام Docker؟
نعم، على الأقل بشكل أساسي. الحاويات مبنية على آليات نواة لينكس، والصور تحوي توزيعة، ويتم التصحيح بأوامر الواجهة.
ما الفرق بين لينكس ويونكس؟
يونكس عائلة من الأنظمة ظهرت في السبعينيات، أما لينكس فهو نواة كُتبت بشكل مستقل وتعيد استخدام أفكار يونكس وواجهاته (معيار POSIX). لذلك تتشابه الأوامر ومبادئ العمل كثيراً.
يُشرح هذا الموضوع بالتفصيل مع التطبيق العملي في دورة «Linux: с нуля до уверенного администрирования».
- Linux: с нуля до уверенного администрирования
- Как устроена файловая система Linux: от корня до загрузки ядра