Unix وقت اور ISO 8601 کی تحریر
SI سے باہر اکائی · مقدار: ایک لمحہ بطور 1970 سے صحیح عدد سیکنڈ
19 جنوری 2038 کو عالمی وقت کے مطابق تین بج کر چودہ منٹ اور سات سیکنڈ پر بتیس بٹ چوڑا سیکنڈ گِننے والا 2 147 483 647 تک پہنچ جائے گا — سب سے بڑا عدد جو وہ سما سکتا ہے۔ اگلا ٹِک سب سے اوپر کا بٹ اٹھا دے گا، اور وہی دو رُخی لفظ اب منفی پڑھا جائے گا: وہ گھڑیاں جو وقت اسی گنتی سے سنبھالتی ہیں، 2038 میں نہیں بلکہ دسمبر 1901 میں جا نکلیں گی۔ یہ دور کے مستقبل کی دلچسپی نہیں — ایک صنعتی کنٹرولر یا پانی کا میٹر باقی بارہ برسوں سے زیادہ چلتا ہے۔
گنتی نہایت سادہ بنی ہے: سیکنڈ یکم جنوری 1970 کی آدھی رات سے یکے بعد دیگرے چلتے ہیں، اور اس میں ایک دن ہمیشہ بالکل 86 400 سیکنڈ رکھتا ہے۔ یہی سادگی اس کی دونوں خصوصیتوں کا سرچشمہ ہے۔ ایک طرف، عدد سے فوراً تقویمی تاریخ نکل آتی ہے اور برعکس، چنانچہ ہر واقعات کا روزنامچہ، ہر ڈیٹا بیس اور ہر فائل نظام وقت اسی سے رکھتا ہے۔ دوسری طرف، کبیسہ سیکنڈ کو ایسی گنتی میں سرے سے ظاہر نہیں کیا جا سکتا، یعنی نام کے برخلاف وہ سیکنڈ نہیں بلکہ کسروں سمیت دن شمار کرتی ہے، اور دراصل UTC تحریر کا خطی تفاعل ہے، نہ کہ گزرے وقت کا گِننے والا۔
01 · تعریف
Unix وقت اُن سیکنڈوں کی تعداد ہے جو یکم جنوری 1970 کی آدھی رات سے ہم آہنگ عالمی وقت کے مطابق گزرے ہیں، بشرطیکہ ہر دن بالکل 86 400 سیکنڈ رکھے۔ ISO 8601 کی تحریر یہی بات دوسری طرح کہتی ہے: تقویمی تاریخ، دن کے وقت اور مبدأ نصف النہار سے فرق کے بیان کے ساتھ، اور خانے سختی سے موٹے سے باریک کی طرف چلتے ہیں۔
86 400 سیکنڈ کی شرط کوئی معمولی بات نہیں بلکہ تعریف میں سب سے بنیادی چیز ہے۔ کبیسہ سیکنڈ کو، جس کا اعلان زمین کی گردش کا ادارہ کرتا ہے، گنتی سما نہیں سکتی، اسی لیے اندراج کے لمحے نظام یا ایک ہی قدر دو بار دہراتا ہے یا گھڑی پیچھے کر دیتا ہے۔ اس سے اہم بات نکلتی ہے: دو unix عددوں کا فرق اُن سیکنڈوں کی تعداد نہیں جو دو واقعات کے درمیان واقعی گزرے، اگر ان کے بیچ کوئی اندراج آ گیا ہو — جوہری پیمانے سے فرق پہلے ہی ستائیس سیکنڈ تک بڑھ چکا ہے۔
حد البتہ تعریف پر نہیں بلکہ ذخیرے کی چوڑائی پر منحصر ہے۔ بتیس بٹ علامت کے ساتھ سب سے بڑی قدر 2 147 483 647 دیتے ہیں، جو 19 جنوری 2038 کو آتی ہے؛ اگلا اضافہ سب سے اوپر کے بٹ کو ایک کر دیتا ہے اور عدد کو منفی بنا دیتا ہے، گھڑی کو 13 دسمبر 1901 میں پھینکتے ہوئے۔ چونسٹھ بٹ حد کو دو سو بانوے ارب سال آگے دھکیل دیتے ہیں، مگر انہی چونسٹھ بٹوں میں صحیح ارب ویں حصے پہلے ہی 2262 میں ختم ہو جاتے ہیں۔
معیار کے مطابق تحریر دوسرا کام حل کرتی ہے — تبادلہ، نہ کہ ذخیرہ — اور اسی لیے اس میں وہ چیزیں وزن رکھتی ہیں جو عدد کے پاس سرے سے نہیں: گھنٹوں کا فرق، تاریخ اور وقت کے بیچ جداکنندہ، اور یہ قاعدہ کہ برابر لمبائی کی لڑی میں حروفِ تہجی کی ترتیب زمانی ترتیب سے مل جاتی ہے۔ یہی آخری خوبی تھی جس نے ساخت کو فائلوں کے ناموں اور روزنامچوں میں ترتیب کی بنیاد بنایا۔
وقت کو سرکنے والے سے چلائیے اور دیکھیے کہ رجسٹر کیسے بھرتا ہے: بٹ دائیں سے بائیں روشن ہوتے ہیں، اور جب تک سب سے اوپر والا، علامت کا بٹ، تاریک رہتا ہے، عدد مثبت ہے اور تاریخ بڑھتی ہے۔ جونہی گِننے والا 2 147 483 647 سے آگے بڑھتا ہے، سب سے اوپر کا بٹ سرخ بھڑک اٹھتا ہے، پورا عدد منفی ہو جاتا ہے، اور گھڑی 1901 میں کود جاتی ہے۔
سبز سیدھی لکیر جوہری پیمانہ ہے، جہاں ہر سیکنڈ واقعی سیکنڈ ہے۔ سرخ سیڑھی دار لکیر Unix وقت ہے، جو ہر اندراج پر ایک ہی مہر دو بار دیتی ہے، جس سے لکیر اپنی جگہ ٹھہر جاتی ہے۔ فرق پہلے ہی ستائیس سیکنڈ ہے اور بڑھ رہا ہے، اسی لیے گنتی تقویمی تاریخ کے لیے کام کی ہے، طبیعیات میں دورانیوں کی پیمائش کے لیے نہیں۔
02 · تبدیلی
وقت کی مہر یا تاریخ درج کریں
گنتی کے تمام مضاعف کے درمیان — سیکنڈ، ہزارویں، دس لاکھویں اور ارب ویں حصے — تبدیلیاں درست ہیں، کیونکہ وہ صرف ایک ضارب سے مختلف ہیں۔ تخمینی ایک ہی سطر ہے: جوہری پیمانے کی طرف تبدیلی کے لیے جاننا پڑتا ہے کہ دی گئی گھڑی تک کتنے کبیسہ سیکنڈ جمع ہوئے۔
معیار کے مطابق لڑی کا تجزیہ صفحہ Z حرف کے ساتھ وسیع تحریر میں کرتا ہے؛ جداکنندوں کے بغیر بنیادی شکل باریک ترتیبات میں رکھی گئی ہے۔
2038 کا مسئلہ معیار میں نہیں بلکہ آلات اور پرانے کوڈ میں ہے: بتیس بٹی مہریں میٹروں کے اندرونی پروگرام میں، صنعتی کنٹرولروں میں، فائل نظاموں کی ساختوں میں اور اُن ڈیٹا بیسوں میں بیٹھی ہیں جہاں خانہ پہلے ہی چار بائٹ سے بیان ہو چکا ہے۔ ماخذ میں قسم بدلنا کافی آسان ہے؛ مگر باقی بارہ برسوں میں لاکھوں نصب شدہ آلات سے گزرنا اُسی طرح کا کام ہے جو سن 2000 سے پہلے درپیش تھا۔
| قدر | وضاحت | ||
|---|---|---|---|
| {u} | {name} | {value} | {note} |
03 · مقداری درجے
لوگارتھمی پیمانہ: سیکنڈ سے چونسٹھ بٹ کی حد تک04 · پیمائشی آلات
کسی واقعے پر مہر کس چیز سے لگتی ہے
بیٹری والا الگ چِپ، جو آلہ بند ہونے پر بھی گنتی چلاتا رہتا ہے۔ وہ عموماً unix مہر نہیں بلکہ تقویم کے خانے الگ الگ رکھتا ہے، اور اس کے سال والے خانے کی چوڑائی اپنی ہوتی ہے، چنانچہ پرانے بورڈوں پر 2038 کی بات اسی سوال سے شروع ہوتی ہے کہ خود چِپ کس سال تک گنتا ہے۔
NTP ضابطہ مشین کی گھڑی کو چند ہزارویں حصوں کی درستی کے ساتھ مشترکہ وقت پر لاتا ہے، اور وہی ایک دن پہلے خاص جھنڈے سے اندراج کی خبردار کرتا ہے۔ اپنی حد اس کی بھی ہے، اور وہ پہلے آتی ہے: گنتی 1900 سے بغیر علامت بتیس بٹ میں چلتی ہے اور فروری 2036 میں بہاؤ سے تجاوز کر جائے گی۔
روزنامچے میں مہر یا عدد سے لکھی جاتی ہے یا معیار کے مطابق لڑی سے، اور دوسری بالکل ایک وجہ سے بہتر ہے: برابر لمبائی کی لڑیوں میں حروفِ تہجی کی ترتیب زمانی ترتیب سے مل جاتی ہے، چنانچہ اندراجات تاریخ کے تجزیے کے بغیر ترتیب پا جاتے ہیں۔ اسی لیے ساخت شماریاتی فن سے کہیں آگے تک پھیلی۔
کسی آلے کی 2038 کے لیے تیاری صرف ایک ہی طرح جانچی جا سکتی ہے — اس کی گھڑی منحوس حد سے آگے کر کے دیکھنا کہ روزنامچوں، اسنادوں اور وقفوں کے حساب کا کیا بنتا ہے۔ اسی طرح بلنگ میں، رسائی کے نگرانی نظاموں میں اور کنجیوں کی مدتِ اعتبار میں پہلے ہی خرابیاں مل چکی ہیں، جہاں مستقبل کی تاریخ جمع سے بنتی ہے اور خود حد سے بہت پہلے بہاؤ سے تجاوز کر جاتی ہے۔
05 · لکھنے کے اصول
موٹے سے باریک کی طرف، اور ہمیشہ فرق کے ساتھ
معیار خانوں کی گھٹتی ترتیب، سال کے چار ہندسے، تاریخ کے جداکنندہ کے طور پر نشانِ وصل اور وقت سے پہلے حرف T مانگتا ہے؛ گھنٹوں کا فرق یا مبدأ نصف النہار کے لیے حرف Z سے بتایا جاتا ہے یا جمع منفی گھنٹے اور منٹ کی صورت میں۔ unix مہر صحیح عدد سے بغیر درجوں کی جدائی کے لکھی جاتی ہے، اور مضاعف ہمیشہ واضح کرنا پڑتا ہے، کیونکہ ہزار کا ضارب سیکنڈوں کو ہزارویں حصوں سے جدا کرتا ہے، اور عدد کی جسامت سے یہ دونوں آسانی سے خلط ہو جاتے ہیں۔
پہلی تحریر مختلف ملکوں میں مختلف پڑھی جاتی ہے اور اسی لیے اعداد و شمار کے تبادلے میں ناقابلِ قبول ہے۔ دوسری جداکنندہ بھی چھوڑ دیتی ہے اور فرق بھی، چنانچہ لمحہ دونوں طرف ایک دن تک غیر متعین رہ جاتا ہے۔ تیسری ابتدائی صفر کھو دیتی ہے، جس سے لڑیاں حروفِ تہجی کے مطابق ترتیب پانا چھوڑ دیتی ہیں — حالانکہ ساخت کی قدر اسی خوبی کے سبب ہے۔ چوتھی unix گنتی کو جوہری پیمانے کے برابر کر دیتی ہے، جبکہ ان کے بیچ ستائیس سیکنڈ کے جمع شدہ اندراج پڑے ہیں۔
06 · ہمسایہ اکائیاں
ساتھ ہی وہ سب گنتیاں کھڑی ہیں جو اسی اصول پر بنی ہیں، مگر کسی اور آغاز سے: NTP وقت 1900 سے، یولینی تاریخ ہمارے عہد سے پہلے 4713 کی دوپہر سے، سیارچہ نظام کا پیمانہ جنوری 1980 سے۔ وہ صرف عہد اور اکائی میں مختلف ہیں، اسی لیے ایک ثابت گھٹا کر بدلی جاتی ہیں۔
علامت والے سیکنڈ
اس کی حد ابھی 2036 میں آ جاتی ہے
کبیسہ سیکنڈ ایمانداری سے گنے گئے
Simetrium کے پرچوں میں سے ساتھ کھڑے ہیں یولینی تاریخ، جہاں سے تبدیلی کا ثابت لیا گیا، UTC، TAI اور UT1 کے پیمانے، جو غائب کبیسہ سیکنڈوں کی وضاحت کرتے ہیں، سیکنڈ گنتی کی اکائی کے طور پر، اور بٹ، جس کی چوڑائی ہی حد مقرر کرتی ہے۔
07 · تاریخی حصہ
بٹوں کی قلت سے چنا گیا عہد
Unix کی پہلی رہنما کتاب میں وقت 1971 کے آغاز سے سیکنڈ کے ساٹھویں حصوں میں گنا جاتا تھا، اور بتیس بٹ میں ایسی گنتی مشکل سے دو سال سماتی تھی۔ وہ اتنی جلد ختم ہو جاتے تھے کہ عہد کو نظام کی ہر اشاعت پر سرکانا پڑتا، چنانچہ سیکنڈ کے کسروں کو چھوڑ کر صحیح سیکنڈ اپنائے گئے۔
صحیح سیکنڈوں پر آ کر بنانے والوں نے ایک سو چھتیس سال کا ذخیرہ کمایا اور آغاز کو سہولت سے چن سکے، مجبوری سے نہیں۔ یکم جنوری 1970 لیا گیا — ماضی کی سب سے قریبی گول تاریخ، جہاں تک مشینی اندراجات ویسے بھی نہیں پہنچتے تھے — اور تب سے اسے ایک بار بھی نہیں بدلا گیا، حالانکہ نظام ایک سے زیادہ بار بنیاد سے لکھا گیا۔
عالمی ادارۂ معیار بندی نے بکھرتی ہوئی قومی ساختوں کو ایک میں سمیٹا اور اس کی بنیاد میں سادہ قاعدہ رکھا: خانے موٹے سے باریک کی طرف چلتے ہیں، سب ابتدائی صفروں کے ساتھ۔ ضمنی نتیجہ ارادے سے زیادہ اہم نکلا — ایسی لڑیاں عددوں کی طرح ترتیب پاتی ہیں، اور ساخت فائلوں کے ناموں، روزنامچوں اور تبادلے کے ضابطوں میں پھیل گئی۔
میز اور خادم نظام چونسٹھ بٹ پر بہت پہلے آ گئے، اور وہاں حد ہر معقول افق سے پرے دھکیل دی گئی ہے۔ خطرہ کہیں اور رہ گیا: بیس سالہ عمر والے آلات کے اندرونی پروگرام میں، اُن فائل ساختوں میں جہاں خانہ چار بائٹ سے بیان ہے، اور مستقبل کی مدتوں کے حساب میں، جو آج ہی بہاؤ سے تجاوز کر جاتے ہیں جونہی موجودہ تاریخ میں پندرہ سال جوڑے جائیں۔
ایسی گنتی جو نام کے برخلاف سیکنڈ نہیں گنتی
Unix وقت کی تعریف سیکنڈوں کی گنتی کی طرح سنائی دیتی ہے، مگر دن میں پورے 86 400 سیکنڈ کی شرط اسے کچھ اور بنا دیتی ہے: UTC تحریر کا خطی تفاعل، نہ کہ گزرے وقت کی پیمائش۔ ہر بار جب زمین کی گردش کا ادارہ اندراج کا اعلان کرتا ہے، گنتی کو ایک ہی قدر دو بار دہرانی پڑتی ہے یا پیچھے کودنا پڑتا ہے، اور دو مہروں کے فرق سے وہی سیکنڈ گم ہو جاتا ہے۔ آدھی صدی میں ایسے ستائیس نقصان جمع ہوئے، اسی لیے اُن کاموں میں جہاں سچا دورانیہ چاہیے، جوہری پیمانہ لیا جاتا ہے، یہ نہیں۔
دوسری خصوصیت سرے سے تعریف میں نہیں بلکہ ذخیرے کے طریقے میں ہے، اور یہی اسے ہماری فہرست کی وہ اکلوتی حد بناتی ہے جسے نہ فطرت نے مقرر کیا نہ کسی معاہدے نے، بلکہ مشینی لفظ کی چوڑائی نے۔ یولینی تاریخ کبھی ختم نہیں ہوتی، کیونکہ وہ عدد ہے؛ Unix وقت 19 جنوری 2038 کو ختم ہو جاتا ہے، کیونکہ وہ چار بائٹ کا خانہ ہے۔ مقدار اور اس کی نمائندگی کے بیچ فرق ماہرینِ پیمائش کو عموماً کم مشغول رکھتا ہے، اور یہاں وہی سب کچھ طے کرتا ہے۔
فہرست · پیمائش کی اکائیاں
ہر مقدار کے لیے ایک پاسپورٹ
SI کی سات بنیادی اکائیاں، اپنے نام والی بائیس مشتق، اور نظام سے باہر کی وہ مقداریں جن کے بغیر نہ فن چلتا ہے نہ تقویم۔