it-swarm-id.com

Apa perbedaan antara procfs dan sysfs?

Apa perbedaan antara procfs dan sysfs? Mengapa mereka dibuat sebagai sistem file? Seperti yang saya pahami, proc hanyalah sesuatu untuk menyimpan info langsung mengenai proses yang berjalan dalam sistem.

74
Sen

Apa perbedaan antara procfs dan sysfs?

proc adalah yang lama, lebih atau kurang tanpa aturan dan struktur. Dan pada titik tertentu diputuskan bahwa proc sedikit terlalu kacau dan dibutuhkan cara baru.

Kemudian sysfs dibuat, dan hal-hal baru yang ditambahkan dimasukkan ke dalam sysfs seperti informasi perangkat.

Jadi dalam beberapa hal mereka melakukan hal yang sama, tetapi sysfs sedikit lebih terstruktur.

Mengapa mereka dibuat sebagai sistem file?

Filsafat UNIX memberitahu kita bahwa semuanya adalah "file", oleh karena itu ia dibuat sehingga berperilaku sebagai file.

Seperti yang saya pahami, proc hanyalah sesuatu untuk menyimpan info langsung mengenai proses yang berjalan dalam sistem.

Bagian-bagian itu selalu ada di sana dan mereka mungkin tidak akan pernah pindah ke sysfs.

Tetapi ada banyak hal lama yang dapat Anda temukan di proc, yang belum dipindahkan.

63
Johan

Pada awalnya (jalan kembali ke Unix), cara program mengetahui tentang proses yang berjalan pada sistem adalah melalui langsung membaca struktur proses dari memori kernel (pembukaan/dev/mem, dan menafsirkan data mentah secara langsung). Ini adalah cara perintah 'ps' pertama bekerja. Seiring waktu, beberapa informasi tersedia melalui panggilan sistem.

Namun, itu adalah bentuk yang buruk untuk mengekspos data sistem secara langsung ke ruang pengguna melalui/dev/mem, dan menjengkelkan untuk terus-menerus membuat panggilan sistem baru setiap kali Anda ingin mengekspor beberapa bagian baru dari data proses, sehingga metode yang lebih baru dibuat untuk mengakses data terstruktur untuk aplikasi ruang pengguna untuk mencari tahu tentang atribut proses. Ini adalah sistem file/proc. Dengan/proc, antarmuka dan struktur (direktori dan file) dapat tetap sama, bahkan ketika struktur data yang mendasarinya di kernel berubah. Ini jauh lebih rapuh daripada sistem sebelumnya, dan ini scaling lebih baik.

Sistem file/proc pada awalnya dirancang untuk mempublikasikan informasi proses dan beberapa atribut sistem utama, diperlukan oleh 'ps', 'top', 'free' dan beberapa utilitas sistem lainnya. Namun, karena mudah digunakan (baik dari sisi kernel dan sisi ruang pengguna), ini menjadi tempat pembuangan untuk seluruh jajaran informasi sistem. Selain itu, ia mulai mendapatkan file baca/tulis, yang akan digunakan untuk menyesuaikan pengaturan dan mengontrol operasi kernel atau berbagai subsistemnya. Namun, metodologi penerapan antarmuka kontrol bersifat ad-hoc, dan/proc segera tumbuh menjadi berantakan kusut.

Sysfs (atau/sys filesystem) dirancang untuk menambah struktur pada kekacauan ini dan memberikan cara yang seragam untuk mengekspos informasi sistem dan titik kontrol (settable system dan atribut driver) ke ruang pengguna dari kernel. Sekarang, kerangka kerja driver di kernel secara otomatis membuat direktori di bawah/sys ketika driver terdaftar, berdasarkan pada tipe driver dan nilai-nilai dalam struktur data mereka. Ini berarti bahwa driver dari tipe tertentu semuanya akan memiliki elemen yang sama diekspos melalui sysfs.

Banyak dari sistem informasi warisan dan titik kontrol masih dapat diakses di/proc, tetapi semua bus dan pengemudi baru harus memaparkan info dan titik kontrol mereka melalui sysfs.

77
Tim Bird

procfs memungkinkan sewenang-wenang file_operations, sysfs lebih dibatasi

sysfs adalah Virtual Filesystem yang dibuat selama siklus rilis 2.6 Kernel untuk menampilkan informasi perangkat karena procfs tidak melakukan jenis informasi ini dengan baik.

Memori, dll, belum porting ke sysfs karena tidak pernah dimaksudkan untuk menunjukkan jenis informasi sehingga kemungkinan tidak akan porting sama sekali.

3
kemra102

Seperti yang saya juga ingin tambahkan di sini ... As/proc adalah versi yang lebih lama itu berisi informasi dari perangkat kernel periode waktu itu..sebagai sysfs datang dengan versi kernel 2.6 sehingga informasi driver perangkat membuat direktori mereka sendiri dengan mana itu adalah sedikit terstruktur dan mudah diakses ..

1
gagan bajaj