Bin, sbin, usr/bin, usr/sbin ортосундагы айырма

30-жылдын 2010-ноябрында Дэвид Коллиер мындай деп жазган:

Мен булsyboxто шилтемелер ушул төрт каталогго бөлүнгөнүн байкадым.
Шилтемелердин кайсынысы кайсы каталогдо болушу керектигин аныктоо үчүн жөнөкөй эреже барбы?
Мисалы, kill /bin ичинде, ал эми killall /usr/bin ичинде... Мен бул бөлүнүүдө эч кандай логика көрбөй турам.

Сиз Кен Томпсон менен Деннис Ричи 7-жылы PDP-1969де Unix түзүшкөнүн билесиз. Ошентип, 1971-жылы, алар RK11 жуп дисктери (ар бири 05 мегабайт) менен PDP-1,5ге жаңыртылган.

Иштетүү системасы чоңоюп, биринчи дискке батпай калганда (тамыры FS жайгашкан), алар үй каталогдору жайгашкан экинчисине көчүштү (ошондуктан, орнотуу чекити /usr деп аталды - сөздөн колдонуучу). Алар ошол жерде бардык керектүү ОС каталогдорун (/bin, /sbin, /lib, /tmp ...) кайталап, файлдарды жаңы дискке коюшту, анткени эскисинде орун жок. Андан кийин аларда үчүнчү диск бар болчу, алар аны /home каталогуна орнотуп, ОС эки дискте калган мейкиндиктин баарын ээлеши үчүн колдонуучулардын үй каталогдорун ошол жерге жылдырышты. үч мегабайт (уу!).

Албетте, алар "иштөө системасы жүктөлгөндө, ал /usr ичинде экинчи дискти орното алышы керек, ошондуктан /usr ичинде экинчи дискке mount сыяктуу программаларды койбоңуз, болбосо сизде тоок менен жумуртка маселеси». Бул жөнөкөй. Бул 6 жыл мурун Unix V35да болгон.

/bin жана /usr/bin бөлүү (жана ушул сыяктуу бардык каталогдор) бул окуялардын мурасы, 70-жылдардагы ишке ашыруу деталдары, бюрократтар ондогон жылдар бою көчүрүп келишкен. Алар эч качан суроо беришкен эмес эмне үчүналар жөн эле кылышты. Бул бөлүнүү бир нече себептерден улам Linux түзүлгөнгө чейин эле маанисин жоготкон:

  1. Жүктөөдө initrd же initramfs колдонулат, ал "бизге бул файл андан мурун керек" сыяктуу көйгөйлөрдү чечет. Ошентип, бизде бар бар бардыгын жүктөө үчүн колдонулган убактылуу файл системасы.
  2. Жалпы китепканалар (Unixке Берклидеги балдар тарабынан кошулган) /lib жана /usr/lib мазмунун өз алдынча өзгөртүүгө жол бербейт. Бул эки бөлүк дал келиши керек, болбосо алар иштебейт. Бул 1974-жылы болгон жок, анткени алар статикалык байланыштын айынан бир аз көз карандысыздыкка ээ болушкан.
  3. Арзан катуу дисктер 100-жылы болжол менен 1990 мегабайттык тоскоолдукту бузуп, ошол эле убакта бөлүмдүн өлчөмүн өзгөртүүчү программалык камсыздоо пайда болгон (partition magic 3.0 1997-жылы чыккан).

Албетте, бөлүнүү болгондон кийин айрымдар аны актаган эрежелерди ойлоп табышты. Окшош, түпкү бөлүм ОСтун бардык түрлөрү үчүн керек жана сиз локалдык файлдарыңызды / usr ичинде коюшуңуз керек. Же AT&T эмнени таратат, жана /usr ичинде IBM AIX же Dec Ultrix, же SGI Irix кошулган жана /usr/local тутумуңузга тиешелүү файлдарды камтыган нерсени коюңуз. Анан кимдир бирөө /usr/local жаңы программаны орнотуу үчүн туура жер эмес деп чечти, андыктан /opt! /opt/local да пайда болсо, мен таң калбайм ...

Албетте, 30 жылдын ичинде бул бөлүнүүнүн айынан ар кандай кызыктуу бөлүштүрүү эрежелери келип чыгып кетти. Мисалы, "/tmp өчүрүлгөндө тазаланат, бирок /usr/tmp жок." (Жана Ubuntuдо негизи /usr/tmp жок, ал эми Gentooда /usr/tmp символикалык шилтеме болуп саналат /var/tmp, ал азыр ошол эрежеге баш ийет жана кайра жүктөөдө тазаланбайт. Ооба, бул баары мурун болгон. Ошондой эле FS тамыры окуу үчүн гана болот, андан кийин /usrга эч нерсе жазуунун кереги жок, бирок /varга жазышыңыз керек. негизинен /etc ичинде жазуу мүмкүн эмес, ал кээде /varга жылдырууга аракет кылынган ...)

Linux Foundation сыяктуу бюрократтар (бир нече жыл мурун кеңейүү учурунда Free Standards Groupту жутуп алган) бул эрежелерди документтештирүүгө жана алардын эмне үчүн ал жерде болгонун эч качан түшүнүүгө аракет кылбастан татаалдаштырууга кубанычта. Кен менен Деннис ОСтун бир бөлүгүн үй каталогуна көчүрүшкөнүн алар түшүнүшпөйт, анткени PDP-05деги RK11 диск өтө кичинекей болчу.

Мен busybox файлдарды тарыхый жактан кандай өнүккөн болсо, ошондой эле коёт деп ишенем. Буга чейин эч кандай реалдуу себеп жок. Жеке мен жөн гана /usr ичиндеги окшош каталогдорго /bin, /sbin жана /lib шилтемесин жасайм. Анткени, орнотулган программалык камсыздоо менен иштеген адамдар түшүнүүгө жана жөнөкөйлөштүрүүгө аракет кылышат ...

Source: www.habr.com

Комментарий кошуу