Mengapa proc disebut sistem file?

20

Sistem procfile memungkinkan kernel untuk mengkomunikasikan informasi tentang setiap proses yang berjalan pada sistem Linux.

Mengapa procdisebut sistem file? Ini bukan sistem file nyata ext4. Itu hanya kumpulan file yang berisi informasi tentang proses yang sedang berjalan.

Makhlouf GHARBI
sumber

Jawaban:

25

/procadalah filesystem karena proses pengguna dapat menavigasi melalui itu dengan sistem panggilan akrab dan panggilan perpustakaan, seperti opendir(), readdir(), chdir()dan getcwd(). Bahkan open(), read()dan close()bekerja pada banyak "file" yang muncul dalam /proc. Untuk sebagian besar maksud dan hampir semua tujuan, /procadalah sistem file, terlepas dari kenyataan bahwa file-file tersebut tidak menempati blok pada beberapa disk.

Saya kira kita semua harus mengklarifikasi definisi istilah "sistem file" yang sedang kita gunakan. Dalam konteks ext4, ketika kita menulis "sistem file", kita mungkin berbicara tentang kombinasi tata letak blok disk, spesifikasi informasi metadata tentang blok disk yang juga berada di suatu tempat di disk, dan kode yang berkaitan dengan tata letak on-disk. Dalam konteks /usr, /tmp, /var/rundan sebagainya, kita menulis tentang pemahaman atau konseptualisasi bersama bagaimana nama beberapa hal. Kedua penggunaan istilah "sistem file" memang sangat berbeda. /procbenar-benar jenis kedua "sistem file", seperti yang telah Anda catat.

Bruce Ediger
sumber
9
Tidak ada alasan untuk menggunakan kuota menakutkan untuk file /prockecuali ada yang berpikir bahwa file selalu didukung disk (atau didukung tape, atau didukung CD, atau apa pun yang didukung9. Mereka tidak selalu - pikirkan RAM-disk. Juga, bahkan urutan buka / tulis / tutup dengan file "nyata" /home, katakanlah, mungkin tidak selalu berarti bahwa perubahan yang sesuai dimaksudkan untuk secara permanen mencerminkan keadaan file ini pada penyimpanan disk yang telah dibuat dan diselesaikan.
Hagen von Eitzen
10
tl; dr: karena ini adalah sistem file?
Jörg W Mittag
1
Perhatikan bahwa ini juga menjelaskan pepatah "Di Linux, semuanya adalah file".
dr01
Ini adalah sistem file dengan cara yang sama bahwa layar adalah "desktop". Terminologi komputer dipenuhi dengan metafora.
Barmar
18

itu hanya area file yang berisi informasi

Tapi justru itulah sistem file itu . Sistem file tidak harus dapat ditulis dan tidak harus berada pada penyimpanan permanen.

Catatan: Ada perbedaan antara procfs(implementasi sistem file semu di kernel) dan titik mount konvensionalnya /proc. Secara teori Anda bisa memasang di procfsmana saja, tetapi itu jarang terjadi. Karena itu, orang sering berbicara tentang /procketika mereka sungguh-sungguh procfs.

procfsdisebut sistem file pseudo karena file dalam a procfstidak dibuat oleh operasi sistem file yang biasa, tetapi ditambahkan dan dihapus oleh implementasi sistem file itu sendiri berdasarkan apa yang terjadi di tempat lain di kernel.

cjm
sumber
jadi mengapa / etc / boot misalnya tidak disebut sistem file ???
Makhlouf GHARBI
7
Karena mereka adalah direktori dalam sistem file. (Yah, /bootsering merupakan sistem file yang terpisah, tetapi itu bukan jenis sistem file yang terpisah .)
cjm
9

Jika data diorganisasikan sedemikian rupa sehingga mereka dapat diakses melalui mekanisme yang digunakan untuk sistem file, Anda dapat menyebut semuanya sebagai sistem file.

Guntbert
sumber