30. listopadu 2010 David Collier psal:
Všiml jsem si, že v busyboxu jsou odkazy rozděleny do těchto čtyř adresářů.
Existuje nějaké jednoduché pravidlo, jak určit, v kterém adresáři by jaký odkaz měl být…
Například, kill je v /bin, zatímco killall je v /usr/bin… Nevidím v tomto rozdělení žádnou logiku.
Určitě víte, že Ken Thompson a Dennis Ritchie vytvořili Unix na PDP-7 v roce 1969. Přibližně v roce 1971 upgradovali na PDP-11 se dvěma disky RK05 (každý po 1,5 megabajtu).
Když se operační systém rozrostl a přestal se vešel na první disk (na kterém byla umístěna kořenová FS), převedli část na druhý, kde byly umístěny domácí adresáře (proto se bod připojení nazýval /usr — od slova user). Duplikovali tam všechny důležité adresáře OS (/bin, /sbin, /lib, /tmp …) a ukládali soubory na nový disk, protože na starém došlo místo. Pak se objevil třetí disk, který připojili do adresáře /home a převedli tam domácí adresáře uživatelů, aby OS mohla obsadit veškeré zbývající místo na dvou discích, což bylo celých tři megabajty (wow!).
Samozřejmě museli zavést pravidlo, že "když se operační systém načítá, musí být schopen připojit druhý disk do adresáře /usr, takže programy jako mount nesmí být na druhém disku v /usr, jinak máme problém s vejcem a slepicí". Tak jednoduché. A to platilo pro Unix V6 před 35 lety.
Rozdělení /bin a /usr/bin (a všech podobných adresářů) je důsledkem těchto událostí, detail implementace ze 70. let, které se kopírovaly byrokraty po desítky let. Nikdy se neptali proč, prostě to dělali. Toto rozdělení ztratilo smysl ještě předtím, než byl Linux vytvořen, z několika důvodů:
- Při načítání se používá initrd nebo initramfs, který se zabývá problémy typu "tento soubor potřebujeme dříve než ten". Tím pádem máme již existuje dočasný souborový systém, který se používá k načtení všeho ostatního.
- Sdílené knihovny (které byly přidány do Unixu lidmi z Berkeley) vám neumožňují samostatně měnit obsah /lib a /usr/lib. Tyto dvě části musí být navzájem v souladu, jinak nebudou fungovat. K tomu nedocházelo v roce 1974, protože tehdy měly určitou nezávislost díky statickému linkování.
- Levné pevné disky překonaly hranici 100 megabajtů někdy v roce 1990 a přibližně ve stejnou dobu se objevily programy pro změnu velikosti oddílů (Partition Magic 3.0 vyšla v roce 1997).
Samozřejmě, protože existuje dělení, někteří lidé vymysleli pravidla, která ho odůvodňují. Například, kořenový oddíl je potřebný pro různé obecné součásti operačního systému, zatímco do /usr by měly být ukládány vaše místní soubory. Nebo do / se umísťuje to, co distribuuje AT&T, a do /usr to, co přidal váš distribuce, IBM AIX, nebo Dec Ultrix, nebo SGI Irix, a do /usr/local leží soubory specifické pro váš systém. A pak někdo usoudil, že /usr/local není vhodné místo pro instalaci nového softwaru, takže přidejme také /opt! Nebudu se divit, pokud se objeví i /opt/local…
Samozřejmě, za 30 let se kvůli tomuto rozdělení objevily a zmizely různé zajímavé specifické pro jednotlivé distribuce pravidla. Například " /tmp se čistí při restartu, zatímco /usr/tmp – ne. " (A v Ubuntu /usr/tmp vlastně není, zatímco v Gentoo /usr/tmp je symbolický odkaz na /var/tmp, na který se nyní vztahuje to pravidlo, a ten se při restartu nečistí. Ano, to všechno bylo ještě před tmpfs. A také se stává, že kořenový FS je dostupný pouze pro čtení, a pak není potřeba nic psát do /usr, ale je potřeba psát do /var. Nebo do / zvláště nelze psát, kromě toho, co je v /etc, kterou se občas pokusili přesunout do /var...)
Byrokrati jako Linux Foundation (kteří došli k pohlcení Free Standards Group během expanze před lety) s radostí dokumentují a komplikují tato pravidla, aniž by se snažili pochopit, proč vznikla. Nemají tušení, že Ken a Dennis prostě přesunuli část operačního systému do své domácí složky, protože disk RK05 na PDP-11 byl příliš malý.
Jsem si téměř jistý, že busybox jednoduše umísťuje soubory tak, jak to historicky vyšlo. Není tu žádný skutečný důvod dělat to takto dodnes. Osobně dělám /bin, /sbin a /lib odkazy na odpovídající adresáře v /usr. Koneckonců, lidé, kteří pracují se zabudovaným softwarem, se snaží porozumět a zjednodušit…
Zdroj: habr.com
