Unix সময় ও ISO 8601 লিখনরীতি
SI-র বাইরের একক · রাশি: একটি মুহূর্ত, 1970 সাল থেকে পূর্ণসংখ্যক সেকেন্ড হিসেবে
2038 সালের 19 জানুয়ারি, বিশ্বসময় অনুসারে তিনটে বেজে চোদ্দো মিনিট সাত সেকেন্ডে, বত্রিশ বিট চওড়া একটি সেকেন্ড-গণক 2 147 483 647-এ পৌঁছাবে — সবচেয়ে বড় যে সংখ্যা সে ধারণ করতে পারে। পরের টিক সবচেয়ে উপরের বিট তুলে দেবে, আর সেই একই দ্বিমিক শব্দ এবার ঋণাত্মক হিসেবে পড়া হবে: যেসব ঘড়ি সময় ঠিক এই গণনাতেই রাখে, তারা 2038-এ নয়, 1901 সালের ডিসেম্বরে গিয়ে পড়বে। এ দূর ভবিষ্যতের কোনো কৌতূহল নয় — একটি শিল্প-নিয়ন্ত্রক বা জলের মিটার বাকি বারো বছরের চেয়ে বেশি দিন চলে।
গণনাটি অত্যন্ত সরলভাবে গড়া: সেকেন্ডগুলি 1970 সালের 1 জানুয়ারির মধ্যরাত থেকে একের পর এক চলে, আর তাতে একটি দিন সর্বদা ঠিক 86 400 সেকেন্ড ধরে। এই সরলতাই তার দুই বৈশিষ্ট্যের উৎস। একদিকে, সংখ্যা থেকে সঙ্গে সঙ্গে পঞ্জিকার তারিখ বেরিয়ে আসে এবং উল্টোটাও, ফলে প্রতিটি ঘটনার নথি, প্রতিটি উপাত্তভাণ্ডার আর প্রতিটি নথিপত্র-ব্যবস্থা সময় তাই দিয়েই রাখে। অন্যদিকে, অধিসেকেন্ড এমন গণনায় প্রকাশ করাই যায় না, অর্থাৎ নামের বিপরীতে সে সেকেন্ড নয়, ভগ্নাংশসহ দিন গোনে, এবং আসলে UTC লিখনরীতির একটি রৈখিক ফলন, বয়ে যাওয়া সময়ের গণক নয়।
01 · সংজ্ঞা
Unix সময় হল সেইসব সেকেন্ডের সংখ্যা যা 1970 সালের 1 জানুয়ারির মধ্যরাত থেকে সমন্বিত বিশ্বসময় অনুসারে কেটে গেছে, এই শর্তে যে প্রতিটি দিন ঠিক 86 400 সেকেন্ড ধরে। ISO 8601 লিখনরীতি সেই একই কথা অন্যভাবে বলে: পঞ্জিকার তারিখ, দিনের সময় আর মূল দ্রাঘিমা থেকে সরণের উল্লেখ দিয়ে, আর ঘরগুলি কড়াভাবে স্থূল থেকে সূক্ষ্মের দিকে চলে।
86 400 সেকেন্ডের শর্তটি তুচ্ছ কিছু নয়, বরং সংজ্ঞার সবচেয়ে সারবান অংশ। অধিসেকেন্ড, যা পৃথিবীর ঘূর্ণন-সেবা ঘোষণা করে, গণনা ধারণ করতে পারে না, আর তাই সন্নিবেশের মুহূর্তে ব্যবস্থা হয় একই মান দু-বার আওড়ায়, নয়তো ঘড়ি পিছিয়ে দেয়। এ থেকে গুরুত্বপূর্ণ একটি কথা বেরোয়: দুটি unix সংখ্যার পার্থক্য সেইসব সেকেন্ডের সংখ্যা নয় যা দুটি ঘটনার মাঝে সত্যিই কেটেছে, যদি তাদের মাঝে কোনো সন্নিবেশ পড়ে থাকে — পারমাণবিক মাপনী থেকে বিচ্যুতি এরই মধ্যে সাতাশ সেকেন্ডে দাঁড়িয়েছে।
সীমা অবশ্য সংজ্ঞার উপর নয়, সংরক্ষণের প্রস্থের উপর নির্ভর করে। চিহ্নসহ বত্রিশ বিট সবচেয়ে বড় মান 2 147 483 647 দেয়, যা পড়ে 2038 সালের 19 জানুয়ারিতে; পরের বৃদ্ধি সবচেয়ে উপরের বিটকে এক করে দেয় আর সংখ্যাকে ঋণাত্মক বানায়, ঘড়িকে 1901 সালের 13 ডিসেম্বরে ছুঁড়ে দিয়ে। চৌষট্টি বিট সীমাকে দুইশো বিরানব্বই কোটি বছরেরও বেশি — 29 200 কোটি বছর — সামনে ঠেলে দেয়, কিন্তু সেই একই চৌষট্টি বিটে পূর্ণ ন্যানোসেকেন্ড 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 সালের 1 জানুয়ারি — অতীতের নিকটতম গোল তারিখ, যেখানে যন্ত্রের নথি এমনিতেই পৌঁছত না — আর তারপর থেকে তা একবারও বদলানো হয়নি, যদিও ব্যবস্থাটি একাধিকবার গোড়া থেকে নতুন করে লেখা হয়েছে।
আন্তর্জাতিক মানায়ন সংস্থা ছড়িয়ে পড়া জাতীয় বিন্যাসগুলিকে একটিতে এনে তার ভিতে সরল একটি নিয়ম বসাল: ঘরগুলি স্থূল থেকে সূক্ষ্মের দিকে চলে, সবই শুরুর শূন্যসহ। পার্শ্বফল উদ্দেশ্যের চেয়ে বেশি গুরুত্বপূর্ণ হয়ে দাঁড়াল — এমন শৃঙ্খল সংখ্যার মতো সাজে, আর বিন্যাসটি নথিপত্রের নামে, নথিতে আর বিনিময়ের প্রণালীতে ছড়িয়ে পড়ল।
ডেস্ক ও পরিসেবক ব্যবস্থা চৌষট্টি বিটে বহু আগেই গেছে, আর সেখানে সীমা যেকোনো যুক্তিসংগত দিগন্তের ওপারে ঠেলে দেওয়া। বিপদ রয়ে গেছে অন্যত্র: কুড়ি বছর আয়ুর যন্ত্রের অন্তঃকর্মসূচিতে, সেইসব নথিপত্র-বিন্যাসে যেখানে ঘর চার বাইটে ঘোষিত, আর ভবিষ্যতের মেয়াদের হিসাবে, যা আজই উপচে পড়ে যেই আজকের তারিখে পনেরো বছর যোগ করা হয়।
এমন গণনা যা নামের বিপরীতে সেকেন্ড গোনে না
Unix সময়ের সংজ্ঞা সেকেন্ড গণনার মতো শোনায়, কিন্তু দিনে পুরো 86 400 সেকেন্ডের শর্ত তাকে অন্য কিছু বানায়: UTC লিখনরীতির একটি রৈখিক ফলন, বয়ে যাওয়া সময়ের মাপ নয়। যতবার পৃথিবীর ঘূর্ণন-সেবা সন্নিবেশ ঘোষণা করে, ততবার গণনাকে একই মান দু-বার আওড়াতে হয় বা পিছিয়ে লাফাতে হয়, আর দুই ছাপের পার্থক্য থেকে ঠিক সেই সেকেন্ডটিই হারায়। অর্ধ শতকে এমন সাতাশটি ক্ষতি জমেছে, তাই যেসব কাজে সত্যিকারের স্থিতিকাল দরকার সেখানে পারমাণবিক মাপনী নেওয়া হয়, এটি নয়।
দ্বিতীয় বৈশিষ্ট্যটি সংজ্ঞায় আদৌ নেই, আছে সংরক্ষণের ধরনে, আর এটিই তাকে আমাদের তালিকার সেই একমাত্র সীমা বানায় যা প্রকৃতিও বসায়নি, কোনো সমঝোতাও নয়, বসিয়েছে যন্ত্র-শব্দের প্রস্থ। জুলিয়ান তারিখ কখনো ফুরোয় না, কেননা সে সংখ্যা; Unix সময় 2038 সালের 19 জানুয়ারি ফুরিয়ে যায়, কেননা সে চার বাইটের ঘর। কোনো রাশি আর তার উপস্থাপনার মধ্যে পার্থক্য মাপবিজ্ঞানীদের সাধারণত কমই ভাবায়, আর এখানে সেটিই সব ঠিক করে।
তালিকা · মাপের একক
প্রতিটি রাশির জন্য একটি নথি
SI-এর সাতটি মূল একক, নিজস্ব নামওয়ালা বাইশটি উদ্ভূত একক, আর ব্যবস্থার বাইরের সেই রাশিগুলি যেগুলি ছাড়া প্রযুক্তিও চলে না, পঞ্জিকাও নয়।