غطسة عميقة: تتبع دعوة النظام `write()` في OpenBSD
2025-03-29
تتناول هذه المقالة بتعمق التنفيذ على مستوى منخفض لدعوة النظام `write()` في OpenBSD. بدءًا من دعوة `write()` في مساحة المستخدم، تتبع مسار البيانات عبر النواة، مُفصلة المسار الكامل من دعوة النظام إلى كتابة البيانات على قرص صلب NVMe. تكشف المقالة عن سلسلة من دعوات دالة النواة، بما في ذلك `mi_syscall`, `sys_write`, `dofilewritev`, `vn_write`, `ffs_write`, `uiomove`, `bdwrite`, `syncer`, `bwrite`, `ufs_strategy`, `spec_strategy`, `sdstrategy`، وأخيرًا برنامج تشغيل NVMe. تُوضح تحويل البيانات ونقلها عبر مستويات تجريد مختلفة، مُسلطة الضوء على تفاصيل تقنية رئيسية مثل آليات التخزين المؤقت ونقل DMA.
التطوير
دعوة النظام