واجهة برمجة التطبيقات (API) غير قابلة للاكتشاف للعدادات عبر الأنظمة الأساسية: رحلة عبر واجهات برمجة التطبيقات لنظام التشغيل
يتناول هذا المقال التحديات التي تواجه واجهات برمجة التطبيقات (APIs) للعدادات عبر الأنظمة الأساسية في برمجة لغة C. يكتشف المؤلف أن أنظمة يونكس المختلفة (بما في ذلك لينكس و FreeBSD و NetBSD وما إلى ذلك) تتعامل مع العدادات بطرق مختلفة جدًا. وظيفة POSIX timer_create، القائمة على الإشارات، تُظهر العديد من المشكلات، مثل ضعف التشغيل البيني مع بدائيات نظام التشغيل الأخرى وتداخل قناع الإشارة. يناقش المقال إيجابيات وسلبيات العديد من الحلول، بما في ذلك timerfd_create و kqueue و port_create و io_uring، ويخلص إلى أنه بالنسبة للتطبيقات عبر الأنظمة الأساسية، فإن تنفيذ العدادات في مساحة المستخدم، كما يفعل libuv، هو نهج أكثر كفاءة وموثوقية. يستخدم libuv بنية بيانات كومة صغيرة لإدارة العدادات ويستخدم مكالمات النظام مثل poll/epoll/kqueue للربط المتعدد.