Bin, sbin, usr/bin, usr/sbin o'rtasidagi farq

30 yil 2010-noyabrda Devid Kollier shunday deb yozgan edi:

Busybox-da havolalar ushbu to'rtta katalogga bo'linganligini payqadim.
Qaysi katalogda havolalar yotishi kerakligini aniqlash uchun oddiy qoida bormi?
Masalan, kill /bin ichida, killall esa /usr/bin ichida... Men bu bo‘linishda mantiq ko‘rmayapman.

Ken Tompson va Dennis Ritchi 7 yilda PDP-1969 da Unix-ni yaratganini bilsangiz kerak. Shunday qilib, taxminan 1971 yilda ular bir juft RK11 disklari (har biri 05 megabayt) bilan PDP-1,5 ga yangilashdi.

Operatsion tizim o'sib ulg'ayganida va birinchi diskda (ildiz FS joylashgan) endi ular uy kataloglari joylashgan ikkinchisiga o'tdilar (shuning uchun o'rnatish nuqtasi / usr - so'zdan deb nomlandi) foydalanuvchi). Ular u erda barcha kerakli OS kataloglarini ko'paytirdilar (/bin, /sbin, /lib, /tmp ...) va fayllarni yangi diskka joylashtirdilar, chunki eskisi bo'sh joy tugaydi. Keyin ularda uchinchi disk bor edi, ular uni /home katalogiga o'rnatdilar va OS ikkita diskda qolgan barcha bo'sh joyni egallashi uchun foydalanuvchilarning uy kataloglarini u erga ko'chirdilar va ular uch megabaytgacha (Voy-buy!).

Albatta, ular "operatsion tizim ishga tushganda, u /usr-ga ikkinchi diskni o'rnatish imkoniyatiga ega bo'lishi kerak, shuning uchun /usr-da mount kabi dasturlarni ikkinchi diskka qo'ymang, aks holda sizda shunday bo'ladi" degan qoidani ishlab chiqishlari kerak edi. tovuq va tuxum muammosi." Bu juda oddiy. Va bu 6 yil oldin Unix V35 da edi.

/bin va /usr/bin (va shunga o'xshash barcha kataloglarning) bo'linishi o'sha voqealarning merosi bo'lib, o'nlab yillar davomida byurokratlar tomonidan ko'chirilgan 70-yillardagi amalga oshirish tafsilotlari. Ular hech qachon savol berishmagan nima uchunular shunchaki qildilar. Ushbu bo'linish Linux yaratilishidan oldin ham bir necha sabablarga ko'ra ma'nosini yo'qotdi:

  1. Yuklashda initrd yoki initramfs ishlatiladi, bu "bu fayldan oldin bizga kerak" kabi muammolarni hal qiladi. Shunday qilib, bizda bor endi bor qolgan hamma narsani yuklash uchun foydalaniladigan vaqtinchalik fayl tizimi.
  2. Umumiy kutubxonalar (Unix-ga Berklidagi yigitlar tomonidan qo'shilgan) /lib va ​​/usr/lib tarkibini mustaqil ravishda o'zgartirishga ruxsat bermaydi. Bu ikki qism mos kelishi kerak, aks holda ular ishlamaydi. Bu 1974 yilda sodir bo'lmadi, chunki ular o'sha paytda statik bog'lanish tufayli bir oz mustaqillikka ega edilar.
  3. Arzon qattiq disklar 100-yilda 1990 megabaytlik to'siqni buzib tashladi va taxminan bir vaqtning o'zida qismlarning o'lchamlarini o'zgartirish dasturi paydo bo'ldi (partition magic 3.0 1997 yilda chiqdi).

Albatta, bo'linish bor ekan, ba'zi odamlar buni oqlaydigan qoidalarni ishlab chiqdilar. Masalan, ildiz bo'limi barcha turdagi umumiy OS xususiyatlari uchun kerak va siz mahalliy fayllaringizni / usr ga qo'yishingiz kerak. Yoki AT&T nima tarqatadi va /usr-ga tarqatish, IBM AIX yoki Dec Ultrix yoki SGI Irix qo'shilgan va /usr/local tizimingizga xos fayllarni kiriting. Va keyin kimdir /usr/local yangi dasturiy ta'minotni o'rnatish uchun to'g'ri joy emas deb qaror qildi, shuning uchun /opt! Agar /opt/local ham paydo bo'lsa, hayron qolmayman ...

Albatta, 30 yil davomida, bu ajralish tufayli, har xil qiziqarli taqsimotga xos qoidalar keldi va ketdi. Masalan, "/tmp qayta ishga tushirilganda tozalanadi, lekin /usr/tmp tozalanmaydi." (Ubuntuda esa printsipial jihatdan /usr/tmp yo'q, Gentoo da /usr/tmp /var/tmp ga ramziy havola bo'lib, u endi ushbu qoidaga bo'ysunadi va u qayta ishga tushirilganda tozalanmaydi. Ha, bu hammasi oldin edi. Bundan tashqari, FS ildizi faqat o'qish uchun mo'ljallangan va keyin /usr ga hech narsa yozishingiz shart emas, lekin /var ga yozishingiz kerak. asosan /etc dan tashqari yozish mumkin emas, ba'zan uni /var ga ko'chirishga harakat qilingan ...)

Linux Jamg'armasi kabi byurokratlar (bir necha yillar oldin kengayishi paytida Free Standards Groupni yutib yuborgan) bu qoidalarni nima uchun u erda bo'lganligini tushunishga harakat qilmasdan hujjatlashtirishdan va murakkablashtirishdan mamnun. Ken va Dennis PDP-05 dagi RK11 diski juda kichik bo'lgani uchun OSning bir qismini uy katalogiga ko'chirishganini ular tushunmaydilar.

Ishonchim komilki, busybox fayllarni tarixan xuddi shunday joylashtiradi. Hozircha buni qilish uchun haqiqiy sabab yo'q. Shaxsan men /usr-dagi o'xshash kataloglarga /bin, /sbin va /lib havolasini yarataman. Axir, o'rnatilgan dasturiy ta'minot bilan ishlaydigan odamlar tushunishga va soddalashtirishga harakat qilishadi ...

Manba: www.habr.com

a Izoh qo'shish