ما هو طابع Epoch الزمني (وقت Unix) ولماذا يُستخدم؟
أصول وقت Unix
لفهم طابع Epoch الزمني بشكل كامل، والذي يُشار إليه غالبًا باسم وقت Unix أو وقت POSIX أو ببساطة epoch، يجب أن نعود إلى أصول نظام التشغيل Unix في أوائل سبعينيات القرن الماضي. وقت Unix هو نظام لتتبع الوقت كمجموع تراكمي للثواني. وتحديدًا، فهو يمثل عدد الثواني التي انقضت منذ Unix epoch. وتُعرّف الـ epoch نفسها بأنها الساعة 00:00:00 بالتوقيت العالمي المنسق (UTC) يوم الخميس، 1 يناير 1970.
عندما كان كين ثومبسون ودينيس ريتشي يطوران الإصدارات الأولى من Unix في مختبرات بيل، كانا بحاجة إلى طريقة بسيطة وفعالة لأجهزة الكمبيوتر لتمثيل التواريخ والأوقات وتخزينها. التواريخ القابلة للقراءة بشريًا (مثل '29 يوليو 2026') معقدة للغاية بالنسبة لأجهزة الكمبيوتر لمعالجتها. فهي تتضمن أشهرًا غير منتظمة (بعضها 28 أو 29 أو 30 أو 31 يومًا)، وسنوات كبيسة، والمناطق الزمنية، وتحولات التوقيت الصيفي. من خلال تمثيل الوقت كعدد صحيح فردي يتزايد باستمرار، أنشأ مطورو Unix معيار وقت عالمي وغير غامض يمكن تخزينه ومقارنته ومعالجته رياضيًا بسهولة.
لماذا يستخدم المطورون طوابع Epoch الزمنية اليوم
حتى بعد مرور عقود، يظل وقت epoch العمود الفقري للبنية التحتية للحوسبة الحديثة. وإليك سبب اعتماده عالميًا:
- البساطة والكفاءة: يستغرق تخزين عدد صحيح من 32 بت أو 64 بت مساحة أقل بكثير على القرص والذاكرة مقارنة بتخزين سلسلة تاريخ منسقة. عندما تحتوي قواعد البيانات على مليارات السجلات، فإن توفير بضع بايتات لكل صف يترجم إلى تخفيضات هائلة في تكاليف التخزين وتحسين أداء فهارس قواعد البيانات.
- مستقل عن المناطق الزمنية (Time Zone Agnostic): طابع Epoch الزمني مرتبط بطبيعته بالتوقيت العالمي المنسق (UTC). لا يهمه مكان وجود المستخدم فعليًا. عندما يتصل خادم في طوكيو بعميل في نيو يورك، فإن إرسال عدد صحيح يمثل epoch يمنع أي ارتباك بشأن المناطق الزمنية. يقوم العميل ببساطة بتحويل العدد الصحيح إلى منطقته الزمنية المحلية عند استلامه.
- عمليات رياضية سهلة: حساب المدة بين حدثين بسيط مثل طرح طابع زمني من آخر. إذا كنت تريد معرفة عدد الثواني التي انقضت بين إدخالي سجل، فإن
timestamp2 - timestamp1يعطيك الإجابة الدقيقة فورًا، دون حاجة إلى منطق معقد لتحليل التواريخ. - فرز قواعد البيانات: فرز السجلات زمنيًا حسب عمود أعداد صحيحة أسرع بكثير لمحركات قواعد البيانات من تحليل وفرز سلاسل الطوابع الزمنية المستندة إلى النصوص.
تأثير الثواني الكبيسة
إحدى التفاصيل الفنية الدقيقة لوقت Unix هي كيفية تعامله مع الثواني الكبيسة. الثانية الكبيسة هي تعديل لمدة ثانية واحدة يُطبق أحيانًا على التوقيت العالمي المنسق (UTC) لإبقاء وقت اليوم قريبًا من التوقيت الشمس المعتدل. ومن المثير للاهتمام أن وقت Unix لا يأخذ الثواني الكبيسة في الحسبان. في نظام وقت Unix، يُعامل كل يوم على أنه بطول 86,400 ثانية بالضبط. عند حدوث ثانية كبيسة، تكرر ساعة Unix نفس الثانية مرتين أساسًا. يمنع خيار التصميم المقصود هذا الطوابع الزمنية من أن تصبح غير قابلة للتنبؤ، على الرغم من أنه يعني أن وقت Unix ليس قياسًا خطيًا صارمًا للوقت الفعلي المنقضي منذ عام 1970. بالنسبة للغالبية العظمى من تطبيقات هندسة البرمجيات، فإن هذا التفاوت البسيط مقبول تمامًا ويُفضل على تعقيد تتبع كل ثانية كبيسة تاريخية.

