اول ژانویه؛ سالروز آغاز زمان در جهان دیجیتال

از اول ژانویه ۱۹۷۰ تا امروز، تمام رایانه‌ها و گوشی‌های جهان زمان را با یک شمارنده ساده می‌سنجند: تعداد ثانیه‌هایی که از یک لحظه ثابت گذشته است. تصمیمی مهندسی در آزمایشگاه‌های بل که با گذشت ۵۶ سال، هنوز پایه‌ درک زمان در دنیای دیجیتال است.

به گزارش سیناپرس، تمام رایانه‌ها، تلفن‌های هوشمند و سرورهای در جهان، زمان را به یک روش اندازه‌گیری می‌کنند به‌صورت تعداد ثانیه‌های سپری‌شده از ساعت ۰۰:۰۰:۰۰ به وقت ساعت هماهنگ جهانی (UTC) که از نخستین روز ژانویه ۱۹۷۰ آغاز شده است. این لحظه با نام «مبدا یونیکس» (Unix epoch) شناخته می‌شود و پایه و اساس درک زمان برای دستگاه‌های دیجیتال است.

چرا اول ژانویه ۱۹۷۰ به عنوان مبدا انتخاب شد؟ پاسخ این پرسش به توسعه سیستم‌عامل یونیکس در آزمایشگاه‌های بل در اوایل دهه ۱۹۷۰ بازمی‌گردد.

به نقل از یوتی‌سی تایم، وقتی کن تامپسون و دنیس ریچی در حال ساخت یونیکس بودند، به روشی ساده برای نمایش تاریخ و زمان نیاز داشتند. به‌جای ذخیره تاریخ‌ها به‌صورت ترکیب‌های پیچیده‌ای از سال، ماه، روز، ساعت، دقیقه و ثانیه، آن‌ها تصمیم گرفتند از یک عدد واحد استفاده کنند: تعداد ثانیه‌ها از یک نقطه ثابت در زمان.

انتخاب اول ژانویه ۱۹۷۰ تصادفی نبود. توسعه‌دهندگان یونیکس به یک تاریخ «نسبتا جدید» نیاز داشتند که:

  • رُند و به‌یادماندنی باشد: اول ژانویه یک سال رُند
  • به اندازه کافی جدید باشد: آن‌قدر قدیمی نباشد که بیت‌ها را هدر دهد
  • به اندازه کافی قدیمی باشد: بتواند تاریخ‌های پیش از ساخت یونیکس را پوشش دهد
  • کاربردی باشد: نزدیک به زمانی که آن‌ها واقعا روی سیستم کار می‌کردند، باشد

سال ۱۹۷۰ انتخابی عالی بود، زیرا توسعه یونیکس در سال‌های ۱۹۶۹ تا ۱۹۷۰ آغاز شده بود و این سال یک عدد رُند و نزدیک به زمان توسعه محسوب می‌شد. توسعه‌دهندگان می‌توانستند سال ۱۹۰۰ یا ۱۹۵۰ را انتخاب کنند، اما این کار در دورانی که حافظه بسیار محدود بود، بیت‌های ارزشمند را هدر می‌داد.

این سیستم چندین مزیت داشت:

  1. سادگی: محاسبات زمانی به حساب و کتاب ساده تبدیل می‌شود. برای یافتن اختلاف زمان بین دو رویداد، فقط کافی است برچسب‌های زمانی آن‌ها را از هم کم کنید.
  2. کارایی: ذخیره زمان به ‌صورت یک عدد صحیح بسیار کارآمدتر از ذخیره جداگانه سال، ماه، روز و غیره بود.
  3. جهان‌شمولی: زمان یونیکس همیشه بر اساس ساعت هماهنگ جهانی است و از پیچیدگی‌های مربوط به منطقه‌های زمانی در هسته سیستم جلوگیری می‌کند.

با این حال، این سیستم یک مشکل مشهور نیز ایجاد کرد: مشکل سال ۲۰۳۸.

مشکل سال ۲۰۳۸ چیست؟

در سیستم‌هایی که هنوز زمان را با عدد صحیح ۳۲ بیتی نگه می‌دارند، شمارنده‌ «تعداد ثانیه‌های گذشته از یک ژانویه ۱۹۷۰» فقط تا یک عدد مشخص می‌تواند بالا برود. بیشترین عددی که یک عدد صحیحِ علامت‌دار ۳۲ بیتی می‌تواند نگه دارد، ۲,۱۴۷,۴۸۳,۶۴۷ است.

وقتی تعداد ثانیه‌ها از این مقدار بیشتر شود، دیگر جا برای ادامه‌ شمارش وجود ندارد و اصطلاحا عدد «سرریز» می‌کند؛ یعنی به‌جای این‌که به عدد بعدی برود، ناگهان به یک عدد منفی می‌پرد.

در روز ۱۹ ژانویه سال ۲۰۳۸، ساعت ۰۳:۱۴:۰۷ به وقت ساعت هماهنگ جهانی، برچسب‌های زمانی یونیکس ۳۲ بیتی سرریز (overflow) خواهند شد. این مقدار به یک عدد منفی تبدیل می‌شود و ممکن است سیستم‌ها تصور کنند تاریخ، ۱۳ دسامبر ۱۹۰۱ است. این مشکل هر سیستمی را که هنوز از اعداد صحیح ۳۲ بیتی برای زمان استفاده می‌کند، تحت تأثیر قرار می‌دهد.

خوشبختانه، بیشتر سیستم‌های مدرن به برچسب‌های زمانی ۶۴ بیتی تغییر کرده‌اند که تا حدود ۲۹۲ میلیارد سال آینده سرریز نخواهند شد و این زمان بسیار فراتر از زمانی است که خورشید برای همیشه خاموش خواهد شد.

مبدأ یونیکس آن‌قدر بنیادی شده است که بسیار فراتر از سیستم‌های یونیکس استفاده می‌شود. ویندوز، macOS، لینوکس، اندروید، iOS و تقریبا هر زبان برنامه‌نویسی از زمان یونیکس درونی استفاده می‌کنند، حتی اگر تاریخ را به شکل متفاوتی به کاربر نمایش دهند.

چند نقطه عطف جالب در برچسب زمانی یونیکس

 در روز ۹ سپتامبر سال ۲۰۰۱ برچسب زمانی یونیکس به ۱,۰۰۰,۰۰۰,۰۰۰ رسید که توسط برنامه‌نویسان در سراسر جهان جشن گرفته شد.

در روز ۱۳ فوریه سال ۲۰۰۹ این برچسب زمانی به عدد ۱,۲۳۴,۵۶۷,۸۹۰ رسید.

در روز ۱۴ ژوئیه سال ۲۰۱۷ این عدد به  ۱,۵۰۰,۰۰۰,۰۰۰ رسید و در روز ۱۸ مه سال ۲۰۳۳ به ۲,۰۰۰,۰۰۰,۰۰۰ می‌رسد.

امروز، وقتی زمان را روی هر دستگاه دیجیتالی بررسی می‌کنید، در واقع ترجمه‌ای قابل‌فهم برای انسان از تعداد ثانیه‌هایی را می‌بینید که از آن لحظه که بیش از ۵۰ سال پیش توسط توسعه‌دهندگان یونیکس انتخاب شد، گذشته است. اول ژانویه ۱۹۷۰، ساعت ۰۰:۰۰:۰۰ به مهم‌ترین لحظه در تاریخ محاسبات تبدیل شد نه به این دلیل که اتفاق مهمی در آن زمان رخ داده، بلکه چون به‌عنوان نقطه شروع اندازه‌گیری تمام زمان دیجیتال انتخاب شده است.

شگفت‌آور است که یک تصمیم مهندسی ساده که در اوایل دهه ۱۹۷۰ گرفته شد، همچنان تعیین می‌کند که میلیاردها دستگاه در سراسر جهان چگونه زمان را درک می‌کنند؛ و مبدأ یونیکس را به یکی از ماندگارترین و تأثیرگذارترین استانداردهای فنی تاریخ تبدیل کرده است.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا