Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
FDD-book — كتاب برنامج تشغيل الأجهزة لنظام FreeBSD | Kitploit
أدوات/GitHubGitHub/ebrandi/fdd-book
أمان الأنظمة المدمجةالهندسة العكسيةمصممي الأخطاءاختراق الأجهزةأمن الأجهزةالتعلم والتعليممسارات ودورات التعلمتحليل البرامج الثابتةمختبرات وتدريب عملي
GitHubebrandi/fdd-book

FDD-book

كتاب برنامج تشغيل الأجهزة لنظام FreeBSD

60050منذ 13 أيامتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
عرض المستودع

غلاف كتاب برامج تشغيل FreeBSD

برامج تشغيل FreeBSD

من الخطوات الأولى إلى إتقان النواة (Kernel)

بقلم إدسون براندي · الإصدار 2.0 (أبريل 2026)

الترخيص FreeBSD الصفحات الحالة اللغات


حول هذا الكتاب

برامج تشغيل FreeBSD: من الخطوات الأولى إلى إتقان النواة هو كتاب مجاني ومفتوح المصدر يأخذك من "لم أكتب كود نواة من قبل" إلى "أستطيع كتابة وتصحيح وإرسال برامج تشغيل FreeBSD بجودة إنتاجية." إنه دورة موجهة وليس مرجعًا، منظمة حول 38 فصلًا و6 ملاحق وعشرات من التمارين العملية التي يتم تجميعها وتحميلها على نظام FreeBSD 14.x حقيقي.

الكتاب موجه للقراء الذين يرغبون في التعلم وليس بالضرورة المؤهلين مسبقًا. يبدأ بأساسيات UNIX ولغة C، ثم يسير خطوة بخطوة عبر كل مفهوم ستطلبه منك النواة، وعندها فقط يفتح الباب لتطوير برامج التشغيل. بحلول الوقت الذي تصل فيه إلى DMA والمقاطعات وعمل PCI، ستشعر بأن المفردات قد اكتسبتها عن جدارة وليس فرضًا عليك.

"برمجة النواة لا تزال برمجة، لكن بقواعد أكثر وضوحًا، ومسؤولية أكبر، وقوة أكبر قليلاً. بمجرد أن تفهم ذلك، يتحول الخوف إلى حماس." (من الفصل 1)

لماذا هذا الكتاب؟

هناك مراجع ممتازة لنواة FreeBSD بالفعل، بما في ذلك man 9، ودليل الهندسة (Architecture Handbook)، وأوراق Newbus. ما كان مفقودًا هو نص واحد:

  • يبدأ من الصفر. يتم تدريس UNIX وC وبيئة FreeBSD قبل كتابة أي كود نواة.
  • يستهدف FreeBSD 14.x تحديدًا. تم التحقق من كل واجهة برمجة تطبيقات (API)، كل مثال، كل تمرين عملي مقابل شجرة مصدر FreeBSD 14.3.
  • يعامل التمارين العملية كأولوية. ما يقرب من نصف وقت الدراسة الموصى به هو عملي. تتكرر نفس الأنماط (الربط، التنظيف، القفل) عبر الفصول حتى تصبح رد فعل.
  • يبني برنامج تشغيل واحد عبر الكتاب بأكمله. يتطور برنامج التشغيل myfirst فصلًا تلو الآخر، ويكتسب التزامن، ثم الوصول إلى العتاد، ثم المقاطعات، ثم DMA. ترى نفس الكود ينضج بين يديك.
  • يغطي دورة الحياة الكاملة. من "مرحبًا، وحدة نواة (Hello Kernel Module)" وصولاً إلى تقديم مراجعة على Phabricator وقيادة برنامج تشغيل إلى شجرة FreeBSD.

لمن هذا الكتاب؟

  • المبتدئون الذين يعرفون القليل عن C أو UNIX أو النواة ولكنهم مستعدون للتعلم.
  • المطورون الفضوليون لمعرفة كيفية عمل أنظمة التشغيل فعليًا تحت الغطاء.
  • المحترفون الذين يستخدمون FreeBSD بالفعل (أو أنظمة مشابهة) ويريدون تعميق معرفتهم من خلال تعلم كيفية بناء برامج التشغيل عمليًا.

لمن هذا الكتاب ليس مناسبًا؟

  • القراء الذين يبحثون عن دليل سريع للنسخ واللصق. يركز الكتاب على الفهم بدلاً من الاختصارات.
  • مطورو النواة ذوو الخبرة الذين لا يحتاجون إلى الأساسيات. تبدأ الوتيرة من الصفر.
  • القراء الذين يريدون مرجعًا موسوعيًا للعتاد. التركيز هو تطوير برامج تشغيل FreeBSD الواقعي، وليس مواصفات الناقل أو الجهاز الشاملة.

ماذا ستتعلم؟

الكتاب منظم في سبعة أجزاء تبني على بعضها البعض:

في النهاية، ستكون قد كتبت وقمت بتحميل وحدات النواة الخاصة بك، وبنيت برنامج تشغيل أحرف، وعالجت مقاطعات حقيقية و DMA، وصححت مشاكل النواة (kernel panics)، ونمّذت برنامج التشغيل تحت الحمل، وسرت في كل خطوة من خطوات مساهمة عملك في مشروع FreeBSD.

إحصائيات الكتاب

جدول المحتويات الكامل

اضغط لتوسيع قائمة الفصول الكاملة

الجزء 1: أسس FreeBSD وC والنواة

  1. مقدمة: من الفضول إلى المساهمة
  2. إعداد مختبرك
  3. مقدمة لطيفة إلى UNIX
  4. نظرة أولى على لغة البرمجة C
  5. فهم C لبرمجة نواة FreeBSD
  6. تشريح برنامج تشغيل FreeBSD

الجزء 2: بناء أول برنامج تشغيل

  1. كتابة أول برنامج تشغيل
  2. العمل مع ملفات الجهاز
  3. القراءة والكتابة من وإلى الأجهزة
  4. التعامل الفعال مع الإدخال والإخراج

الجزء 3: التزامن والمزامنة

  1. التزامن في برامج التشغيل
  2. آليات المزامنة
  3. المؤقتات والعمل المؤجل
  4. قوائم المهام والعمل المؤجل
  5. المزيد من المزامنة: الشروط، والإشارات، والتنسيق

الجزء 4: تكامل العتاد ومستوى المنصة

  1. الوصول إلى العتاد
  2. محاكاة العتاد
  3. كتابة برنامج تشغيل PCI
  4. التعامل مع المقاطعات
  5. التعامل المتقدم مع المقاطعات
  6. DMA ونقل البيانات عالي السرعة
  7. إدارة الطاقة

الجزء 5: التصحيح، الأدوات، والممارسات الواقعية

  1. التصحيح والتتبع
  2. التكامل مع النواة
  3. مواضيع متقدمة ونصائح عملية

الجزء 6: كتابة برامج تشغيل خاصة بالنقل

كيفية قراءة الكتاب

الوتيرة الموصى بها هي فصل واحد في الأسبوع بحوالي خمس ساعات من الدراسة الأسبوعية. هذا الجدول يجعل الكتاب بأكمله في متناول اليد خلال عام أكاديمي. بعض الفصول (خاصة الفصل 4 عن C، وفصول الجزء 4 عن العتاد) تمتد بشكل طبيعي لعدة أسابيع.

التمارين العملية موصى بها بشدة. تكافئ برمجة النواة الذاكرة العضلية بطريقة لا تفعلها سوى تخصصات قليلة. نفس نمط الربط، نفس سلسلة التنظيف، نفس شكل القفل تظهر فصلًا بعد فصل وبرنامج تشغيل بعد آخر. كتابة تلك الأنماط، تجميعها، تحميلها في نواة قيد التشغيل، ومشاهدتها تفشل عن قصد هو الطريقة الأكثر فعالية لاستيعابها.

إذا كنت تعرف بالفعل C وUNIX والشكل العام لنواة نظام التشغيل، فإن الملاحظات السريعة (fast-path notes) في جميع أنحاء الجزء 1 تخبرك بالأقسام التي يجب قراءتها بعناية والتي يمكنك تصفحها.

تحميل الكتاب

الإصدار 2.0 متوفر الآن على صفحة الإصدارات بثلاث لغات وثلاثة تنسيقات:

يمكنك أيضًا تصفح مصدر Markdown مباشرة في دليل content/، أو بناء الكتاب بنفسك باستخدام scripts/build-book.sh.

حول الترجمات

النسخة الإنجليزية هي النسخة الأصلية والموثوقة للكتاب. تمت ترجمة النسختين البرتغالية البرازيلية والإسبانية باستخدام الذكاء الاصطناعي ولم تخضعا بعد لمراجعة فنية بشرية كاملة. تم نشرهما لجعل المادة متاحة لعدد أكبر من القراء، لكنهما قد تحتويان على أخطاء في الترجمة، أو صياغة غير مناسبة، أو أخطاء فنية ناتجة عن الترجمة.

إذا كان هناك شيء غير واضح، أو غير متسق، أو مشكوك فيه من الناحية الفنية في أي نسخة مترجمة، فيرجى الرجوع إلى النسخة الإنجليزية كمصدر للحقيقة. المساعدة في مراجعة وتحسين الترجمات مرحب بها جدًا (انظر المساهمة أدناه).

المشكلات المعروفة في v2.0

هذه نسخة مسودة (draft release) من كتاب كبير جدًا. بعض الأشياء التي يجب الانتباه إليها:

  • بعض كتل الكود المصدري في إصدارات PDF وEPUB وHTML قد تتجاوز حدود الصفحة أو تلتف بطريقة غير مناسبة. هذه مشكلات في العرض سيتم تحسينها في إصدار مستقبلي؛ المحتوى نفسه صحيح.
  • إذا كان مثال الكود صعب القراءة في أي من التنسيقات المعروضة، فإن ملفات Markdown في هذا المستودع هي مصدر الحقيقة. افتح الملف ذي الصلة في دليل content/ للحصول على نسخة نظيفة.
  • مراجعة الترجمة لـ pt_BR وes_ES مخطط لها في المستقبل القريب، بقدر ما يسمح به وقت المؤلف.

هيكل المستودع```

FDD-book/ ├── content/ # Book content (Markdown) │ ├── chapters/ # Chapters by Part │ └── appendices/ # Appendices A-F ├── examples/ # Source code from the book ├── translations/ │ ├── pt_BR/ # Brazilian Portuguese (AI-translated) │ └── es_ES/ # Spanish (AI-translated) └── scripts/ # Build and utility scripts

root@kitploit:~
## المساهمة

نرحب بجميع أنواع المساهمات، بما في ذلك التصحيحات، والتوضيحات، والأمثلة الجديدة، والترجمات، والمراجعات من مطوري ومتعلمي FreeBSD على حد سواء.

### طرق المساهمة

- **المحتوى:** إضافة فصول جديدة، تحسين المواد الموجودة
- **المراجعة الفنية:** مراجعة الفصول للتأكد من دقتها مقارنة بـ FreeBSD 14.x
- **مراجعة الترجمة:** المساعدة في مراجعة وتحسين النسختين المترجمتين بالذكاء الاصطناعي **pt_BR** و **es_ES**؛ المتحدثون الأصليون ذوو الخبرة في FreeBSD/Nucleus مرحب بهم بشكل خاص
- **ترجمات جديدة:** المساعدة في ترجمة الكتاب إلى لغة أخرى
- **الكود:** تحسين الأمثلة ونصوص البناء والأدوات
- **المشكلات:** الإبلاغ عن الأخطاء، والأخطاء الواقعية، والمقاطع غير الواضحة، أو مشكلات التنسيق

### الإبلاغ عن مشكلة

عند تقديم مشكلة، يرجى تضمين:

- إصدار اللغة الذي كنت تقرأه (`en_US`، `pt_BR`، `es_ES`)
- التنسيق المستخدم (PDF، EPUB، HTML، أو Markdown)
- الفصل أو القسم الذي تظهر فيه المشكلة
- شرح قصير للمشكلة، وتصحيح مقترح إذا كان لديك واحد

### سير العمل

1. انسخ المستودع (Fork)
2. أنشئ فرعًا: `git checkout -b feature/your-change`
3. قم بإجراء تغييراتك واختبر البناء باستخدام `scripts/build-book.sh`
4. قم بالالتزام برسالة واضحة: `git commit -m "Chapter 18: clarify BAR mapping"`
5. ادفع وافتح طلب سحب (Pull Request)

عندما تتعثر أثناء قراءة الكتاب، **يساعد تقديم مشكلة**. إذا بدا مقطع ما خاطئًا أو فشل مختبر بشكل غير متوقع، فإن كل تقرير يجعل طريق القارئ التالي أكثر سلاسة.

## الأسئلة الشائعة

### لماذا يوجد هذا الكتاب؟

الإجابة الصادقة هي أن مشروع FreeBSD يحتاج إلى مساهمين جدد، وكان الطريق إلى العمل في النواة (kernel) وبرامج التشغيل (drivers) دائمًا أكثر صعوبة مما ينبغي. معظم المواد الموجودة تفترض أنك تعرف UNIX بالفعل، وتجيد C جيدًا، وتعرف ما هو الناقل (bus)، وتعرف كيفية قراءة شفرة مصدر النواة. هذا يناسب الأشخاص الذين هم بالفعل في منتصف الطريق. لا يفعل الكثير للمطور الفضولي الذي يريد البدء.

الهدف من هذا الكتاب هو خفض تلك العقبة. إذا أكمل حتى عدد صغير من القراء الكتاب وشرعوا في تقديم التصحيحات (patches)، ومراجعة الكود، وكتابة برامج تشغيل جديدة، أو أصبحوا في النهاية مساهمين (committers) في FreeBSD، فقد أدى الكتاب مهمته. **تدريب الجيل القادم من مساهمي FreeBSD هو السبب وراء كتابة هذا العمل**.

### هل أحتاج إلى معرفة C قبل البدء؟

لا. الفصلان 4 و5 يعلمان C من الصفر، مع التركيز على أجزاء اللغة المهمة للعمل في النواة (المؤشرات، الهياكل، تخطيط الذاكرة، المعالج المسبق، واصطلاحات الاستدعاء). إذا كنت تعرف C جيدًا بالفعل، فإن الأشرطة الجانبية (sidebars) في تلك الفصول تخبرك بما يمكنك تصفحه وما يجب قراءته بعناية.

### هل أحتاج إلى معرفة UNIX أو FreeBSD؟

لا. الفصل 2 يرشدك خلال تثبيت FreeBSD في جهاز افتراضي (VM) أو على جهاز فعلي (bare metal)، والفصل 3 يقدم سطر أوامر UNIX، ونظام الملفات، والعمليات، والأذونات، والمحررات. بنهاية الجزء الأول سيكون لديك مختبر عملي والمفردات اللازمة لاستخدامه.

### هل أحتاج إلى أجهزة حقيقية؟

معظم الكتاب لا. يكفي جهاز افتراضي يعمل بنظام FreeBSD 14.x للأساسيات، وفصول برامج التشغيل الأولى، والتزامن والمزامنة، وجزء كبير من مادة التصحيح. تصبح الأجهزة الحقيقية مفيدة (ولكنها لا تزال غير مطلوبة بشكل صارم) عندما تصل إلى فصول PCI والمقاطعات (interrupts) و DMA في الجزء الرابع. تلك الفصول مكتوبة بحيث تكون المفاهيم منطقية حتى لو قمت بتشغيلها فقط في جهاز افتراضي.

### هل سيساعدني هذا في كتابة برامج تشغيل Linux؟

بشكل غير مباشر، نعم. إنضباط برمجة النواة ينتقل بشكل جيد جدًا: استراتيجية التأمين (locking)، إدارة الذاكرة، سياق المقاطعة، تعيين DMA، الفرق بين مسارات الكود النائمة (sleeping) وغير النائمة (non-sleeping)، ترتيب التنظيف الدفاعي (defensive cleanup ordering). واجهات برمجة التطبيقات المحددة مختلفة. بعد قراءة هذا الكتاب لن تعرف نموذج أجهزة Linux، لكنك ستتعرف على مشاكله وشكل حلوله، وستكون قادرًا على قراءة Linux Device Drivers (LDD) بسهولة أكبر.

### لماذا FreeBSD 14.x تحديدًا؟

تم التخطيط لكل واجهة برمجة تطبيقات (API)، وكل مثال، وكل مختبر لتنفيذها تحت شجرة المصدر FreeBSD 14.3 وصفحات `man 9` المقابلة. استهداف إصدار معين يسمح للكتاب أن يكون دقيقًا بشأن تواقيع الدوال، ومواقع الرؤوس (headers)، والسلوك. المفاهيم ستستمر بعد 14.x لسنوات عديدة؛ أرقام الأسطر الدقيقة وتفاصيل API الصغيرة لن تستمر، والكتاب صريح بشأن ذلك.

### هل هذا منشور رسمي لمشروع FreeBSD؟

لا. هذا كتاب تعليمي مستقل حول تطوير برامج تشغيل الأجهزة في FreeBSD. ليس منشورًا رسميًا لمشروع FreeBSD. المؤلف هو مساهم (committer) في FreeBSD وعضو في فريق هندسة التوثيق (DocEng)، لكن الكتاب يعكس عمله وآرائه، وليس موقفًا رسميًا للمشروع.

### كم من الوقت سيستغرقني هذا بالفعل؟

إذا قرأت بعناية وقمت بالمختبرات، خطط لحوالي 200 ساعة من العمل الإجمالي. هذا تقريبًا 100 ساعة قراءة و100 ساعة عمل عملي في المختبر. بمعدل خمس ساعات في الأسبوع، يكون مشروعًا مسائيًا لمدة ستة أشهر؛ بمعدل عشر ساعات في الأسبوع، سباق مركز لمدة شهرين. القراءة دون القيام بالمختبرات تقلل الوقت تقريبًا إلى النصف ولكنها تقلل أيضًا القيمة: برمجة النواة تكافئ الذاكرة العضلية (muscle memory) بطريقة لا تفعلها سوى القليل من التخصصات.

### هل يمكنني تخطي المختبرات؟

يمكنك، لكن ربما لا ينبغي. المختبرات هي المكان الذي يصبح فيه النص المنثور (prose) رد فعل. الأنماط مثل ترتيب التوصيل (attach ordering)، وفك التنظيف (cleanup unwinding)، وشكل اكتساب القفل (lock acquisition) تتكرر في كل فصل، والطريقة الوحيدة الموثوقة لاستيعابها هي كتابتها، وتجميعها، وتحميلها في نواة قيد التشغيل، ومشاهدتها تفشل عن قصد. القراء الذين يتخطون المختبرات يبلغون عن تقدم يبدو سلسًا في البداية ثم يتوقف بهدوء حول الجزء الثالث أو الرابع.

### كيف أساهم في FreeBSD بعد قراءة هذا؟

الفصل 37 يغطي سير عمل التقديم الكامل: كيفية إعداد تصحيح (patch)، وكيفية استخدام Phabricator (نظام مراجعة كود FreeBSD)، وكيفية العثور على مساهم (committer) لرعاية عملك، وكيفية الرد على ملاحظات المراجعة، وكيفية قيادة برنامج تشغيل إلى الشجرة (tree). الفصول السابقة تبني المهارة التقنية؛ الفصل 37 يبني سير العمل الاجتماعي. كلاهما مهم.

### الكتاب ضخم. من أين يجب أن أبدأ؟

ابدأ من الفصل الأول ما لم يكن لديك سبب لعدم ذلك. الكتاب تراكمي؛ الفصول اللاحقة تعتمد على المفردات والعادات التي تم تأسيسها سابقًا. إذا كنت تعرف بالفعل C و UNIX والشكل العام لنواة نظام التشغيل، فإن ملاحظات المسار السريع (fast-path notes) داخل الجزء الأول تخبرك بما يجب تصفحه. إذا كان نظام فرعي معين هو ما جاء بك إلى هنا (USB، الشبكات، التخزين، PCI)، فمن الجيد قراءة الجزأين 1 و 2 بعناية ثم القفز إلى الأمام، لكن توقع العودة عندما تظهر مصطلحات من الفصول السابقة مرة أخرى.

### وجدت خطأ. ماذا علي أن أفعل؟

افتح مشكلة على GitHub. قم بتضمين إصدار اللغة، والتنسيق الذي كنت تقرأه، والفصل أو القسم، ووصفًا قصيرًا للمشكلة، وتصحيحًا مقترحًا إذا كان لديك واحد. كل تقرير يجعل تجربة القارئ التالي أفضل. مشكلات الترجمة في إصدارات pt_BR و es_ES مرحب بها بشكل خاص، لأنها لم تخضع بعد لمراجعة فنية بشرية كاملة.

### هل الكتاب مجاني حقًا؟

نعم. تم إصداره بموجب ترخيص MIT. يمكنك قراءته، ومشاركته، وطباعته، والاقتباس منه، والبناء عليه، وترجمته. الإسناد (Attribution) موضع تقدير ولكنه غير مطلوب للاستخدام الشخصي. إذا كنت ترغب في دعم العمل، فإن أكثر الأشياء فائدة التي يمكنك القيام بها هي: إخبار الآخرين عن الكتاب، وتقديم مشكلات عندما تجد مشاكل، والمساهمة بمراجعات أو ترجمات، و (إذا قادك ذلك في النهاية) تقديم عملك الخاص إلى مشروع FreeBSD.

## عن المؤلف

أنا إدسون براندي. كان مساري إلى التكنولوجيا أي شيء غير تقليدي. بدأت كطالب كيمياء في Unicamp في البرازيل عام 1995، دون خطة للعمل مع أجهزة الكمبيوتر، ولكن مع سؤال واحد مستمر: *كيف يعمل هذا بالفعل؟* هذا السؤال قادني إلى FreeBSD، وشكلت FreeBSD مسيرتي المهنية منذ ذلك الحين.

في السنوات التي تلت ذلك، أسست **مجموعة مستخدمي FreeBSD البرازيلية (FUG-BR)**، وشاركت في إنشاء **مجموعة أدوات FreeBSD LiveCD**، وفي عام 2002 شاركت في تأسيس **FreeBSD Brasil**، وهي شركة تقدم تدريبًا واستشارات ودعمًا لـ FreeBSD ولا تزال تعمل حتى اليوم. أنا مساهم (committer) في FreeBSD وعضو حاليًا في **فريق هندسة التوثيق FreeBSD (DocEng)**، وأساعد في صيانة الأنظمة التي تحافظ على توثيق FreeBSD حيًا ومتاحًا في جميع أنحاء العالم.

مهنيًا، أمضيت مسيرتي المهنية في قيادة البنية التحتية والهندسة عبر العديد من الصناعات، وأعمل اليوم كمدير لتقنية المعلومات (IT Director) في شركة للتكنولوجيا المالية في لندن.

كتبت هذا الكتاب لأنني أريد أن يحصل الأشخاص الفضوليون الآخرون على الطريق السهل الذي لم أحصل عليه أبدًا. لا تحتاج إلى شهادة في علوم الكمبيوتر لكتابة كود النواة. ما تحتاجه هو الفضول، والمثابرة، والصبر، ودليل يلتقي بك أينما كنت.

إدسون براندي · [email protected]

## الترخيص

تم إصدار هذا الكتاب وشفرة المصدر المصاحبة له بموجب **رخصة MIT**. انظر [LICENSE](https://github.com/ebrandi/fdd-book/blob/HEAD/LICENSE) للنص الكامل. أنت حر في قراءة هذا العمل ومشاركته والبناء عليه؛ الإسناد موضع تقدير.

## الشكر والتقدير

- مجتمع تطوير FreeBSD
- جميع المساهمين والمراجعين والمترجمين
- كل من قدم مشكلة أو طرح سؤالاً أدى إلى تحسين فصل ما

## الروابط

- **المستودع:** https://github.com/ebrandi/FDD-book
- **المشكلات:** https://github.com/ebrandi/FDD-book/issues
- **المناقشات:** https://github.com/ebrandi/FDD-book/discussions
- **المؤلف:** Edson Brandi · [email protected]

---

<p align="center"><em>إذا ساعدك هذا الكتاب، يرجى وضع نجمة (star) على المستودع ومشاركته مع شخص آخر فضولي حول كيفية عمل أجهزة الكمبيوتر حقًا.</em></p>
تنزيل الأداة
الجزءالعنوانالتركيز
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موضوعات الإتقان: سيناريوهات خاصة وحالات حافةقابلية النقل، المحاكاة الافتراضية، الأمان، الأنظمة المضمنة، الهندسة العكسية، تقديم المساهمات
الصفحات4,500+
الفصول38
الملاحق6
وقت القراءة~100 ساعة
وقت التمارين العملية~100 ساعة
إجمالي وقت الدراسة~200 ساعة (≈6 أشهر بمعدل 5 ساعات/أسبوع)
إصدار FreeBSD المستهدف14.3
اللغاتالإنجليزية (الأصل) · البرتغالية البرازيلية (ترجمة بالذكاء الاصطناعي) · الإسبانية (ترجمة بالذكاء الاصطناعي)
التنسيقاتPDF · EPUB · HTML · مصدر Markdown
  1. برامج تشغيل USB والمنفذ التسلسلي
  2. العمل مع أجهزة التخزين وطبقة VFS
  3. كتابة برنامج تشغيل شبكة

الجزء 7: موضوعات الإتقان

  1. قابلية النقل وتجريد برامج التشغيل
  2. المحاكاة الافتراضية والحاويات (Containerization)
  3. أفضل ممارسات الأمان
  4. شجرة الجهاز (Device Tree) والتطوير المضمن
  5. ضبط الأداء والنمذجة (Profiling)
  6. تقنيات التصحيح المتقدمة
  7. الإدخال/الإخراج غير المتزامن ومعالجة الأحداث
  8. إنشاء برامج تشغيل بدون توثيق (الهندسة العكسية)
  9. تقديم برنامج التشغيل الخاص بك إلى مشروع FreeBSD
  10. أفكار ختامية والخطوات التالية

الملاحق

  • أ: مرجع واجهة برمجة تطبيقات نواة FreeBSD
  • ب: الخوارزميات والمنطق لبرمجة الأنظمة
  • ج: مفاهيم العتاد لمطوري برامج التشغيل
  • د: مفاهيم نظام التشغيل
  • ه: التنقل في دواخل نواة FreeBSD
  • و: مجموعة اختبارات الأداء والنتائج
اللغةPDFEPUBHTML
الإنجليزية (الأصل)PDFEPUBHTML
البرتغالية (البرازيل)، ترجمة بالذكاء الاصطناعيPDFEPUBHTML
الإسبانية، ترجمة بالذكاء الاصطناعيPDFEPUBHTML