The System Monitor is a C++ application designed to provide real-time information about system resources and processes. Inspired by the Task Manager in Windows, this tool offers insights into CPU usage, RAM utilization, and currently running processes.
The application leverages the ncurses library to create an interactive terminal-based user interface, ensuring efficient and clear visualization of system metrics.
- CPU Monitoring: Displays real-time CPU utilization.
- Memory Usage: Tracks and reports RAM consumption.
- Process Management: Lists running processes along with key details.
- C++ Compiler: Compatible with modern C++ standards (C++17 or higher since using std::filesystem).
- Ncurses Library: Required for the terminal-based interface. Install via your system’s package manager
This project was developed as part of the Udacity C++ Nanodegree program. It incorporates advanced C++ concepts, including object-oriented programming, and utilizes Make for building the system. Designed for Linux environments, this tool provides an efficient way to retrieve detailed information about underlying processes.
ncurses is a library that facilitates text-based graphical output in the terminal. This project relies on ncurses for display output.
To install ncurses within your own Linux environment:
sudo apt install libncurses5-dev libncursesw5-dev
This project uses Make. The Makefile has four targets:
build
compiles the source code and generates an executableformat
applies ClangFormat to style the source codedebug
compiles the source code and generates an executable, including debugging symbolsclean
deletes thebuild/
directory, including all of the build artifacts
-
Clone the project repository:
git clone https://github.com/ronyshaji/Udacity_CPP.git
-
Build the project:
make build
-
Run the resulting executable:
./build/monitor
and the terminal opens.
Contributions are welcome! Feel free to submit issues or pull requests to improve the tool further.