Perbedaan antara bin, sbin, usr/bin, usr/sbin

Pada 30 November 2010, David Collier menulis:

Saya perhatikan bahwa di busybox tautannya dibagi menjadi empat direktori ini.
Apakah ada aturan sederhana untuk menentukan di direktori mana tautan mana yang harus berada ...
Misalnya, kill ada di /bin, dan killall ada di /usr/bin... Saya tidak melihat logika apa pun di divisi ini.

Anda mungkin tahu bahwa Ken Thompson dan Dennis Ritchie menciptakan Unix pada PDP-7 pada tahun 1969. Jadi, sekitar tahun 1971, mereka meningkatkan ke PDP-11 dengan sepasang disk RK05 (masing-masing 1,5 megabita).

Ketika sistem operasi tumbuh dan tidak lagi muat di disk pertama (di mana root FS berada), mereka memindahkan sebagian ke yang kedua, di mana direktori home berada (oleh karena itu, titik mount disebut /usr - dari kata pengguna). Mereka menggandakan semua direktori OS yang diperlukan di sana (/bin, /sbin, /lib, /tmp ...) dan meletakkan file di disk baru, karena yang lama kehabisan ruang. Kemudian mereka memiliki disk ketiga, mereka memasangnya di direktori /home dan memindahkan direktori home pengguna ke sana sehingga OS dapat mengambil semua ruang yang tersisa di dua disk, dan ini adalah sebanyak tiga megabyte (Wow!).

Tentu saja, mereka harus membuat aturan bahwa "saat sistem operasi melakukan booting, ia harus dapat memasang disk kedua di /usr, jadi jangan letakkan program seperti mount di disk kedua di /usr atau Anda akan memilikinya masalah ayam dan telur." Sesederhana itu. Dan itu ada di Unix V6 35 tahun yang lalu.

Pemisahan /bin dan /usr/bin (dan semua direktori semacam itu) adalah warisan dari peristiwa tersebut, detail implementasi dari tahun 70-an yang telah disalin oleh birokrat selama beberapa dekade hingga sekarang. Mereka tidak pernah menanyakan pertanyaan itu mengapamereka baru saja melakukannya. Pembagian ini tidak masuk akal bahkan sebelum Linux dibuat, karena beberapa alasan:

  1. Saat mem-boot, initrd atau initramfs digunakan, yang menangani masalah seperti "kami memerlukan file ini sebelum yang itu." Jadi, kita punya sudah punya sistem file sementara yang digunakan untuk memuat yang lainnya.
  2. Pustaka bersama (yang ditambahkan ke Unix oleh orang-orang di Berkley) tidak memungkinkan Anda mengubah konten /lib dan /usr/lib secara mandiri. Kedua bagian ini harus cocok atau tidak akan berfungsi. Ini tidak terjadi pada tahun 1974 karena mereka memiliki kebebasan saat itu karena tautan statis.
  3. Hard drive murah memecahkan penghalang 100 megabyte sekitar tahun 1990, dan sekitar waktu yang sama, perangkat lunak pengubah ukuran partisi muncul (partition magic 3.0 keluar pada tahun 1997).

Tentu saja, karena ada pembagian, beberapa orang membuat aturan yang membenarkannya. Seperti, partisi root diperlukan untuk semua jenis fitur OS umum, dan Anda perlu meletakkan file lokal Anda di / usr. Atau masukkan / apa yang didistribusikan AT&T, dan di /usr apa distribusi Anda, IBM AIX, atau Dec Ultrix, atau SGI Irix ditambahkan, dan /usr/local berisi file khusus untuk sistem Anda. Dan kemudian seseorang memutuskan /usr/local bukan tempat yang tepat untuk menginstal perangkat lunak baru, jadi mari tambahkan /opt! Saya tidak akan terkejut jika /opt/local juga muncul ...

Tentu saja, selama 30 tahun, karena pemisahan ini, segala macam aturan khusus distribusi yang menarik telah datang dan pergi. Misalnya, "/tmp dihapus saat reboot, tetapi /usr/tmp tidak." (Dan di Ubuntu pada prinsipnya tidak ada /usr/tmp, dan di Gentoo /usr/tmp adalah tautan simbolis ke /var/tmp, yang sekarang tunduk pada aturan itu, dan tidak dihapus saat reboot. Ya, ini itu semua sebelumnya Itu juga terjadi bahwa FS root hanya-baca, dan kemudian Anda juga tidak perlu menulis apa pun ke /usr, tetapi Anda perlu menulis ke /var. kebanyakan tidak dapat ditulis kecuali di /etc, yang kadang dicoba dipindahkan ke /var ...)

Birokrat seperti Linux Foundation (yang menelan Free Standards Group selama perluasannya bertahun-tahun yang lalu) dengan senang hati mendokumentasikan dan memperumit aturan ini tanpa pernah mencoba mencari tahu mengapa aturan itu ada. Apa yang tidak mereka sadari adalah bahwa Ken dan Dennis baru saja memindahkan sebagian dari OS ke direktori home mereka karena disk RK05 pada PDP-11 terlalu kecil.

Saya cukup yakin bahwa busybox hanya menempatkan file dengan cara yang sama seperti yang dikembangkan secara historis. Tidak ada alasan nyata untuk melakukannya sampai sekarang. Secara pribadi, saya hanya membuat tautan /bin, /sbin dan /lib ke direktori serupa di /usr. Lagi pula, orang yang bekerja dengan perangkat lunak tersemat mencoba memahami dan menyederhanakan ...

Sumber: www.habr.com

Tambah komentar