This is a diminutive version of a system monitor program that is akin to htop, or the older linux command top. For more information about htop, click here. The main purpose of this project was to capitalize on creating multiple classes and header files that parse, maniplate, and then display linux system information that can mostly be found in the /proc directory on the linux distributions. The program was completed useing C++17, Ubuntu Linux 16 LTS, with ncourses providing the boilerplate for the display/interface, as well as GNU Make and CMake to organize compilation of files.
ncurses is a library that facilitates text-based graphical output in the terminal. This project relies on ncurses for display output.
Install ncurses within your own Linux environment: sudo apt install libncurses5-dev libncursesw5-dev
This project uses Make and CMake. The Makefile has four targets:
buildcompiles the source code and generates an executableformatapplies ClangFormat to style the source codedebugcompiles the source code and generates an executable, including debugging symbolscleandeletes thebuild/directory, including all of the build artifacts
-
Clone the project repository:
git clone https://github.com/udacity/CppND-System-Monitor-Project-Updated.git -
Build the project:
make build -
Finally, implement the
System,Process, andProcessorclasses, as well as functions within theLinuxParsernamespace.
-
Make sure ncurses is installed on your Linux machine:
sudo apt install libncurses5-dev libncursesw5-dev -
Git clone this repository:
git clone https://github.com/James1515/SystemMonitor.git -
Build the project:
make build -
Run the program with
./build/monitoror from the build directory./monitor
You should then see a program result as the one below:

Under Ubuntu Fossa 20.04 LTS, the system monitor still functions normally. Only anomaly is the RAM column.

