আমার সিস্টেমে এটি থেকে আপটাইম পাওয়া যায় /proc/uptime
:
$ strace -eopen uptime
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
open("/lib/libproc-3.2.8.so", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
open("/proc/version", O_RDONLY) = 3
open("/sys/devices/system/cpu/online", O_RDONLY|O_CLOEXEC) = 3
open("/etc/localtime", O_RDONLY|O_CLOEXEC) = 3
open("/proc/uptime", O_RDONLY) = 3
open("/var/run/utmp", O_RDONLY|O_CLOEXEC) = 4
open("/proc/loadavg", O_RDONLY) = 4
10:52:38 up 3 days, 23:38, 4 users, load average: 0.00, 0.02, 0.05
প্রো ম্যানপেজ থেকে :
/proc/uptime
This file contains two numbers: the uptime of the system
(seconds), and the amount of time spent in idle process
(seconds).
প্রোক ফাইল সিস্টেমে সিউডো ফাইলের একটি সেট রয়েছে। এগুলি প্রকৃত ফাইল নয়, এগুলি কেবল ফাইলগুলির মতো দেখায় তবে এগুলির মধ্যে এমন মান রয়েছে যা সরাসরি কার্নেল দ্বারা সরবরাহ করা হয়। প্রতিবার আপনি যখন কোনও ফাইল পড়েন তবে /proc/uptime
এর বিষয়বস্তুগুলি ফ্লাইতে পুনরায় জেনারেট হয়। প্রোক ফাইল সিস্টেমটি কার্নেলের একটি ইন্টারফেস।
ফাইলের Linux kernel সোর্স কোডে fs/proc/uptime.c
এ লাইন 49 , আপনি একটি ফাংশন কল দেখুন:
proc_create("uptime", 0, NULL, &uptime_proc_fops);
এটি প্রোক ফাইলসিস্টেম এন্ট্রি নামে পরিচিত হয় uptime
(প্রকফগুলি সাধারণত নীচে মাউন্ট করা হয় /proc
), এবং এর সাথে একটি ফাংশন যুক্ত করে, যা সেই সিডো ফাইলের বৈধ ফাইল অপারেশন এবং তাদের সাথে সম্পর্কিত ফাংশনগুলি সংজ্ঞায়িত করে। আপটাইমের ক্ষেত্রে এটি ন্যায়বিচার read()
এবং open()
ক্রিয়াকলাপ। তবে, আপনি যদি ফাংশনগুলি পিছনে সন্ধান করেন তবে আপনি এখানেই শেষ হয়ে যাবেন , যেখানে আপটাইম গণনা করা হয়।
অভ্যন্তরীণভাবে, একটি টাইমার-ইন্টারআপ্ট রয়েছে যা নিয়মিতভাবে সিস্টেমগুলি আপটাইম আপডেট করে (অন্যান্য মানগুলি ছাড়াও)। ব্যবধান, টাইমার-ইন্টারুপ্ট টিক, প্রিপ্রোসেসর-ম্যাক্রো দ্বারা সংজ্ঞায়িত করা হয় HZ
, যার সঠিক মান কার্নেল কনফিগারেশন ফাইলে সংজ্ঞায়িত করা হয় এবং সংকলনের সময় প্রয়োগ করা হয়।
নিষ্ক্রিয় সময় এবং সিপিইউ চক্রের সংখ্যা, ফ্রিকোয়েনির সাথে মিলিত HZ
(প্রতি সেকেন্ড চক্র) শেষ বুট হওয়ার পরে একটি সংখ্যাতে (সেকেন্ডের) গণনা করা যায়।
আপনার প্রশ্নের সমাধানের জন্য: কখন "আপটাইম" গণনা শুরু হয়?
যেহেতু আপটাইম একটি কার্নেল অভ্যন্তরীণ মান, যা প্রতিটি চক্রকে টিক দেয়, কার্নেলটি শুরু হয়ে গেলে এটি গণনা শুরু করে। অর্থাৎ যখন প্রথম চক্রটি শেষ হয়েছে। কোনও কিছু মাউন্ট করার আগেই, সরাসরি বুটলোডার কার্নেল চিত্রকে নিয়ন্ত্রণ দেয় gives