ইউনিক্স টাইম কি?
ইউনিক্স সময় (এছাড়াও এপোক টাইম, POSIX টাইম বা ইউনিক্স টাইমস্ট্যাম্প নামে পরিচিত) একটি সময় বর্ণনা করার জন্য একটি সিস্টেম। এটি সেই সংখ্যক সেকেন্ডের সংখ্যা যা অতিবাহিত হয়েছে ইউনিক্স এপোক-এর পর থেকে, যা সংজ্ঞায়িত 00:00:00 UTC বৃহস্পতিবার, ১ জানুয়ারি ১৯৭০। এটি ইউনিক্স-সদৃশ অপারেটিং সিস্টেম এবং অনেক অন্যান্য কম্পিউটিং সিস্টেমে ব্যাপকভাবে ব্যবহৃত হয়।
ইউনিক্স সময়ের মূল সুবিধা হল এর সরলতা। এটি সময়কে একটি একক, সার্বজনীনভাবে বোঝা যায় এমন পূর্ণসংখ্যা হিসেবে উপস্থাপন করে যা অবিরত বৃদ্ধি পায়। এটি টাইমস্ট্যাম্প সংরক্ষণ, তুলনা এবং গণনা করা খুব সহজ করে তোলে, সময় অঞ্চল, ডে লাইট সেভিং টাইম বা বিভিন্ন ক্যালেন্ডার সিস্টেমের চিন্তা না করেই। উদাহরণস্বরূপ, দুটি ইভেন্টের মধ্যে সময়কাল খুঁজতে, আপনি সহজেই তাদের ইউনিক্স টাইমস্ট্যাম্প থেকে বিয়োগ করবেন।
যদিও এই কাঁচা সংখ্যা কম্পিউটারগুলির জন্য উপযুক্ত, এটি মানুষের জন্য খুব বন্ধুত্বপূর্ণ নয়। এই ব্যবধান পূরণের জন্য, ডেভেলপার এবং প্রযুক্তি প্রেমীরা একটি টুল ব্যবহার করে called an এপোক কনভার্টার। আপনি এটি ব্যবহার করে যেকোনো টাইমস্ট্যাম্পকে দ্রুত মানব-পঠিত তারিখে রূপান্তর করতে পারেন, বা বিপরীতভাবে নির্দিষ্ট তারিখের জন্য টাইমস্ট্যাম্প খুঁজে পেতে পারেন।
২০৩৮ সালের সমস্যা
ইউনিক্স সময়ের সাথে সম্পর্কিত একটি সুপরিচিত সমস্যা হল "২০৩৮ সালের সমস্যা"। এটি Y2K সমস্যার মতো। অনেক প্রাথমিক কম্পিউটার সিস্টেম ডিজাইন করা হয়েছিল যাতে ইউনিক্স টাইমস্ট্যাম্প সংরক্ষণ করতে হয় একটি ৩২-বিট স্বাক্ষরিত পূর্ণসংখ্যা হিসেবে। একটি স্বাক্ষরিত ৩২-বিট পূর্ণসংখ্যা -২,১৪৭,৪৮৩,৬৪৮ থেকে ২,১৪৭,৪৮৩,৬৪৭ পর্যন্ত মান উপস্থাপন করতে পারে।
সর্বোচ্চ মান, 2,147,483,647, পৌঁছাবে 03:14:07 UTC on 19 January 2038-এ। পরবর্তী সেকেন্ডে, সংখ্যাটি ওভারফ্লো হবে এবং তার সবচেয়ে নেতিবাচক মানে ফিরে যাবে, যা সিস্টেম দ্বারা ১৯০১ সালে একটি তারিখ হিসেবে ব্যাখ্যা করা হবে। এটি পুরানো সফটওয়্যারগুলিতে ব্যাপক ব্যর্থতা ঘটাতে পারে যা ৩২-বিট সময়ের উপস্থাপনার উপর নির্ভর করে।
সমাধান হল একটি 64-বিট পূর্ণসংখ্যা ব্যবহার করে টাইমস্ট্যাম্প সংরক্ষণ করা। একটি 64-বিট পূর্ণসংখ্যার সর্বোচ্চ মান এত বড় যে এটি প্রায় ২৯২ বিলিয়ন বছর পর্যন্ত ওভারফ্লো হবে না, ফলে ভবিষ্যতের জন্য এই সমস্যার সমাধান হয়। বেশিরভাগ আধুনিক অপারেটিং সিস্টেম এবং সফটওয়্যার ইতিমধ্যে 64-বিট সময় উপস্থাপনে রূপান্তর করেছে।
লিপ সেকেন্ড এবং ইউনিক্স টাইম
একটি গুরুত্বপূর্ণ প্রযুক্তিগত বিবরণ হল যে ইউনিক্স সময় লিপ সেকেন্ডের জন্য হিসাব করে না। যখন UTC (সমন্বিত ইউনিভার্সাল টাইম) কখনও কখনও লিপ সেকেন্ড যোগ করে আমাদের ঘড়িগুলিকে পৃথিবীর ঘূর্ণনের সাথে সামঞ্জস্য রাখতে, ইউনিক্স টাইমস্ট্যাম্প সেগুলিকে উপেক্ষা করে এবং সরলভাবে গণনা চালিয়ে যায়।
এর মানে হল যে ইউনিক্স সময় UTC এর একটি সত্যিকার উপস্থাপনা নয়। বরং, এটি আরও সঠিকভাবে বলা যায় একটি লিনিয়ার গণনা সেকেন্ডের। যখন একটি লিপ সেকেন্ড ঘটে, তখন ইউনিক্স সময় কখনও কখনও একটি সেকেন্ড পুনরাবৃত্তি করে যাতে সিঙ্ক্রোনাইজড থাকে। এই সূক্ষ্মতা বৈজ্ঞানিক এবং উচ্চ-নির্ভুল অ্যাপ্লিকেশনগুলির জন্য গুরুত্বপূর্ণ, তবে বেশিরভাগ সাধারণ উদ্দেশ্যের কম্পিউটিংয়ের জন্য পার্থক্য নগণ্য।
ইউনিক্স সময়ের সাধারণ ব্যবহার
- ফাইল টাইমস্ট্যাম্প: অপারেটিং সিস্টেমগুলি ইউনিক্স টাইমস্ট্যাম্প ব্যবহার করে ফাইল তৈরি, পরিবর্তন বা সর্বশেষ অ্যাক্সেসের সময় ট্র্যাক করতে।
-
ডেটাবেস:
রেকর্ডের জন্য তারিখ ও সময়ের তথ্য সংরক্ষণের একটি সাধারণ এবং কার্যকর উপায় (উদাহরণস্বরূপ,
created_at,updated_at)। - API এবং ওয়েব ডেভেলপমেন্ট: সেশন মেয়াদ শেষ, ক্যাশ নিয়ন্ত্রণ, এবং API অনুরোধ লগ করার জন্য ব্যবহৃত।
- প্রোগ্রামিং: প্রায় প্রতিটি প্রোগ্রামিং ভাষা বর্তমান ইউনিক্স টাইমস্ট্যাম্প পেতে এবং এটি মানব-পঠিত তারিখে রূপান্তর করতে ফাংশন সরবরাহ করে।