All source listed below is under MIT license if no LICENSE file stating different is available.
rtop
Author: retoor retoor@molodetz.nl
A terminal-based system monitoring tool written in C that displays comprehensive system statistics in a dynamic, auto-refreshing interface. rtop is designed as a lightweight alternative to htop with no external dependencies beyond the standard C library.
Features
- Real-time system monitoring with configurable refresh interval
- Per-core CPU utilization with temperature and frequency display
- Memory and swap usage statistics
- Process listing sorted by CPU or memory usage
- Network interface statistics with RX/TX rates
- Disk I/O statistics
- Filesystem usage information
- Color-coded output for utilization levels
- Terminal resize handling
- Keyboard controls (q to quit)
Requirements
- Linux operating system
- GCC compiler (C99 compliant)
- Make build system
Building
make
The build produces a single binary rtop with minimal dependencies.
Build Options
make clean # Remove build artifacts
make debug # Build with debug symbols
make install # Install to /usr/local/bin (requires root)
Usage
./rtop [OPTIONS]
Options:
-d, --delay SECS Update interval in seconds (default: 1.0)
-s, --sort MODE Sort by: cpu (default), mem
-h, --help Show help message
-v, --version Show version
Examples
./rtop # Run with default settings
./rtop -d 2 # Update every 2 seconds
./rtop -s mem # Sort processes by memory usage
Display Sections
- Header: Hostname, OS version, kernel, uptime, load averages
- CPU: Per-core utilization, total usage, temperature, frequency
- Memory: RAM and swap usage with buffer/cache information
- Processes: Summary counts (running, sleeping, stopped, zombie)
- Network: Interface statistics with IP addresses and transfer rates
- Disk I/O: Read/write rates and IOPS per device
- Filesystems: Mount points with usage percentages
- Process List: Detailed per-process information
Controls
qorQ: Quit the applicationCtrl+C: Terminate
Technical Details
Data Sources
All system information is read from the Linux /proc and /sys filesystems:
/proc/stat- CPU statistics/proc/meminfo- Memory information/proc/[pid]/stat- Process information/proc/net/dev- Network statistics/proc/diskstats- Disk I/O statistics/sys/class/thermal/- Temperature sensors
Performance
- Target CPU usage: <5%
- Startup time: <100ms
- Memory footprint: <10MB RSS
- Binary size: ~1.2MB
Project Structure
rtop/
├── include/
│ ├── cpu.h
│ ├── disk.h
│ ├── display.h
│ ├── filesystem.h
│ ├── memory.h
│ ├── network.h
│ ├── process.h
│ ├── system.h
│ └── terminal.h
├── src/
│ ├── cpu.c
│ ├── disk.c
│ ├── display.c
│ ├── filesystem.c
│ ├── main.c
│ ├── memory.c
│ ├── network.c
│ ├── process.c
│ ├── system.c
│ └── terminal.c
├── Makefile
└── README.md
License
This project is provided as-is for educational and personal use.
| include | |
| src | |
| .gitignore | |
| CHANGELOG.md | |
| Makefile | |
| README.md | |
| rtop | |
| rtop.md |