Linux โปร่งใสมาก ไดเรกทอรี /proc เป็น virtual filesystem ที่ kernel สร้างขึ้นใหม่ทุกครั้งที่บูท และอัปเดตตลอดเวลา ไม่ได้เก็บบนดิสก์จริง แต่อ่านได้เหมือนไฟล์ข้อความ ทำให้ดูข้อมูลระบบได้ง่ายโดยไม่ต้องใช้ library พิเศษ
ไฟล์สำคัญใน /proc
/proc/cpuinfo
ข้อมูล CPU แบบละเอียด: model name, cores, threads, cache, flags (avx, sse, vmx), bogomips
cat /proc/cpuinfo
/proc/meminfo
ข้อมูลหน่วยความจำและ swap: MemTotal, MemFree, MemAvailable, Buffers, Cached, SwapTotal, SwapFree
cat /proc/meminfo
/proc/cmdline
Kernel boot parameters ที่ใช้บูทครั้งนี้ (รวม kernel parameter เช่น quiet, splash, nomodeset, module_blacklist)
cat /proc/cmdline
/proc/filesystems
รายการ filesystem ที่ kernel รองรับ (nodev = virtual fs เช่น proc, sysfs, tmpfs)
cat /proc/filesystems
/proc/<PID>/
แต่ละ process มีโฟลเดอร์ย่อยใน /proc ตาม PID ไฟล์สำคัญ:
cmdline: คำสั่งเริ่มต้น (null-separated)environ: environment variablesfd/: file descriptors ที่เปิดอยู่status: สถานะ process (state, memory, threads, capabilities)exe: symlink ไปยัง binary จริงcwd: working directory
/proc/modules
Kernel modules ที่โหลดอยู่ (เหมือน lsmod)
cat /proc/modules
/proc/mounts
รายการ mount points ปัจจุบัน (เหมือน findmnt หรือ cat /etc/mtab)
cat /proc/mounts
/proc/sys/
Kernel runtime parameters ที่ปรับได้ระหว่างรัน (sysctl) เช่น:
/proc/sys/vm/swappiness/proc/sys/net/ipv4/ip_forward/proc/sys/kernel/hostname
แก้ไขได้ด้วย echo value | sudo tee /proc/sys/.../param หรือ sysctl -w
อื่นๆ ที่น่าสนใจ
/proc/version: kernel version, gcc version/proc/uptime: uptime วินาที, idle time/proc/loadavg: load average 1, 5, 15 นาที/proc/interrupts: IRQ interrupts ต่อ CPU/proc/partitions: block devices และ partitions
การใช้งานจริง
เขียนสคริปต์อ่าน /proc เพื่อ monitoring, alerting, หรือ debug kernel/hardware issues ได้ง่าย เพราะเป็น text file ธรรมดา
# ตัวอย่าง: ดู CPU temperature (หากมี sensor) cat /proc/acpi/thermal_zone/*/temperature 2>/dev/null || sensors
สำรวจ /proc เองจะค้นพบข้อมูลมากมายที่ช่วยเข้าใจ Linux ลึกขึ้น!