How Does htop Calculate Linux System Uptime?
The htop command line tool calculates the system uptime
displayed in its header by reading raw data from the Linux kernel via
the /proc/uptime file. Instead of tracking time
independently, htop parses this file to find the total
number of seconds the system has been running since its last boot. It
then converts this raw second count into a human-readable format,
displaying it as days, hours, and minutes in the top-right corner of the
interface.
The Source: The /proc/uptime File
Linux systems maintain a virtual filesystem called
procfs, typically mounted at /proc. This
directory does not contain real files on a disk; instead, it acts as an
interface to internal kernel data structures.
When htop needs to refresh the uptime metric, it opens
and reads the contents of /proc/uptime. This file always
contains two numbers separated by a space:
- Total Uptime: The first number represents the total number of seconds the system has been up and running.
- Idle Time: The second number represents the total amount of time the CPUs have spent in an idle state, accumulated across all cores.
For its uptime metric, htop isolates that first number
and ignores the idle time data.
Parsing and Converting the Data
Because the raw data from the kernel is a floating-point number
representing seconds, htop applies standard time conversion
math to make it readable for users. The tool divides the total seconds
to extract larger time units:
- Days: Total seconds divided by 86,400.
- Hours: The remaining seconds divided by 3,600.
- Minutes: The remaining seconds divided by 60.
Once the calculation is complete, htop formats the
output string. For example, a raw value of 183,660 seconds
in /proc/uptime is processed and displayed in the
htop header as 2 days, 03:01:00.
Comparison with the standard uptime command
While both htop and the traditional uptime
command-line utility display the same system uptime, they handle the
presentation slightly differently. The standard uptime
command often formats its output by looking at both
/proc/uptime and system log files like
/var/run/utmp to factor in user login counts and system
load averages. In contrast, htop isolates the uptime
parsing strictly for its visual header widget, updating the value in
real-time alongside CPU and memory utilization according to the user’s
configured refresh interval.