البرنامج التعليمي لبرمجة Linux المتقدمة {تطوير} <br /> الجزء 1 Linux Kernel الجزء 2 دليل برمجة وحدة Linux Kernel الجزء 3 دليل مبرمج Linux الجزء 4 بنية نظام مفهوم Linux Kernel الجزء 5 بنية النظام المحددة لنواة Linux
جدول المحتويات مقدمة لمقدمة ريموند
"إعلان" مجموعة هندسة توثيق Linux
مقدمة المترجم الجزء الأول مقدمة Linux Kernel
الفصل الأول أساسيات الأجهزة وأساسيات البرامج 6
1.1 أساسيات الأجهزة 6
1.1.1 وحدة المعالجة المركزية 7
1.1.2 الذاكرة 8
1.1.3 الحافلة 8
1.1.4 وحدات التحكم والأجهزة الطرفية 8
1.1.5 مساحة العنوان 9
1.1.6 الساعة 9
1.2 أساسيات البرمجيات 9
1.2.1 لغة الكمبيوتر 9
1.2.2 ما هو نظام التشغيل 11
1.2.3 بنية بيانات النواة 13
الفصل الثاني إدارة الذاكرة 15
2.1 نموذج تجريدي للذاكرة الافتراضية 15
2.1.1 طلب الترحيل 17
2.1.2 التبادل 17
2.1.3 الذاكرة الافتراضية المشتركة 18
2.1.4 وضع العنونة المادية ووضع العنونة الافتراضية 18
2.1.5 التحكم في الوصول 18
2.2 التخزين المؤقت 19
2.3 جدول صفحات Linux 20
2.4 تخصيص الصفحات وإعادة تدويرها 21
2.4.1 تخصيص الصفحة 22
2.4.2 إعادة تدوير الصفحة 22
2.5 تعيين الذاكرة 22
2.6 طلب الترحيل 23
2.7 ذاكرة التخزين المؤقت لصفحة Linux 24
2.8 تبديل الصفحات وإزالتها 25
2.8.1 تقليل أحجام المخزن المؤقت وذاكرة التخزين المؤقت للصفحة 25
2.8.2 تبديل صفحات الذاكرة المشتركة للنظام V 26
2.8.3 تبديل الصفحات وسحبها 27
2.9 مبادلة ذاكرة التخزين المؤقت 27
2.10 تغيير الصفحة 28
الفصل 3 العملية 29
3.1 عمليات لينكس 29
3.2 المعرفات 31
3.3 الجدولة 32
3.4 التوثيق 34
3.5 الذاكرة الظاهرية 35
3.6 إنشاء العملية 36
3.7 الوقت والمؤقتات 37
3.8 تنفيذ البرنامج 38
3.8.1 قزم 39
3.8.2 ملفات البرنامج النصي 40
الفصل الرابع آلية الاتصال بين العمليات 41
4.1 آلية التشوير 41
4.2 الأنابيب 42
4.3 المقابس 44
4.3.1 آلية الاتصال بين العمليات في النظام V 44
4.3.2 قائمة انتظار الرسائل 44
4.3.3 الإشارة 45
4.3.4 التخزين المشترك 47
الفصل 5 PCI 49
5.1 مساحة عنوان PCI 49
5.2 رأس تكوين PCI 50
5.3 PCI I/O ومساحة عنوان التخزين 51
5.4 جسر PCI-ISA 51
5.5 جسر PCI-PCI 51
5.5.1 جسر PCI-PCI: عناوين الإدخال/الإخراج والتخزين PCI
نافذة على الفضاء 51
5.5.2 جسر PCI-PCI: دورة تكوين PCI وPCI
الحافلة رقم 52
5.6 تهيئة Linux PCI 53
5.6.1 بنية بيانات Linux kernel PCI 53
5.6.2 برنامج تشغيل جهاز PCI 53
5.6.3 وظائف PCI BIOS 56
5.6.4 عملية تصحيح PCI 57
الفصل السادس معالجة المقاطعة وبرامج تشغيل الأجهزة 60
6.1 المقاطعات والتعامل مع المقاطعات 60
6.1.1 وحدة تحكم المقاطعة القابلة للبرمجة 61
6.1.2 تهيئة بنية بيانات معالجة المقاطعة 61
6.1.3 معالجة المقاطعة 62
6.2 برامج تشغيل الأجهزة 63
6.2.1 الاختبار والانقطاع 64
6.2.2 الوصول المباشر للذاكرة (DMA) 65
6.2.3 الذاكرة 66
6.2.4 الواجهة بين برنامج تشغيل الجهاز والنواة 66
6.2.5 القرص الصلب 69
6.2.6 معدات الشبكة 74
الفصل السابع أنظمة الملفات 77
7.1 نظام الملفات الممتد الثاني EXT2 78
7.1.1 عقدة Inode لنظام EXT2 79
7.1.2 الكتلة الفائقة في نظام EXT2 80
7.1.3 واصفات المجموعة لأنظمة EXT2 80
7.1.4 دليل نظام EXT2 81
7.1.5 البحث عن الملفات في نظام الملفات EXT2 81
7.1.6 تغيير الملفات في نظام الملفات EXT2
الحجم 82
7.2 نظام الملفات الظاهري 83
7.2.1 الكتلة الفائقة لنظام الملفات VFS 84
7.2.2 عقدة Inode لنظام الملفات VFS 84
7.2.3 تسجيل نظام الملفات 85
7.2.4 تجميع نظام الملفات 85
7.2.5 البحث عن الملفات في نظام الملفات الافتراضي 87
7.2.6 إلغاء تثبيت نظام الملفات 87
7.2.7 ذاكرة التخزين المؤقت Inode لنظام الملفات VFS 87
7.2.8 التخزين المؤقت للدليل 88
7.3 التخزين المؤقت 88
7.3.1 برنامج bdflush kernel daemon 90
7.3.2 عملية التحديث 90
7.4 / نظام الملفات بروك 91
7.5 ملفات الجهاز الخاصة 91
الفصل 8 الشبكة 92
8.1 نظرة عامة على شبكة TCP/IP 92
8.2 التسلسل الهرمي لشبكة TCP/IP في Linux 95
8.3 واجهة مقبس BSD 96
8.4 طبقة مأخذ توصيل INET 97
8.4.1 إنشاء مقبس BSD 98
8.4.2 عنوان الربط لمقبس INET BSD 99
8.4.3 إنشاء اتصال مقبس INET BSD 99
8.4.4 الاستماع إلى مقبس INET BSD 100
8.4.5 قبول طلبات الاتصال 100
8.5 طبقة IP 100
8.5.1 المخزن المؤقت للمقبس 100
8.5.2 استقبال رسائل IP 101
8.5.3 إرسال حزم IP 102
8.5.4 مشاركة البيانات 102
8.6 بروتوكول تحليل العنوان 103
8.7 توجيه IP 104
الفصل 9 آليات ووحدات النواة 107
9.1 آلية النواة 107
9.1.1 التحكم في النصف السفلي 107
9.1.2 قائمة انتظار المهام 108
9.1.3 الموقتات 109
9.1.4 قائمة الانتظار 110
9.1.5 قفل الدوران 110
9.1.6 الإشارة 110
9.2 الوحدات 111
9.2.1 تحميل الوحدة 112
9.2.2 إلغاء تثبيت الوحدة 113
الفصل العاشر المعالجات115
10.1 × 86 115
10.2 آر إم 115
10.3 معالج ألفا AXP 115
الفصل 11 كود مصدر Linux Kernel 117
11.1 كيفية الحصول على الكود المصدري لنواة لينكس 117
11.2 ترتيب كود مصدر النواة 117
11.3 من أين نبدأ 118
الفصل 12 هياكل بيانات Linux 120
الملحق أ مواقع الويب ومواقع FTP المفيدة 138
الملحق ب مسرد 139
الجزء الثاني دليل برمجة وحدة Linux Kernel شكر وتقدير مقدمة الفصل الأول مرحبًا بالعالم 145
1.1 ملفات إنشاء وحدة النواة 146
1.2 وحدة النواة متعددة الملفات 147
الفصل 2 ملفات جهاز الأحرف 149
الفصل الثالث / نظام الملفات proc 158
الفصل 4 استخدام /proc للإدخال 162
الفصل 5 استخدام ملفات الجهاز للإدخال 170
الفصل السادس معلمات بدء التشغيل182
الفصل 7 يستدعي النظام 185
الفصل الثامن منع التعامل190
الفصل 9 استبدال printk 199
الفصل العاشر جدولة المهام 202
الفصل 11 معالجات المقاطعة 207
الفصل 12 المعالجة المتعددة المتماثلة 211
الفصل 13 الأخطاء الشائعة 212
الملحق أ الاختلافات بين 2.0 و 2.2 213
الملحق ب موارد أخرى 214
الملحق ج أعط تقييمك 215
الجزء الثالث دليل مبرمجي Linux الفصل الأول نظام التشغيل Linux 219
الفصل الثاني نواة لينكس 220
الفصل الثالث حزمة Linux libc 221
الفصل الرابع يستدعي النظام 222
الفصل الخامس "سكين الجيش السويسري": ioctl 223
الفصل السادس: الاتصال بين عمليات Linux 224
6.1 مقدمة 224
6.2 أنابيب يونكس أحادية الاتجاه 224
6.2.1 المفاهيم الأساسية 224
6.2.2 إنشاء خطوط الأنابيب في لغة C 225
6.2.3 طريقة بسيطة 229
6.2.4 العمليات الذرية على الأنابيب 233
6.2.5 هناك عدة أشياء يجب ملاحظتها حول الأنابيب أحادية الاتجاه
العدد 233
6.3 الأنابيب المسماة 234
6.3.1 المفاهيم الأساسية 234
6.3.2 إنشاء FIFO 234
6.3.3 عملية FIFO 235
6.3.4 حظر الإجراء على FIFO 236
6.3.5 إشارة SIGPIPE 237
6.4 النظام الخامس IPC 237
6.4.1 المفاهيم الأساسية 237
6.4.2 قائمة انتظار الرسائل 239
6.4.3 الإشارة 251
6.4.4 أداة semtool: عمليات الإشارة التفاعلية
البرنامج 260
6.4.5 الذاكرة المشتركة 267
الفصل 7 البرمجة الصوتية274
7.1 برمجة السماعات الداخلية 274
7.2 برمجة بطاقة الصوت 274
الفصل 8 رسومات وحدة الأحرف 276
8.1 وظائف الإدخال/الإخراج في libc 277
8.1.1 الإخراج المنسق 277
8.1.2 المدخلات المنسقة 278
8.2 مكتبة المصطلحات 278
8.2.1 المقدمة 278
8.2.2 الحصول على وصف المحطة 279
8.2.3 عرض وصف المحطة 279
8.2.4 قدرات الحد الأقصى 280
8.3 مقدمة إلى Ncurses 280
8.4 التهيئة 282
8.5 ويندوز 283
8.6 الإخراج 284
8.6.1 الإخراج المنسق 285
8.6.2 إدراج الأحرف/السطر 286
8.6.3 حذف الأحرف/السطور 286
8.6.4 المربعات والخطوط 287
8.6.5 أحرف الخلفية 287
8.7 الإدخال 288
8.8 الخيارات 289
8.8.1 خيارات الإخراج 289
8.8.2 خيارات الإدخال 290
8.8.3 خصائص المحطة 291
8.8.4 استخدام الخيارات 291
8.9 تحديث المحطة 292
8.10 خصائص وألوان الفيديو 293
8.11 إحداثيات المؤشر والشاشة 294
8.12 المتداول 294
8.13 لوحة المفاتيح 295
8.14 العلامات الناعمة 295
8.15 متنوعة 295
8.16 الوصول على مستوى منخفض 296
8.17 تفريغ الشاشة 296
8.18 محاكاة Termcap 296
8.19 وظيفة Terminfo 296
8.20 وظائف التصحيح 297
8.21 قدرات Terminfo 297
8.21.1 القدرات المنطقية 297
8.21.2 القدرات العددية 298
8.21.3 قدرات السلسلة 299
8.22 [N] نظرة عامة على وظيفة اللعنات 306
الفصل التاسع برمجة منافذ الإدخال والإخراج 307
9.1 برمجة الفأرة 307
9.2 برمجة المودم 308
9.3 برمجة الطابعة 308
9.4 برمجة عصا التحكم 308
الفصل 10 تطبيقات النقل إلى Linux 309
10.1 مقدمة 309
10.2 معالجة الإشارات 309
10.2.1 ضمن SVR4 وBSD وPOSIX.1
إشارة 310
10.2.2 خيارات إشارة Linux 310
10.2.3 الإشارات في Linux 310
10.2.4 الإشارات التي يدعمها Linux 311
10.3 محطة الإدخال/الإخراج 311
10.4 معلومات العملية والتحكم فيها 311
10.4.1 عملية كيلو فولت في الدقيقة 312
10.4.2 نظام الملفات ptrace و/proc 312
10.4.3 التحكم في العمليات في Linux 312
10.5 التجميع الشرطي المحمول 313
10.6 تعليمات تكميلية 314
الملحق النظام الأبجدي يدعو 315
الجزء الرابع ملخص بنية نظام مفهوم Linux Kernel 323
المقدمة 324
الفصل الأول هيكل النظام 325
1.1 نظرة عامة على النظام 325
1.2 أهداف النواة 325
1.3 نظرة عامة على بنية النواة 325
1.4 دعم العديد من المطورين 327
1.5 بنية بيانات النظام 328
1.5.1 قائمة المهام 328
1.5.2 رسم خرائط الذاكرة 328
1.5.3 عقد الفهرس 328
1.5.4 اتصال البيانات 329
الفصل الثاني هيكل النظام للأنظمة الفرعية 330
2.1 هيكل نظام جدولة العمليات 330
2.1.1 الأهداف 330
2.1.2 الوحدة 330
2.1.3 تعبير البيانات 331
2.1.4 التبعيات وتدفق البيانات وتدفق التحكم 331
2.2 هيكل نظام إدارة الذاكرة 331
2.2.1 الأهداف 331
2.2.2 الوحدات 331
2.2.3 تمثيل البيانات 331
2.2.4 تدفق البيانات وتدفق التحكم والتبعيات 332
2.3 هيكل نظام الملفات الظاهري 333
2.3.1 الأهداف 333
2.3.2 الوحدات 333
2.3.3 تمثيل البيانات 333
2.3.4 تدفق البيانات وتدفق التحكم والتبعيات 334
2.4 هيكل نظام واجهة الشبكة 334
2.4.1 الأهداف 334
2.4.2 الوحدات 334
2.4.3 تمثيل البيانات 335
2.4.4 تدفق البيانات وتدفق التحكم والتبعيات 335
2.5 هيكل نظام الاتصالات بين العمليات 335
الفصل الثالث خاتمة 336
الملحق أ تعريف المصطلحات 337
الملحق ب المراجع 338
الجزء 5 ملخص لبنية النظام المحددة لنواة Linux 341
الفصل الأول المقدمة 342
1.1 الأهداف 342
1.2 مقدمة إلى لينكس 342
1.3 المعرفة الأساسية ببنية نظام البرمجيات 342
1.4 الطرق والأساليب 343
1.5 القراء الذين يستهدفهم هذا الكتاب 344
1.6 ترتيب فصول هذا الجزء 344
الفصل الثاني هيكل النظام 345
الفصل 3 هيكل النظام الفرعي 346
3.1 جدولة العمليات 346
3.1.1 الأهداف 346
3.1.2 الواجهة الخارجية 346
3.1.3 وصف النظام الفرعي 346
3.1.4 بنية البيانات 347
3.1.5 هيكل النظام الفرعي 348
3.1.6 تبعيات النظام الفرعي 348
3.2 مدير الذاكرة 348
3.2.1 الأهداف 348
3.2.2 الواجهة الخارجية 349
3.2.3 وصف النظام الفرعي 349
3.2.4 بنية البيانات 350
3.2.5 هيكل النظام الفرعي 350
3.2.6 تبعيات النظام الفرعي 351
3.3 نظام الملفات الظاهري 352
3.3.1 الأهداف 352
3.3.2 الواجهة الخارجية 352
3.3.3 وصف النظام الفرعي 353
3.3.4 برامج تشغيل الأجهزة 353
3.3.5 نظام الملفات المنطقية 354
3.3.6 الوحدات 354
3.3.7 بنية البيانات 355
3.3.8 هيكل النظام الفرعي 355
3.3.9 تبعيات النظام الفرعي 355
3.4 الاتصال بين العمليات 355
3.4.1 الأهداف 355
3.4.2 الواجهة الخارجية 357
3.4.3 وصف النظام الفرعي 357
3.4.4 بنية البيانات 358
3.4.5 هيكل النظام الفرعي 359
3.4.6 تبعيات النظام الفرعي 359
3.5 واجهة الشبكة 360
3.5.1 الأهداف 360
3.5.2 الواجهة الخارجية 361
3.5.3 وصف النظام الفرعي 361
3.5.4 بنية البيانات 362
3.5.5 هيكل النظام الفرعي 363
3.5.6 تبعيات النظام الفرعي 363
الفصل الرابع خاتمة 365
الملحق أ تعريف المصطلحات 366
الملحق ب المراجع 368
الجزء السادس، الملحق، الملحق أ، نسخة مشروع مستند Linux، الترخيص 372
الملحق ب رخصة جنو العامة 374
يوسع