A real-time system monitoring tool built in Python that reads directly from the Linux /proc filesystem — without using external libraries like psutil.
It shows CPU, memory, disk, and network usage in a live terminal dashboard.
- Overview
- Features
- Demo Output
- How It Works
- Installation
- Run the Program
- Project Structure
- Learning Outcomes
- Future Improvements
- About
This project is part of my exploration into Operating Systems and Systems-level programming — focusing on how Linux manages and exposes real-time resource information.
It uses /proc files (like /proc/stat, /proc/meminfo, /proc/net/dev) to collect system data and displays it in a clean, human-readable format.
Displays CPU usage percentage
Tracks RAM usage in MB
Monitors Disk space utilization
Shows Network upload/download speeds
Works on any Linux-based system
No external dependencies — uses only Python standard library
======================================== LINUX SYSTEM RESOURCE MONITOR (/proc)
CPU Usage: 12.34% Memory Usage: 3050.12MB / 7980.25MB (38.20%) Disk Usage: 42.56GB / 100.00GB (42.56%) Network Speed: ↑ 4.23 KB/s ↓ 15.67 KB/s Press Ctrl+C to exit.
The monitor reads real-time data directly from Linux kernel interfaces:
| Resource | Source File | Description |
|---|---|---|
| CPU Usage | /proc/stat |
Provides CPU time spent in user/system/idle modes |
| Memory Usage | /proc/meminfo |
Reports total and available physical memory |
| Disk Space | os.statvfs('/') |
Returns filesystem statistics |
| Network I/O | /proc/net/dev |
Tracks bytes sent and received over interfaces |
These are updated every second to simulate a live system dashboard.
Make sure you have Python 3 installed.
Clone this repository:
git clone https://github.com/<your-username>/linux-system-monitor.git
cd linux-system-monitor