30 жылдың 2010 қарашасында Дэвид Коллиер былай деп жазды:
Мен бос емес қорапта сілтемелер осы төрт каталогқа бөлінгенін байқадым.
Сілтемелердің қайсысы қай каталогта болуы керек екенін анықтаудың қарапайым ережесі бар ма?
Мысалы, 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 был создан, по нескольким причинам:
- Жүктеу кезінде initrd немесе initramfs пайдаланылады, ол «бізге осы файлдан бұрын осы файл қажет» сияқты мәселелерді шешеді. Осылайша, бізде енді бар қалғанның барлығын жүктеу үшін пайдаланылатын уақытша файлдық жүйе.
- Ортақ кітапханалар (Берклидегі жігіттер Unix-ке қосқан) /lib және /usr/lib мазмұнын дербес өзгертуге мүмкіндік бермейді. Бұл екі бөлік сәйкес келуі керек, әйтпесе олар жұмыс істемейді. Бұл 1974 жылы болған жоқ, өйткені олар статикалық байланысқа байланысты біраз тәуелсіздікке ие болды.
- Арзан қатты дискілер шамамен 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, на который теперь распространяется то правило, и он не очищается при перезагрузке. Да, это всё было ещё до tmpfs. А ещё бывает, что корневая ФС доступна только на чтение, и тогда в /usr тоже не надо ничего писать, а надо писать в /var. Или в / негізінде /etc ішінен басқа жазу мүмкін емес, оны кейде /var ішіне жылжытуға тырысты ...)
Бюрократы вроде Linux Foundation (которые поглотили Free Standards Group во время расширения годы назад) с радостью документируют и усложняют эти правила, даже не пытаясь понять, почему они появились. Они не догадываются, что Кен и Дэннис просто перенесли часть ОС в их домашнюю директорию, из-за того, что диск RK05 на PDP-11 был слишком мал.
Мен busybox файлдарды тарихи дамығандай етіп қоятынына сенімдімін. Әзірге мұны істеуге нақты себеп жоқ. Жеке өзім /usr ішіндегі ұқсас каталогтарға /bin, /sbin және /lib сілтемесін жасаймын. Ақыр соңында, ендірілген бағдарламалық жасақтамамен жұмыс істейтін адамдар түсінуге және жеңілдетуге тырысады ...
Ақпарат көзі: www.habr.com
