لماذا يُسيطر لينوكس على العالم
لماذا يُسيطر لينوكس على العالم
قبل أن تُشغّل أمر kubectl واحداً، أو تنشر حاوية، أو تكتب خط أنابيب CI، ثمة حقيقة يجب أن تستوعبها جيداً: لينوكس هو نظام التشغيل الذي يشغّل الإنترنت. أكثر من 96% من أكبر مليون خادم ويب في العالم تعمل على لينوكس. كل مزوّد سحابي رئيسي — AWS وGCP وAzure — يُشغّل أحمال عملك افتراضياً على أجهزة VM تعمل بلينوكس. عُقد Kubernetes تعمل على لينوكس. حاويات Docker تشترك في نواة لينوكس. إن كنت جاداً في مجال DevOps، فلينوكس ليس خلفية اختيارية — بل هو الأرضية التي يعمل فوقها كل شيء.
لماذا لا Windows Server؟
Windows Server منصة قادرة وتعتمد عليه كثير من المؤسسات، لكنه يخسر أمام لينوكس عند التوسع لأسباب متشابكة:
- تكلفة الترخيص: قد يبلغ ترخيص Windows Server 2022 Datacenter آلاف الدولارات لكل خادم سنوياً. لينوكس مجاني. عند 10,000 جهاز VM، الوفورات هائلة.
- حجم البصمة: صورة حاوية Alpine Linux الدنيا تبلغ نحو 7 ميغابايت. صورة Windows Server Core تبدأ من 4 غيغابايت فأكثر. الصور الأصغر تعني أوقات سحب أسرع، وتكاليف إخراج بيانات أقل، وسطح هجوم أضيق.
- النصوص البرمجية والأتمتة: يأتي لينوكس مزوداً بصدفة برمجية محكمة، وcron، والأنابيب، ومنظومة ضخمة من أدوات سطر الأوامر. كل أداة DevOps — Ansible وTerraform وHelm — صُمّمت أولاً للينوكس.
- الاستقرار والقابلية للتوقع: تعمل أنظمة لينوكس عادةً لسنوات دون إعادة تشغيل. كثير من قواعد البيانات الإنتاجية في شركات التكنولوجيا الكبرى لديها أوقات تشغيل مقاسة بمئات الأيام.
- منظومة المصدر المفتوح: المنظومة السحابية بأكملها (Kubernetes وetcd وcontainerd وPrometheus وGrafana) مفتوحة المصدر وطبيعية في بيئة لينوكس.
نواة لينوكس والانقسام بين فضاء النواة وفضاء المستخدم
كثيراً ما يقول الناس "لينوكس" ويقصدون نظام التشغيل بأكمله، لكن لينوكس تقنياً هو النواة فحسب — القطعة الجوهرية من البرمجيات التي تُدير موارد العتاد. كل شيء آخر (الصدفة، أدوات نظام الملفات، مدير الحزم، نظام Init) هو برمجيات فضاء المستخدم التي تعمل فوق النواة.
فهم هذا الانقسام ليس ترفاً أكاديمياً — بل يؤثر مباشرة على كيفية تشخيص مشاكل الإنتاج وكيفية عمل الحاويات:
- تتولى النواة جدولة المعالج، وإدارة الذاكرة، وتعريفات الأجهزة، والشبكات، ونداءات النظام.
- تُرسل عمليات فضاء المستخدم نداءات نظام (مثل
read()وwrite()وfork()وsocket()) لطلب تنفيذ أعمال مميزة من النواة. - تُشغّل حاوية Docker فضاء مستخدم خاصاً بها لكنها تشترك في نواة المضيف. لهذا السبب الحاوية ليست جهازاً افتراضياً — النواة غير معزولة، بل مُعزول فضاء المستخدم فقط.
توزيعات لينوكس: اختيار التوزيع المناسب
توزيعة لينوكس تجمع النواة مع مجموعة منتقاة من أدوات فضاء المستخدم، ومدير حزم، وضبط افتراضي، ودورة دعم محددة. النواة نفسها متطابقة في جميع التوزيعات؛ الاختلافات تكمن في الأدوات وبيئة الاستخدام المستهدفة.
في بيئات DevOps الإنتاجية ستصادف في الأساس ثلاث عائلات:
- Debian/Ubuntu: مدير الحزم
apt. Ubuntu LTS (22.04، 24.04) هو الخيار السائد لأجهزة VM السحابية في معظم الشركات المتوسطة والكبيرة، وهو الصورة الافتراضية على AWS وGCP وAzure. توثيق مجتمعي ممتاز. - RHEL/CentOS/Amazon Linux: مدير الحزم
yum/dnf. RHEL (Red Hat Enterprise Linux) هو المعيار في القطاعات المنظَّمة (المالية والصحية) نظراً لدورة دعم مدتها 10 سنوات وشهادة FIPS. Amazon Linux 2023 متوافق مع RHEL وهو الافتراضي للأحمال الأصيلة على AWS. - Alpine Linux: مدير الحزم
apk. يُختار تقريباً حصرياً كصور Docker الأساسية بسبب بصمته الصغيرة (~5 ميغابايت). يستخدمmusl libcبدلاً منglibc، مما يُسبب أحياناً مشاكل توافق دقيقة مع الملفات الثنائية المُصرَّفة مسبقاً.
فحص ما تعمل عليه
على أي خادم جديد، أول ما يفعله مهندس DevOps هو التعرف على نظام التشغيل وإصدار النواة والمعمارية. هذه الأوامر الثلاثة تعطيك الصورة الكاملة:
إصدار النواة مهم حين تُثبّت وحدات نواة (مثل أدوات المراقبة المبنية على eBPF كـ Cilium أو Falco)، أو حين تكون ثغرة أمنية خاصة بإصدار نواة معين وتحتاج للتحقق من أن أسطولك مُرقَّع.
كيف غيّرت السحابة عمليات لينوكس
في حقبة ما قبل السحابة، كان "إعداد خادم لينوكس" يعني المشي إلى الرف وإدخال مثبّت USB والانتظار. اليوم، في مؤسسة DevOps ناضجة، لا أحد يُثبّت نظام تشغيل يدوياً. بدلاً من ذلك:
- الصور: يحتفظ مزودو السحابة بصور AMI (AWS) أو images (GCP/Azure) منتقاة ومُقواة. تُشغّل من صورة معروفة الجودة ولا تعدّل الأساس أبداً — إن احتجت تغييراً، احرق صورة جديدة باستخدام Packer.
- البنية التحتية الثابتة: تُعامَل الخوادم كماشية لا كحيوانات أليفة. VM المعطوب يُحذف ويُستبدل من نفس الصورة، لا يُدخل عليه SSH ويُصلَح.
- User-data / cloud-init: الإعداد الخفيف (تثبيت عميل، تعيين اسم مضيف، إضافة مفاتيح SSH) يحدث عند الإقلاع الأول عبر cloud-init، لا بخطوات يدوية.
لماذا يهم هذا كل ما يأتي بعده
كل موضوع في هذه الدورة — برمجة الصدفة، وإدارة العمليات، والشبكات، والحاويات، و CI/CD — يفترض أنك تعمل على لينوكس. حين تتعطل حاوية، تقرأ سجلات نواة لينوكس. حين يكون خادم الويب بطيئاً، تفحص مخازن الشبكة في لينوكس. حين تفشل عملية نشر، تتتبعها عبر سجلات journalد systemd. النموذج الذهني الذي تبنيه في هذه السلسلة هو نموذج التشغيل لأنظمة الإنتاج في Google وAmazon وMeta وكل شركة ناشئة سحابية تسير على خطاهم.
ابدأ بمعرفة أي لينوكس تعمل عليه، وأي إصدار نواة يعمل، وما إذا كان النظام يتصرف كما هو متوقع. هذا الانضباط — لاحظ أولاً، تصرف ثانياً — هو أساس العمليات الموثوقة.