Powered by Blogger.

Menjelajahi dan Mempelajari '/proc' File System di Linux


Pernahkah anda mengexplore di dalam direktori /proc. /proc bukanlah sistem file nyata, ini adalah sistem file virtual. Jika Anda melakukan 'ls - l /proc/stat', akan terlihat ukurannya 0 byte, tetapi jika Anda melakukan 'cat /proc/Stat', Anda akan melihat beberapa konten dalam file tersebut.

Kesalahpahaman yang sering terjadi bahwa kita harus segera membersihkan direktori /proc karena bukan File System yang nyata. Ini adalah Virtual File System. Dalam procfs ada informasi tentang
proses dan sistem informasi lainnya. Hal ini dipetakan ke /proc dan mount pada saat boot.

Pertama, mari kita masuk ke direktori /proc dan melihat-lihat :

# Cd /proc

Saat anda pertama kali membuka akan terlihat beberapa file yang tidak asing dan nomor direktorinya. Direktori nomor mewakili proses, lebih dikenal sebagai PID, dan di dalamnya. File-file berisi informasi sistem seperti memori (meminfo), informasi CPU (cpuinfo), dan filesystem yang tersedia.

Mari kita lihat salah satu file pertama:

# Cat /proc/meminfo

contoh output
yang mengembalikan sesuatu yang mirip dengan ini :

MemTotal : 1412432 kB
MemFree : 268876 kB
Buffers : 21068 kB
Cached : 288164 kB
SwapCached : 12416 kB
Active : 528316 kB
Inactive : 552048 kB
Active(anon) : 386140 kB
Inactive(anon) : 397368 kB
Active(file) : 142176 kB
Inactive(file) : 154680 kB
Unevictable : 36 kB
Mlocked : 36 kB
HighTotal : 526920 kB
HighFree : 6988 kB
LowTotal : 885512 kB
LowFree : 261888 kB
SwapTotal : 2924540 kB
SwapFree : 2872828 kB
Dirty : 96 kB
Writeback : 0 kB
AnonPages : 760468 kB
Mapped : 136804 kB
Shmem : 12376 kB
Slab : 31960 kB
SReclaimable : 17028 kB
SUnreclaim : 14932 kB
KernelStack : 3568 kB
PageTables : 14456 kB
NFS_Unstable : 0 kB
Bounce : 0 kB
WritebackTmp : 0 kB
CommitLimit : 3630756 kB
...

Seperti yang Anda lihat, /proc/meminfo berisi sekumpulan informasi tentang memori sistem anda, termasuk jumlah total yang tersedia (dalam kb).

Menjalankan perintah cat pada salah satu file di /proc akan menampilkan isinya. Informasi tentang file tersedia di halaman manual dengan menjalankan :

# Man 5 /proc/<filename>

Aku akan memberikan ikhtisar singkat pada file / proc ini :

/proc/cmdline - Informasi baris perintah Kernel.
/proc/console - Informasi tentang konsol saat ini termasuk tty.
/proc/device - Device driver saat ini dikonfigurasi untuk kernel yang berjalan.
/proc/dma - Info tentang saluran DMA saat ini.
/proc/fb - Perangkat framebuffer.
/proc/filesystem - Filesystem sekarang didukung oleh kernel.
/proc/iomem - Peta sistem memori untuk perangkat.
/proc/ioports - Port yang terdaftar untuk input keluaran komunikasi dengan perangkat.
/proc/loadavg - Sistem beban rata-rata.
/proc/locks - File yang dikunci oleh kernel.
/proc/meminfo - Info tentang memori sistem.
/proc/misc - driver Miscellaneous terdaftar untuk perangkat utama lain-lain.
/proc/modules - modul kernel Saat dimuat.
/proc/mounts- Daftar semua mounts yang di gunakan oleh sistem.
/proc/partitions - Detil info tentang partisi yang tersedia untuk sistem.
/proc/pci - Informasi tentang setiap perangkat PCI.
/proc/Stat - Rekam atau berbagai statistik terus dari reboot terakhir.
/proc/Swap - Informasi tentang ruang swap.
/proc/uptime - Informasi Uptime (dalam hitungan detik).
/proc/version - Versi Kernel, versi gcc, dan distribusi Linux diinstal.

Dalam direktori /proc bernomor mempunyai beberapa file dan link. Ingat bahwa angka-angka di direktori ' berkorelasi dengan PID dari perintah yang dijalankan di dalamnya. Misalkan, Pada sistem saya, ada nama folder / proc/12:

# Cd /proc/12
# ls

contoh output
attr                 coredump_filter     io                 mounts                  pagemap           stack
autogroup      cpuset                    latency         mountstats             personality       stat
auxv              cwd                       limits            net                         root                  statm
cgroup           environ                  loginuid       ns                          sched                status
clear_refs      exe                         maps            oom_adj                schedstat           syscall
cmdline         fd                           mem             oom_score            sessionid           task
comm            fdinfo                    mountinfo     oom_score_adj     smaps                wchan

Jika saya menjalankan :

# Cat / proc/12/status

Saya mendapatkan hal berikut :

Name: sync_supers
State: S (sleeping)
Tgid: 12
Pid: 12
PPid: 2
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
FDSize: 32
Groups: Threads: 1
SigQ: 0/10920
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: ffffffffffffffff
SigCgt: 0000000000000000
CapInh: 0000000000000000
CapPrm: ffffffffffffffff
CapEff: ffffffffffffffff
CapBnd: ffffffffffffffff
Cpus_allowed: 1
Cpus_allowed_list: 0
Mems_allowed: 1
Mems_allowed_list: 0
voluntary_ctxt_switches: 934
nonvoluntary_ctxt_switches: 2


Bagian yang penting adalah di bagian atas. Kita bisa melihat dari file status itu proses ini milik sync_supers. Kondisi saat sleeping, dan proses ID adalah 12. Kita juga dapat melihat siapa yang menjalankan ini, sebagai UID dan GID adalah 0, menunjukkan bahwa proses ini milik user root.
Dalam setiap direktori nomor, Anda akan memiliki struktur file yang sama. Yang paling penting, dan deskripsi mereka, adalah sebagai berikut :

cmdline - baris perintah proses.
environ - variabel lingkungan.
fd - file deskriptor.
limits - berisi informasi tentang batas-batas proses.
mounts - informasi terkait.

Anda juga akan melihat beberapa link di direktori nomor :

CWD - link ke direktori kerja saat proses.
exe - link ke executable proses.
akar - link ke direktori kerja dari proses.