توقيت يونكس
توقيت يونيكس (والمعروف أيضاً بتوقيت بوزيكس) هو نظام لتحديد اللحظات ضمن الوقت، ويعرف على أنه عدد الثواني التي انقضت منذ بداية التوقيت العالمي المنسق 00.00.00 في يوم الخميس 1 يناير 1970.[1] أي أن هذا التوقيت يبدأ منذ تلك اللحظة وبالتالي فهو سالباً قبل 1 يناير 1970.
1662390354
(2022-09-05T15:05:54+00:00)
لايتم احتساب الثواني الكبيسة في هذا التوقيت.[2] يستخدم هذا التوقيت بشكل شائع في الأنظمة الشبيهة بيونيكس وأنظمة تشغيل عديدة أخرى وكذلك في صيغ الملفات. ولأنه لا يحتسب الثواني الكبيسة، فهو ليس تمثيل خطي للوقت وكذلك ليس تمثيلاً صحيحاً للتوقيت العالمي المنسق (UTC).
يمكن فحص توقيت يونكس في معظم أنظمة يونكس وذلك بكتابة الأمر date +%s
في موجِّه سطر الأوامر. وسيكون الناتج مشابه للشكل التالي:
1662390354 (ISO 8601: 2022-09-05T15:05:54+00:00)
لمحة عامة
ورثت الأنظمة الشبيهة بنظام يونيكس ميزاته وعيوبه، وصارت وكأنها نسخ من يونيكس وليست شبيهة به. إحدى المشاكل التي تواجهها هي مشكلة العام 2038.
المشكلة في يونيكس والعلة المرتبطة به هو استخدام العدد الصحيح الطويل ذو الإشارة، وكان من الأفضل استخدام العدد الصحيح الطويل بلا إشارة، لذلك فإن أنظمة 32 بت تخزن عدد الثواني في 31 خانة ثنائية والخانة الأخيرة للإشارة، والأفضل استغلال خانة الإشارة كخانة عددية. أقصى عدد من الثواني يمكن لأنظمة 32 بت أن تصله هو 2 مرفوع لأس 31 ويساوي 2147483648 ثانية وهو ما يساوي تقريباً 69 سنة ولو استغلت الخانة 32 لوصل توقيت يونيكس 136 سنة بعد 1 يناير 1970.
في تاريخ 19 يناير 2038، سيرجع التاريخ 13 ديسمبر 1901 ، وسبب الرجوع 137 سنة هو الإشارة السالبة التي تمثل بالرقم 1 في خانة الإشارة .
إن الحل الوحيد لأنظمة يونيكس هو الانتقال الكلي لأنظمة 64 بت وهو ما يتيح وقت يصل لملايين السنين وهو ما يساوي عدد من الثواني 2 أس 63 .
المراجع
- بوابة علم الحاسوب
- بوابة برمجة الحاسوب
- بوابة علوم