A real-time system monitoring dashboard built with Java and C, providing detailed system metrics through a clean and modern interface.
-
Real-time System Information
- Operating System details (Name, Version, Architecture)
- Hostname
- System uptime
-
CPU Statistics
- Total CPU usage
- Per-core CPU usage
- Number of CPU cores
- Active process count
-
Memory Statistics
- Physical memory usage (Total, Used, Free)
- Memory usage percentage
- Swap memory usage and percentage
-
Process Information
- Total number of running processes
- Top 3 processes by CPU usage
-
Storage Statistics
- Root partition details
- Total, used, and free space
- Usage percentage
-
Network Statistics
- IP address
- MAC address
- Network traffic (Received/Transmitted)
- Real-time traffic monitoring
-
Battery Information (if available)
- Battery level percentage
- Charging status
-
User Interface Features
- Dark/Light theme toggle
- Configurable refresh rate (1s, 2s, 5s)
- Clean and organized layout
- Real-time updates
- Linux operating system
- JDK 21 or higher
- GCC compiler
- Make utility
-
Clone the repository:
git clone <repository-url> cd SystemDashboard
-
Build the native library:
cd src/systemdashboard make clean make cd ..
-
Compile Java code:
javac systemdashboard/SystemMonitor.java
-
Run the application:
java -Djava.library.path=systemdashboard systemdashboard.SystemMonitor
SystemDashboard/
├── src/
│ └── systemdashboard/
│ ├── SystemMonitor.java # Main Java application
│ ├── systeminfo.c # Native C implementation
│ ├── systeminfo.h # JNI header file
│ └── Makefile # Build configuration
└── README.md
- Frontend: Java AWT/Swing for the graphical interface
- Backend: Native C code via JNI for system metrics
- Metrics Collection: Direct system calls and proc filesystem access
- Update Mechanism: Background thread with configurable refresh rate
- CPU usage calculated from /proc/stat
- Memory information from sysinfo
- Disk statistics via statvfs
- Network traffic from /proc/net/dev
- Process information from /proc filesystem
- Battery status from /sys/class/power_supply
- Organized panel layout
- Responsive design
- Theme support with proper contrast
- Interactive controls
- Real-time updates
- The application requires root partition access for disk statistics
- Network statistics exclude loopback interface
- Battery information is only available on systems with battery
- Process CPU usage is calculated based on process time
[Your License Here]
Contributions are welcome! Please feel free to submit pull requests.