Coder Social home page Coder Social logo

cppnd-linux-system-monitor's Introduction

CppND-System-Monitor

This project aims at building a Linux system monitor inspired by htop. It is meant to be hands-on training for the Object Oriented Programming Course of the Udacity C++ Nanodegree Program.

System Monitor

Installation

  • Prerequisite

The ncurses library is required to facilitate text-based graphical output in the terminal to display the output of the monitor.

Install ncurses on your own Linux environment:

sudo apt install libncurses5-dev libncursesw5-dev

  • Clone

    git clone https://github.com/Robotawi/CppND-Linux-system-monitor.git
    
  • Setup

    cd CppND-System-Monitor
    mkdir build 
    cd build
    cmake ..
    make
    

Running

From inside the build folder, the executable of the system monitor can be run as follows

./monitor

Project description

The main functionality of the project depends on parsing the linux file system files to collect data about the operating system, the processor, and the running processes.

The information about the different system components are collected as follows:

  • Operating system: /etc/os-release
  • Kernel: /proc/version
  • Memory utilization: /proc/meminfo
  • Total processes: /proc/meminfo
  • System up time: /proc/uptime
  • Processor data: /proc/stat
  • Username /etc/passwd
  • Process up time /proc/[pid]/stat
  • Process command /proc/[pid]/cmdline
  • Process memory info /proc/[pid]/status
  • Process CPU info /proc/[PID]/stat

Useful resources for the implementation

Contact

If you are interested in the presented work/ideas or if you have any questions, you are welcome to connect with me on LinkedIn. We can discuss about this project and other interesting projects.

cppnd-linux-system-monitor's People

Contributors

13rac1 avatar delvingdeep avatar dsilver829 avatar haoyang-udacity avatar robotawi avatar ryan-keenan avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.