==============================================================
Experiment 02: Exploring the /proc File System
==============================================================
[Back to Index]
--------------------------------------------------------------
THEORY:
/proc file system is a virtual file system in Linux that
provides an interface to kernel data structures.
/proc/cpuinfo - CPU details including number of cores
/proc/meminfo - System memory usage
/proc/stat - Kernel statistics (processes, CPU, etc.)
/proc/[pid]/status - Info about a specific process
/proc/loadavg - System load average
--------------------------------------------------------------
COMMANDS:
# View CPU info
cat /proc/cpuinfo | less
# Count processors
grep -c processor /proc/cpuinfo
cat /proc/cpuinfo | grep "processor" | wc -l
# View memory info
cat /proc/meminfo
# Total and free memory
cat /proc/meminfo | grep -E 'MemTotal|MemFree'
# Fraction of free memory
awk '/MemTotal/ {total=$2} /MemFree/ {free=$2} END {print "fraction of free:",free/total}' /proc/meminfo
# Count total processes
ps -e | wc -l
# Show all processes
ps aux
# Count running/blocked processes
ps -eo stat | grep -c R
ps -eo stat | grep -c D
# Kernel statistics
cat /proc/stat
# Total processes created
cat /proc/stat | grep 'processes'
# Context switches
cat /proc/stat | grep 'ctxt'
--------------------------------------------------------------
SAMPLE OUTPUT:
$ cat /proc/meminfo | grep -E 'MemTotal|MemFree'
MemTotal: 3667152 kB
MemFree: 2738700 kB
$ awk '/MemTotal/ {total=$2} /MemFree/ {free=$2} END {print "fraction of free:",free/total}' /proc/meminfo
fraction of free: 0.889411
$ ps -e | wc -l
20
$ ps -eo stat | grep -c R
1
$ cat /proc/stat | grep 'processes'
processes 1074
$ cat /proc/stat | grep 'ctxt'
ctxt 11973152
==============================================================
[Next: Exp 03 - Process Time Analysis]
==============================================================