Më 30 Nëntor 2010, David Collier shkruante:
Vura re se në busybox lidhjet janë shpërndarë në këto katër drejtime.
A ka ndonjë rregull të thjeshtë për të përcaktuar se në cilën direktori duhet të qëndrojë secila nga lidhjet…
Për shembull, kill ndodhet në /bin, ndërsa killall ndodhet në /usr/bin… Nuk shoh asnjë logjikë në këtë ndarjen.
Sigurisht se e dini që Ken Thompson dhe Dennis Ritchie krijuan Unix në PDP-7 në vitin 1969. Kështu që, rreth vitit 1971 ata e përmirësuan në PDP-11 me disa disqe RK05 (nga 1.5 megabajt secili).
Kur sistemi operativ u rrit dhe nuk përshtatej më në disqin e parë (ku ishte e vendosur FS-ja treguese), ata e dhanë një pjesë në disqin e dytë, ku ndodheshin drejtoritë shtëpiake (për këtë arsye pika e montimit quhej /usr - nga fjala user). Ata kopjuan aty të gjitha drejtoritë e nevojshme të OS-së (/bin, /sbin, /lib, /tmp …) dhe mbushnin skedarët në diskun e ri, sepse në diskun e vjetër kishte mungesë hapsire. Më pas u shfaq një disk i tretë, e montuan atë në direktorinë /home dhe transferuan atje drejtoritë e shtëpiakëve, në mënyrë që OS-ja të mund të merrte gjithë hapsirën e mbetur në dy disqe, që ishin tre megabajtë të plotë (wow!).
Natyrisht, atyre iu desh të vendosin një rregull që "kur sistemi operativ ngarkohet, ai duhet të jetë në gjendje të montojë disqin e dytë në direktorinë /usr, kështu që nuk duhet të vendosni programe si mount në disqin e dytë në /usr, ose do të përfundojmë me problemin e pulës dhe vezës". Kështu, kishte funksionuar. Dhe kjo i përkiste Unix V6 35 vjet më parë.
Ndarja e /bin dhe /usr/bin (dhe të gjitha drejtoritë e ngjashme) është një pasojë e këtyre ngjarjeve, një detaj i realizimit nga vitet 70, që vijon të shkopëzohet për dekada me radhë nga burokratët. Ata kurrë nuk e bënë pyetje pse, ata thjesht vepruan nën atë parim. Kjo ndarje kishte humbur kuptimin edhe para se Linux të ishte krijuar, për disa arsye:
- Gjatë ngarkimit përdoret initrd ose initramfs, që merr përsipër problemet si "këtë skedar e kemi nevojë më herët se atë". Kështu, kemi veçse ekziston një sistem të përkohshëm të skedarëve, që përdoret për ngarkimin e gjithçkaje tjetër.
- Bibliotekat e ndara (të cilat u shtuan në Unix nga djemtë nga Berkley) nuk ju lejojnë të ndryshoni përmbajtjen e \/lib dhe \/usr\/lib në mënyrë të pavarur. Këto dy pjesë duhet të përputhen me njëra-tjetrën, përndryshe ato nuk do të funksionojnë. Kjo nuk ndodhi në vitin 1974, pasi atëherë ata kishin një farë pavarësie për shkak të lidhjes statike.
- Diskët e lirë rreket për të kaluar barrierën prej 100 megabajtësh diku në vitin 1990 dhe rreth të njëjtës kohë dolën programet për ndryshimin e madhësisë së ndarjeve (partition magic 3.0 doli në vitin 1997).
Sigurisht, duke qenë se ka ndarje, disa njerëz shpikën rregulla që e justifikojnë atë. Siç është, ndarja rrënjësore nevojitet për disa gjëra të zakonshme të OS-së, ndërsa në \/usr duhet të vendosen skedarët tuaj lokalë. Ose në \/ vendosen ato që shpërndahen nga AT&T, dhe në \/usr — ato që shpërndan distribucioni juaj, IBM AIX, ose Dec Ultrix, ose SGI Irix, dhe në \/usr\/local ndodhen skedarët specifikë për sistemin tuaj. Pastaj dikush vendosi që \/usr\/local nuk është një vend i përshtatshëm për të instaluar softuer të ri, kështu që le të shtojmë edhe \/opt! Nuk do të isha i habitur nëse do të kishte edhe \/opt\/local...
Sigurisht, gjatë 30 viteve për shkak të kësaj ndarjeje janë shfaqur dhe zhdukur disa rregulla interesante specifike për distribuime të veçanta. Për shembull, "\/tmp pastrohet gjatë rinisjes, ndërsa \/usr\/tmp — jo". (Dhe në Ubuntu, \/usr\/tmp nuk ekziston në parim, ndërsa në Gentoo, \/usr\/tmp është një lidhje simbolike në \/var\/tmp, mbi të cilin tani zbatohet ky rregull dhe nuk pastrohet gjatë rinisjes. Po, kjo ndodhi dhe para tmpfs. Gjithashtu ndodh që sistemi i skedarëve të rrënjës është i aksesueshëm vetëm për lexim, dhe atëherë nuk është e nevojshme të shkruani asgjë në \/usr, por duhet të shkruani në \/var. Ose në \/ në përgjithësi nuk lejohet të shkruhet, përveç asaj që ndodhet në \/etc, të cilin ndonjëherë e kanë provuar ta transferojnë në \/var...)
Burokratë të tillë si Fondacioni Linux (i cili përthithi Grupin e Standardeve të Lira gjatë zgjerimit vite më parë) me kënaqësi dokumentojnë dhe komplikojnë këto rregulla, madje pa u përpjekur të kuptojnë se pse ato shfaqen. Ata nuk e kuptojnë se Ken dhe Dennis thjesht e transferuan një pjesë të OS-së në direktoren e tyre personale, për shkak se disku RK05 në PDP-11 ishte shumë i vogël.
Jam jam rrallë do të ndodhte që busybox thjesht vendos skedarët ashtu siç ka ndodhur historikisht. Nuk ka asnjë arsye reale për ta bërë këtë ende. Personalish, unë thjesht i bëj /bin, /sbin dhe /lib lidhje me drejtoritë përkatëse në /usr. Në fund të fundit, njerëzit që punojnë me softuer të integruar përpiqen të kuptojnë dhe të thjeshtojnë…
Burimi: habr.com
