Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

mohammedrayyan12/Linux-System-Monitor

Repository files navigation

ProcView: Linux Kernel Process Explorer

A high-performance system utility written in C that interfaces directly with the Linux kernel via the /proc virtual filesystem. This tool provides real-time telemetry on process states, memory utilization, and system-wide health metrics.

πŸ” Overview

In Linux, everything is a file. ProcView leverages this philosophy by traversing and parsing the /proc directoryβ€”a pseudo-filesystem that acts as an interface to internal kernel data structures. This project demonstrates low-level system programming, efficient file I/O, and memory management.

πŸš€ Key Features

  • PID Discovery: Dynamic discovery of active processes using dirent.h directory scanning.
  • Memory Telemetry: Accurate extraction of Resident Set Size (RSS) and virtual memory statistics from /proc/[pid]/status.
  • Process State Mapping: Monitors process lifecycles (Running, Sleeping, Zombie) by parsing kernel-level stat files.
  • Resource Efficiency: Implemented with minimal overhead to ensure monitoring doesn't impact system performance.

πŸ› οΈ Technical Stack

  • Language: C (Standard: C11)
  • Operating System: Linux (Kernel 2.6.x+)
  • Concepts: File Descriptors, Virtual Filesystems, System Calls, Buffer Management.

πŸ“‚ Internal Architecture

  1. Scanner Module: Iterates through /proc to filter numeric PID directories.
  2. Parser Module: Opens and decodes pseudo-files (stat, status, cmdline) using fscanf and fgets.
  3. Reporter Module: Formats raw kernel data into a human-readable CLI table.

πŸ’» Installation & Usage

Prerequisites

  • A Linux-based operating system.
  • GCC (GNU Compiler Collection).

Compilation

Build the binary using the following command:

make

Execution

Run the explorer with standard permissions (some processes may require sudo to view full details):

make run

About

High-performance Linux system utility in C that interfaces with the /proc virtual filesystem to extract real-time process telemetry, memory maps, and system health metrics.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /