ಬಿನ್, sbin, usr/bin, usr/sbin ನಡುವಿನ ವ್ಯತ್ಯಾಸ

ನವೆಂಬರ್ 30, 2010 ರಂದು, ಡೇವಿಡ್ ಕೊಲಿಯರ್ ಬರೆದರು:

ಬ್ಯುಸಿಬಾಕ್ಸ್‌ನಲ್ಲಿ ಲಿಂಕ್‌ಗಳನ್ನು ಈ ನಾಲ್ಕು ಡೈರೆಕ್ಟರಿಗಳಾಗಿ ವಿಂಗಡಿಸಲಾಗಿದೆ ಎಂದು ನಾನು ಗಮನಿಸಿದ್ದೇನೆ.
ಯಾವ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ ಯಾವ ಲಿಂಕ್‌ಗಳು ಇರಬೇಕೆಂದು ನಿರ್ಧರಿಸಲು ಕೆಲವು ಸರಳ ನಿಯಮಗಳಿವೆಯೇ ...
ಉದಾಹರಣೆಗೆ, ಕಿಲ್ ಎಂಬುದು /ಬಿನ್‌ನಲ್ಲಿದೆ ಮತ್ತು ಕಿಲ್ಲಾಲ್ /ಯುಎಸ್ಆರ್/ಬಿನ್‌ನಲ್ಲಿದೆ... ಈ ವಿಭಾಗದಲ್ಲಿ ನನಗೆ ಯಾವುದೇ ಲಾಜಿಕ್ ಕಾಣಿಸುತ್ತಿಲ್ಲ.

ಕೆನ್ ಥಾಂಪ್ಸನ್ ಮತ್ತು ಡೆನ್ನಿಸ್ ರಿಚೀ 7 ರಲ್ಲಿ PDP-1969 ನಲ್ಲಿ Unix ಅನ್ನು ರಚಿಸಿದ್ದಾರೆ ಎಂದು ನಿಮಗೆ ತಿಳಿದಿರಬಹುದು. ಆದ್ದರಿಂದ, 1971 ರ ಸುಮಾರಿಗೆ, ಅವರು ಒಂದು ಜೋಡಿ RK11 ಡಿಸ್ಕ್‌ಗಳೊಂದಿಗೆ PDP-05 ಗೆ ಅಪ್‌ಗ್ರೇಡ್ ಮಾಡಿದರು (ತಲಾ 1,5 ಮೆಗಾಬೈಟ್‌ಗಳು).

ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಬೆಳೆದಾಗ ಮತ್ತು ಮೊದಲ ಡಿಸ್ಕ್‌ನಲ್ಲಿ (ಮೂಲ ಎಫ್‌ಎಸ್ ಇದೆ) ಇನ್ನು ಮುಂದೆ ಹೊಂದಿಕೆಯಾಗದಿದ್ದಾಗ, ಅವರು ಹೋಮ್ ಡೈರೆಕ್ಟರಿಗಳು ಇರುವ ಎರಡನೆಯದಕ್ಕೆ ಭಾಗವನ್ನು ಸ್ಥಳಾಂತರಿಸಿದರು (ಆದ್ದರಿಂದ, ಮೌಂಟ್ ಪಾಯಿಂಟ್ ಅನ್ನು / ಯುಎಸ್ಆರ್ ಎಂದು ಕರೆಯಲಾಯಿತು - ಪದದಿಂದ ಬಳಕೆದಾರ). ಅವರು ಅಲ್ಲಿ ಅಗತ್ಯವಿರುವ ಎಲ್ಲಾ OS ಡೈರೆಕ್ಟರಿಗಳನ್ನು (/bin, /sbin, /lib, /tmp ...) ನಕಲು ಮಾಡಿದರು ಮತ್ತು ಫೈಲ್‌ಗಳನ್ನು ಹೊಸ ಡಿಸ್ಕ್‌ನಲ್ಲಿ ಇರಿಸಿದರು, ಏಕೆಂದರೆ ಹಳೆಯದು ಸ್ಥಳಾವಕಾಶವಿಲ್ಲ. ನಂತರ ಅವರು ಮೂರನೇ ಡಿಸ್ಕ್ ಅನ್ನು ಹೊಂದಿದ್ದರು, ಅವರು ಅದನ್ನು / ಹೋಮ್ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ ಜೋಡಿಸಿದರು ಮತ್ತು ಬಳಕೆದಾರರ ಹೋಮ್ ಡೈರೆಕ್ಟರಿಗಳನ್ನು ಅಲ್ಲಿಗೆ ಸರಿಸಿದರು, ಇದರಿಂದಾಗಿ ಓಎಸ್ ಎರಡು ಡಿಸ್ಕ್ಗಳಲ್ಲಿ ಉಳಿದಿರುವ ಎಲ್ಲಾ ಜಾಗವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ, ಮತ್ತು ಇವುಗಳು ಮೂರು ಮೆಗಾಬೈಟ್‌ಗಳಷ್ಟು (ಅದ್ಭುತ!).

ಸಹಜವಾಗಿ, ಅವರು "ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಬೂಟ್ ಮಾಡಿದಾಗ, ಅದು /usr ನಲ್ಲಿ ಎರಡನೇ ಡಿಸ್ಕ್ ಅನ್ನು ಆರೋಹಿಸಲು ಶಕ್ತವಾಗಿರಬೇಕು, ಆದ್ದರಿಂದ /usr ನಲ್ಲಿ ಎರಡನೇ ಡಿಸ್ಕ್‌ನಲ್ಲಿ ಮೌಂಟ್‌ನಂತಹ ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ಹಾಕಬೇಡಿ ಅಥವಾ ನೀವು ಹೊಂದಿರುತ್ತೀರಿ" ಎಂಬ ನಿಯಮವನ್ನು ಅವರು ಮಾಡಬೇಕಾಗಿತ್ತು. ಕೋಳಿ ಮತ್ತು ಮೊಟ್ಟೆಯ ಸಮಸ್ಯೆ." ಇದು ತುಂಬಾ ಸರಳವಾಗಿದೆ. ಮತ್ತು ಅದು 6 ವರ್ಷಗಳ ಹಿಂದೆ Unix V35 ನಲ್ಲಿತ್ತು.

/bin ಮತ್ತು /usr/bin (ಮತ್ತು ಅಂತಹ ಎಲ್ಲಾ ಡೈರೆಕ್ಟರಿಗಳು) ವಿಭಜನೆಯು ಆ ಘಟನೆಗಳ ಪರಂಪರೆಯಾಗಿದೆ, 70 ರ ದಶಕದ ಅನುಷ್ಠಾನದ ವಿವರವನ್ನು ದಶಕಗಳಿಂದ ಅಧಿಕಾರಶಾಹಿಗಳು ನಕಲಿಸಿದ್ದಾರೆ. ಅವರು ಯಾವತ್ತೂ ಪ್ರಶ್ನೆ ಕೇಳಲಿಲ್ಲ ಏಕೆಅವರು ಅದನ್ನು ಮಾಡಿದರು. ಹಲವಾರು ಕಾರಣಗಳಿಗಾಗಿ ಲಿನಕ್ಸ್ ಅನ್ನು ರಚಿಸುವ ಮೊದಲೇ ಈ ವಿಭಾಗವು ಅರ್ಥವಾಗುವುದನ್ನು ನಿಲ್ಲಿಸಿತು:

  1. ಬೂಟ್ ಮಾಡುವಾಗ, initrd ಅಥವಾ initramfs ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ, ಇದು "ನಮಗೆ ಅದಕ್ಕಿಂತ ಮೊದಲು ಈ ಫೈಲ್ ಅಗತ್ಯವಿದೆ" ನಂತಹ ಸಮಸ್ಯೆಗಳನ್ನು ನೋಡಿಕೊಳ್ಳುತ್ತದೆ. ಹೀಗಾಗಿ, ನಾವು ಹೊಂದಿದ್ದೇವೆ ಈಗಾಗಲೇ ಉಳಿದೆಲ್ಲವನ್ನೂ ಲೋಡ್ ಮಾಡಲು ಬಳಸಲಾಗುವ ತಾತ್ಕಾಲಿಕ ಫೈಲ್ ಸಿಸ್ಟಮ್.
  2. ಹಂಚಿದ ಲೈಬ್ರರಿಗಳು (ಬರ್ಕ್ಲಿಯಲ್ಲಿರುವ ಹುಡುಗರಿಂದ Unix ಗೆ ಸೇರಿಸಲ್ಪಟ್ಟವು) ನೀವು /lib ಮತ್ತು /usr/lib ನ ವಿಷಯಗಳನ್ನು ಸ್ವತಂತ್ರವಾಗಿ ಬದಲಾಯಿಸಲು ಅನುಮತಿಸುವುದಿಲ್ಲ. ಈ ಎರಡು ಭಾಗಗಳು ಹೊಂದಿಕೆಯಾಗಬೇಕು ಅಥವಾ ಅವು ಕಾರ್ಯನಿರ್ವಹಿಸುವುದಿಲ್ಲ. 1974 ರಲ್ಲಿ ಇದು ಸಂಭವಿಸಲಿಲ್ಲ ಏಕೆಂದರೆ ಅವರು ಸ್ಥಿರ ಲಿಂಕ್‌ನಿಂದ ಸ್ವಲ್ಪ ಸ್ವಾತಂತ್ರ್ಯವನ್ನು ಹೊಂದಿದ್ದರು.
  3. ಅಗ್ಗದ ಹಾರ್ಡ್ ಡ್ರೈವ್‌ಗಳು 100 ರ ಸುಮಾರಿಗೆ 1990 ಮೆಗಾಬೈಟ್ ತಡೆಗೋಡೆಯನ್ನು ಮುರಿದವು, ಮತ್ತು ಅದೇ ಸಮಯದಲ್ಲಿ, ವಿಭಜನಾ ಮರುಗಾತ್ರಗೊಳಿಸುವ ಸಾಫ್ಟ್‌ವೇರ್ ಕಾಣಿಸಿಕೊಂಡಿತು (ವಿಭಾಗದ ಮ್ಯಾಜಿಕ್ 3.0 1997 ರಲ್ಲಿ ಹೊರಬಂದಿತು).

ಸಹಜವಾಗಿ, ವಿಭಜನೆ ಇರುವುದರಿಂದ, ಕೆಲವರು ಅದನ್ನು ಸಮರ್ಥಿಸುವ ನಿಯಮಗಳನ್ನು ತಂದಿದ್ದಾರೆ. ಹಾಗೆ, ಎಲ್ಲಾ ರೀತಿಯ ಸಾಮಾನ್ಯ OS ವೈಶಿಷ್ಟ್ಯಗಳಿಗೆ ರೂಟ್ ವಿಭಾಗವು ಅಗತ್ಯವಿದೆ, ಮತ್ತು ನೀವು ನಿಮ್ಮ ಸ್ಥಳೀಯ ಫೈಲ್‌ಗಳನ್ನು / usr ನಲ್ಲಿ ಇರಿಸಬೇಕಾಗುತ್ತದೆ. ಅಥವಾ AT&T ಏನನ್ನು ವಿತರಿಸುತ್ತದೆ ಮತ್ತು /usr ನಲ್ಲಿ ನಿಮ್ಮ ವಿತರಣೆ, IBM AIX, ಅಥವಾ Dec Ultrix, ಅಥವಾ SGI Irix ಅನ್ನು ಸೇರಿಸಿ, ಮತ್ತು /usr/local ನಿಮ್ಮ ಸಿಸ್ಟಮ್‌ಗೆ ನಿರ್ದಿಷ್ಟವಾದ ಫೈಲ್‌ಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. ತದನಂತರ ಯಾರಾದರೂ ಹೊಸ ಸಾಫ್ಟ್‌ವೇರ್ ಅನ್ನು ಸ್ಥಾಪಿಸಲು /usr/local ಸರಿಯಾದ ಸ್ಥಳವಲ್ಲ ಎಂದು ನಿರ್ಧರಿಸಿದರು, ಆದ್ದರಿಂದ ನಾವು /ಆಯ್ಕೆಯನ್ನು ಸೇರಿಸೋಣ! /ಆಯ್ಕೆ/ಸ್ಥಳೀಯ ಸಹ ಕಾಣಿಸಿಕೊಂಡರೆ ನನಗೆ ಆಶ್ಚರ್ಯವಾಗುವುದಿಲ್ಲ ...

ಸಹಜವಾಗಿ, 30 ವರ್ಷಗಳ ಅವಧಿಯಲ್ಲಿ, ಈ ಪ್ರತ್ಯೇಕತೆಯ ಕಾರಣದಿಂದಾಗಿ, ಎಲ್ಲಾ ರೀತಿಯ ಆಸಕ್ತಿದಾಯಕ ವಿತರಣೆ-ನಿರ್ದಿಷ್ಟ ನಿಯಮಗಳು ಬಂದು ಹೋಗಿವೆ. ಉದಾಹರಣೆಗೆ, "/tmp ಅನ್ನು ರೀಬೂಟ್‌ನಲ್ಲಿ ತೆರವುಗೊಳಿಸಲಾಗಿದೆ, ಆದರೆ /usr/tmp ಅಲ್ಲ." (ಮತ್ತು ಉಬುಂಟುನಲ್ಲಿ ತಾತ್ವಿಕವಾಗಿ ಯಾವುದೇ /usr/tmp ಇಲ್ಲ, ಮತ್ತು Gentoo /usr/tmp ನಲ್ಲಿ /var/tmp ಗೆ ಸಾಂಕೇತಿಕ ಲಿಂಕ್ ಆಗಿದೆ, ಅದು ಈಗ ಆ ನಿಯಮಕ್ಕೆ ಒಳಪಟ್ಟಿರುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ರೀಬೂಟ್‌ನಲ್ಲಿ ತೆರವುಗೊಳಿಸಲಾಗುವುದಿಲ್ಲ. ಹೌದು, ಇದು ಹಿಂದೆಯೇ ಇದು ರೂಟ್ FS ಓದಲು ಮಾತ್ರ ಸಂಭವಿಸುತ್ತದೆ, ಮತ್ತು ನಂತರ ನೀವು /usr ಗೆ ಏನನ್ನೂ ಬರೆಯುವ ಅಗತ್ಯವಿಲ್ಲ, ಆದರೆ ನೀವು /var ಗೆ ಬರೆಯಬೇಕಾಗಿದೆ. ಮೂಲತಃ /etc ಹೊರತುಪಡಿಸಿ ಬರೆಯಲಾಗುವುದಿಲ್ಲ, ಇದನ್ನು ಕೆಲವೊಮ್ಮೆ /var ಗೆ ಸರಿಸಲು ಪ್ರಯತ್ನಿಸಲಾಗಿದೆ ...)

ಲಿನಕ್ಸ್ ಫೌಂಡೇಶನ್‌ನಂತಹ ಅಧಿಕಾರಶಾಹಿಗಳು (ವರ್ಷಗಳ ಹಿಂದೆ ಅದರ ವಿಸ್ತರಣೆಯ ಸಮಯದಲ್ಲಿ ಫ್ರೀ ಸ್ಟ್ಯಾಂಡರ್ಡ್ಸ್ ಗ್ರೂಪ್ ಅನ್ನು ನುಂಗಿಹಾಕಿತು) ಈ ನಿಯಮಗಳು ಏಕೆ ಇದ್ದವು ಎಂಬುದನ್ನು ಕಂಡುಹಿಡಿಯಲು ಪ್ರಯತ್ನಿಸದೆ ಡಾಕ್ಯುಮೆಂಟ್ ಮಾಡಲು ಮತ್ತು ಸಂಕೀರ್ಣಗೊಳಿಸಲು ಸಂತೋಷಪಡುತ್ತಾರೆ. PDP-05 ನಲ್ಲಿನ RK11 ಡಿಸ್ಕ್ ತುಂಬಾ ಚಿಕ್ಕದಾಗಿರುವ ಕಾರಣ ಕೆನ್ ಮತ್ತು ಡೆನ್ನಿಸ್ ತಮ್ಮ ಹೋಮ್ ಡೈರೆಕ್ಟರಿಗೆ OS ನ ಭಾಗವನ್ನು ಸರಿಸಿದ್ದಾರೆ ಎಂಬುದು ಅವರಿಗೆ ತಿಳಿದಿಲ್ಲ.

ಬ್ಯುಸಿಬಾಕ್ಸ್ ಐತಿಹಾಸಿಕವಾಗಿ ಫೈಲ್‌ಗಳನ್ನು ಅದೇ ರೀತಿಯಲ್ಲಿ ಇರಿಸುತ್ತದೆ ಎಂದು ನನಗೆ ಖಚಿತವಾಗಿದೆ. ಇಲ್ಲಿಯವರೆಗೆ ಹಾಗೆ ಮಾಡಲು ಯಾವುದೇ ನಿಜವಾದ ಕಾರಣವಿಲ್ಲ. ವೈಯಕ್ತಿಕವಾಗಿ, ನಾನು /usr ನಲ್ಲಿ ಒಂದೇ ರೀತಿಯ ಡೈರೆಕ್ಟರಿಗಳಿಗೆ /bin, /sbin ಮತ್ತು /lib ಲಿಂಕ್ ಮಾಡುತ್ತೇನೆ. ಎಲ್ಲಾ ನಂತರ, ಎಂಬೆಡೆಡ್ ಸಾಫ್ಟ್‌ವೇರ್‌ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವ ಜನರು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಮತ್ತು ಸರಳಗೊಳಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಾರೆ ...

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ