الاسم
- Provided by: manpages-ar (Version: 4.31.0-1)
- Source: manpages-l10n
- Report a bug
#include <linux/rtc.h>
int ioctl(fd, RTC_request, param);
هذه هي الواجهة لبرامج قيادة ساعات الوقت الحقيقي (RTCs).
تمتلك معظم الحواسيب ساعة عتادية واحدة أو أكثر تسجل وقت "ساعة الحائط" الحالي. تُسمى هذه الساعات "ساعات الوقت الحقيقي" (RTCs). عادة ما تمتلك إحداها طاقة احتياطية من بطارية لكي تتبع الوقت حتى عندما يكون الحاسوب مطفأً. توفر ساعات الوقت الحقيقي غالباً منبهات ومقاطعات أخرى.
تمتلك جميع الحواسيب الشخصية بمعمارية i386، والأنظمة القائمة على ACPI، ساعة وقت حقيقي متوافقة مع شريحة Motorola MC146818 الموجودة في أجهزة PC/AT الأصلية. في هذه الأيام، عادة ما تُدمج ساعة الوقت الحقيقي هذه في طقم رقائق اللوحة الرئيسة (الجسر الجنوبي)، وتستخدم بطارية احتياطية قابلة للاستبدال بحجم العملة المعدنية.
تستخدم الأنظمة غير المتوافقة مع الحاسوب الشخصي، مثل الأنظمة المدمجة المبنية حول معالجات النظام على شريحة (system-on-chip)، تنفيذات أخرى. وعادة لا توفر نفس الوظائف التي توفرها ساعة الوقت الحقيقي في أجهزة PC/AT.
ينبغي عدم الخلط بين ساعات الوقت الحقيقي وساعة النظام، وهي ساعة برمجية تديرها النواة وتُستخدم لتنفيذ gettimeofday(2) و time(2)، بالإضافة إلى تعيين الطوابع الزمنية على الملفات، وما إلى ذلك. تبلغ ساعة النظام عن الثواني والميكروثانية منذ نقطة البداية، المعرفة بأنها حقبة بوسيكس (POSIX Epoch): 1970-01-01 00:00:00 +0000 (UTC). (يقوم أحد التنفيذات الشائعة بعد مقاطعات الموقت، مرة واحدة لكل "طرفة" (jiffy)، بتردد 100 أو 250 أو 1000 هرتز). أي أنه من المفترض أن تبلغ عن وقت ساعة الحائط، وهو ما تفعله ساعات الوقت الحقيقي أيضًا.
يتمثل الفرق الرئيس بين ساعة الوقت الحقيقي وساعة النظام في أن ساعات الوقت الحقيقي تعمل حتى عندما يكون النظام في حالة طاقة منخفضة (بما في ذلك حالة "الإيقاف")، بينما لا تستطيع ساعة النظام ذلك. لا يمكن لساعة النظام، حتى تُهيئة، إلا الإبلاغ عن الوقت منذ إقلاع النظام، وليس منذ حقبة بوسيكس. لذا عند وقت الإقلاع، وبعد الاستئناف من حالة طاقة منخفضة للنظام، غالباً ما تُضبط ساعة النظام على وقت ساعة الحائط الحالي باستخدام ساعة الوقت الحقيقي. تحتاج الأنظمة التي لا تملك ساعة وقت حقيقي إلى ضبط ساعة النظام باستخدام ساعة أخرى، ربما عبر الشبكة أو بإدخال تلك البيانات يدوياً.
يمكن قراءة ساعات الوقت الحقيقي والكتابة إليها باستخدام hwclock(8)، أو مباشرة باستخدام طلبات ioctl(2) المدرجة أدناه.
إلى جانب تتبع التاريخ والوقت، يمكن للعديد من ساعات الوقت الحقيقي أيضًا توليد مقاطعات
يمكن تفعيل أو تعطيل كل مصدر من مصادر المقاطعة هذه بشكل منفصل. في العديد من الأنظمة، يمكن ضبط مقاطعة المنبه كحدث استيقاظ للنظام، والذي يمكنه استئناف النظام من حالة طاقة منخفضة مثل التعليق إلى الذاكرة (STR، ويسمى S3 في أنظمة ACPI)، أو السبات (يسمى S4 في أنظمة ACPI)، أو حتى حالة "الإيقاف" (تسمى S5 في أنظمة ACPI). في بعض الأنظمة، لا تستطيع ساعة الوقت الحقيقي المدعومة بالبطارية إصدار مقاطعات، ولكن يمكن لساعة أخرى القيام بذلك.
يمكن فتح جهاز /dev/rtc (أو /dev/rtc0، /dev/rtc1، إلخ) مرة واحدة فقط (حتى يُغلق) وهو للقراءة فقط. عند استدعاء read(2) و select(2)، تُعطل العملية المستدعِية حتى تُستقبل المقاطعة التالية من ساعة الوقت الحقيقي تلك. بعد المقاطعة، يمكن للعملية قراءة عدد صحيح طويل (long integer)، يحتوي البايت الأقل أهمية فيه على قناع بت يشفر أنواع المقاطعات التي حدثت، بينما تحتوي البايتات الثلاثة المتبقية على عدد المقاطعات منذ آخر read(2).
تُعرف طلبات ioctl(2) التالية على واصفات الملفات المتصلة بأجهزة ساعات الوقت الحقيقي:
struct rtc_time {
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday; /* غير مستخدم */
int tm_yday; /* غير مستخدم */
int tm_isdst; /* غير مستخدم */
};
struct rtc_wkalrm {
unsigned char enabled;
unsigned char pending;
struct rtc_time time;
};
عندما يُزامن وقت نظام النواة مع مرجع خارجي باستخدام adjtimex(2)، فإنه سيحدث ساعة وقت حقيقي محددة دورياً كل 11 دقيقة. للقيام بذلك، يتعين على النواة إيقاف المقاطعات الدورية لفترة وجيزة؛ قد يؤثر هذا على البرامج التي تستخدم ساعة الوقت الحقيقي تلك.
ليس لحقبة ساعة الوقت الحقيقي أي علاقة بحقبة بوسيكس التي تُستخدم فقط لساعة النظام.
إذا كانت السنة وفقاً لحقبة ساعة الوقت الحقيقي وسجل السنة أقل من 1970، فيُفترض أنها بعد 100 عام، أي بين عامي 2000 و 2069.
تدعم بعض ساعات الوقت الحقيقي قيم "الجوكر" في حقول المنبه، لدعم سيناريوهات مثل المنبهات الدورية عند الدقيقة الخامسة عشرة بعد كل ساعة، أو في اليوم الأول من كل شهر. مثل هذا الاستخدام غير محمول؛ تتوقع أكواد فضاء المستخدم المحمولة مقاطعة منبه واحدة فقط، وستقوم إما بتعطيل المنبه أو إعادة تهيئته بعد استقباله.
تدعم بعض ساعات الوقت الحقيقي المقاطعات الدورية بفترات هي مضاعفات للثانية بدلاً من أجزاء من الثانية؛ ومنبهات متعددة؛ وإشارات ساعة خرج قابلة للبرمجة؛ وذاكرة غير متطايرة؛ وقدرات عتادية أخرى لا تظهر حالياً بواسطة هذه الواجهة البرمجية.
date(1), adjtimex(2), gettimeofday(2), settimeofday(2), stime(2), time(2), gmtime(3), time(7), hwclock(8)
Documentation/rtc.rst في شجرة مصدر نواة لينكس
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.