| از اول ژانویه 1970 تا امروز، تمام رایانه ها و گوشی های جهان زمان را با یک شمارنده ساده می سنجند: تعداد ثانیه هایی که از یک لحظه ثابت گذشته است. تصمیمی مهندسی در آزمایشگاه های بل که با گذشت 56 سال، هنوز پایه درک زمان در دنیای دیجیتال است. به گزارش ایسنا، تمام رایانه ها، تلفن های هوشمند و سرورهای در جهان، زمان را به یک روش اندازه گیری می کنند به صورت تعداد ثانیه های سپری شده از ساعت 00:00:00 به وقت ساعت هماهنگ جهانی (UTC) که از نخستین روز ژانویه 1970 آغاز شده است. این لحظه با نام مبدا یونیکس (Unix epoch) شناخته می شود و پایه و اساس درک زمان برای دستگاه های دیجیتال است. چرا اول ژانویه 1970 به عنوان مبدا انتخاب شد؟ پاسخ این پرسش به توسعه سیستم عامل یونیکس در آزمایشگاه های بل در اوایل دهه 1970 بازمی گردد. به نقل از یوتی سی تایم، وقتی کن تامپسون و دنیس ریچی در حال ساخت یونیکس بودند، به روشی ساده برای نمایش تاریخ و زمان نیاز داشتند. به جای ذخیره تاریخ ها به صورت ترکیب های پیچیده ای از سال، ماه، روز، ساعت، دقیقه و ثانیه، آن ها تصمیم گرفتند از یک عدد واحد استفاده کنند: تعداد ثانیه ها از یک نقطه ثابت در زمان. انتخاب اول ژانویه 1970 تصادفی نبود. توسعه دهندگان یونیکس به یک تاریخ نسبتا جدید نیاز داشتند که: رُند و به یادماندنی باشد: اول ژانویه یک سال رُند به اندازه کافی جدید باشد: آن قدر قدیمی نباشد که بیت ها را هدر دهد به اندازه کافی قدیمی باشد: بتواند تاریخ های پیش از ساخت یونیکس را پوشش دهد کاربردی باشد: نزدیک به زمانی که آن ها واقعا روی سیستم کار می کردند، باشد سال 1970 انتخابی عالی بود، زیرا توسعه یونیکس در سال های 1969 تا 1970 آغاز شده بود و این سال یک عدد رُند و نزدیک به زمان توسعه محسوب می شد. توسعه دهندگان می توانستند سال 1900 یا 1950 را انتخاب کنند، اما این کار در دورانی که حافظه بسیار محدود بود، بیت های ارزشمند را هدر می داد. این سیستم چندین مزیت داشت: سادگی: محاسبات زمانی به حساب و کتاب ساده تبدیل می شود. برای یافتن اختلاف زمان بین دو رویداد، فقط کافی است برچسب های زمانی آن ها را از هم کم کنید. کارایی: ذخیره زمان به صورت یک عدد صحیح بسیار کارآمدتر از ذخیره جداگانه سال، ماه، روز و غیره بود. جهان شمولی: زمان یونیکس همیشه بر اساس ساعت هماهنگ جهانی است و از پیچیدگی های مربوط به منطقه های زمانی در هسته سیستم جلوگیری می کند. با این حال، این سیستم یک مشکل مشهور نیز ایجاد کرد: مشکل سال 2038.  مشکل سال 2038 چیست؟ در سیستم هایی که هنوز زمان را با عدد صحیح 32 بیتی نگه می دارند، شمارنده تعداد ثانیه های گذشته از یک ژانویه 1970 فقط تا یک عدد مشخص می تواند بالا برود. بیشترین عددی که یک عدد صحیحِ علامت دار 32 بیتی می تواند نگه دارد، 2,147,483,647 است. وقتی تعداد ثانیه ها از این مقدار بیشتر شود، دیگر جا برای ادامه شمارش وجود ندارد و اصطلاحا عدد سرریز می کند؛ یعنی به جای این که به عدد بعدی برود، ناگهان به یک عدد منفی می پرد. در روز 19 ژانویه سال 2038، ساعت 03:14:07 به وقت ساعت هماهنگ جهانی، برچسب های زمانی یونیکس 32 بیتی سرریز (overflow) خواهند شد. این مقدار به یک عدد منفی تبدیل می شود و ممکن است سیستم ها تصور کنند تاریخ، 13 دسامبر 1901 است. این مشکل هر سیستمی را که هنوز از اعداد صحیح 32 بیتی برای زمان استفاده می کند، تحت تأثیر قرار می دهد. خوشبختانه، بیشتر سیستم های مدرن به برچسب های زمانی 64 بیتی تغییر کرده اند که تا حدود 292 میلیارد سال آینده سرریز نخواهند شد و این زمان بسیار فراتر از زمانی است که خورشید برای همیشه خاموش خواهد شد. مبدأ یونیکس آن قدر بنیادی شده است که بسیار فراتر از سیستم های یونیکس استفاده می شود. ویندوز، macOS، لینوکس، اندروید، iOS و تقریبا هر زبان برنامه نویسی از زمان یونیکس درونی استفاده می کنند، حتی اگر تاریخ را به شکل متفاوتی به کاربر نمایش دهند. چند نقطه عطف جالب در برچسب زمانی یونیکس در روز 9 سپتامبر سال 2001 برچسب زمانی یونیکس به 1,000,000,000 رسید که توسط برنامه نویسان در سراسر جهان جشن گرفته شد. در روز 13 فوریه سال 2009 این برچسب زمانی به عدد 1,234,567,890 رسید. در روز 14 ژوییه سال 2017 این عدد به 1,500,000,000 رسید و در روز 18 مه سال 2033 به 2,000,000,000 می رسد. امروز، وقتی زمان را روی هر دستگاه دیجیتالی بررسی می کنید، در واقع ترجمه ای قابل فهم برای انسان از تعداد ثانیه هایی را می بینید که از آن لحظه که بیش از 50 سال پیش توسط توسعه دهندگان یونیکس انتخاب شد، گذشته است. اول ژانویه 1970، ساعت 00:00:00 به مهم ترین لحظه در تاریخ محاسبات تبدیل شد نه به این دلیل که اتفاق مهمی در آن زمان رخ داده، بلکه چون به عنوان نقطه شروع اندازه گیری تمام زمان دیجیتال انتخاب شده است. شگفت آور است که یک تصمیم مهندسی ساده که در اوایل دهه 1970 گرفته شد، همچنان تعیین می کند که میلیاردها دستگاه در سراسر جهان چگونه زمان را درک می کنند؛ و مبدأ یونیکس را به یکی از ماندگارترین و تأثیرگذارترین استانداردهای فنی تاریخ تبدیل کرده است. |