Mengapa tidak ada README di hierarki sistem file Linux?

8

Linux filesystem hierarchy ( FHS ) berisi banyak direktori penting. Sebagai contoh, saya baru tahu /sys/class/inputsaat bermain dengan pengaturan keyboard PS / 2 saya.

Tetapi semua direktori penting tersebut didokumentasikan di tempat lain, jadi man /sys/class/inputtidak berfungsi untuk menjelaskan apa yang terjadi pada titik tertentu.

Mengapa tidak menempatkan READMEfile ke dalam hierarki untuk memudahkan orang mempelajari apa yang terjadi pada level tertentu dan bermain dengan konten? Akan sangat luar biasa jika perangkat bahkan bisa memasang sendiri README.

techtonik anatoly
sumber
2
Mungkin karena kebanyakan orang tidak mau belajar apa yang terjadi di level yang berbeda itu? Mereka hanya ingin mereka bekerja, sehingga mereka dapat menyelesaikan tugas apa pun yang mereka perlu / ingin lakukan. Seseorang harus menulis semua file README itu, dan mereka akan menambahkan lebih banyak mengasapi sistem file yang sudah dipenuhi dengan hal-hal (seperti banyak / usr / share) yang kebanyakan orang tidak akan pernah menggunakan.
jamesqf
14
@ jamesqf karena kebanyakan orang tidak mau belajar apa yang terjadi di level yang berbeda itu? Mereka hanya ingin mereka bekerja, sehingga mereka dapat menyelesaikan tugas apa pun yang mereka perlu / ingin lakukan Dan bagaimana jika tugas saya terkait dengan sistem file, seperti OP tampaknya? Juga, sudahkah Anda bertemu dengan pengguna Linux? Kami tidak ingin belajar. Ini argumen yang mengerikan.
kaqqao
1
Perbedaan mendasar antara Linux dan Windows / Mac, jika Anda belum menyadarinya, adalah bahwa Linux tahu bahwa Anda telah meninggalkan kandungan sudah mengetahui segalanya. Oleh karena itu README akan menjadi berlebihan.
user541686
1
@kaqqao: Ya, saya adalah pengguna Linux, dan telah menjadi pengguna Linux sejak itu. Dan sebelum itu pengguna Unix sejak itu dijalankan di PDP-11 sekolah saya. Saya tidak terlalu peduli bagaimana hal-hal seperti sistem file bekerja, saya hanya (saat ini) ingin agar kode tomografi seismik saya berfungsi. Saya juga tidak peduli dengan / sys / class / input, selama keyboard & trackball saya berfungsi. Untuk minoritas kecil yang tertarik pada hal-hal ini, ada alat praktis yang disebut Google, dapat diakses dari sebagian besar browser web :-)
jamesqf
2
Ada man hier.
el.pescado

Jawaban:

30

Untuk menggunakan contoh Anda: /sys/tidak mengandung file "nyata", tetapi sepenuhnya disediakan oleh kernel. Apakah Anda ingin semua README menjadi bagian dari kernel? Anda mungkin tidak.

Dokumentasi dalam /usr/share/doc. Yang berisi file normal di harddisk Anda. Beberapa dokumentasi tentang /sysdan /procada di sumber kernel, yaitu di /usr/src/linux/Documentation(jika Anda telah menginstal sumber kernel, dan membuat symlink untuk kernel Anda saat ini).

dirkt
sumber
10
sysfs dan procfs adalah sepenuhnya filesystem virtual yang tidak memiliki backing store. Semua yang ada di sana disintesis dengan cepat oleh kernel. Jika README tidak disimpan dalam memori, dari mana lagi mereka berasal?
Jörg W Mittag
13
@ JörgWMittag: Jelas bahwa kernel dapat mensintesis symlink /use/share/doc.
MSalters
11
Kernel sudah menjadi bagian besar dan rumit dari perangkat lunak, dan "membuatnya lebih mudah bagi orang untuk belajar" bukanlah salah satu tujuan utama pengembang mereka. Ini bukan yang sulit untuk pergi ke /usr/share/docgantinya.
Federico Poloni
9
@MSalters: itu berarti bahwa kernel harus a) memindai seluruh sistem file untuk menemukan file-file tersebut dan membuat symlink ke mereka, b) harus memiliki banyak opsi konfigurasi untuk memberi tahu kernel di mana file-file itu sehingga dapat buat symlinks ke mereka, atau c) harus meresepkan lokasi file-file tersebut ke pengelola distribusi (yang akan melanggar pepatah Linus # 1 yang kebijakan milik di userspace, hanya mekanisme yang termasuk dalam kernel). Juga, bagaimana Anda memastikan bahwa file-file tersebut cocok dengan versi kernel yang saat ini berjalan? Bagaimana dengan distribusi yang memiliki ...
Jörg W Mittag
7
@FedericoPoloni: FHS hanya wajib untuk distribusi Linux yang sesuai dengan LSB. Kebanyakan tidak. Secara khusus, ada sejumlah distribusi yang secara khusus didirikan untuk membersihkan (apa yang mereka anggap sebagai) pukulan historis, yang dalam banyak kasus secara eksplisit memasukkan FHS.
Jörg W Mittag
14

Karena Unix dan Linux memiliki tradisi lama dalam mendokumentasikan dengan manhalaman (dan, pada sistem GNU, infofile ...). Lihat man (1) , man (7) , man-pages (7) . BTW, manperintah dan halaman adalah opsional (dan Anda tidak akan menginstalnya di setiap sistem Unix).

Hirarki sistem file dijelaskan dalam hier (7) .

Ini didefinisikan oleh Filesystem Hierachy Standard yang tersedia di https://wiki.linuxfoundation.org/lsb/fhs

Beberapa sistem file, terutama /proc/(lihat proc (5) ) dan /sys/(lihat sysfs (5) ) adalah sistem pseudofile yang disediakan oleh kode kernel. Anda tidak ingin membengkak kernel dengan kode tambahan yang menghasilkan README-s (yang tidak berguna bagi sebagian besar pengguna). Bahkan file konfigurasi kernel hanya tersedia secara opsional karena /proc/config.gzsering dinonaktifkan di sebagian besar konfigurasi kernel. Dan banyak sistem Linux adalah sistem tertanam (mis. Smartphone Anda, alat pintar Anda atau perangkat IoT, RaspberryPI Anda) di mana sumber daya cukup ditakuti untuk menghindari pemborosan.

Terutama /sys/sangat berguna untuk sysadmin dan pengembang yang menulis utilitas tingkat rendah, dan keduanya seharusnya dapat menemukan dokumentasi dengan tepat.

Mengapa tidak menempatkan READMEfile ke dalam hierarki untuk memudahkan orang mempelajari apa yang terjadi

Jika Anda benar-benar menginginkannya README, tulis modul kernel Anda yang dapat di - load untuk menyediakannya, atau buat beberapa unionfs untuk menyediakannya. Saya tidak berpikir itu sepadan dengan usaha (dan serikat pekerja /sysmungkin akan memperlambat seluruh sistem Anda).

Ingat bahwa kode kernel mengkonsumsi RAM (tidak pernah keluar dan berada dalam memori fisik , bukan memori virtual), bahkan jika tidak digunakan. Jadi masuk akal untuk menghindari kembung.

Basile Starynkevitch
sumber
Jadi saya bisa menulis paket yang mendokumentasikan semua jalur tersebut tanpa menyentuh kernel atau membuatnya kembung?
anatoly techtonik
1
Anda bisa, tetapi menggunakan unionfs pada /sysakan memperlambat sistem Anda. Saya pikir tidak ada gunanya kehilangan waktu Anda dengan cara seperti itu. Hidup ini singkat ... Dan Anda akan menghabiskan lebih banyak waktu melakukan itu daripada membaca dokumentasi
Basile Starynkevitch