دليل مجاني
من UNIX إلى Linux: التاريخ الذي يفسّر كل شيء
القصة التي تشرح لماذا يعمل لينكس بهذه الطريقة، في 7 فصول. للقراءة عبر الإنترنت أو للحفظ بصيغة PDF.
الفهرس
الفصل 1
من Multics إلى UNIX (1964-1973)
الهدف
أن تفهم كيف وُلد UNIX، جدّ Linux، ولماذا ما زالت أفكار مبتكريه، التي يزيد عمرها على خمسين سنة، تفسّر الطريقة التي ستعمل بها اليوم على خادم (serveur) يعمل بنظام Linux.
الخلاصة
- Multics (انطلق سنة 1964) كان مشروع نظام طموحًا جدًّا؛ وقد انسحبت منه مختبرات Bell التابعة لشركة AT&T سنة 1969.
- في السنة نفسها كتب كين تومسون (Ken Thompson) نظامًا صغيرًا على حاسوب PDP-7: تلك كانت بداية UNIX.
- ابتكر دينيس ريتشي (Dennis Ritchie) لغة C؛ وفي سنة 1973 أُعيدت كتابة قلب UNIX بلغة C، فأصبح قابلًا للنقل (portable) من حاسوب إلى آخر.
- ظهرت الأنابيب (
|) سنة 1973: نركّب برامج صغيرة لننجز بها أعمالًا كبيرة. - فلسفة UNIX — «البرنامج يؤدي مهمة واحدة ويتقنها»، و«كل شيء ملف»، و«النص لغة مشتركة» — ما زالت في صميم Linux.
1. السياق: حواسيب بحجم غرفة
في بداية الستينيات كان الحاسوب يشغل قاعة كاملة، ويكلّف ملايين الدولارات، ولا يخدم إلا شخصًا واحدًا في كل مرة. كان المبرمج يُعدّ برنامجه على بطاقات مثقّبة، ويسلّمها في الشبّاك، ثم يعود لاستلام النتيجة… في اليوم التالي. فاصلة منسيّة واحدة كانت كافية لضياع يوم كامل.
الفكرة التي كانت تشغل الباحثين آنذاك تسمّى تقاسم الوقت (time-sharing): ينتقل الحاسوب بسرعة كبيرة من مستخدم إلى آخر، بسرعة تجعل كل واحد يشعر بأن الآلة له وحده، أمام طرفيّته (terminal) الخاصة.
وهذا بالضبط ما يفعله خادم Linux اليوم: عشرات الأشخاص ومئات البرامج يستعملونه «في الوقت نفسه». عندما تكتب who أو ps خلال هذه الدورة، سترى الإرث المباشر لهذه الفكرة.
2. Multics: المشروع الكبير المخيّب للآمال (1964-1969)
في سنة 1964 أطلق ثلاثة شركاء مشروع Multics (Multiplexed Information and Computing Service):
| الشريك | الدور |
|---|---|
| MIT (مشروع MAC) | البحث الجامعي |
| General Electric | العتاد (الحاسوب GE-645) |
| مختبرات Bell | مختبر البحث التابع لشركة AT&T، مشغّل الهاتف الأمريكي |
أراد Multics أن يفعل كل شيء: أن يخدم مئات المستخدمين، وأن يحمي كل ملف، وأن يعمل دون توقف أبدًا، مثل شبكة الكهرباء. وكانت كثير من أفكاره ممتازة: شجرة من المجلدات، وصلاحيات وصول على الملفات، ومفسّر أوامر (shell) هو برنامج كسائر البرامج.
لكن المشروع تأخّر، وأصبح ثقيلًا ومكلفًا. وفي سنة 1969 قرّرت مختبرات Bell الانسحاب منه. استمر Multics في أماكن أخرى (أُوقف آخر نظام Multics عامل سنة 2000)، لكن باحثي مختبرات Bell وجدوا أنفسهم بلا مشروع… ورؤوسهم مليئة بالأفكار الجيدة.
3. سنة 1969: كين تومسون وحاسوب PDP-7
أراد كين تومسون أن يواصل العمل على نظام خاص به. فاستعاد حاسوب PDP-7 من صنع شركة DEC، وهو حاسوب صغير كان متجاوزًا حتى في ذلك الوقت، ومركونًا في زاوية من زوايا المختبر.
يُروى كثيرًا أن تومسون أراد أيضًا أن يشغّل عليه لعبة كتبها بنفسه، هي Space Travel، وهي محاكاة للمجموعة الشمسية. ولهذا كان يحتاج إلى نظام ملفات، ووسيلة لتشغيل البرامج، ومحرّر نصوص، ومفسّر أوامر. وفي صيف 1969 كتب ذلك كله في بضعة أسابيع، بلغة التجميع (assembleur).
وسرعان ما انضم إليه دينيس ريتشي، ثم زملاء آخرون: دوغ ماكلروي (Doug McIlroy)، وجو أوسانا (Joe Ossanna)، وبراين كيرنيغان (Brian Kernighan)…
من أين جاء الاسم؟ اقترح أحد الزملاء (يُنسب الاقتراح عادةً إلى براين كيرنيغان) اسم «Unics»، في إشارة طريفة إلى Multics: فبينما أراد Multics أن يفعل كل شيء بصيغة «multi» (المتعدّد)، يكتفي هذا النظام الصغير بفعل الأشياء ببساطة. ثم صار الاسم يُكتب UNIX.
تفصيل سيفيدك: أنظمة UNIX و Linux تحسب الوقت بالثواني منذ 1 يناير 1970 على الساعة 0 (UTC)، وهو تاريخ اختير في تلك الحقبة. يسمّى هذا التاريخ «عصر UNIX» (epoch). جرّب
date +%s: العدد الكبير الذي يظهر هو عدد الثواني التي مضت منذ ذلك اليوم.
4. من PDP-7 إلى PDP-11: UNIX يجد مكانه (1970-1972)
للحصول على حاسوب أقوى، قطع الفريق وعدًا للإدارة: كتابة نظام لمعالجة النصوص لمصلحة براءات الاختراع في AT&T. وفي 1970-1971 انتقل UNIX إلى حاسوب PDP-11، وهو حاسوب أكثر انتشارًا بكثير. فأصبحت مصلحة براءات الاختراع أول «زبون» لنظام UNIX.
في نوفمبر 1971 صدر أول دليل لنظام UNIX (الإصدار الأول First Edition)، ثم توالت الإصدارات التالية كل بضعة أشهر. وشكل هذا الدليل — صفحة لكل أمر، فيها NAME و SYNOPSIS و DESCRIPTION — هو شكل صفحات man التي ستقرؤها على Linux.
5. لغة C: القرار الذي غيّر كل شيء (1972-1973)
في ذلك العصر كان نظام التشغيل يُكتب بلغة التجميع، وهي لغة خاصة بكل طراز من المعالجات. والنتيجة: نظام مكتوب لحاسوب PDP-7 لا يعمل إلا على PDP-7. وتغيير الحاسوب يعني إعادة كتابة كل شيء.
ونسب لغة C يشبه شجرة عائلة:
BCPL (Martin Richards, Cambridge, 1966-1967)
└── B (Ken Thompson, 1969-1970) — نسخة مبسّطة من BCPL
└── C (Dennis Ritchie, 1971-1973) — لغة B مع أنواع البيانات
ابتكر ريتشي لغة C في بداية السبعينيات. وهي قريبة من الآلة بما يكفي لكتابة نظام تشغيل، وعامّة بما يكفي لتُترجَم (compilée) على معالجات أخرى.
وفي سنة 1973 أعاد الفريق كتابة نواة UNIX بلغة C (الإصدار الرابع Fourth Edition، نوفمبر 1973). وكان ذلك سابقة بهذا الحجم: لم يبقَ بلغة التجميع إلا جزء صغير. ومنذ ذلك الحين أصبح نقل UNIX إلى حاسوب جديد يعني، في الأساس، كتابة مترجم (compilateur) للغة C لتلك الآلة.
وهذا القرار يفسّر لماذا يعمل Linux اليوم بالسهولة نفسها على خادم Intel وعلى هاتف ARM وعلى حاسوب فائق: فنواته هي أيضًا مكتوبة أساسًا بلغة C.
وفي سنة 1978 نشر كيرنيغان وريتشي كتاب The C Programming Language، المرجع الذي ما زال المبرمجون يسمّونه «K&R».
6. الأنابيب: فكرة دوغ ماكلروي (1973)
كان دوغ ماكلروي، رئيس الفريق، يطالب منذ سنوات بوسيلة لوصل البرامج بعضها ببعض، مثل خراطيم السقي. فنفّذها تومسون في ليلة واحدة سنة 1973 (الإصدار الثالث Third Edition): إنه الأنبوب (pipe)، ويُرمز له بـ |.
مثال: تريد أن تعرف كم مستخدمًا على خادمك يستعمل الصدفة bash.
# بدون أنبوب، سنحتاج إلى برنامج خاص لهذا السؤال بالتحديد.
# مع الأنبوب، نركّب ثلاث أدوات صغيرة:
cat /etc/passwd | grep bash | wc -l
# cat : يقرأ ملف الحسابات
# grep : يحتفظ بالأسطر التي تحتوي على « bash »
# wc -l: يعدّ الأسطر المتبقية
لم يُكتب أيّ من هذه البرامج الثلاثة للإجابة عن هذا السؤال. لكنها مجتمعةً تجيب عنه. وهنا تكمن قوة UNIX كلها.
7. فلسفة UNIX في أربع قواعد
لخّص ماكلروي وآخرون هذه المبادئ لاحقًا؛ وهي ما زالت أفضل بوصلة لفهم Linux.
| المبدأ | معناه | مثال على Linux |
|---|---|---|
| البرنامج يؤدي مهمة واحدة ويتقنها | أدوات صغيرة ومتخصصة بدل برنامج عملاق | ls يعرض، sort يرتّب، grep يبحث |
| البرامج تعمل معًا | مُخرَج أحدها يصبح مُدخَل الآخر | ps aux | grep httpd |
| النص هو اللغة المشتركة | الإعدادات والمبادلات بنص مقروء | /etc/passwd، /etc/hosts، ملفات السجلات (logs) |
| كل شيء ملف | الأقراص والطرفيات ومعلومات النواة: نقرؤها ونكتب فيها كما نفعل مع الملفات | /dev/sda، /proc/version، /proc/cpuinfo |
cat /proc/cpuinfo # المعالج، معروضًا كملف نصي بسيط
cat /proc/version # إصدار النواة، بالطريقة نفسها
ls -l /dev/null # « ملف » خاص يبتلع كل ما يُرسَل إليه
وبالنسبة إلى مدير الأنظمة، النتيجة ملموسة جدًّا: كل شيء تقريبًا يُضبط بتعديل ملفات نصية، وكل شيء تقريبًا يُشخَّص بقراءة ملفات نصية. لا حاجة إلى أدوات رسومية.
8. 1973-1974: UNIX يخرج من المختبر
في أكتوبر 1973 قدّم ريتشي وتومسون نظام UNIX في مؤتمر جامعي حول أنظمة التشغيل (SOSP). ونُشر المقال في يوليو 1974 في مجلة Communications of the ACM. فاكتشفت الجامعات هذا النظام الأنيق وطلبت تجربته.
غير أن AT&T، بسبب اتفاق لمكافحة الاحتكار وقّعته سنة 1956 مع الحكومة الأمريكية، لم يكن يحق لها الاتجار في المعلوميات. فكانت توزّع UNIX على الجامعات بثمن رمزي، مع الشيفرة المصدرية (code source). فدرسه آلاف الطلبة وعدّلوه وحسّنوه. وهذه نقطة انطلاق الدرس التالي: عائلة UNIX الكبيرة.
في سنة 1983 نال تومسون وريتشي جائزة تورينغ (Turing)، وهي بمثابة جائزة نوبل في المعلوميات، تقديرًا لنظام UNIX. توفي دينيس ريتشي في أكتوبر 2011؛ أما كين تومسون فقد شارك بعد ذلك، في شركة Google، في ابتكار لغة Go.
9. الخط الزمني للدرس
1964 انطلاق Multics (MIT و General Electric ومختبرات Bell)
1969 مختبرات Bell تنسحب من Multics — تومسون يكتب UNIX على PDP-7
1970 الانتقال إلى PDP-11 — اسم « UNIX » يفرض نفسه
1971 أول دليل لنظام UNIX (First Edition، نوفمبر)
1972 ولادة لغة C (دينيس ريتشي)
1973 الأنابيب « | » — إعادة كتابة النواة بلغة C (Fourth Edition)
1974 مقال في Communications of the ACM: UNIX يصبح معروفًا
1983 جائزة تورينغ لتومسون وريتشي
أفكار شائعة خاطئة
- «صمّمت شركة كبرى UNIX لتبيعه.» لا: إنه مشروع باحثَين اثنين، شبه سرّي في بدايته، على آلة مستعادة. بل إن AT&T لم يكن بإمكانها حتى أن تبيعه.
- «Linux نسخة من UNIX.» ليس تمامًا. Linux يشبه UNIX ويحترم قواعده، لكنه لا يحتوي على أي سطر من شيفرة UNIX: لقد أُعيدت كتابته من الصفر (الدرس 0.4).
- «كل شيء ملف» تعني أن كل شيء مخزّن على القرص. لا: الملف
/proc/versionغير موجود على القرص. النواة تصنعه في اللحظة التي تقرؤه فيها. ما يشبه الملف هو طريقة الوصول إليه. - «لغة C لغة قديمة مهجورة.» نواة Linux، ومعظم الأدوات الأساسية، وقواعد بيانات مثل PostgreSQL، كلها مكتوبة بلغة C. وما زالت من أكثر اللغات استعمالًا في العالم.
التطبيق العملي (Lab)
آلتك الأولى تنتظرك في الطرفية، بنظام Rocky Linux 9. ستجعلها تتكلم، بالعادات الموروثة عن UNIX:
uname -s # اسم النظام
cat /proc/version # « كل شيء ملف »: النواة تصف نفسها في ملف
cat /etc/os-release # بطاقة تعريف التوزيعة
cat /etc/os-release | wc -l # أنبوب: نقرأ، ثم نعدّ
أنجز المهام: حفظ اسم النظام، ونسخ وصف النواة، وعدّ أسطر باستعمال أنبوب، ثم إيجاد سنة ولادة UNIX. بعد ذلك انقر على تحقّق: الموقع يراقب عملك تلقائيًّا.
اختبار قصير
- ما المؤسسات الثلاث التي كانت وراء مشروع Multics؟
- على أي حاسوب كتب كين تومسون أول نسخة من UNIX، وفي أي سنة؟
- لماذا كانت إعادة كتابة نواة UNIX بلغة C (سنة 1973) حاسمة؟
- ماذا يفعل الأمر
cat /etc/passwd | grep bash | wc -l، وأي مبدأ من مبادئ UNIX يوضّحه؟ - لماذا كانت AT&T توزّع UNIX على الجامعات بدل أن تبيعه؟
الأجوبة
- MIT، و General Electric، ومختبرات Bell (AT&T).
- على حاسوب PDP-7 من صنع DEC، سنة 1969.
- بعد كتابته بلغة C أصبح UNIX قابلًا للنقل: لتشغيله على آلة أخرى يكفي في الأساس مترجم للغة C، بدل إعادة كتابة كل شيء بلغة التجميع.
- يعدّ حسابات النظام التي يحتوي سطرها على « bash ». ويوضّح مبدأ تركيب برامج صغيرة متخصصة يربط بينها أنابيب.
- كان اتفاق لمكافحة الاحتكار يعود إلى سنة 1956 يمنع AT&T من الاتجار في المعلوميات؛ فكانت تنشره بثمن رمزي مع شيفرته المصدرية.
المصادر المرجعية: مقالات D. M. Ritchie و K. Thompson المذكورة في رأس الدرس، و Debian Reference (رخصة حرة). نص أصلي من MasterLinux.
الفصل 2
عائلة UNIX — BSD و System V ومعيار POSIX
الهدف
أن تفهم كيف انقسم UNIX إلى عدة فروع متنافسة، ولماذا أصبح معيار مشترك (POSIX) ضروريًّا، ولماذا يعمل جزء كبير مما تتعلمه على Linux أيضًا على macOS أو FreeBSD.
الخلاصة
- في جامعة Berkeley أصبح UNIX هو BSD: هناك وُلدت شبكة TCP/IP، ومحرّر النصوص
vi، والصدفةcsh. - بعد تفكيك AT&T (1984)، صارت الشركة تبيع نسختها الرسمية: System V.
- أنشأ كل مُصنِّع نظام UNIX خاصًّا به ومدفوعًا (Solaris و AIX و HP-UX…)، غير متوافق مع الأنظمة الأخرى: إنها «حروب UNIX».
- معيار POSIX (1988) يحدّد ما يجب أن يوفّره نظام «من نوع UNIX»؛ و Linux يتبعه عن قرب.
- قضية قضائية (1992-1994) جمّدت BSD في اللحظة نفسها التي وُلد فيها Linux، فدفعت كثيرًا من المطوّرين نحو Linux.
1. جامعة Berkeley تتسلّم UNIX (1974-1977)
كما رأيت في الدرس 0.1، كانت AT&T توزّع UNIX على الجامعات مع شيفرته المصدرية. وقد ثبّتته جامعة كاليفورنيا في بيركلي (Berkeley) سنة 1974. بل إن كين تومسون قضى فيها سنة تفرّغ (1975-1976) أستاذًا زائرًا.
وبدأ طالب اسمه بيل جوي (Bill Joy) في تحسين النظام. وفي سنة 1978 نشر أول مجموعة من البرامج: Berkeley Software Distribution، أو BSD. في البداية كانت مجرد إضافة إلى UNIX الخاص بـ AT&T؛ ثم أصبحت شيئًا فشيئًا نظامًا كاملًا.
ما قدّمه BSD، وما ستستعمله على Linux:
| إسهام Berkeley | ما ستفعله به على Linux |
|---|---|
محرّر النصوص vi (بيل جوي، 1976) |
vi وخليفته vim موجودان على كل الخوادم تقريبًا |
الصدفة csh |
أقل استعمالًا اليوم، لكن سجلّ الأوامر والتحكم في المهام (jobs، fg، bg) يعودان إلى تلك الحقبة |
| حزمة الشبكة TCP/IP و sockets (4.2BSD، 1983) | الشبكة الحديثة كلها: ssh، وخوادم الويب، والإنترنت بأكمله |
| نظام الملفات السريع (FFS) | فكرة الكتل و inodes التي أخذتها ext2 و ext3 و ext4 |
وكان وصول TCP/IP منعطفًا: فالوكالة العسكرية الأمريكية DARPA، التي كانت تموّل الإنترنت المستقبلي، اختارت BSD نظامًا مرجعيًّا في بداية الثمانينيات. لقد كبر UNIX والإنترنت معًا.
2. AT&T تدخل التجارة: System V (1983)
في سنة 1982 نصّ اتفاق مع القضاء الأمريكي على تفكيك AT&T، وهو ما دخل حيّز التنفيذ في 1 يناير 1984. وفي المقابل، حصلت الشركة أخيرًا على حق بيع المعلوميات.
فطرحت AT&T في السوق نسختها الرسمية من UNIX: System III (1982)، ثم System V (1983)، مع «إصداراته» المتتالية (Release 2, 3, 4). أما الإصدار SVR4 (System V Release 4، أواخر الثمانينيات)، الذي طُوّر بالتعاون مع Sun، فقد جمع جزءًا كبيرًا من أفكار BSD و System V.
وعدد من عادات Linux يأتي من System V:
ls /etc/init.d/ # سكربتات الإقلاع « على طريقة System V » (RHEL 6، و Debian القديم)
ps -ef # صيغة System V للأمر ps (مع شرطة)
ps aux # صيغة BSD للأمر ps (بدون شرطة) — و Linux يقبل الاثنتين!
وكون الأمر ps يقبل أسلوبين من الخيارات ذكرى حيّة لهذا الأصل المزدوج.
3. أنظمة UNIX التجارية (الثمانينيات والتسعينيات)
أخذ كل مُصنِّع كبير ترخيص UNIX وأنشأ نسخته الخاصة، المكيّفة مع آلاته (والمبيعة معها):
| النظام | الناشر | الأساس | هل ما زال مستعملًا؟ |
|---|---|---|---|
| SunOS ثم Solaris | Sun Microsystems (اشترتها Oracle سنة 2010) | BSD، ثم System V R4 (Solaris، 1992) | في بعض الشركات الكبرى |
| AIX | IBM (ابتداءً من 1986) | System V | نعم، على خوادم IBM Power (البنوك، شركات التأمين) |
| HP-UX | Hewlett-Packard | System V | في نهاية عمره |
| IRIX | Silicon Graphics | System V | متروك (سنوات الألفين) |
| Xenix | Microsoft، ثم SCO | System V | متروك |
| Ultrix، Tru64 | DEC | BSD، ثم OSF/1 | متروكان |
وحالة Sun مثيرة للاهتمام: فقد شارك في تأسيس الشركة سنة 1982… بيل جوي نفسه، صاحب BSD. وكانت محطات Sun هي الآلات المرجعية في الجامعات وفي الإنترنت خلال الثمانينيات والتسعينيات.
4. «حروب UNIX» (1988-1993)
كل واحد من أنظمة UNIX هذه يضيف أوامره وخياراته وأدواته الخاصة. فالبرنامج المكتوب لنظام AIX يجب تعديله ليعمل على HP-UX. ومدير الأنظمة المكوَّن على Solaris يضيع على IRIX.
وفي أواخر الثمانينيات تواجه معسكران:
AT&T + Sun IBM و DEC و HP وآخرون
(System V Release 4, 1988-1989) (Open Software Foundation, 1988)
« UNIX International » « OSF/1 »
\ /
\___ عدم توافق، قضايا، ___/
زبائن ضائعون
وبينما كان المصنّعون يتنازعون، كان منافس يتقدّم بهدوء على الحواسيب الشخصية: Microsoft Windows NT (1993). ودون أن يتوقع أحد ذلك بعد، بدأ طالب فنلندي سنة 1991 في كتابة نواة على حاسوبه الشخصي…
5. POSIX: القاعدة المشتركة (1988)
للخروج من الفوضى، نشرت هيئة التقييس IEEE سنة 1988 معيار POSIX (IEEE 1003.1). والاسم، الذي اقترحه ريتشارد ستولمان (الذي ستلتقي به في الدرس 0.3)، يعني تقريبًا Portable Operating System Interface (واجهة نظام تشغيل قابلة للنقل)، مع حرف «X» إشارةً إلى UNIX.
يصف POSIX ما يجب أن يوفّره نظام من نوع UNIX، دون أن يحدّد طريقة برمجته:
| يحدّد POSIX… | أمثلة |
|---|---|
| استدعاءات النظام (appels système) التي يمكن للبرامج استعمالها | فتح ملف، إنشاء عملية (processus) |
| لغة الصدفة | if، for، case، وإعادات التوجيه > و ` |
| الأوامر الأساسية وخياراتها | ls، cp، grep، sed، awk، find |
| الصلاحيات والإشارات (signaux) | chmod 755، kill -9 |
ولاحقًا نشرت هيئة The Open Group (المالكة لعلامة «UNIX» منذ التسعينيات) مواصفة Single UNIX Specification. ولا يحق إلا للأنظمة المعتمَدة التي تدفع الترخيص أن تحمل رسميًّا اسم «UNIX». وهذا حال macOS (معتمَد منذ الإصدار 10.5، سنة 2007)، و AIX، و Solaris.
Linux غير معتمَد بصفة UNIX (فالاعتماد مكلف ولا يضيف شيئًا لمشروع حر)، لكنه يتبع POSIX عن قرب شديد. ولهذا نقول إن Linux نظام «من نوع UNIX» (Unix-like).
getconf _POSIX_VERSION # أي إصدار من POSIX؟ مثال: 200809 = طبعة 2008
نصيحة عملية لمسارك المهني كله: عندما تكتب سكربتًا يجب أن يعمل في كل مكان، اكتبه بلغة sh المتوافقة مع POSIX بدل الحيل الخاصة بـ bash. وعلى Debian و Ubuntu، الملف /bin/sh هو في الواقع dash، وهي صدفة POSIX مصغّرة: فقد يفشل فيها سكربت «bash» يُشغَّل بالأمر sh.
6. القضية التي عطّلت BSD (1992-1994)
في أواخر الثمانينيات شرع مطوّرو Berkeley في استبدال كل الشيفرة الأصلية الخاصة بـ AT&T داخل BSD، حتى يتمكنوا من نشره بحرية. وفي سنة 1991 صدر Net/2، وكان حرًّا بالكامل تقريبًا. وتفرّعت عنه مشاريع: 386BSD (1992) للحواسيب الشخصية، وشركة BSDi التي كانت تبيع نسخة تجارية.
وفي سنة 1992 رفعت USL (Unix System Laboratories، فرع UNIX التابع لـ AT&T) دعوى قضائية ضد BSDi، ثم ضد جامعة كاليفورنيا: بدعوى أن BSD ما زال يحتوي على شيفرة وأسرار تابعة لـ AT&T. وطوال سنتين لم يكن أحد يعرف هل سيستمر توزيع BSD. فتردّدت الشركات في استعماله.
وفي سنة 1993 اشترت Novell شركة USL. وانتهت القضية باتفاق في بداية 1994: سُحبت بعض الملفات أو عُدّلت، ونشرت Berkeley إصدار 4.4BSD-Lite (1994)، الخالي من أي شيفرة تابعة لـ AT&T.
لكن خلال سنتَي الغموض هاتين، تقدّم نظام آخر، حر وبلا أي خطر قانوني، بسرعة كبيرة: إنه Linux. وقد قالها لينوس تورفالدس (Linus Torvalds) بنفسه: لو كان نظام BSD حر للحواسيب الشخصية متاحًا في ذلك الوقت، لربما لم يكتب نواته أبدًا.
7. أحفاد BSD اليوم
Net/2 (1991) و 386BSD (1992)، ثم 4.4BSD-Lite (1994)
├── FreeBSD (1993) ── خوادم، Netflix (بث الفيديو)، أساس نظام أجهزة PlayStation الحديثة
├── NetBSD (1993) ── « يعمل على كل شيء »، قابل للنقل جدًّا
│ └── OpenBSD (1995) ── الأمان أولًا؛ أنشأ OpenSSH (1999)
└── NeXTSTEP / Darwin ── أساس macOS و iOS (مع النواة المصغّرة Mach)
وُلد FreeBSD و NetBSD سنة 1993 من 386BSD؛ وبعد اتفاق 1994 أُعيد بناؤهما على 4.4BSD-Lite.
فربما تستعمل BSD من دون أن تعلم: macOS و iOS ينحدران منه، و OpenSSH، الذي ستستعمله على كل خادم Linux، يطوّره فريق OpenBSD.
8. الخط الزمني للدرس
1974 جامعة Berkeley تتسلّم UNIX
1978 أول توزيعة BSD (بيل جوي)
1982 تأسيس Sun؛ اتفاق تفكيك AT&T؛ System III
1983 System V (AT&T)؛ 4.2BSD يأتي بـ TCP/IP
1984 تفكيك AT&T: UNIX يصبح منتجًا تجاريًّا
1986 AIX (IBM)
1988 POSIX (IEEE 1003.1)؛ إنشاء OSF؛ بداية « حروب UNIX »
1991 Net/2؛ لينوس تورفالدس يبدأ Linux
1992 قضية USL ضد BSDi؛ Solaris 2 (على أساس System V R4)
1993 FreeBSD و NetBSD؛ Novell تشتري USL
1994 الاتفاق: 4.4BSD-Lite، خالٍ من شيفرة AT&T
أخطاء متكررة
- الاعتقاد بأن أمرًا رأيته على macOS سيعمل بالطريقة نفسها على Linux. كلاهما يتبع POSIX، لكن الخيارات تختلف في الغالب: الأمر
sed -iيُكتبsed -i ''على macOS (أدوات BSD)، وsed -iعلى Linux (أدوات GNU). - الخلط بين «UNIX» و«من نوع UNIX». «UNIX» علامة تجارية محفوظة للأنظمة المعتمَدة. أما Linux و FreeBSD فهما «من نوع UNIX».
- كتابة
#!/bin/shفي رأس سكربت مليء بصيغ bash. على Debian و Ubuntu،shهوdash: فالمصفوفات أو[[ … ]]تفشل فيه. اكتب#!/bin/bashإن كنت تستعمل bash. - الظن بأن سكربتات
/etc/init.d/ما زالت مستعملة دائمًا. إنها من إرث System V؛ ومنذ RHEL 7 و Debian 8 أصبح systemd هو الذي يشغّل الخدمات.
التطبيق العملي (Lab)
هذه المرة أنت على Debian 12. ستتحقق بنفسك من إرث POSIX في النظام:
getconf _POSIX_VERSION # إصدار POSIX المتَّبع
ls -l /bin/sh # إلى أي صدفة يشير /bin/sh ؟
ps -ef | head -n 3 # صيغة System V
ps aux | head -n 3 # صيغة BSD: النتيجة نفسها تقريبًا
المهام: حفظ إصدار POSIX، واكتشاف الصدفة المختبئة وراء /bin/sh، وتدوين الفرعين الكبيرين لنظام UNIX. ثم انقر على تحقّق.
اختبار قصير
- ما الفرعان الكبيران لنظام UNIX، ومن أنشأ كل واحد منهما؟
- اذكر إسهامين كبيرين لـ BSD ستستعملهما على Linux.
- ما هو POSIX، ولماذا هو مفيد لمدير الأنظمة؟
- هل يحق لـ Linux أن يحمل رسميًّا اسم «UNIX»؟ لماذا؟
- لماذا استفاد Linux من قضية USL ضد BSDi (1992-1994)؟
الأجوبة
- BSD، الذي أُنشئ في جامعة Berkeley (بيل جوي وزملاؤه)، و System V، النسخة التجارية لشركة AT&T.
- حسب الاختيار: حزمة الشبكة TCP/IP و sockets، ومحرّر النصوص
vi، والصدفةcsh(سجلّ الأوامر، التحكم في المهام)، ونظام الملفات السريع، ومؤخرًا OpenSSH (OpenBSD). - معيار (IEEE، 1988) يحدّد الأوامر والصدفة واستدعاءات النظام في نظام من نوع UNIX. والسكربت أو المهارة المتوافقة مع POSIX تعمل على Linux و BSD و macOS…
- لا: «UNIX» علامة محفوظة للأنظمة المعتمَدة من طرف The Open Group. يتبع Linux معيار POSIX لكنه غير معتمَد: إنه نظام «من نوع UNIX».
- طوال سنتين كان مستقبل BSD القانوني غامضًا؛ فاتجه المطوّرون والشركات نحو Linux، الحر والخالي من أي خطر قانوني.
المصادر المرجعية: M. K. McKusick (Open Sources، 1999)، ووثائق تقييس POSIX و The Open Group، و Debian Reference (رخصة حرة). نص أصلي من MasterLinux.
الفصل 3
مشروع GNU والبرمجيات الحرة
الهدف
أن تفهم من أين تأتي معظم الأدوات التي ستستعملها على Linux، وما معنى «البرمجيات الحرة» (logiciel libre)، وأن تعرف كيف تقرأ الرخص الكبرى (GPL و BSD و MIT) التي ستصادفها في عملك.
الخلاصة
- في سنة 1983 أعلن ريتشارد ستولمان (Richard Stallman) عن مشروع GNU: نظام كامل من نوع UNIX، حر بالكامل.
- في سنة 1985 أسّس مؤسسة البرمجيات الحرة (Free Software Foundation، اختصارًا FSF). ثم جاءت رخصة GPL سنة 1989.
- البرنامج الحر يضمن أربع حريات: الاستعمال، والدراسة، وإعادة التوزيع، والتعديل مع مشاركة التعديلات.
- رخصة GPL من نوع copyleft (الحقوق المتروكة): من يعيد توزيع برنامج GPL معدَّل يجب أن يوزّعه بدوره تحت GPL. أما رخصتا BSD و MIT فهما متساهلتان (permissives): يمكنك أن تفعل بالبرنامج تقريبًا ما تشاء.
- في سنة 1998 ظهر مصطلح المصدر المفتوح (open source): الواقع التقني نفسه، بخطاب موجّه أكثر نحو الشركات.
1. المشكلة: الشيفرة تُغلق (أواخر السبعينيات)
في السنوات الأولى للمعلوميات كان المبرمجون يتبادلون شيفراتهم بشكل طبيعي، كما يتبادل الباحثون نتائجهم. بل إن UNIX نفسه كان يُتداول مع شيفرته المصدرية في الجامعات (الدرس 0.1).
ومع مطلع الثمانينيات تغيّر كل شيء: أدرك الناشرون أن البرنامج يمكن أن يُباع منفصلًا عن الآلة. فأصبحت الشيفرة المصدرية سرًّا تجاريًّا. وصار المستخدمون يتسلّمون برامج مترجَمة مسبقًا، لا يحق لهم دراستها، ولا تصحيحها، ولا مشاركتها.
أما ريتشارد ستولمان، المبرمج في مختبر الذكاء الاصطناعي في MIT، فقد عاش هذا التحوّل باعتباره ظلمًا. وتوضّح ذلك حكاية مشهورة: كانت طابعة مختبره تتعطّل كثيرًا. وعلى الطابعة القديمة كان قد عدّل البرنامج لينبّه المستخدمين عند انحشار الورق. أما الطابعة الجديدة، فقد رفض صانعها أن يعطيه الشيفرة المصدرية. فاستحال إصلاح مشكلة بسيطة في الأصل.
2. سنة 1983: الإعلان عن مشروع GNU
في 27 سبتمبر 1983 أعلن ستولمان على Usenet (جدّ المنتديات) عن مشروع جنوني: كتابة نظام تشغيل كامل، متوافق مع UNIX، وحر بالكامل. وسمّاه GNU، وهو اختصار تكراري (récursif) يعني «GNU's Not Unix» («GNU ليس UNIX»).
لماذا التوافق مع UNIX؟ لأن UNIX مصمَّم تصميمًا جيدًا (الدرس 0.1)، ولأنه مقسَّم إلى برامج صغيرة يمكن إعادة كتابتها واحدًا واحدًا، ولأن المستخدمين سيتمكّنون من الانتقال من نظام إلى آخر دون إعادة تعلّم كل شيء.
بدأ العمل في يناير 1984، حين ترك ستولمان منصبه في MIT حتى لا تتمكّن الجامعة من المطالبة بملكية شيفرته. وفي سنة 1985 نشر بيان GNU (GNU Manifesto) الذي يشرح مقاربته، وأسّس مؤسسة البرمجيات الحرة (FSF) لتمويل المشروع.
3. لبنات GNU التي ستستعملها كل يوم
قطعةً بعد قطعة، أعاد مشروع GNU كتابة أدوات UNIX. وفي أواخر الثمانينيات لم يكن ينقصه شيء تقريبًا:
| أداة GNU | التاريخ | الدور | الأمر |
|---|---|---|---|
| GNU Emacs | 1984-1985 | محرّر نصوص | emacs |
| GCC (GNU C Compiler، واليوم GNU Compiler Collection) | 1987 | مترجم (compilateur): استُعمل لترجمة Linux | gcc |
| Bash (Bourne Again Shell، براين فوكس Brian Fox) | 1989 | الصدفة، متوافقة مع صدفة sh الخاصة بـ Bourne |
bash |
| coreutils (دمج fileutils و textutils و shellutils) | التسعينيات وسنوات الألفين | الأوامر الأساسية | ls، cp، mv، cat، chmod |
| grep و sed و gawk و tar و gzip و find | الثمانينيات والتسعينيات | البحث، والتحويل، والأرشفة | grep، sed، awk، tar |
| glibc | ابتداءً من 1987 | مكتبة C، التي تستعملها جميع البرامج تقريبًا | (غير مرئية، لكنها في كل مكان) |
تحقّق بنفسك:
ls --version | head -n 1 # ls (GNU coreutils) …
bash --version | head -n 1 # GNU bash, version …
grep --version | head -n 1 # grep (GNU grep) …
لكن قطعة أساسية كانت ما تزال ناقصة: النواة (noyau)، أي البرنامج الذي يخاطب العتاد مباشرة. فالنواة التي خطّط لها مشروع GNU، واسمها Hurd (بدأ العمل عليها سنة 1990)، طموحة جدًّا وتتقدّم ببطء. وما زالت إلى اليوم غير مستعملة في بيئات الإنتاج. وهذه القطعة الناقصة هي التي سيوفّرها Linux سنة 1991 (الدرس 0.4).
4. الحريات الأربع
بالنسبة إلى ستولمان، كلمة «free» تتحدث عن الحرية، لا عن الثمن. وعبارته الشهيرة: free كما في «حرية التعبير»، لا كما في «جعة مجانية». وفي العربية لدينا لحسن الحظ كلمتان مختلفتان: حر و مجاني.
يكون البرنامج حرًّا إذا تمتّع مستخدمه بـ الحريات الأربع (مرقّمة ابتداءً من الصفر، كما يليق بأهل المعلوميات):
| الحرية | ما يمكنك فعله | مثال ملموس |
|---|---|---|
| 0 | استعمال البرنامج لأي غرض كان | تثبيت Linux على 200 جهاز صندوق (caisse) في سلسلة متاجر، دون حساب للتراخيص |
| 1 | دراسة طريقة عمله وتكييفه (وهذا يستلزم الشيفرة المصدرية) | قراءة شيفرة خادم ويب لفهم خطأ ما |
| 2 | إعادة توزيع نسخ منه | إعطاء زميل مفتاح USB للتثبيت |
| 3 | تحسين البرنامج ومشاركة تحسيناتك | تصحيح علّة (bug) وإرسال التصحيح إلى المشروع |
يمكن بيع البرنامج الحر: فشركة Red Hat تبيع اشتراكات في RHEL، الذي يتكوّن من برمجيات حرة. والبرنامج المجاني ليس بالضرورة حرًّا: فكثير من التطبيقات المجانية تُخفي شيفرتها.
5. رخصة GPL ومبدأ copyleft (1989)
لضمان هذه الحريات، استعمل ستولمان… حق المؤلف نفسه. فرخصة GNU General Public License (GPL) تقول في جوهرها:
يمكنك استعمال هذا البرنامج ودراسته وتعديله وإعادة توزيعه. لكن إذا أعدت توزيع نسخة معدَّلة، فعليك نشرها تحت الرخصة نفسها، مع شيفرتها المصدرية.
هذا هو مبدأ copyleft (تلاعب لفظي بكلمة copyright): الحرية تنتقل من يد إلى يد، ولا يستطيع أحد مصادرتها في الطريق.
| الإصدار | السنة | ما يجب تذكّره |
|---|---|---|
| GPL v1 | 1989 | الإصدار الأول |
| GPL v2 | 1991 | رخصة نواة Linux (بصيغة «الإصدار 2 فقط») |
| GPL v3 | 2007 | تحمي من براءات الاختراع ومن الأجهزة التي تمنع تثبيت نسخة معدَّلة |
| LGPL | 1991 | نسخة «مخفّفة» للمكتبات: يمكن لبرنامج غير حر أن يستعملها |
| AGPL | 2007 (v3) | توسّع الالتزام ليشمل البرامج المستعملة عن بُعد، عبر الشبكة (تطبيقات الويب) |
نقطة مهمة لمدير الأنظمة: رخصة GPL لا تفرض عليك شيئًا ما دمت لا تعيد التوزيع. يمكنك تعديل برنامج GPL لخوادم شركتك دون نشر أي شيء. (ورخصة AGPL هي الاستثناء: إذا قدّمت الخدمة للعموم عبر الشبكة، فعليك أن تعطي الشيفرة لمستخدميها.)
6. سنة 1998: حركة «المصدر المفتوح»
في يناير 1998 أعلنت الشركة الناشرة لمتصفح Netscape أنها ستنشر شيفرته المصدرية (التي ستصبح Mozilla، ثم Firefox). وكانت تلك صدمة: شركة كبرى تفتح منتجها الرئيسي.
وبعد بضعة أسابيع، في فبراير 1998، اقترحت مجموعة من المطوّرين، من بينهم إريك ريموند (Eric S. Raymond) و بروس بيرنز (Bruce Perens)، مصطلحًا جديدًا: open source («المصدر المفتوح»)، الذي صاغته كريستين بيترسون (Christine Peterson). وأسّسوا مبادرة المصدر المفتوح (Open Source Initiative، اختصارًا OSI). وكانت فكرتهم: أن يحدّثوا الشركات عن الجودة والموثوقية والتكاليف، بدل الأخلاق والحرية.
| البرمجيات الحرة (FSF) | المصدر المفتوح (OSI) | |
|---|---|---|
| الحجة الرئيسية | مسألة أخلاقية: يجب أن يكون المستخدم حرًّا | مسألة فعالية: التطوير المفتوح ينتج برمجيات أفضل |
| الشخصية الرمز | ريتشارد ستولمان | إريك ريموند، بروس بيرنز |
| النص المرجعي | الحريات الأربع | Open Source Definition، المشتقّ من مبادئ Debian (DFSG) |
| في الممارسة | الرخص المعترف بها متطابقة تقريبًا |
ويقارن نص ريموند الكاتدرائية والبازار (1997) بين طريقتين في التطوير: داخل مجموعة صغيرة مغلقة (الكاتدرائية) أو في العلن، مع آلاف المساهمين (البازار، وهو نموذج Linux). وإليه تُنسب عبارة كثيرًا ما تُستشهد: مع ما يكفي من العيون، يصبح العثور على كل العلل سهلًا.
وكثيرًا ما نصادف الاختصار FLOSS أو FOSS (Free/Libre and Open Source Software)، الذي يجمع المعسكرين.
7. الرخص التي ستصادفها
على الخادم، لكل برنامج رخصته. وهذه هي العائلات الرئيسية:
| الرخصة | النوع | ما تشترطه | أمثلة |
|---|---|---|---|
| GPL (v2، v3) | copyleft قوي | إعادة توزيع التعديلات تحت GPL، مع الشيفرة المصدرية | نواة Linux (v2)، و bash، و GCC، و coreutils |
| LGPL | copyleft ضعيف | copyleft على المكتبة، لا على البرنامج الذي يستعملها | glibc |
| AGPL | copyleft شبكي | توفير الشيفرة أيضًا لمستخدمي الخدمة عبر الإنترنت | بعض برمجيات الويب (Nextcloud مثلًا) |
| BSD (بندان أو 3 بنود) | متساهلة | الاحتفاظ بإشعار حق المؤلف | FreeBSD، و OpenSSH (في معظمه) |
| MIT | متساهلة | الاحتفاظ بإشعار حق المؤلف، لا أكثر | X Window (X11)، و Node.js، و jQuery |
| Apache 2.0 | متساهلة | إشعار حق المؤلف + بند خاص ببراءات الاختراع | خادم Apache httpd، و Kubernetes، و Android (في جزء كبير منه) |
المثال الذي يوضّح الفرق: استطاعت Apple أن تأخذ شيفرة BSD في macOS دون أن تنشر تعديلاتها، لأن رخصة BSD تسمح بذلك. أما صانع أجهزة الإنترنت المنزلية (box) الذي يعدّل نواة Linux، فعليه أن يوفّر لزبائنه الشيفرة المصدرية لتعديلاته، لأن النواة تحت رخصة GPL.
على Debian، توجد نصوص الرخص الشائعة في مجلد واحد، وكل حزمة (paquet) تصف رخصتها:
ls /usr/share/common-licenses/ # GPL-2, GPL-3, LGPL, BSD, Apache-2.0…
head -n 3 /usr/share/common-licenses/GPL-3
# على نظام Debian كامل، لكل حزمة بطاقة رخصتها:
# /usr/share/doc/<paquet>/copyright
8. GNU/Linux أم Linux؟
يطلب ستولمان أن نقول GNU/Linux، لأن النظام الكامل مدين كثيرًا لأدوات GNU، لا للنواة وحدها. ويتّبع Debian هذا الاستعمال («Debian GNU/Linux»). أما معظم الناس، ومعظم الشركات، فيقولون ببساطة Linux.
في هذه الدورة نقول «Linux» تيسيرًا، لكن تذكّر الحقيقة التقنية: Linux هو النواة؛ وجزء كبير من الأدوات المحيطة بها يأتي من GNU. بل إن بعض أنظمة «Linux» لا تكاد تستعمل GNU: مثل Android، أو توزيعة Alpine (مع BusyBox ومكتبة musl).
9. الخط الزمني للدرس
1983 27 سبتمبر: ستولمان يعلن عن مشروع GNU
1984 بداية العمل؛ ستولمان يغادر MIT
1985 بيان GNU؛ تأسيس Free Software Foundation
1987 GCC
1989 GPL v1؛ Bash
1990 بداية Hurd، النواة التي خطّط لها GNU
1991 GPL v2؛ LGPL
1992 نواة Linux تنتقل إلى رخصة GPL: النظام الحر يكتمل
1997 « الكاتدرائية والبازار » (إريك ريموند)
1998 Netscape تفتح شيفرتها؛ ولادة مصطلح « open source » ومبادرة OSI
2007 GPL v3 و AGPL v3
أفكار شائعة خاطئة
- «حر يعني مجاني.» لا. كلمة حر تتحدث عن الحقوق؛ ويمكن بيع البرنامج الحر (اشتراكات RHEL، دعم SUSE…).
- «المصدر المفتوح يعني أن أي شخص يستطيع تعديل البرنامج الرسمي.» لا. يمكنك تعديل نسختك أنت. ولكي يدخل تصحيحك إلى المشروع الرسمي، يجب أن يقبله المشرفون عليه (mainteneurs).
- «رخصة GPL تُلزم بنشر شيفرة كل ما نطوّره على Linux.» لا. البرنامج الذي يعمل فوق Linux غير معني بذلك. المعني فقط هو التعديلات المعاد توزيعها على برنامج GPL.
- «البرمجيات الحرة للهواة.» أكبر المواقع في العالم، والبنوك، ومشغّلو الاتصالات، كلها تعمل ببرمجيات حرة.
التطبيق العملي (Lab)
على آلتك Debian 12، ستعثر على بصمة GNU وعلى الرخص المثبّتة:
ls --version | head -n 1
bash --version | head -n 1
ls /usr/share/common-licenses/
grep -m1 Version /usr/share/common-licenses/GPL-3
المهام: تسجيل إشارة GNU في ls و bash، وعرض قائمة الرخص التي يوفّرها Debian، وإيجاد تاريخ رخصة GPL 3. ثم انقر على تحقّق.
اختبار قصير
- ما معنى اسم «GNU»، وفي أي سنة أُعلن عن المشروع؟
- اذكر الحريات الأربع للبرمجيات الحرة.
- ما هو copyleft؟ وما الرخصة التي تُعدّ أشهر مثال عليه؟
- شركة عدّلت شيفرة برنامج تحت رخصة MIT وباعته دون نشر تعديلاتها. هل يحق لها ذلك؟ وماذا لو كان البرنامج تحت GPL؟
- ما القطعة التي كانت تنقص مشروع GNU في بداية التسعينيات؟
الأجوبة
- GNU's Not Unix («GNU ليس UNIX»)، وهو اختصار تكراري؛ أعلن عنه ريتشارد ستولمان في 27 سبتمبر 1983.
- 0 الاستعمال لأي غرض؛ 1 الدراسة والتكييف (الوصول إلى الشيفرة المصدرية)؛ 2 إعادة توزيع النسخ؛ 3 التحسين ومشاركة التحسينات.
- المبدأ الذي يقضي بأن تبقى النسخ المعدَّلة والمعاد توزيعها تحت الرخصة الحرة نفسها. والمثال النموذجي هو رخصة GPL.
- مع MIT: نعم، يكفي الاحتفاظ بإشعار حق المؤلف. مع GPL: لا، إذا أعادت توزيع نسخة معدَّلة فعليها أن توفّر الشيفرة المصدرية تحت GPL.
- النواة (لم تكن Hurd جاهزة): وهي التي وفّرها Linux.
المصادر المرجعية: نصوص مشروع GNU (gnu.org)، و Open Source Definition (opensource.org)، و Debian Policy. نص أصلي من MasterLinux.
الفصل 4
سنة 1991 — لينوس تورفالدس ونواة Linux
الهدف
أن تعرف كيف كتب طالب، كأنه يلعب تقريبًا، النواة التي تشغّل اليوم أغلب خوادم العالم، وأن تفهم كيف تُطوَّر هذه النواة وكيف تُرقَّم إصداراتها. وستصبح قادرًا على قراءة إصدار مثل 5.14.0-427.el9.x86_64.
الخلاصة
- في سنة 1991 كتب لينوس تورفالدس (Linus Torvalds)، الطالب في جامعة هلسنكي (Helsinki)، نواةً لحاسوبه الشخصي، مستلهمًا نظام Minix.
- أعلن عنها في 25 أغسطس 1991؛ وصدر الإصدار 0.01 في سبتمبر 1991.
- في سنة 1992 انتقل Linux إلى رخصة GPL: ومع أدوات GNU، أصبح أخيرًا نظام حر بالكامل موجودًا.
- صدر Linux 1.0 في مارس 1994. واليوم يساهم فيه آلاف المطوّرين، العاملين في مئات الشركات.
- يصدر إصدار جديد تقريبًا كل 9 إلى 10 أسابيع؛ وبعض الإصدارات تُصان مدة طويلة: إنها إصدارات LTS (الدعم الطويل الأمد).
1. ما هي النواة؟
النواة (kernel) هي البرنامج المركزي للنظام. تنطلق أولًا ولا تتوقف إلا عند إطفاء الجهاز. وهي حلقة الوصل بين البرامج والعتاد:
أنت ──► bash, ls, nginx, mysql… (البرامج)
│ « استدعاءات النظام »: القراءة، الكتابة، الفتح، إنشاء عملية
▼
┌──────────────┐
│ LINUX KERNEL │ الذاكرة، العمليات، الأقراص، الشبكة، التعريفات
└──────────────┘
│
▼
المعالج، الذاكرة، الأقراص، بطاقة الشبكة (العتاد)
عندما يريد ls قراءة مجلد، فإنه لا يخاطب القرص: بل يطلب ذلك من النواة. وهذا ما يسمح لألف برنامج باقتسام الآلة نفسها دون أن يدوس بعضها على بعض.
2. نظام Minix، UNIX الطلبة (1987)
في أواخر الثمانينيات كان UNIX غاليًا، ولم تعد شيفرته تُنشر بحرية. فكتب الأستاذ أندرو تانينباوم (Andrew Tanenbaum)، في الجامعة الحرة بأمستردام، نظام UNIX صغيرًا تعليميًّا لطلبته: Minix (1987). وكان يُوزَّع مع كتابه الدراسي حول أنظمة التشغيل، بما في ذلك الشيفرة المصدرية.
لكن Minix كان له حدّان: رخصته لا تسمح بتعديله وإعادة توزيعه بحرية، وتانينباوم أراد أن يبقيه بسيطًا لأغراض التعليم. فكان يرفض كثيرًا من التحسينات التي يقترحها مستخدموه.
3. سنة 1991: طالب من هلسنكي
وُلد لينوس تورفالدس سنة 1969 في هلسنكي. وفي يناير 1991 اشترى حاسوبًا شخصيًّا مزوّدًا بمعالج Intel 386. ثبّت عليه Minix وأراد أن يفهم كيف يعمل هذا المعالج الجديد. فبدأ ببرنامج صغير يعرض حرفَي «A» و«B» بالتناوب، لاختبار الانتقال من مهمة إلى أخرى. ثم كتب محاكي طرفية للاتصال بالجامعة. ثم تعريفًا (pilote) للقرص… فانتبه إلى أنه بصدد كتابة نواة.
وفي 25 أغسطس 1991 نشر رسالة على منتدى Usenet comp.os.minix. أعلن فيها عن نظام تشغيل حر لحواسيب 386، موضّحًا أنه «just a hobby, won't be big and professional like gnu» («مجرد هواية، ولن يكون كبيرًا ومحترفًا مثل GNU»). وسأل القرّاء عمّا يودّون أن يجدوه فيه.
ووُضع الإصدار 0.01 على خادم تابع لجامعة هلسنكي (ftp.funet.fi) في سبتمبر 1991. كان لينوس يريد تسميته Freax (free + freak + x)؛ لكن مدير الخادم، آري ليمكه (Ari Lemmke)، وضع الملفات في مجلد اسمه linux. فبقي الاسم.
ومنذ هذا الإصدار الأول، كان Linux يشغّل bash و gcc، وهما أداتان من GNU (الدرس 0.3).
4. سنة 1992: رخصة GPL والجدال مع تانينباوم
كانت أول رخصة وضعها لينوس تمنع أي استعمال تجاري. وفي بداية 1992، مع الإصدار 0.12، أعلن الانتقال إلى رخصة GPL (الإصدار 2). ومنذ ذلك الحين يمكن لأي شخص استعمال Linux وتعديله وإعادة توزيعه، شرط أن يشارك تعديلاته. وبنواة Linux وأدوات GNU أصبح أخيرًا نظام حر كامل موجودًا. وسيقول لينوس لاحقًا إن اختيار GPL كان من أفضل القرارات التي اتخذها.
وفي يناير 1992 نشر تانينباوم على المنتدى نفسه رسالة بعنوان «LINUX is obsolete» («LINUX متجاوَز»). وكان له مأخذان:
| انتقاد تانينباوم | جواب التاريخ |
|---|---|
| Linux نواة أحادية (monolithique، النواة كلها في كتلة واحدة)، وهو تصميم متجاوَز في رأيه؛ والمستقبل في نظره للنوى المصغّرة (micro-noyaux) | بقي Linux أحاديًّا، لكنه معياري (modulaire): التعريفات تُحمَّل عند الحاجة (lsmod، modprobe) |
| Linux مرتبط أكثر من اللازم بمعالج 386 ولن يكون قابلًا للنقل | يعمل Linux اليوم على x86 و ARM و POWER و IBM Z و RISC-V… أي على منصات أكثر من أي نظام آخر |
وبقي هذا النقاش المهذّب والحادّ في آن واحد مشهورًا. وهو يبيّن أن Linux لم يكن «الأفضل» على الورق؛ بل انتصر لأنه كان حرًّا، وعمليًّا، ومفتوحًا للمساهمات.
5. النواة تكبر (1992-2011)
كان التوقيت مثاليًّا: BSD مجمَّد بسبب قضيته (الدرس 0.2)، و Hurd الخاص بـ GNU لا يتقدّم، والإنترنت يصل إلى الجامعات. فأخذ مئات المطوّرين يرسلون تصحيحاتهم إلى لينوس.
| الإصدار | التاريخ | الجديد البارز |
|---|---|---|
| 0.01 | سبتمبر 1991 | أول إصدار علني |
| 0.12 | بداية 1992 | الانتقال إلى GPL |
| 1.0 | مارس 1994 | أول إصدار يُعدّ مستقرًّا؛ شبكة TCP/IP |
| 2.0 | يونيو 1996 | تعدّد المعالجات (SMP)؛ ظهور التميمة Tux، البطريق |
| 2.2 | يناير 1999 | دعم أفضل لتعدّد المعالجات |
| 2.4 | يناير 2001 | USB، وكميات كبيرة من الذاكرة: Linux يدخل الشركات |
| 2.6 | ديسمبر 2003 | نموذج تطوير جديد؛ نواة RHEL 5 و RHEL 6 (2.6.32) |
| 3.0 | يوليو 2011 | تغيير الرقم احتفالًا بمرور 20 سنة على Linux، دون قطيعة تقنية |
وفي سنة 2005 حرم نزاع حول الترخيص المطوّرين من الأداة التي كانوا يستعملونها لإدارة الشيفرة (BitKeeper). وفي بضعة أسابيع كتب لينوس أداته الخاصة: Git. واليوم يستعمل Git جميع المطوّرين في العالم تقريبًا (GitHub و GitLab…). إنه الاختراع الكبير الثاني للينوس.
6. كيف تُطوَّر النواة اليوم
نواة Linux هي على الأرجح أكبر مشروع تعاوني في تاريخ البرمجيات: أكثر من 30 مليون سطر من الشيفرة، وآلاف المساهمين في كل إصدار، ومعظمهم يتقاضون أجورهم من مشغّليهم (Intel و Google و Red Hat و AMD و Meta و Huawei و SUSE و Linaro…).
دورة منتظمة
صدور الإصدار 6.N
│
├── أسبوعان: « نافذة الدمج » (merge window)
│ الجديد الذي أعدّه المشرفون يدخل إلى النواة
│
├── 6.(N+1)-rc1, rc2, … rc7 (وأحيانًا rc8): « إصدار مرشَّح » (release candidate) كل أسبوع
│ لا جديد بعد الآن، فقط تصحيحات للعلل
│
└── بعد نحو 9 إلى 10 أسابيع: صدور الإصدار 6.(N+1)
وهذا يعطي 5 إلى 6 إصدارات في السنة. وليس هناك تاريخ ثابت: لينوس ينشر الإصدار حين يكون جاهزًا.
هرم من المشرفين
لا يراجع لينوس كل شيء بنفسه. فالنواة مقسَّمة إلى أنظمة فرعية (الشبكة، وأنظمة الملفات، وتعريفات الرسوميات، و USB، والأمان…). ولكل منها مشرفون (mainteneurs)، مذكورون في الملف MAINTAINERS داخل الشيفرة المصدرية. يرسل المساهمون تصحيحاتهم بالبريد الإلكتروني إلى المشرف المناسب؛ فيراجعها ويختبرها، ثم يرفعها إلى المستوى الأعلى. ويدمج لينوس عمل المشرفين الرئيسيين.
Mainline و stable و longterm
على kernel.org سترى عدة أنواع من الإصدارات:
| الفئة | ما هي | من يصونها |
|---|---|---|
| mainline | إصدار التطوير الخاص بلينوس (مثال: 6.N-rc3) |
لينوس تورفالدس |
| stable | آخر إصدار منشور، مع تصحيحات (مثال: 6.N.4) إلى حين صدور الإصدار التالي |
غريغ كروا-هارتمان (Greg Kroah-Hartman) وفريق stable |
| longterm (LTS) | عادةً آخر إصدار في كل سنة، يُصحَّح طوال عدة سنوات | مشرفون متطوّعون |
ومنذ سنة 2023 أصبحت إصدارات LTS الجديدة على kernel.org معلنة لمدة سنتين تقريبًا (مقابل ست سنوات لبعضها في السابق)، لعدم توفّر الإمكانات لصيانة أكثر من ذلك. وتتكفّل مشاريع مثل CIP (Civil Infrastructure Platform) بصيانة بعض الإصدارات طوال عشر سنوات لفائدة الصناعة.
ورقم الخانة الأولى لا يعني شيئًا من الناحية التقنية: يغيّره لينوس عندما يصبح الرقم الثاني كبيرًا جدًّا (3.0 سنة 2011، و 4.0 سنة 2015، و 5.0 سنة 2019، و 6.0 سنة 2022…).
7. نوى التوزيعات
توزيعات الشركات لا تتبع آخر إصدار على kernel.org. بل تختار إصدارًا عند إطلاقها وتصونه بنفسها طوال عمر المنتج، فتضيف إليه تصحيحات الأمان بل وحتى ميزات جديدة (نقول إنها «تنقلها إلى الوراء»، rétroportage أو backport).
| التوزيعة | النواة الأساسية |
|---|---|
| RHEL 6 / CentOS 6 | 2.6.32 |
| RHEL 7 / CentOS 7 | 3.10 |
| RHEL 8 / Rocky 8 / Alma 8 | 4.18 |
| RHEL 9 / Rocky 9 / Alma 9 | 5.14 |
| RHEL 10 / Alma 10 | 6.12 |
| Debian 12 « bookworm » | 6.1 |
| Debian 13 « trixie » | 6.12 |
| Ubuntu 22.04 LTS | 5.15 |
| Ubuntu 24.04 LTS | 6.8 |
كيف تقرأ إصدار نواة من Red Hat:
uname -r
# 5.14.0-427.13.1.el9_4.x86_64
# 5.14.0 → الإصدار الأساسي الذي اختارته Red Hat (kernel.org 5.14)
# 427.13.1 → رقم البناء لدى Red Hat: مئات التصحيحات المضافة
# el9_4 → « Enterprise Linux 9 »، التحديث 9.4
# x86_64 → المعمارية (حاسوب 64 بت)
فنواة 5.14 الخاصة بـ RHEL 9 في سنة 2025 مختلفة جدًّا إذن عن نواة 5.14 على kernel.org في سنة 2021: إنها تحتوي على سنوات من التصحيحات.
8. الخط الزمني للدرس
1987 Minix (أندرو تانينباوم)
1991 يناير: لينوس يشتري حاسوبه 386 — 25 أغسطس: الإعلان — سبتمبر: Linux 0.01
1992 Linux ينتقل إلى GPL (0.12)؛ نقاش « LINUX is obsolete »
1994 Linux 1.0 (مارس)
1996 Linux 2.0؛ التميمة Tux
2003 Linux 2.6
2005 لينوس يبتكر Git
2007 تأسيس Linux Foundation (التي تشغّل لينوس)
2011 Linux 3.0، بمناسبة مرور 20 سنة
2022 Linux 6.0؛ أولى العناصر بلغة Rust داخل النواة (6.1)
أخطاء متكررة
- الخلط بين إصدار النواة وإصدار التوزيعة. الأمر
uname -rيعطي النواة؛ والملف/etc/os-releaseيعطي التوزيعة. فـ Rocky 9.4 و Rocky 9.5 لهما النواة الأساسية نفسها 5.14. - الاعتقاد بأن رقم نواة قديمًا يعني «غير محدَّث». نواة 4.18 في RHEL 8 ما زالت تتلقى تصحيحات أمنية. المهم هو تاريخ الحزمة، لا الرقم الأساسي.
- تثبيت «آخر نواة من kernel.org» على خادم شركة. ستفقد دعم الناشر، وقد تتوقف الوحدات الخارجية (التعريفات، برامج مكافحة الفيروسات) عن العمل.
- الاعتقاد، داخل حاوية (conteneur)، بأن النواة هي نواة التوزيعة. الحاوية تتقاسم نواة الآلة المضيفة. وستلاحظ ذلك في التطبيق العملي.
التطبيق العملي (Lab)
أنت على آلة Ubuntu 24.04. استجوب النواة:
uname -r # إصدار النواة
uname -r | cut -d. -f1 # العدد الأول فقط
cat /proc/sys/kernel/ostype # المكان الذي يبحث فيه uname عن أجوبته
cat /proc/sys/kernel/osrelease
grep PRETTY_NAME /etc/os-release # التوزيعة
مفاجأة: آلة التطبيق هذه حاوية. التوزيعة هي فعلًا Ubuntu 24.04، لكن النواة المعروضة ليست نواة 6.8 الخاصة بـ Ubuntu: إنها نواة الآلة التي تستضيف التطبيق. فالحاوية تستعير نواة مضيفها؛ أما البرامج والملفات وحدها فهي من Ubuntu. أنجز المهام، ثم انقر على تحقّق.
اختبار قصير
- ما النظام الذي كان لينوس تورفالدس يستعمله قبل كتابة Linux، ومن أنشأه؟
- لماذا كان الانتقال إلى رخصة GPL سنة 1992 بهذه الأهمية؟
- ما هي «نافذة الدمج» في تطوير النواة؟
- ما الفرق بين إصدار stable وإصدار longterm (LTS) على kernel.org؟
- خادم RHEL 9 يعرض
5.14.0-503.el9.x86_64. لماذا ليس «متأخرًا» مع أن kernel.org يقترح إصدارات 6.x؟
الأجوبة
- Minix، نظام UNIX صغير تعليمي أنشأه الأستاذ أندرو تانينباوم (1987).
- تسمح رخصة GPL للجميع باستعمال Linux وتعديله وإعادة توزيعه مع إلزامهم بمشاركة التحسينات؛ فاجتذبت المساهمين وسمحت بربط النواة بأدوات GNU لتكوين نظام حر بالكامل.
- الأسبوعان اللذان يليان صدور إصدار، وخلالهما يدخل الجديد إلى النواة؛ ثم تأتي إصدارات
-rcالمخصّصة للتصحيحات. - الإصدار stable يُصحَّح فقط إلى حين صدور الإصدار التالي؛ أما الإصدار longterm فيُصحَّح طوال عدة سنوات.
- اختارت Red Hat الأساس 5.14 وتصونه بنفسها بإضافة تصحيحات الأمان والميزات الجديدة (والعدد
503يدل على ذلك). فالرقم الأساسي لا يخبرك هل النواة محدَّثة أم لا.
المصادر المرجعية: توثيق نواة Linux (docs.kernel.org، GPL-2.0)، و kernel.org، وكتاب «Just for Fun» للينوس تورفالدس. نص أصلي من MasterLinux.
الفصل 5
توزيعات Linux — Slackware و Debian و Red Hat و Ubuntu وغيرها
الهدف
أن تفهم ما هي التوزيعة (distribution)، ومن أين جاءت العائلات الكبرى التي ستصادفها في الشركات، ولماذا يتغيّر أمر تثبيت البرامج من خادم إلى آخر.
الخلاصة
- النواة وحدها لا تكفي: التوزيعة تجمع النواة، وأدوات GNU، وآلاف البرامج، وأداة تثبيت، ومدير حزم (gestionnaire de paquets).
- الأجداد الذين ما زالوا أحياء وُلدوا سنة 1993: Slackware و Debian. ثم تلاهما Red Hat و SUSE سنة 1994.
- عائلتان كبيرتان تهيمنان على الخوادم: Debian (حزم
.deb، والأداةapt) و Red Hat (حزم.rpm، والأداتانyum/dnf). - Ubuntu (2004) مشتقّة من Debian؛ و Fedora (2003) تُعدّ مستقبل RHEL.
- تنشر التوزيعة إمّا إصدارات ثابتة (Debian و RHEL و Ubuntu LTS)، وإمّا بشكل مستمر (rolling release: مثل Arch).
1. لماذا توجد التوزيعات؟
في سنة 1992 كان تثبيت Linux مغامرة: كان عليك أن تجلب النواة من خادم، وأن تترجم بنفسك عشرات برامج GNU، وأن تنسخها على أقراص مرنة، ثم تأمل أن يعمل كل شيء معًا.
التوزيعة تقوم بهذا العمل نيابةً عنك. قارن ذلك بالمطبخ:
| في المطبخ | في التوزيعة |
|---|---|
| المكوّنات (الدقيق، البيض، السكر) | نواة Linux، و bash، و coreutils، و nginx، و MariaDB… |
| الوصفة، المجرَّبة حتى تتناسق المكوّنات | الإصدارات المختارة والمختبَرة بعضها مع بعض |
| الطاهي وأسلوبه | فريق التوزيعة، واختياراته، وفلسفته |
| التزويد المنتظم بمكوّنات طازجة | التحديثات الأمنية |
وبشكل ملموس، توفّر التوزيعة:
- أداة تثبيت (Anaconda لدى Red Hat، و debian-installer، و Subiquity لدى Ubuntu)؛
- مدير حزم لتثبيت البرامج وتحديثها وحذفها؛
- مستودعات (dépôts): خوادم تستضيف عشرات الآلاف من الحزم الجاهزة للاستعمال؛
- إعدادات افتراضية: نظام الإقلاع، والجدار الناري (firewall)، والأمان، ومواضع الملفات؛
- سياسة إصدارات ومدة دعم.
2. الروّاد (1992-1993)
أولى التوزيعات على الإطلاق اسمها MCC Interim Linux (1992، جامعة مانشستر) و SLS (Softlanding Linux System، 1992). كانت SLS عملية لكنها مليئة بالعلل. فقرّر شخصان أن يصنعا أفضل منها.
Slackware (يوليو 1993)
صحّح باتريك فولكردينغ (Patrick Volkerding)، وهو طالب أمريكي، توزيعة SLS لاستعماله الخاص، ثم نشر النتيجة: Slackware. وهي أقدم توزيعة ما زالت تُصان. فلسفتها: البقاء قريبة من UNIX، بسيطة، بلا أدوات «سحرية». وهي قليلة الاستعمال جدًّا في الشركات اليوم، لكنها كوّنت أجيالًا من مديري الأنظمة.
Debian (16 أغسطس 1993)
أعلن إيان موردوك (Ian Murdock)، الطالب في جامعة Purdue، في 16 أغسطس 1993 عن توزيعة يبنيها مجتمع بشكل علني، لا شخص واحد. ويجمع الاسم بين Debra (رفيقته آنذاك) و Ian.
لدى Debian ثلاث خصائص ما زالت مهمة:
- لا تملكها أي شركة. يحييها آلاف المتطوّعين، وفق عقد اجتماعي (Contrat social، 1997) يتعهّد بأن تبقى حرة 100 %.
- مبادئ Debian للبرمجيات الحرة (DFSG) كانت الأساس الذي قام عليه تعريف المصدر المفتوح (الدرس 0.3).
- تحمل إصداراتها أسماء شخصيات من فيلم Toy Story:
buzz(1.1، 1996)، وwoody، وsqueeze، وjessie، وstretch، وbuster، وbullseye(11)، وbookworm(12)، وtrixie(13)…
وابتكرت Debian أيضًا نظام حزم قويًّا: dpkg (منتصف التسعينيات)، ثم APT (1998) الذي ينزّل الاعتماديات (dépendances) ويثبّتها تلقائيًّا. وكان ذلك في حينه ثورة صغيرة.
3. التوزيعات التجارية (1994)
Red Hat (1994)
أنشأ مارك يوينغ (Marc Ewing) توزيعة Red Hat Linux سنة 1994؛ ثم شاركه بوب يونغ (Bob Young) في تأسيس شركة Red Hat (1995). وابتكرت Red Hat صيغة الحزم RPM (Red Hat Package Manager)، ثم جعلتها حرة. ودخلت Red Hat البورصة في أغسطس 1999 بنجاح مذهل: فأصبح Linux في نظر الشركات أمرًا جادًّا.
وفي سنة 2003 أوقفت Red Hat توزيعتها «Red Hat Linux» الموجّهة للعموم لتركّز على RHEL (مدفوعة، للشركات)، وأطلقت Fedora (مجانية، مجتمعية). وهذه الملحمة كلها مفصّلة في الدرس 0.6.
SUSE (1992-1994)
نشرت الشركة الألمانية S.u.S.E. (نورنبرغ، تأسست سنة 1992) أول توزيعة لها سنة 1994، وكانت في البداية مبنية على Slackware. ثم أصبحت المرجع في أوروبا، بأداة الإعداد الرسومية YaST. واليوم تنافس SUSE Linux Enterprise (SLES) توزيعة RHEL في الشركات الكبرى، بينما openSUSE (2005) هي نسختها المجتمعية. وتستعمل SUSE حزم RPM مع أداتها الخاصة zypper.
4. Ubuntu: نظام Linux للجميع (2004)
في سنة 2004 أسّس رجل الأعمال الجنوب إفريقي مارك شاتلوورث (Mark Shuttleworth) شركة Canonical وأطلق Ubuntu، وهي كلمة من أصل بانتوي توحي بالإنسانية والتقاسم. والهدف: Linux سهل، ومحدَّث، بجدول زمني يمكن توقّعه.
- مبنية على Debian: الحزم نفسها
.deb، والأداة نفسهاapt. - إصدار كل ستة أشهر، مرقَّم بالسنة والشهر:
24.04= أبريل 2024. - إصدار LTS (Long Term Support) كل سنتين، في أبريل من السنوات الزوجية: 20.04، و 22.04، و 24.04… ويُدعَم مدة 5 سنوات (وأكثر مع الاشتراك المدفوع Ubuntu Pro).
- أسماء حيوانات، بترتيب أبجدي منذ 2006:
jammy(22.04، Jammy Jellyfish)، وnoble(24.04، Noble Numbat)…
أصبحت Ubuntu نظام Linux الأكثر انتشارًا في السحابة (cloud) وعلى أجهزة المطوّرين. ولها بدورها مشتقّات، مثل Linux Mint (2006).
5. عائلات أخرى يجب معرفتها
| التوزيعة | السنة | الحزم | الفكرة الرئيسية |
|---|---|---|---|
| Gentoo | 2002 | تُترجَم من المصادر (emerge) |
تحسين كل شيء ليناسب آلتك |
| Arch Linux | 2002 | pacman |
بسيطة، مقتصدة، rolling release؛ وموسوعتها (wiki) مرجع لكل أنظمة Linux |
| Alpine Linux | 2005-2006 | apk |
صغيرة جدًّا وآمنة (musl، BusyBox): مستعملة كثيرًا أساسًا لصور الحاويات |
| Linux Mint | 2006 | apt |
Ubuntu بشكل مألوف أكثر لمستخدمي Windows السابقين |
| Kali Linux | 2013 | apt (أساس Debian) |
أدوات اختبار الاختراق (الأمن الهجومي) |
| Oracle Linux | 2006 | rpm، dnf |
إعادة ترجمة RHEL من طرف Oracle |
يُحصي موقع DistroWatch مئات التوزيعات. لكن في الشركات، احفظ أساسًا عائلتين:
عائلة DEBIAN — حزم .deb، والأداتان dpkg و apt
Debian (1993)
└── Ubuntu (2004)
└── Linux Mint, Pop!_OS…
عائلة RED HAT — حزم .rpm، والأدوات rpm و yum (RHEL 5-7) / dnf (RHEL 8+)
Red Hat Linux (1994-2003)
├── Fedora (2003) ──► CentOS Stream ──► RHEL
└── RHEL ──► Rocky Linux, AlmaLinux, Oracle Linux (إعادة ترجمة)
خارج هاتين العائلتين
SUSE (rpm + zypper), Arch (pacman), Alpine (apk), Gentoo (emerge)
6. مدير الحزم: قلب التوزيعة
الحزمة (paquet) أرشيف يحتوي على برنامج وعلى معلومات: إصداره، ووصفه، وخصوصًا اعتمادياته (الحزم الأخرى التي يحتاج إليها).
في كل عائلة مستويان من الأدوات:
| المستوى | الدور | عائلة Debian | عائلة Red Hat |
|---|---|---|---|
| المستوى المنخفض | تثبيت ملف حزمة موجود مسبقًا، والاستعلام من القاعدة المحلية | dpkg |
rpm |
| المستوى المرتفع | البحث في المستودعات، والتنزيل، وحلّ الاعتماديات، وتحديث النظام كله | apt (و apt-get) |
yum (RHEL 5 إلى 7)، و dnf (RHEL 8 وما بعده) |
# عائلة Debian / Ubuntu
apt update && apt install nginx # تثبيت nginx واعتمادياته
dpkg -l | grep nginx # هل هو مثبّت؟
# عائلة Red Hat
dnf install nginx # (yum install nginx على RHEL 7)
rpm -qa | grep nginx # هل هو مثبّت؟
والاعتماديات هي بيت القصيد: تطلب nginx، فتثبّت الأداة معه المكتبات اللازمة، بإصدارات مختبَرة معًا. وبدون مدير حزم، ستقضي ساعات في البحث عنها واحدة واحدة.
ومؤخرًا ظهرت صيغ عامّة مستقلة عن التوزيعة: Snap (Canonical، 2016)، و Flatpak (خصوصًا لتطبيقات سطح المكتب)، وعلى جهة الخوادم، الحاويات (Docker سنة 2013، و Podman). وهي لا تعوّض الحزم الكلاسيكية: بل تُضاف إليها.
7. إصدارات ثابتة أم نشر مستمر
| النموذج | المبدأ | أمثلة | لمن؟ |
|---|---|---|---|
| إصدارات ثابتة، ودعم طويل | إصدار رئيسي كل 2-3 سنوات، ثم تصحيحات فقط طوال سنوات | RHEL و Rocky و Alma (10 سنوات)، و Debian (≈ 5 سنوات مع دعم LTS)، و Ubuntu LTS | خوادم الإنتاج: الاستقرار قبل كل شيء |
| إصدارات ثابتة، ودورة قصيرة | إصدار كل 6 أشهر تقريبًا | Fedora، و Ubuntu غير LTS | محطات العمل، واكتشاف الجديد |
| نشر مستمر (rolling) | لا إصدارات: نحدّث باستمرار | Arch، و openSUSE Tumbleweed | الشغوفون، والأجهزة الشخصية |
خادم بنك أو متجر إلكتروني يريد ألّا يتغيّر شيء دون قرار مسبق: فهو يعمل بإصدار ثابت ذي دعم طويل. ولهذا تُدرِّس هذه الدورة Red Hat (RHEL ونسخها المطابقة)، و Debian، و Ubuntu LTS.
8. كيف تعرف على أي توزيعة أنت؟
هذا أول ردّ فعل يجب أن تكتسبه عند وصولك إلى خادم لا تعرفه:
cat /etc/os-release # معيار موحّد على كل التوزيعات الحديثة
# ID=debian, ID=ubuntu, ID="rocky"… → التوزيعة
# ID_LIKE="rhel centos fedora" → العائلة
# VERSION_ID="12" → الإصدار
cat /etc/debian_version # عائلة Debian فقط
cat /etc/redhat-release # عائلة Red Hat فقط
وقد وُحِّد الملف /etc/os-release نحو سنة 2012 مع ظهور systemd. وعلى الخوادم القديمة جدًّا (CentOS 6 مثلًا) قد يكون غائبًا: فاستعمل حينئذ /etc/redhat-release.
9. الخط الزمني للدرس
1992 MCC Interim Linux و SLS — تأسيس S.u.S.E. في ألمانيا
1993 Slackware (يوليو) — Debian (16 أغسطس)
1994 Red Hat Linux — أول توزيعة SuSE
1997 العقد الاجتماعي لـ Debian
1998 APT (Debian) — Mandrake
1999 دخول Red Hat إلى البورصة
2002 Arch Linux و Gentoo
2003 Fedora Core 1؛ RHEL يصبح المنتج الرئيسي لـ Red Hat
2004 Ubuntu 4.10 (أكتوبر)؛ CentOS
2005 openSUSE؛ Alpine (2005-2006)
2013 Docker: الحاويات تنتشر
2023 Debian 12 « bookworm »
2024 Ubuntu 24.04 LTS « noble »
2025 Debian 13 « trixie »؛ RHEL 10
أخطاء متكررة
- نسخ أمر تثبيت وجدته على الإنترنت دون التحقق من العائلة. الأمر
apt installغير موجود على Rocky؛ والأمرdnfغير موجود على Debian. انظر أولًا في/etc/os-release. - تثبيت حزمة
.debعلى توزيعة Red Hat (أو حزمة.rpmعلى Debian). ليست الصيغة نفسها ولا المكتبات نفسها. ابحث عن الحزمة الخاصة بعائلتك. - خلط مستودعات إصدارين (مثلًا إضافة حزم Debian 13 إلى Debian 12). إنها أفضل طريقة لتخريب النظام: فالاعتماديات لم تعد متطابقة.
- الظن بأن Ubuntu و Debian متطابقتان. تتقاسمان
aptو.deb، لكن إصدارات برامجهما، وأدوات الشبكة (Netplan على Ubuntu)، والجدار الناري الافتراضي تختلف.
التطبيق العملي (Lab)
أنت على Debian 12. قم بالتحقيق كما لو كنت على خادم لا تعرفه:
cat /etc/os-release
cat /etc/debian_version
dpkg -l | head -n 10 # أولى الحزم المثبّتة
dpkg -l | grep -c '^ii' # كم عددها في المجموع؟
dpkg -s coreutils # بطاقة حزمة
المهام: التعرّف على التوزيعة، وتسجيل إصدارها الدقيق، وعدّ الحزم المثبّتة، وقراءة إصدار الحزمة coreutils. آلة التطبيق مقتصدة عن قصد: فالخادم الكامل يضم غالبًا عدة مئات من الحزم. ثم انقر على تحقّق.
اختبار قصير
- اذكر أربعة عناصر تضيفها التوزيعة إلى نواة Linux.
- ما أقدم توزيعتين ما زالتا تُصانان، وفي أي سنة وُلدتا؟
- إلى أي عائلة تنتمي Ubuntu؟ وما صيغة حزمها؟
- ما الفرق بين
rpmوdnf؟ - وصلت إلى خادم لا تعرفه. ما أول أمر تكتبه لتعرف أي توزيعة يشغّل؟
الأجوبة
- حسب الاختيار: أدوات GNU وآلاف البرامج، وأداة تثبيت، ومدير حزم، ومستودعات، وإعدادات افتراضية، وسياسة إصدارات وتحديثات أمنية.
- Slackware (يوليو 1993) و Debian (أغسطس 1993).
- إلى عائلة Debian؛ حزم
.deb، تُدار بالأداتينdpkgوapt. rpmأداة المستوى المنخفض (تثبّت ملف.rpm، وتستعلم من القاعدة المحلية)؛ أماdnfفأداة المستوى المرتفع التي تجلب الحزم من المستودعات وتحلّ الاعتماديات.cat /etc/os-release(وعلى خادم Red Hat قديم جدًّا:cat /etc/redhat-release).
المصادر المرجعية: التاريخ الرسمي لـ Debian وعقدها الاجتماعي (debian.org)، وتوثيق Fedora و Red Hat، ودورة إصدارات Ubuntu. نص أصلي من MasterLinux.
الفصل 6
ملحمة Red Hat — RHEL و Fedora و CentOS و Rocky و AlmaLinux
الهدف
أن تفهم عائلة Red Hat، الأكثر انتشارًا في الشركات الكبرى: من يفعل ماذا بين RHEL و Fedora و CentOS و Rocky و AlmaLinux، ولماذا اختفى CentOS، وما الذي يتغيّر من إصدار RHEL إلى آخر. وهذا هو الخيط الناظم لمسار Red Hat في هذه الدورة.
الخلاصة
- RHEL (Red Hat Enterprise Linux) هي نسخة الشركات، تُباع باشتراك (دعم + تحديثات)، مع 10 سنوات من الدعم لكل إصدار.
- Fedora (2003) هي التوزيعة المجتمعية التي يُحضَّر فيها الجديد؛ و CentOS Stream هي معاينة للتحديث القادم من RHEL.
- كان CentOS (2004) إعادة ترجمة مجانية لـ RHEL. وفي نهاية 2020 أوقفت Red Hat CentOS Linux 8 قبل أوانه (نهاية 2021)؛ أما CentOS 7 فقد توقف في 30 يونيو 2024.
- Rocky Linux و AlmaLinux (2021) تسلّما المشعل: مجانيان ومتوافقان مع RHEL.
- كل إصدار من RHEL يأتي بتغيير كبير:
systemdفي الإصدار 7، وdnfفي 8، و OpenSSL 3 في 9، ووضع الصورة (mode image) في 10…
1. من Red Hat Linux إلى RHEL (1994-2003)
رأيت في الدرس 0.5 ولادة Red Hat Linux سنة 1994. وطوال عشر سنوات تقريبًا، كانت توزيعة واحدة، مجانية (قابلة للتنزيل) ومبيعة في علبة مع دليل ودعم في الوقت نفسه. وقد وصلت إلى الإصدار Red Hat Linux 9 (2003).
المشكلة: إصدار جديد كان يصدر تقريبًا كل ستة أشهر. والبنك لا يستطيع إعادة تثبيت خوادمه مرتين في السنة. لذلك أطلقت Red Hat سنة 2002 إصدار Red Hat Linux Advanced Server 2.1، الذي سرعان ما سُمّي Red Hat Enterprise Linux: نسخة مستقرة، ومعتمَدة مع البرمجيات الكبرى (Oracle و SAP…) ومع عتاد المصنّعين (Dell و HP و IBM)، ومصونة لسنوات.
وفي سنة 2003 فصلت Red Hat نهائيًّا بين جمهورَيها:
| لفائدة… | التوزيعة | الثمن | الإيقاع |
|---|---|---|---|
| الشركات | RHEL | اشتراك مدفوع | إصدار رئيسي كل 3 إلى 5 سنوات، مدعوم 10 سنوات |
| المجتمع والشغوفون | Fedora (Fedora Core 1، نوفمبر 2003؛ واختفت كلمة «Core» سنة 2007) | مجانية | إصدار كل 6 أشهر تقريبًا، مدعوم نحو 13 شهرًا |
احذر فكرة شائعة خاطئة: اشتراك RHEL ليس ثمن «رخصة» بالمعنى المعروف في Windows. فالشيفرة حرة (GPL وغيرها). والزبون يدفع مقابل الدعم، والتحديثات، والاعتمادات، والوصول إلى أدوات Red Hat.
2. CentOS: نظام RHEL مجانًا (2004-2014)
بما أن RHEL يتكوّن من برمجيات حرة، فإن Red Hat تنشر شيفرته المصدرية. فخطرت لمتطوّعين فكرة بسيطة: إعادة ترجمة هذه الشيفرة، وحذف شعارات Red Hat وعلاماتها التجارية، ونشر النتيجة مجانًا.
إنه CentOS (Community ENTerprise Operating System)، الذي صدرت أولى إصداراته سنة 2004. والنتيجة مطابقة لـ RHEL «علّةً بعلّة»، لكن دون دعم رسمي. وقامت مشاريع أخرى بالشيء نفسه، مثل Scientific Linux (مختبرا Fermilab و CERN، وتوقّف مع الإصدار 7).
وسرعان ما أصبح CentOS الخادم المجاني المفضّل لدى:
- مستضيفي المواقع (لوحة الاستضافة cPanel، الواسعة الانتشار، ظلّت مدة طويلة تشترط CentOS أو RHEL)؛
- الشركات الناشئة (startups)، التي تريد RHEL دون أن تدفع؛
- مديري الأنظمة، الذين يتكوّنون على CentOS لاجتياز امتحان RHCSA؛
- الشركات، لخوادم الاختبار لديها (و RHEL في الإنتاج).
وفي يناير 2014 وظّفت Red Hat فريق CentOS وأخذت المشروع تحت جناحها. فبدا للكثيرين أن مستقبل CentOS أصبح مضمونًا لمدة طويلة.
3. CentOS Stream وصدمة ديسمبر 2020
في سبتمبر 2019، ومع CentOS 8، أطلقت Red Hat أيضًا CentOS Stream: نسخة تتقدّم بشكل مستمر، قبل التحديث القادم من RHEL مباشرة.
قبل (2004-2020): CentOS يتبع RHEL
Fedora ──► RHEL 8.3 ──► (بضعة أسابيع) ──► CentOS 8.3
نشر الشيفرة المصدرية، ثم إعادة ترجمتها
بعد (2021 →): CentOS Stream يسبق RHEL
Fedora ──► CentOS Stream 9 ──► RHEL 9.x
(ما سيدخل في التحديث الفرعي القادم من RHEL)
وفي 8 ديسمبر 2020 أعلنت Red Hat أن CentOS Linux 8، الموعود بالدعم حتى 2029، سيتوقف في 31 ديسمبر 2021. ومنذ ذلك الحين يركّز مشروع CentOS على CentOS Stream.
وكانت صدمة للمستخدمين:
- آلاف الشركات ثبّتت CentOS 8 ظنًّا منها أن أمامها ثماني سنوات؛
- و CentOS Stream لا يناسب الجميع: فهو يتلقى التغييرات قبل RHEL، ولم يعد إذن نسخة مطابقة لإصدار RHEL سبق التحقق منه.
أما CentOS Linux 7 فقد احتفظ بتاريخ نهايته الأصلي: 30 يونيو 2024. وكانت خوادم CentOS 7 كثيرة ما تزال تعمل في ذلك التاريخ، وبعضها ما زال يعمل: وربما تصادف بعضها.
4. Rocky Linux و AlmaLinux (2021)
ردّ المجتمع في بضعة أيام. فوُلد مشروعان ليأخذا دور CentOS: إعادة ترجمة مجانية ومتوافقة لـ RHEL.
| Rocky Linux | AlmaLinux | |
|---|---|---|
| الإعلان | ديسمبر 2020 | ديسمبر 2020 |
| المؤسِّس | غريغوري كورتزر (Gregory Kurtzer)، أحد مؤسسي مشروع CentOS | CloudLinux، شركة تصنع أصلًا توزيعات للمستضيفين |
| أصل الاسم | تكريم لـ روكي ماكغو (Rocky McGaugh)، مؤسس آخر لـ CentOS، توفي | «Alma» تعني «الروح» بالإسبانية والبرتغالية |
| أول إصدار مستقر | Rocky 8.4، يونيو 2021 | AlmaLinux 8.3، مارس 2021 |
| التنظيم | Rocky Enterprise Software Foundation | AlmaLinux OS Foundation (جمعية غير ربحية) |
وللانتقال من CentOS 8 إلى أحدهما، يوفّر كل مشروع سكربت ترحيل (migration) في المكان (migrate2rocky، almalinux-deploy)، دون إعادة تثبيت. وتوجد بدائل أخرى: Oracle Linux (إعادة ترجمة RHEL منذ 2006)، أو CentOS Stream نفسه، أو RHEL مباشرة.
وقد ليّنت Red Hat أيضًا عرضها: فمنذ 2021 يسمح الاشتراك المجاني Red Hat Developer Subscription for Individuals للأفراد باستعمال RHEL على عدد صغير من الآلات (حتى 16).
يونيو 2023: منعطف جديد
في يونيو 2023 أعلنت Red Hat أن CentOS Stream أصبح المصدر العلني الوحيد للشيفرة المرتبطة بـ RHEL: فالشيفرة المصدرية الدقيقة لكل إصدار من RHEL لم تعد تُنشر بحرية، بل أصبحت محصورة في الزبائن.
فكان على مشاريع إعادة الترجمة أن تتكيّف:
- اختارت AlmaLinux أن تكون متوافقة على المستوى الثنائي (ABI) مع RHEL، بدل أن تكون نسخة «علّةً بعلّة»: فالبرامج المعدّة لـ RHEL تعمل عليها، لكن قد توجد فروق صغيرة؛
- وتواصل Rocky Linux السعي إلى التطابق مع RHEL، بالحصول على الشيفرة بوسائل قانونية أخرى؛
- وأسّست CIQ (الشركة التي تقف وراء Rocky) و Oracle و SUSE في أغسطس 2023 OpenELA، وهي جمعية تنشر شيفرة مصدرية متوافقة مع RHEL.
وبالنسبة إليك، كمدير أنظمة، النتيجة بسيطة: ما تتعلّمه على Rocky أو Alma يصلح لـ RHEL، والعكس صحيح. فالأوامر وملفات الإعداد وامتحان RHCSA هي نفسها.
5. العائلة اليوم
الجديد، كل 6 أشهر
FEDORA ─────────────────────────────────► (المختبر)
│ كل 3 سنوات تقريبًا، تُستعمل Fedora أساسًا لـ
▼
CENTOS STREAM N ───────────────────────► (التحديث القادم من RHEL، مسبقًا)
│
▼
RHEL N.0, N.1, N.2… (المنتج، 10 سنوات من الدعم)
│ شيفرة متوافقة
▼
ROCKY LINUX N.x ALMALINUX N.x ORACLE LINUX N.x (مجانية، متوافقة)
وفي سنة 2018 أعلنت IBM عن شراء Red Hat بنحو 34 مليار دولار، وهي صفقة اكتملت في يوليو 2019. وبقيت Red Hat قسمًا مستقلًّا، يواصل تطوير RHEL والمساهمة بقوة في Linux و systemd و GNOME و Podman…
6. دورة حياة إصدار RHEL
لكل إصدار رئيسي من RHEL عمر يقارب عشر سنوات، في مرحلتين كبيرتين، إضافة إلى خيار مدفوع:
| المرحلة | المدة التقريبية | ما تتلقاه |
|---|---|---|
| الدعم الكامل (Full Support) | ≈ 5 سنوات | تصحيحات، وأمان، ودعم عتاد جديد، وميزات صغيرة مع كل إصدار فرعي (9.1، 9.2…) |
| الصيانة (Maintenance) | ≈ 5 سنوات إضافية | تصحيحات الأمان والعلل المهمة فقط |
| الدعم الممتد (ELS، مدفوع إضافيًّا) | بضع سنوات إضافية | تصحيحات حرجة لمن لم يتمكّنوا من الترحيل |
تصدر الإصدارات الفرعية تقريبًا كل ستة أشهر: 9.0، و 9.1، و 9.2… وتتبع Rocky و Alma الجدول الزمني نفسه، مع تأخّر طفيف.
حسب الإصدار
| الإصدار | الصدور | النواة | ما يتغيّر بالنسبة إلى مدير الأنظمة | نهاية الصيانة |
|---|---|---|---|---|
| RHEL 6 | نوفمبر 2010 | 2.6.32 | إقلاع بواسطة Upstart لكن الخدمات تُدار بالطريقة القديمة: service httpd start، و chkconfig httpd on؛ ونظام ext4 افتراضيًّا؛ والجدار الناري iptables؛ و yum |
نوفمبر 2020 |
| RHEL 7 | يونيو 2014 | 3.10 | وصول systemd (systemctl)؛ والجدار الناري firewalld؛ و XFS افتراضيًّا؛ و GRUB 2؛ و 64 بت فقط؛ و MariaDB تحلّ محلّ MySQL؛ و chronyd لضبط الوقت |
يونيو 2024 |
| RHEL 8 | مايو 2019 | 4.18 | dnf يحلّ محلّ yum (ويبقى الأمر yum اسمًا بديلًا)؛ ومستودعا BaseOS و AppStream مع «وحدات» (modules)؛ و nftables تحت firewalld؛ و Podman بدل Docker؛ و Python 3 (لم يعد الأمر python موجودًا افتراضيًّا)؛ وواجهة الويب Cockpit؛ وسياسات التشفير على مستوى النظام |
مايو 2029 |
| RHEL 9 | مايو 2022 | 5.14 | مبني انطلاقًا من CentOS Stream 9؛ و OpenSSL 3؛ ورفض اتصال SSH للمستخدم root بكلمة المرور افتراضيًّا؛ وإهمال توقيعات SHA-1؛ وإهمال ملفات الشبكة القديمة ifcfg لصالح ملفات NetworkManager؛ واشتراط معالجات x86-64 من المستوى v2 |
مايو 2032 |
| RHEL 10 | مايو 2025 | 6.12 | وضع الصورة (mode image: نشر النظام كصورة حاوية، بواسطة bootc)؛ وأولى خوارزميات التشفير ما بعد الكمّي؛ والمساعد في سطر الأوامر Lightspeed؛ وسحب الخادم الرسومي Xorg (Wayland فقط)؛ و Valkey يحلّ محلّ Redis؛ واشتراط معالجات x86-64 من المستوى v3 |
متوقعة سنة 2035 |
هذا الجدول هو سبب وجود مسار Red Hat في هذه الدورة: كل درس مهم فيه قسمه الخاص «حسب الإصدار»، لأنك ستصادف في الشركات خوادم RHEL أو CentOS 6 و 7 إلى جانب RHEL 9 و 10.
# على RHEL 6 / CentOS 6 # على RHEL 7 وما بعده
service sshd restart systemctl restart sshd
chkconfig sshd on systemctl enable sshd
iptables -L firewall-cmd --list-all
yum install httpd dnf install httpd (RHEL 8+)
7. الخط الزمني للدرس
1994 Red Hat Linux
1999 Red Hat تدخل البورصة
2002 Red Hat Linux Advanced Server 2.1 → قريبًا « RHEL »
2003 Red Hat Linux 9، الأخير؛ RHEL 3؛ Fedora Core 1
2004 أولى إصدارات CentOS
2007 RHEL 5
2010 RHEL 6
2014 Red Hat توظّف فريق CentOS (يناير)؛ RHEL 7 (يونيو)
2019 RHEL 8 (مايو)؛ IBM تكمل الشراء (يوليو)؛ CentOS Stream (سبتمبر)
2020 8 ديسمبر: الإعلان عن النهاية المبكرة لـ CentOS Linux 8
2021 AlmaLinux 8.3 (مارس)، Rocky Linux 8.4 (يونيو)؛ نهاية CentOS Linux 8 (31 ديسمبر)
2022 RHEL 9 (مايو)، يليه Rocky 9 و AlmaLinux 9
2023 الشيفرة المصدرية لـ RHEL محصورة في الزبائن (يونيو)؛ OpenELA (أغسطس)
2024 نهاية CentOS Linux 7 (30 يونيو)
2025 RHEL 10 (مايو)، يليه AlmaLinux 10 و Rocky 10
أخطاء متكررة
- قول «CentOS» عند الحديث عن خادم Red Hat حديث. لم يعد CentOS Linux موجودًا: وخادم CentOS 7 ما زال في الخدمة لا يتلقى تصحيحات مجانية منذ يوليو 2024. وهذا خطر أمني يجب التنبيه إليه.
- الخلط بين CentOS Stream و CentOS القديم. Stream متقدّم على RHEL، وليس نسخة من إصدار RHEL سبق التحقق منه.
- الاعتقاد بأن Rocky و Alma «أقل احترافية». إنهما مستعملان في الإنتاج لدى مؤسسات كبرى. والفرق مع RHEL يكمن في الدعم واعتمادات الناشرين، لا في الأوامر.
- تطبيق إجراء خاص بـ RHEL 6 على RHEL 9 (أو العكس). انظر دائمًا في الإصدار (
cat /etc/redhat-release) قبل اتباع أي درس تطبيقي.
التطبيق العملي (Lab)
أنت على Rocky Linux 9. تحقّق من قرابتها مع RHEL:
grep -E '^(ID|ID_LIKE|VERSION_ID)=' /etc/os-release
cat /etc/redhat-release # موجود في كل عائلة Red Hat
rpm -qa | wc -l # عدد حزم RPM المثبّتة
rpm -q rocky-release # الحزمة التي « توقّع » التوزيعة
المهام: تسجيل العائلة التي يصرّح بها ID_LIKE، وسطر /etc/redhat-release، وعدد الحزم، والإصدار الدقيق لـ rocky-release. ثم انقر على تحقّق.
اختبار قصير
- ما الفرق بين Fedora و RHEL؟
- ما الذي كانه CentOS، ولماذا كان شائعًا إلى هذا الحد؟
- بماذا أعلنت Red Hat في 8 ديسمبر 2020؟
- أين يقع CentOS Stream بالنسبة إلى RHEL؟
- في أي إصدار من RHEL ظهر
systemctlوfirewalld؟ وماذا عنdnf؟
الأجوبة
- Fedora مجتمعية ومجانية، بإصدار كل 6 أشهر تقريبًا: إنها مختبر الجديد. أما RHEL فهي نسخة الشركات، تُباع باشتراك، مستقرة ومدعومة 10 سنوات.
- إعادة ترجمة مجانية للشيفرة المصدرية لـ RHEL، بدون علامات Red Hat: أي RHEL مجاني، مطابق «علّةً بعلّة»، دون دعم رسمي. وكان المستضيفون والشركات الناشئة ومديرو الأنظمة في طور التكوين يعشقونه.
- أن CentOS Linux 8، المقرَّر حتى 2029، سيتوقف في 31 ديسمبر 2021، وأن المشروع سيركّز على CentOS Stream.
- قبل RHEL: فهو يحتوي على ما سيدخل في التحديث الفرعي القادم من RHEL.
systemctlوfirewalld: في RHEL 7 (2014). وdnf: في RHEL 8 (2019).
المصادر المرجعية: دورة حياة Red Hat Enterprise Linux وملاحظات إصداراته (توثيق Red Hat، رخصة CC BY-SA 3.0)، والإعلانات الرسمية لـ CentOS و Rocky Linux و AlmaLinux. نص أصلي من MasterLinux.
الفصل 7
Linux اليوم ومسارك المهني
الهدف
أن ترى أين يُستعمل Linux اليوم، وما المهن التي يفتحها، وما الشهادات التي لها وزن في السيرة الذاتية، وأن تختار مسارك في هذه الدورة: عائلة Red Hat أو عائلة Debian.
الخلاصة
- يشغّل Linux الأغلبية الساحقة من خوادم الويب والسحابة، و100 % من أقوى 500 حاسوب فائق (منذ 2017)، و Android، وعددًا هائلًا من الأجهزة المدمجة (embarqué).
- المهن الكبرى: مدير الأنظمة (administrateur système)، ومهندس DevOps، و SRE، ومهندس السحابة، دون نسيان الأمن والأنظمة المدمجة.
- الشهادات المرجعية: RHCSA ثم RHCE (Red Hat)، و LPIC-1 (LPI، محايدة)، و LFCS (Linux Foundation).
- اختر عائلة للبداية: Red Hat (الشركات الكبرى، والبنوك، والاتصالات، والإدارات) أو Debian/Ubuntu (المستضيفون، والشركات الناشئة، والسحابة).
- نحو أربعة أخماس ما ستتعلّمه مشترك بين العائلتين: إنه الجذع المشترك في هذه الدورة.
1. أين يعمل Linux؟
Linux هو النظام الأكثر استعمالًا في العالم… حتى وإن كان قليل من الناس يرونه. فهو موجود في كل مكان لا تجد فيه أمامك شاشة Windows أو macOS.
| المجال | مكانة Linux | أمثلة |
|---|---|---|
| خوادم الويب | أغلبية كبيرة جدًّا | معظم المواقع التي تزورها تعمل على Linux، غالبًا مع nginx أو Apache |
| السحابة | أغلبية كبيرة جدًّا | الآلات الافتراضية لدى AWS و Google Cloud و Azure؛ وقد أشارت Microsoft إلى أن أكثر من نصف الآلات الافتراضية في Azure تعمل بنظام Linux |
| الحاويات | شبه حصري | Docker و Podman و Kubernetes تعتمد على وظائف في نواة Linux (namespaces، cgroups) |
| الحواسيب الفائقة | 100 % من تصنيف TOP500 منذ نوفمبر 2017 | الأرصاد الجوية، والبحث الطبي، والمحاكاة النووية |
| الهواتف | Android يستعمل نواة Linux | أكثر من 3 مليارات جهاز Android نشط حسب Google (2021) |
| الأنظمة المدمجة | حاضر بقوة | أجهزة الإنترنت المنزلية (box)، والموجّهات (routeurs)، والتلفزيونات الذكية، والسيارات، وآلات الصندوق، والشبابيك الأوتوماتيكية للأوراق النقدية، والأجهزة الطبية |
| الفضاء | حاضر | المروحية Ingenuity، على المريخ سنة 2021، كانت تعمل بنظام Linux |
| أجهزة المكتب | أقلية (بضعة في المئة) | المطوّرون، و ChromeOS (المبني على Linux)، وجهاز الألعاب Steam Deck |
تذكّر هذا: عندما تطّلع على حسابك البنكي من هاتفك، فمن المرجّح جدًّا أن يكون Linux حاضرًا في كل مرحلة: في الهاتف (Android)، وفي جهاز الإنترنت المنزلي أو هوائي الاتصالات، وفي خادم الويب الخاص بالبنك، وفي قاعدة بياناته.
2. لماذا انتصر Linux
بالعودة إلى الدروس الستة السابقة، يمكن تلخيص نجاح Linux في خمسة أسباب:
- إنه حر (الدرس 0.3): لا رخصة تُدفع عن كل آلة. وبالنسبة إلى مستضيف لديه 10 000 خادم، هذا يغيّر كل شيء.
- إنه مفتوح: يمكن لأي شركة أن تكيّفه مع عتادها (Android، أجهزة الإنترنت المنزلية، الحواسيب الفائقة).
- إنه يتبع أفكار UNIX (الدرسان 0.1 و 0.2): أفكار متينة، ومجرَّبة، ومعروفة لدى أجيال من المهندسين.
- الجميع يطوّره (الدرس 0.4): المتنافسون (Intel و AMD، و Google و Microsoft) يحسّنون معًا النواة نفسها.
- توجد توزيعات لكل حاجة (الدرسان 0.5 و 0.6): RHEL للبنك، و Ubuntu للسحابة، و Alpine للحاويات.
3. المهن
إتقان إدارة Linux يفتح عدة مهن، كثيرًا ما تتداخل. وتختلف التسميات من شركة إلى أخرى.
| المهنة | ما تقوم به يوميًّا | كفاءات Linux الأساسية |
|---|---|---|
| مدير أنظمة Linux | تثبيت الخوادم وإعدادها وتحديثها ومراقبتها؛ وإدارة الحسابات والأقراص والنسخ الاحتياطية والحوادث | هذه الدورة كلها: الخدمات، والشبكة، والتخزين، والأمان، والسجلات |
| مهندس DevOps | أتمتة نشر التطبيقات؛ وسلاسل التكامل المستمر؛ والحاويات | سكربتات shell، و Git، و Ansible، و Docker/Podman، و Kubernetes |
| SRE (Site Reliability Engineer) | ضمان موثوقية خدمة على نطاق واسع؛ والقياس، والتنبيه، وتقليل الأعطال. وقد صيغت هذه المهنة في Google في بداية سنوات الألفين | المراقبة (supervision)، والأداء، والأتمتة، والبرمجة |
| مهندس السحابة | تصميم البنى التحتية وإدارتها لدى AWS أو Azure أو Google Cloud | Linux + الشبكة + أدوات المزوّد، و Terraform |
| مهندس الأمن | تقوية الخوادم، وتحليل السجلات، والاستجابة للحوادث | SELinux/AppArmor، والجدار الناري، و SSH، والتدقيق، والسجلات |
| مهندس الأنظمة المدمجة | تشغيل Linux على جهاز (box، سيارة، جهاز دفع إلكتروني) | النواة، والترجمة، والإقلاع، والتعريفات |
ومن المسارات الشائعة: تقني دعم أو مدير أنظمة مبتدئ ← مدير أنظمة متمرّس ← DevOps أو SRE أو السحابة. وفي جميع الحالات، الأساس واحد: أن تكون مرتاحًا في سطر الأوامر وأن تفهم ما يجري داخل نظام Linux. وهذا بالضبط ما تبنيه هذه الدورة.
وفي المغرب كما في غيره، المشغّلون الذين يبحثون عن كفاءات Linux كثيرون: البنوك وشركات التأمين، ومشغّلو الاتصالات، والإدارات، والمستضيفون، وشركات الخدمات ومراكز ترحيل الخدمات (offshoring)، والشركات الناشئة.
4. الشهادات
الشهادة تُثبت للمشغّل أنك تعرف كيف تعمل، لا أنك قرأت فقط. وهذه أهمها:
| الشهادة | الهيئة | الصيغة | المستوى | لمن؟ |
|---|---|---|---|---|
| RHCSA (امتحان EX200) | Red Hat | عملية 100 %: تدير آلات RHEL حقيقية لبضع ساعات | مدير أنظمة | المرجع في عائلة Red Hat؛ مطلوبة جدًّا في الشركات |
| RHCE (EX294) | Red Hat | عملية، تتمحور حول الأتمتة بواسطة Ansible (منذ RHEL 8)؛ تشترط RHCSA | مدير أنظمة متمرّس | بعد RHCSA، للتوجه نحو DevOps |
| RHCA | Red Hat | عدة امتحانات عملية في التخصصات | خبير | المهندسون المعماريون |
| Linux Essentials | LPI | أسئلة متعددة الاختيارات | مبتدئ | أول تصديق على الأساسيات |
| LPIC-1 (الامتحانان 101 و 102) | LPI (Linux Professional Institute) | أسئلة اختيار وإكمال | مدير أنظمة مبتدئ | محايدة: تغطي Red Hat و Debian |
| LPIC-2، LPIC-3 | LPI | أسئلة | متمرّس، خبير | استمرار مسار LPI |
| LFCS | The Linux Foundation | عملية، عبر الإنترنت، تحت المراقبة | مدير أنظمة | بديل عملي ومحايد لـ RHCSA |
| CompTIA Linux+ | CompTIA | أسئلة ووضعيات تطبيقية | مبتدئ | معترف بها خصوصًا في أمريكا الشمالية |
والامتحانات العملية (RHCSA و RHCE و LFCS) هي في الغالب الأكثر تقديرًا لدى المشغّلين: إذ لا يمكن النجاح فيها بالحفظ عن ظهر قلب. وللشهادات مدة صلاحية محدودة (من سنتين إلى خمس سنوات حسب الهيئة): فتحقّق من القواعد المحدَّثة على الموقع الرسمي قبل التسجيل، لأنها تتغيّر باستمرار.
وبعد أول شهادة في Linux، يواصل كثير من مديري الأنظمة نحو Kubernetes (CKA، من Linux Foundation) أو نحو شهادات مزوّدي السحابة (AWS و Azure و Google Cloud)، وكلها تفترض إتقانًا جيدًا لـ Linux.
5. اختيار طريقك: عائلة Red Hat أم عائلة Debian؟
تقترح هذه الدورة جذعًا مشتركًا، ثم ثلاثة مسارات: Red Hat و Debian و Ubuntu. وإليك كيف تختار.
| إذا كنت تطمح إلى… | ابدأ بـ | لماذا |
|---|---|---|
| بنك، أو شركة تأمين، أو مشغّل اتصالات، أو إدارة، أو شركة كبرى | Red Hat (RHEL و Rocky و Alma) | هذه المؤسسات تشتري دعم RHEL؛ وكثيرًا ما تُطلب فيها شهادة RHCSA |
| شهادة RHCSA | Red Hat | يُجرى الامتحان على RHEL؛ و Rocky و Alma ممتازان للتدرّب |
| مستضيف، أو شركة ناشئة، أو وكالة ويب | Debian أو Ubuntu | إنهما التوزيعتان الأكثر شيوعًا لديهم |
| السحابة و DevOps | Ubuntu، ثم Red Hat | Ubuntu واسعة الانتشار في السحابة؛ أما الشركات الزبونة فكثيرًا ما تستعمل RHEL |
| شهادة محايدة (LPIC-1، LFCS) | الجذع المشترك، ثم العائلتين معًا | هذه الامتحانات تغطي العالمين |
وأهم الفروق التي ستصادفها:
| عائلة Red Hat | عائلة Debian / Ubuntu | |
|---|---|---|
| الحزم | .rpm — dnf (و yum قبل RHEL 8) |
.deb — apt |
| الجدار الناري الشائع | firewalld |
nftables (Debian)، و ufw (Ubuntu) |
| الأمان الإلزامي | SELinux | AppArmor |
| مجموعة المديرين | wheel |
sudo |
| إعداد الشبكة | NetworkManager (nmcli) |
/etc/network/interfaces (Debian)، و Netplan (Ubuntu) |
| مدة دعم الإصدار | 10 سنوات | ≈ 5 سنوات (Debian مع LTS، و Ubuntu LTS؛ وأكثر مع Ubuntu Pro) |
النصيحة الصائبة: لا تبحث عن «أفضل» Linux. تعلّم عائلة واحدة بعمق، ثم تعلّم الفروق مع الأخرى. فمدير الأنظمة الذي يتقن Rocky يتأقلم مع Ubuntu في بضعة أيام، والعكس صحيح: الأوامر الأساسية، و systemd، و SSH، والصلاحيات، والصدفة هي نفسها.
6. كيف تتقدّم
- تدرّب كل يوم، ولو عشرين دقيقة: إدارة الأنظمة تُتعلَّم بالأصابع، لا بالعيون فقط. ولكل درس في هذه الدورة تطبيق عملي (lab) لهذا الغرض.
- اكسر ثم أصلح: في التطبيق العملي لا شيء خطير. احذف ملفًا، أوقف خدمة، وابحث عن طريقة للعودة إلى الوراء.
- اقرأ رسائل الخطأ حتى آخرها: في تسع مرات من عشر، يكون الحل مكتوبًا فيها.
- تعلّم كيف تبحث في التوثيق:
man، و--help، والتوثيق الرسمي لتوزيعتك (الجذع المشترك، الدرس الخاص بالتوثيق). - احتفظ بدفتر لأوامرك وحلولك: إنه بداية إجراءاتك الخاصة، وورقة رابحة حقيقية في مقابلات العمل.
- ضع شهادة نصب عينيك: تاريخ امتحان في جدول أعمالك هو أفضل محرّك.
7. الخط الزمني لوحدة التاريخ
1964 Multics
1969 UNIX (تومسون، ريتشي، مختبرات Bell)
1973 إعادة كتابة UNIX بلغة C؛ الأنابيب
1978 BSD (Berkeley)
1983 System V (AT&T) — مشروع GNU (ستولمان)
1985 Free Software Foundation
1988 POSIX
1989 GPL
1991 Linux 0.01 (لينوس تورفالدس)
1993 Slackware و Debian
1994 Linux 1.0؛ Red Hat Linux؛ SuSE
1998 « Open source »
2003 RHEL و Fedora
2004 Ubuntu؛ CentOS
2008 أول هاتف Android
2017 Linux على 100 % من الحواسيب الفائقة في TOP500
2019 IBM تشتري Red Hat
2021 Rocky Linux و AlmaLinux
2024 نهاية CentOS 7
2025 RHEL 10، Debian 13
… والبقية، أنت من سيكتبها
أفكار شائعة خاطئة
- «Linux للمهووسين بالتقنية، لا للشركات.» العكس هو الصحيح: Linux قبل كل شيء نظام للشركات. أما على الأجهزة الشخصية فما زال أقلية.
- «مع السحابة، لم نعد بحاجة إلى مديري أنظمة Linux.» السحابة تنقل العمل ولا تلغيه: فالآلات الافتراضية والحاويات في السحابة هي أنظمة Linux يجب إعدادها وتأمينها وإصلاح أعطالها.
- «يجب أن تعرف البرمجة لتدير Linux.» ليس في البداية. سكربتات shell تأتي طبيعيًّا مع الممارسة؛ ولغة مثل Python تصبح مفيدة لاحقًا، في DevOps أو SRE.
- «الشهادة تكفي للحصول على وظيفة.» إنها تفتح الأبواب، لكن المقابلة التقنية تتحقّق من ممارستك: والتطبيقات العملية لها وزن الشهادة نفسه.
التطبيق العملي (Lab)
آخر تطبيق عملي في هذه الوحدة، على Ubuntu 24.04:
grep '^VERSION_CODENAME=' /etc/os-release # الاسم الرمزي لهذا الإصدار
uname -m # معمارية المعالج
سجّل الاسم الرمزي والمعمارية، ثم التزم: اكتب العائلة التي تختارها (redhat أو debian) وأول شهادة تطمح إليها. لن يقرأ هذه الملفات أحد غيرك؛ إنه وعد تقطعه على نفسك. ثم انقر على تحقّق، وموعدنا في الجذع المشترك.
اختبار قصير
- اذكر أربعة مجالات يُستعمل فيها Linux، خارج حواسيب المكتب.
- ما الفرق الرئيسي بين مدير الأنظمة و SRE؟
- لماذا تحظى شهادة RHCSA بتقدير خاص لدى المشغّلين؟
- تريد العمل في بنك يستعمل RHEL. أي عائلة تتعلّم أولًا، وعلى أي توزيعة مجانية يمكنك التدرّب؟
- اذكر ثلاثة فروق بين عائلة Red Hat وعائلة Debian.
الأجوبة
- حسب الاختيار: خوادم الويب، والسحابة، والحاويات، والحواسيب الفائقة، وهواتف Android، وأجهزة الإنترنت المنزلية والموجّهات، والتلفزيونات، والسيارات، والأجهزة الطبية، والفضاء.
- مدير الأنظمة يُشغّل الخوادم (التثبيت، والإعداد، والصيانة)؛ أما SRE فيركّز على الموثوقية المقيسة لخدمة على نطاق واسع، مع كثير من الأتمتة والمراقبة. والمهنتان متداخلتان إلى حد كبير.
- لأن الامتحان عملي 100 %: تدير فيه آلات حقيقية، ولا يمكنك النجاح بحفظ الأجوبة عن ظهر قلب.
- عائلة Red Hat؛ والتدرّب على Rocky Linux أو AlmaLinux (أو على RHEL بالاشتراك المجاني للمطوّرين).
- حسب الاختيار: حزم
.rpm/dnfمقابل.deb/apt؛ و SELinux مقابل AppArmor؛ والمجموعةwheelمقابلsudo؛ وfirewalldمقابلnftables/ufw؛ و NetworkManager مقابلinterfaces/Netplan؛ ومدة الدعم (10 سنوات مقابل نحو 5 سنوات).
المصادر المرجعية: TOP500 (top500.org)، والصفحات الرسمية لشهادات Red Hat و LPI و Linux Foundation. نص أصلي من MasterLinux.
https://masterlinux.online