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:
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/udacity/CppND-System-Monitor-Project-Updated.git
-
Build the project:
make build
-
Finally, implement the
System
,Process
, andProcessor
classes, as well as functions within theLinuxParser
namespace.
-
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/monitor
or 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.