
كتاب برنامج تشغيل الأجهزة لنظام FreeBSD
من الخطوات الأولى إلى إتقان النواة (Kernel)
بقلم إدسون براندي · الإصدار 2.0 (أبريل 2026)
برامج تشغيل FreeBSD: من الخطوات الأولى إلى إتقان النواة هو كتاب مجاني ومفتوح المصدر يأخذك من "لم أكتب كود نواة من قبل" إلى "أستطيع كتابة وتصحيح وإرسال برامج تشغيل FreeBSD بجودة إنتاجية." إنه دورة موجهة وليس مرجعًا، منظمة حول 38 فصلًا و6 ملاحق وعشرات من التمارين العملية التي يتم تجميعها وتحميلها على نظام FreeBSD 14.x حقيقي.
الكتاب موجه للقراء الذين يرغبون في التعلم وليس بالضرورة المؤهلين مسبقًا. يبدأ بأساسيات UNIX ولغة C، ثم يسير خطوة بخطوة عبر كل مفهوم ستطلبه منك النواة، وعندها فقط يفتح الباب لتطوير برامج التشغيل. بحلول الوقت الذي تصل فيه إلى DMA والمقاطعات وعمل PCI، ستشعر بأن المفردات قد اكتسبتها عن جدارة وليس فرضًا عليك.
"برمجة النواة لا تزال برمجة، لكن بقواعد أكثر وضوحًا، ومسؤولية أكبر، وقوة أكبر قليلاً. بمجرد أن تفهم ذلك، يتحول الخوف إلى حماس." (من الفصل 1)
هناك مراجع ممتازة لنواة FreeBSD بالفعل، بما في ذلك man 9، ودليل الهندسة (Architecture Handbook)، وأوراق Newbus. ما كان مفقودًا هو نص واحد:
myfirst فصلًا تلو الآخر، ويكتسب التزامن، ثم الوصول إلى العتاد، ثم المقاطعات، ثم DMA. ترى نفس الكود ينضج بين يديك.الكتاب منظم في سبعة أجزاء تبني على بعضها البعض:
| الجزء | العنوان | التركيز |
|---|---|---|
| 1 | الأسس: FreeBSD وC والنواة | إعداد المختبر، UNIX، C للعمل مع النواة، تشريح برنامج التشغيل |
| 2 | بناء أول برنامج تشغيل | برامج تشغيل الأحرف (character drivers)، ملفات الجهاز، القراءة/الكتابة، الإدخال/الإخراج |
| 3 | التزامن والمزامنة | الخيوط، الموتكسات (mutexes)، متغيرات الشرط (condvars)، المؤقتات، قوائم المهام (taskqueues)، الإشارات (semaphores) |
| 4 | تكامل العتاد ومستوى المنصة | PCI، المقاطعات، MSI/MSI-X، DMA، إدارة الطاقة |
| 5 | التصحيح، الأدوات، والممارسات الواقعية | التتبع (tracing)، KGDB، التصحيح المتقدم، ضبط الأداء |
| 6 | كتابة برامج تشغيل خاصة بالنقل | USB، المنفذ التسلسلي، التخزين/VFS، برامج تشغيل الشبكة |
| 7 | موضوعات الإتقان: سيناريوهات خاصة وحالات حافة | قابلية النقل، المحاكاة الافتراضية، الأمان، الأنظمة المضمنة، الهندسة العكسية، تقديم المساهمات |
في النهاية، ستكون قد كتبت وقمت بتحميل وحدات النواة الخاصة بك، وبنيت برنامج تشغيل أحرف، وعالجت مقاطعات حقيقية و DMA، وصححت مشاكل النواة (kernel panics)، ونمّذت برنامج التشغيل تحت الحمل، وسرت في كل خطوة من خطوات مساهمة عملك في مشروع FreeBSD.
| الصفحات | 4,500+ |
| الفصول | 38 |
| الملاحق | 6 |
| وقت القراءة | ~100 ساعة |
| وقت التمارين العملية | ~100 ساعة |
| إجمالي وقت الدراسة | ~200 ساعة (≈6 أشهر بمعدل 5 ساعات/أسبوع) |
| إصدار FreeBSD المستهدف | 14.3 |
| اللغات | الإنجليزية (الأصل) · البرتغالية البرازيلية (ترجمة بالذكاء الاصطناعي) · الإسبانية (ترجمة بالذكاء الاصطناعي) |
| التنسيقات | PDF · EPUB · HTML · مصدر Markdown |
الوتيرة الموصى بها هي فصل واحد في الأسبوع بحوالي خمس ساعات من الدراسة الأسبوعية. هذا الجدول يجعل الكتاب بأكمله في متناول اليد خلال عام أكاديمي. بعض الفصول (خاصة الفصل 4 عن C، وفصول الجزء 4 عن العتاد) تمتد بشكل طبيعي لعدة أسابيع.
التمارين العملية موصى بها بشدة. تكافئ برمجة النواة الذاكرة العضلية بطريقة لا تفعلها سوى تخصصات قليلة. نفس نمط الربط، نفس سلسلة التنظيف، نفس شكل القفل تظهر فصلًا بعد فصل وبرنامج تشغيل بعد آخر. كتابة تلك الأنماط، تجميعها، تحميلها في نواة قيد التشغيل، ومشاهدتها تفشل عن قصد هو الطريقة الأكثر فعالية لاستيعابها.
إذا كنت تعرف بالفعل C وUNIX والشكل العام لنواة نظام التشغيل، فإن الملاحظات السريعة (fast-path notes) في جميع أنحاء الجزء 1 تخبرك بالأقسام التي يجب قراءتها بعناية والتي يمكنك تصفحها.
الإصدار 2.0 متوفر الآن على صفحة الإصدارات بثلاث لغات وثلاثة تنسيقات: