ಲಿನಕ್ಸ್‌ನಲ್ಲಿ ವರ್ಚುವಲ್ ಫೈಲ್ ಸಿಸ್ಟಮ್‌ಗಳು: ಅವು ಏಕೆ ಬೇಕು ಮತ್ತು ಅವು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ? ಭಾಗ 1

ಎಲ್ಲರಿಗು ನಮಸ್ಖರ! ನೀವು ಈಗಾಗಲೇ ಪ್ರೀತಿಯಲ್ಲಿ ಬಿದ್ದಿರುವ ಕೋರ್ಸ್‌ಗಳಿಗಾಗಿ ನಾವು ಹೊಸ ಸ್ಟ್ರೀಮ್‌ಗಳನ್ನು ಪ್ರಾರಂಭಿಸುವುದನ್ನು ಮುಂದುವರಿಸುತ್ತೇವೆ ಮತ್ತು ಈಗ ನಾವು ಹೊಸ ಕೋರ್ಸ್‌ಗಳನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತಿದ್ದೇವೆ ಎಂದು ಘೋಷಿಸಲು ನಾವು ಅವಸರದಲ್ಲಿದ್ದೇವೆ "ಲಿನಕ್ಸ್ ನಿರ್ವಾಹಕರು"ಇದು ಏಪ್ರಿಲ್ ಅಂತ್ಯದಲ್ಲಿ ಪ್ರಾರಂಭವಾಗಲಿದೆ. ಈ ಈವೆಂಟ್‌ಗಾಗಿ ಹೊಸ ಪ್ರಕಟಣೆಯನ್ನು ದಿನಾಂಕ ಮಾಡಲಾಗುತ್ತದೆ. ಮೂಲ ವಸ್ತುಗಳೊಂದಿಗೆ, ನೀವು ಮಾಡಬಹುದು ಇಲ್ಲಿ ಓದಿ.

ವರ್ಚುವಲ್ ಫೈಲ್ ಸಿಸ್ಟಮ್‌ಗಳು ಒಂದು ರೀತಿಯ ಮಾಂತ್ರಿಕ ಅಮೂರ್ತತೆಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ, ಅದು ಲಿನಕ್ಸ್‌ನ ತತ್ವಶಾಸ್ತ್ರವು "ಎಲ್ಲವೂ ಒಂದು ಫೈಲ್" ಎಂದು ಹೇಳಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.

ಲಿನಕ್ಸ್‌ನಲ್ಲಿ ವರ್ಚುವಲ್ ಫೈಲ್ ಸಿಸ್ಟಮ್‌ಗಳು: ಅವು ಏಕೆ ಬೇಕು ಮತ್ತು ಅವು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ? ಭಾಗ 1

ಫೈಲ್ ಸಿಸ್ಟಮ್ ಎಂದರೇನು? Linux ನ ಮೊದಲ ಕೊಡುಗೆದಾರರು ಮತ್ತು ಲೇಖಕರ ಮಾತುಗಳನ್ನು ಆಧರಿಸಿದೆ ರಾಬರ್ಟಾ ಲಾವಾ, "ಕಡತ ವ್ಯವಸ್ಥೆಯು ಒಂದು ನಿರ್ದಿಷ್ಟ ರಚನೆಯ ಪ್ರಕಾರ ಜೋಡಿಸಲಾದ ಡೇಟಾದ ಕ್ರಮಾನುಗತ ಸಂಗ್ರಹವಾಗಿದೆ." ಅದು ಇರಲಿ, ಈ ವ್ಯಾಖ್ಯಾನವು VFAT (ವರ್ಚುವಲ್ ಫೈಲ್ ಅಲೊಕೇಶನ್ ಟೇಬಲ್), Git ಮತ್ತು ಗೆ ಸಮನಾಗಿ ಸೂಕ್ತವಾಗಿರುತ್ತದೆ ಕಸ್ಸಂದ್ರ (NoSQL ಡೇಟಾಬೇಸ್) ಹಾಗಾದರೆ ಅಂತಹ ವಿಷಯವನ್ನು "ಫೈಲ್ ಸಿಸ್ಟಮ್" ಎಂದು ನಿಖರವಾಗಿ ಏನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ?

ಫೈಲ್‌ಸಿಸ್ಟಮ್ ಬೇಸಿಕ್ಸ್

ಲಿನಕ್ಸ್ ಕರ್ನಲ್ ಫೈಲ್ ಸಿಸ್ಟಮ್ ಎಂದು ಪರಿಗಣಿಸಬಹುದಾದ ಘಟಕಕ್ಕೆ ಕೆಲವು ಅವಶ್ಯಕತೆಗಳನ್ನು ಹೊಂದಿದೆ. ಇದು ವಿಧಾನಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬೇಕು open(), read() и write() ಹೆಸರುಗಳನ್ನು ಹೊಂದಿರುವ ನಿರಂತರ ವಸ್ತುಗಳಿಗೆ. ವಸ್ತು-ಆಧಾರಿತ ದೃಷ್ಟಿಕೋನದಿಂದ ಪ್ರೋಗ್ರಾಮಿಂಗ್, ಕರ್ನಲ್ ಜೆನೆರಿಕ್ ಫೈಲ್‌ಸಿಸ್ಟಮ್ ಅನ್ನು ಅಮೂರ್ತ ಇಂಟರ್ಫೇಸ್ ಎಂದು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ ಮತ್ತು ಈ ಮೂರು ದೊಡ್ಡ ಕಾರ್ಯಗಳನ್ನು "ವರ್ಚುವಲ್" ಎಂದು ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಯಾವುದೇ ಕಾಂಕ್ರೀಟ್ ವ್ಯಾಖ್ಯಾನವನ್ನು ಹೊಂದಿಲ್ಲ. ಅಂತೆಯೇ, ಡೀಫಾಲ್ಟ್ ಫೈಲ್ ಸಿಸ್ಟಮ್ ಅನುಷ್ಠಾನವನ್ನು ವರ್ಚುವಲ್ ಫೈಲ್ ಸಿಸ್ಟಮ್ (VFS) ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ.

ಲಿನಕ್ಸ್‌ನಲ್ಲಿ ವರ್ಚುವಲ್ ಫೈಲ್ ಸಿಸ್ಟಮ್‌ಗಳು: ಅವು ಏಕೆ ಬೇಕು ಮತ್ತು ಅವು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ? ಭಾಗ 1

ನಾವು ಒಂದು ಘಟಕವನ್ನು ತೆರೆಯಲು, ಓದಲು ಮತ್ತು ಬರೆಯಲು ಸಾಧ್ಯವಾದರೆ, ಆ ಘಟಕವನ್ನು ಫೈಲ್ ಎಂದು ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ, ಮೇಲಿನ ಕನ್ಸೋಲ್‌ನಲ್ಲಿನ ಉದಾಹರಣೆಯಿಂದ ನಾವು ನೋಡಬಹುದು.
VFS ವಿದ್ಯಮಾನವು "ಎಲ್ಲವೂ ಒಂದು ಫೈಲ್" ಎಂಬ ಯುನಿಕ್ಸ್-ತರಹದ ವೀಕ್ಷಣೆಯನ್ನು ಮಾತ್ರ ಒತ್ತಿಹೇಳುತ್ತದೆ. ಮೇಲಿನ ಸಣ್ಣ / dev/console ಉದಾಹರಣೆಯು ಕನ್ಸೋಲ್ ನಿಜವಾಗಿ ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ತೋರಿಸುತ್ತದೆ ಎಂದು ಯೋಚಿಸಿ. ಚಿತ್ರವು ಸಂವಾದಾತ್ಮಕ ಬ್ಯಾಷ್ ಅಧಿವೇಶನವನ್ನು ತೋರಿಸುತ್ತದೆ. ಕನ್ಸೋಲ್‌ಗೆ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಕಳುಹಿಸುವುದು (ವರ್ಚುವಲ್ ಕನ್ಸೋಲ್ ಸಾಧನ) ಅದನ್ನು ವರ್ಚುವಲ್ ಪರದೆಯಲ್ಲಿ ಪ್ರದರ್ಶಿಸುತ್ತದೆ. VFS ಇತರ, ಇನ್ನೂ ಅಪರಿಚಿತ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಹೊಂದಿದೆ. ಉದಾಹರಣೆಗೆ, ಇದು ನಿಮಗೆ ಹುಡುಕಲು ಅನುಮತಿಸುತ್ತದೆ ಅವರಿಂದ.

ಪರಿಚಿತ ವ್ಯವಸ್ಥೆಗಳಾದ ext4, NFS, ಮತ್ತು /proc C ಡೇಟಾ ರಚನೆಯಲ್ಲಿ ಮೂರು ಪ್ರಮುಖ ಕಾರ್ಯಗಳನ್ನು ಹೊಂದಿವೆ ಫೈಲ್_ಕಾರ್ಯಾಚರಣೆಗಳು. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಕೆಲವು ಕಡತ ವ್ಯವಸ್ಥೆಗಳು VFS ಕಾರ್ಯವನ್ನು ಪರಿಚಿತ ವಸ್ತು-ಆಧಾರಿತ ರೀತಿಯಲ್ಲಿ ವಿಸ್ತರಿಸುತ್ತವೆ ಮತ್ತು ಮರುವ್ಯಾಖ್ಯಾನಿಸುತ್ತವೆ. ರಾಬರ್ಟ್ ಲವ್ ಗಮನಸೆಳೆದಂತೆ, VFS ಅಮೂರ್ತತೆಯು Linux ಬಳಕೆದಾರರಿಗೆ ತಮ್ಮ ಆಂತರಿಕ ಡೇಟಾ ಸ್ವರೂಪದ ಬಗ್ಗೆ ಚಿಂತಿಸದೆ ಮೂರನೇ ವ್ಯಕ್ತಿಯ ಕಾರ್ಯಾಚರಣಾ ವ್ಯವಸ್ಥೆಗಳು ಅಥವಾ ಪೈಪ್‌ಗಳಂತಹ ಅಮೂರ್ತ ಘಟಕಗಳಿಗೆ ಅಥವಾ ಅದರಲ್ಲಿರುವ ಫೈಲ್‌ಗಳನ್ನು ಅಸಮರ್ಪಕವಾಗಿ ನಕಲಿಸಲು ಅನುಮತಿಸುತ್ತದೆ. ಬಳಕೆದಾರರ ಬದಿಯಲ್ಲಿ (ಬಳಕೆದಾರ ಸ್ಥಳ), ಸಿಸ್ಟಮ್ ಕರೆಯನ್ನು ಬಳಸಿಕೊಂಡು, ಪ್ರಕ್ರಿಯೆಯನ್ನು ವಿಧಾನವನ್ನು ಬಳಸಿಕೊಂಡು ಫೈಲ್‌ನಿಂದ ಕರ್ನಲ್ ಡೇಟಾ ರಚನೆಗಳಿಗೆ ನಕಲಿಸಬಹುದು. read() ಒಂದು ಫೈಲ್ ಸಿಸ್ಟಮ್ ಮತ್ತು ನಂತರ ವಿಧಾನವನ್ನು ಬಳಸಿ write () ಡೇಟಾ ಔಟ್‌ಪುಟ್‌ಗಾಗಿ ಮತ್ತೊಂದು ಫೈಲ್ ಸಿಸ್ಟಮ್.

ಮೂಲ VFS ಪ್ರಕಾರಗಳಿಗೆ ಸೇರಿದ ಕಾರ್ಯದ ವ್ಯಾಖ್ಯಾನಗಳು ಫೈಲ್‌ಗಳಲ್ಲಿವೆ fs/*.c ಕರ್ನಲ್ ಮೂಲ ಕೋಡ್, ಆದರೆ ಉಪ ಡೈರೆಕ್ಟರಿಗಳು fs/ ಕೆಲವು ಕಡತ ವ್ಯವಸ್ಥೆಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ. ಕೋರ್ ಅಂತಹ ಘಟಕಗಳನ್ನು ಸಹ ಒಳಗೊಂಡಿದೆ cgroups, /dev и tmpfs, ಇದು ಬೂಟ್ ಪ್ರಕ್ರಿಯೆಯ ಸಮಯದಲ್ಲಿ ಅಗತ್ಯವಿರುತ್ತದೆ ಮತ್ತು ಆದ್ದರಿಂದ ಕರ್ನಲ್ ಉಪ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ init/. ಅದನ್ನು ಗಮನಿಸು cgroups, /dev и tmpfs "ದೊಡ್ಡ ಮೂರು" ಕಾರ್ಯಗಳನ್ನು ಕರೆಯಬೇಡಿ file_operations, ಆದರೆ ನೇರವಾಗಿ ಓದಲು ಮತ್ತು ನೆನಪಿಗಾಗಿ ಬರೆಯಿರಿ.
ಕೆಳಗಿನ ರೇಖಾಚಿತ್ರವು ಲಿನಕ್ಸ್ ಸಿಸ್ಟಮ್‌ಗಳಲ್ಲಿ ಸಾಮಾನ್ಯವಾಗಿ ಅಳವಡಿಸಲಾಗಿರುವ ವಿವಿಧ ರೀತಿಯ ಫೈಲ್‌ಸಿಸ್ಟಮ್‌ಗಳನ್ನು ಬಳಕೆದಾರರ ಸ್ಥಳವು ಹೇಗೆ ಪ್ರವೇಶಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ತೋರಿಸುತ್ತದೆ. ರಚನೆಗಳನ್ನು ತೋರಿಸಲಾಗಿಲ್ಲ pipes, dmesg и POSIX clocks, ಇದು ರಚನೆಯನ್ನು ಸಹ ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ file_operations, VFS ಲೇಯರ್ ಮೂಲಕ ಪ್ರವೇಶಿಸಬಹುದು.

ಲಿನಕ್ಸ್‌ನಲ್ಲಿ ವರ್ಚುವಲ್ ಫೈಲ್ ಸಿಸ್ಟಮ್‌ಗಳು: ಅವು ಏಕೆ ಬೇಕು ಮತ್ತು ಅವು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ? ಭಾಗ 1

VFS ಎನ್ನುವುದು ಸಿಸ್ಟಂ ಕರೆಗಳು ಮತ್ತು ಕೆಲವು ಅನುಷ್ಠಾನಗಳ ನಡುವಿನ "ವ್ರ್ಯಾಪರ್ ಲೇಯರ್" ಆಗಿದೆ file_operations, ಉದಾಹರಣೆಗೆ ext4 и procfs. ಕಾರ್ಯಗಳು file_operations ಸಾಧನ ಡ್ರೈವರ್‌ಗಳು ಅಥವಾ ಮೆಮೊರಿ ಪ್ರವೇಶ ಸಾಧನಗಳೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸಬಹುದು. tmpfs, devtmpfs и cgroups ಬಳಸಬೇಡಿ file_operations, ಆದರೆ ನೇರವಾಗಿ ಮೆಮೊರಿಯನ್ನು ಪ್ರವೇಶಿಸಿ.
VFS ನ ಅಸ್ತಿತ್ವವು ಕೋಡ್ ಅನ್ನು ಮರುಬಳಕೆ ಮಾಡಲು ಅವಕಾಶವನ್ನು ಒದಗಿಸುತ್ತದೆ, ಏಕೆಂದರೆ ಫೈಲ್ ಸಿಸ್ಟಮ್‌ಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ ಮೂಲ ವಿಧಾನಗಳನ್ನು ಪ್ರತಿಯೊಂದು ರೀತಿಯ ಫೈಲ್ ಸಿಸ್ಟಮ್‌ನಿಂದ ಮರು-ಅನುಷ್ಠಾನಗೊಳಿಸಬೇಕಾಗಿಲ್ಲ. ಸಾಫ್ಟ್‌ವೇರ್ ಎಂಜಿನಿಯರ್‌ಗಳಲ್ಲಿ ಕೋಡ್ ಮರುಬಳಕೆ ಸಾಮಾನ್ಯ ಅಭ್ಯಾಸವಾಗಿದೆ! ಆದಾಗ್ಯೂ, ಮರುಬಳಕೆ ಮಾಡಬಹುದಾದ ಕೋಡ್ ಹೊಂದಿದ್ದರೆ ಗಂಭೀರ ತಪ್ಪುಗಳು, ಸಾಮಾನ್ಯ ವಿಧಾನಗಳನ್ನು ಆನುವಂಶಿಕವಾಗಿ ಪಡೆಯುವ ಎಲ್ಲಾ ಅನುಷ್ಠಾನಗಳು ಅವುಗಳಿಂದ ಬಳಲುತ್ತವೆ.

/ tmp: ಸರಳ ಸುಳಿವು

ಸಿಸ್ಟಂನಲ್ಲಿ VFS ಇರುವುದನ್ನು ಪತ್ತೆಹಚ್ಚಲು ಸುಲಭವಾದ ಮಾರ್ಗವೆಂದರೆ ಟೈಪ್ ಮಾಡುವುದು mount | grep -v sd | grep -v :/, ಇದು ಎಲ್ಲಾ ಮೌಂಟೆಡ್ ಅನ್ನು ತೋರಿಸುತ್ತದೆ (mounted) ಡಿಸ್ಕ್-ನಿವಾಸಿ ಮತ್ತು NFS ಅಲ್ಲದ ಫೈಲ್‌ಸಿಸ್ಟಮ್‌ಗಳು, ಇದು ಹೆಚ್ಚಿನ ಕಂಪ್ಯೂಟರ್‌ಗಳಲ್ಲಿ ನಿಜವಾಗಿದೆ. ಪಟ್ಟಿ ಮಾಡಲಾದ ಆರೋಹಣಗಳಲ್ಲಿ ಒಂದು (mounts) VFS ನಿಸ್ಸಂದೇಹವಾಗಿ ಮಾಡುತ್ತದೆ /tmp, ಸರಿ?

ಲಿನಕ್ಸ್‌ನಲ್ಲಿ ವರ್ಚುವಲ್ ಫೈಲ್ ಸಿಸ್ಟಮ್‌ಗಳು: ಅವು ಏಕೆ ಬೇಕು ಮತ್ತು ಅವು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ? ಭಾಗ 1

ಆ ಶೇಖರಣೆ ಎಲ್ಲರಿಗೂ ತಿಳಿದಿದೆ / tmp ಭೌತಿಕ ಮಾಧ್ಯಮದಲ್ಲಿ - ಹುಚ್ಚು! ಮೂಲ.

ಏಕೆ ಸಂಗ್ರಹಿಸಲು ಅನಪೇಕ್ಷಿತವಾಗಿದೆ /tmp ಭೌತಿಕ ಮಾಧ್ಯಮದಲ್ಲಿ? ಏಕೆಂದರೆ ಫೈಲ್‌ಗಳು /tmp ತಾತ್ಕಾಲಿಕ ಮತ್ತು ಶೇಖರಣಾ ಸಾಧನಗಳು tmpfs ರಚಿಸಲಾದ ಮೆಮೊರಿಗಿಂತ ನಿಧಾನವಾಗಿರುತ್ತವೆ. ಇದಲ್ಲದೆ, ಭೌತಿಕ ಮಾಧ್ಯಮವು ಮೆಮೊರಿಗಿಂತ ತಿದ್ದಿ ಬರೆಯುವಾಗ ಧರಿಸಲು ಹೆಚ್ಚು ಒಳಗಾಗುತ್ತದೆ. ಅಂತಿಮವಾಗಿ, /tmp ನಲ್ಲಿನ ಫೈಲ್‌ಗಳು ಸೂಕ್ಷ್ಮ ಮಾಹಿತಿಯನ್ನು ಹೊಂದಿರಬಹುದು, ಆದ್ದರಿಂದ ಪ್ರತಿ ರೀಬೂಟ್‌ನಲ್ಲಿ ಅವುಗಳನ್ನು ಕಣ್ಮರೆಯಾಗುವಂತೆ ಮಾಡುವುದು ಅತ್ಯಗತ್ಯ ವೈಶಿಷ್ಟ್ಯವಾಗಿದೆ.

ದುರದೃಷ್ಟವಶಾತ್, ಕೆಲವು Linux ವಿತರಣೆ ಅನುಸ್ಥಾಪನಾ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಶೇಖರಣಾ ಸಾಧನದಲ್ಲಿ /tmp ಅನ್ನು ರಚಿಸುತ್ತವೆ. ನಿಮ್ಮ ವ್ಯವಸ್ಥೆಗೂ ಇದು ಸಂಭವಿಸಿದರೆ ಹತಾಶರಾಗಬೇಡಿ. ಇದರೊಂದಿಗೆ ಕೆಲವು ಸರಳ ಸೂಚನೆಗಳನ್ನು ಅನುಸರಿಸಿ ಆರ್ಚ್ ವಿಕಿಇದನ್ನು ಸರಿಪಡಿಸಲು ಮತ್ತು ಮೆಮೊರಿಯನ್ನು ನಿಯೋಜಿಸಲಾಗಿದೆ ಎಂದು ತಿಳಿದಿರಲಿ tmpfs ಇತರ ಉದ್ದೇಶಗಳಿಗೆ ಅಲಭ್ಯವಾಗುತ್ತದೆ. ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಹೇಳುವುದಾದರೆ, ದೈತ್ಯ tmpfs ಮತ್ತು ಅದರ ಮೇಲೆ ದೊಡ್ಡ ಫೈಲ್‌ಗಳನ್ನು ಹೊಂದಿರುವ ಸಿಸ್ಟಮ್ ಮೆಮೊರಿ ಮತ್ತು ಕ್ರ್ಯಾಶ್‌ನಿಂದ ಹೊರಗುಳಿಯಬಹುದು. ಮತ್ತೊಂದು ಸುಳಿವು: ಫೈಲ್ ಅನ್ನು ಸಂಪಾದಿಸುವಾಗ /etc/fstab, ಇದು ಹೊಸ ಲೈನ್‌ನೊಂದಿಗೆ ಕೊನೆಗೊಳ್ಳಬೇಕು ಎಂದು ನೆನಪಿಡಿ, ಇಲ್ಲದಿದ್ದರೆ ನಿಮ್ಮ ಸಿಸ್ಟಮ್ ಬೂಟ್ ಆಗುವುದಿಲ್ಲ.

/proc ಮತ್ತು /sys

ಇದಲ್ಲದೆ /tmp, ಲಿನಕ್ಸ್ ಬಳಕೆದಾರರಿಗೆ ಹೆಚ್ಚು ಪರಿಚಿತವಾಗಿರುವ VFS (ವರ್ಚುವಲ್ ಫೈಲ್ ಸಿಸ್ಟಮ್‌ಗಳು). /proc и /sys. (/dev ಹಂಚಿಕೆಯ ಸ್ಮರಣೆಯಲ್ಲಿ ನೆಲೆಸಿದೆ ಮತ್ತು ಹೊಂದಿಲ್ಲ file_operations) ಈ ಎರಡು ಘಟಕಗಳು ಏಕೆ? ಈ ಸಮಸ್ಯೆಯನ್ನು ನೋಡೋಣ.

procfs ಕರ್ನಲ್ ಮತ್ತು ಅದು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುವ ಪ್ರಕ್ರಿಯೆಗಳ ಸ್ನ್ಯಾಪ್‌ಶಾಟ್ ಅನ್ನು ರಚಿಸುತ್ತದೆ userspace. ದಿ /proc ಕರ್ನಲ್ ತನ್ನಲ್ಲಿರುವ ಅಡಚಣೆಗಳು, ವರ್ಚುವಲ್ ಮೆಮೊರಿ ಮತ್ತು ಶೆಡ್ಯೂಲರ್‌ನಂತಹ ಮಾಹಿತಿಯನ್ನು ಮುದ್ರಿಸುತ್ತದೆ. ಜೊತೆಗೆ, /proc/sys ಆಜ್ಞೆಯೊಂದಿಗೆ ನಿಯತಾಂಕಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿದ ಸ್ಥಳವಾಗಿದೆ sysctl, ಲಭ್ಯವಿರುವ userspace. ವೈಯಕ್ತಿಕ ಪ್ರಕ್ರಿಯೆಗಳ ಸ್ಥಿತಿ ಮತ್ತು ಅಂಕಿಅಂಶಗಳನ್ನು ಡೈರೆಕ್ಟರಿಗಳಲ್ಲಿ ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತದೆ /proc/.

ಲಿನಕ್ಸ್‌ನಲ್ಲಿ ವರ್ಚುವಲ್ ಫೈಲ್ ಸಿಸ್ಟಮ್‌ಗಳು: ಅವು ಏಕೆ ಬೇಕು ಮತ್ತು ಅವು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ? ಭಾಗ 1

ಇದು /proc/meminfo ಮೌಲ್ಯಯುತವಾದ ಮಾಹಿತಿಯನ್ನು ಒಳಗೊಂಡಿರುವ ಖಾಲಿ ಫೈಲ್ ಆಗಿದೆ.

ವರ್ತನೆ /proc ಫೈಲ್‌ಗಳು VFS ಡಿಸ್ಕ್ ಫೈಲ್ ಸಿಸ್ಟಮ್‌ಗಳು ಹೇಗೆ ವಿಭಿನ್ನವಾಗಿರಬಹುದು ಎಂಬುದನ್ನು ತೋರಿಸುತ್ತದೆ. ಒಂದು ಕಡೆ, /proc/meminfo ಆಜ್ಞೆಯೊಂದಿಗೆ ವೀಕ್ಷಿಸಬಹುದಾದ ಮಾಹಿತಿಯನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ free. ಮತ್ತೊಂದೆಡೆ ಖಾಲಿ! ಇದು ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ? ಎಂಬ ಪ್ರಸಿದ್ಧ ಲೇಖನವನ್ನು ಸನ್ನಿವೇಶವು ನೆನಪಿಸುತ್ತದೆ ಯಾರೂ ನೋಡದಿದ್ದಾಗ ಚಂದ್ರ ಇದ್ದಾನೆಯೇ? ರಿಯಾಲಿಟಿ ಮತ್ತು ಕ್ವಾಂಟಮ್ ಸಿದ್ಧಾಂತ"1985 ರಲ್ಲಿ ಕಾರ್ನೆಲ್ ವಿಶ್ವವಿದ್ಯಾಲಯದ ಭೌತಶಾಸ್ತ್ರದ ಪ್ರಾಧ್ಯಾಪಕ ಡೇವಿಡ್ ಮೆರ್ಮಿನ್ ಬರೆದಿದ್ದಾರೆ. ವಿನಂತಿಯನ್ನು ಮಾಡಿದಾಗ ಕರ್ನಲ್ ಮೆಮೊರಿ ಅಂಕಿಅಂಶಗಳನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ ಎಂಬುದು ಸತ್ಯ /proc, ಮತ್ತು ವಾಸ್ತವವಾಗಿ ಫೈಲ್‌ಗಳಲ್ಲಿ /proc ಯಾರೂ ನೋಡದಿದ್ದಾಗ ಏನೂ ಇರುವುದಿಲ್ಲ. ಹೇಳಿದಂತೆ ಮೆರ್ಮಿನ್, "ಮೂಲಭೂತ ಕ್ವಾಂಟಮ್ ಸಿದ್ಧಾಂತವು ಮಾಪನವು ಸಾಮಾನ್ಯವಾಗಿ ಮಾಪನ ಮಾಡಲಾಗುತ್ತಿರುವ ಆಸ್ತಿಯ ಪೂರ್ವ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಮೌಲ್ಯವನ್ನು ಬಹಿರಂಗಪಡಿಸುವುದಿಲ್ಲ ಎಂದು ಹೇಳುತ್ತದೆ." (ಮತ್ತು ಚಂದ್ರನ ಪ್ರಶ್ನೆಯನ್ನು ಹೋಮ್ವರ್ಕ್ ಎಂದು ಪರಿಗಣಿಸಿ!)
ತೋರುವ ಶೂನ್ಯತೆ procfs ಅರ್ಥಪೂರ್ಣವಾಗಿದೆ ಏಕೆಂದರೆ ಅಲ್ಲಿನ ಮಾಹಿತಿಯು ಕ್ರಿಯಾತ್ಮಕವಾಗಿದೆ. ಜೊತೆಗೆ ಸ್ವಲ್ಪ ವಿಭಿನ್ನ ಪರಿಸ್ಥಿತಿ sysfs. ಕನಿಷ್ಠ ಒಂದು ಬೈಟ್ ಗಾತ್ರದಲ್ಲಿ ಎಷ್ಟು ಫೈಲ್‌ಗಳಿವೆ ಎಂದು ಹೋಲಿಕೆ ಮಾಡೋಣ /proc ಮತ್ತು ಸೈನ್ ಇನ್ /sys.

ಲಿನಕ್ಸ್‌ನಲ್ಲಿ ವರ್ಚುವಲ್ ಫೈಲ್ ಸಿಸ್ಟಮ್‌ಗಳು: ಅವು ಏಕೆ ಬೇಕು ಮತ್ತು ಅವು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ? ಭಾಗ 1

Procfs ಒಂದು ಫೈಲ್ ಅನ್ನು ಹೊಂದಿದೆ, ಅವುಗಳೆಂದರೆ ರಫ್ತು ಮಾಡಲಾದ ಕರ್ನಲ್ ಕಾನ್ಫಿಗರೇಶನ್, ಇದು ಒಂದು ಅಪವಾದವಾಗಿದೆ ಏಕೆಂದರೆ ಇದನ್ನು ಪ್ರತಿ ಬೂಟ್‌ಗೆ ಒಮ್ಮೆ ಮಾತ್ರ ರಚಿಸಬೇಕಾಗುತ್ತದೆ. ಮತ್ತೊಂದೆಡೆ, ಇನ್ /sys ಅನೇಕ ದೊಡ್ಡ ಫೈಲ್‌ಗಳಿವೆ, ಅವುಗಳಲ್ಲಿ ಹಲವು ಮೆಮೊರಿಯ ಸಂಪೂರ್ಣ ಪುಟವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತವೆ. ಸಾಮಾನ್ಯವಾಗಿ ಫೈಲ್ಗಳು sysfs ಫೈಲ್‌ಗಳನ್ನು ಓದುವುದರಿಂದ ಪಡೆದ ಮಾಹಿತಿಯ ಕೋಷ್ಟಕಗಳಿಗಿಂತ ಭಿನ್ನವಾಗಿ, ನಿಖರವಾಗಿ ಒಂದು ಸಂಖ್ಯೆ ಅಥವಾ ಸಾಲನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ /proc/meminfo.

ಗುರಿ sysfs - ಕರ್ನಲ್ ಕರೆಯುವ ಓದು/ಬರೆಯುವ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಒದಗಿಸಿ «kobjects» ಬಳಕೆದಾರರ ಜಾಗದಲ್ಲಿ. ಒಂದೇ ಗುರಿ kobjects ಲಿಂಕ್ ಎಣಿಕೆಯಾಗಿದೆ: ಕೊಬ್ಜೆಕ್ಟ್‌ಗೆ ಕೊನೆಯ ಲಿಂಕ್ ಅನ್ನು ತೆಗೆದುಹಾಕಿದಾಗ, ಸಿಸ್ಟಮ್ ಅದಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಮರುಸ್ಥಾಪಿಸುತ್ತದೆ. ಅದೇನೇ ಇದ್ದರೂ, /sys ಹೆಚ್ಚಿನ ಪ್ರಸಿದ್ಧಿಯನ್ನು ಮಾಡುತ್ತದೆ "ಬಳಕೆದಾರರಿಗೆ ಸ್ಥಿರ ABI" ಕೋರ್, ಯಾವುದೇ ಸಂದರ್ಭಗಳಲ್ಲಿ ಯಾರೂ ಎಂದಿಗೂ ಸಾಧ್ಯವಿಲ್ಲ "ಮುರಿಯಲು". sysfs ನಲ್ಲಿನ ಫೈಲ್‌ಗಳು ಸ್ಥಿರವಾಗಿರುತ್ತವೆ ಎಂದು ಇದರ ಅರ್ಥವಲ್ಲ, ಇದು ಅಸ್ಥಿರ ವಸ್ತುಗಳ ಉಲ್ಲೇಖ ಎಣಿಕೆಗೆ ಅಸಮಂಜಸವಾಗಿದೆ.
ಕರ್ನಲ್‌ನ ಸ್ಥಿರವಾದ ABI ಯಾವುದರಲ್ಲಿ ಕಾಣಿಸಿಕೊಳ್ಳಬಹುದು ಎಂಬುದನ್ನು ಮಿತಿಗೊಳಿಸುತ್ತದೆ /sys, ಆ ನಿರ್ದಿಷ್ಟ ಕ್ಷಣದಲ್ಲಿ ನಿಜವಾಗಿ ಇರುವುದಲ್ಲ. sysfs ನಲ್ಲಿ ಫೈಲ್ ಅನುಮತಿಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡುವುದರಿಂದ ಸಾಧನಗಳು, ಮಾಡ್ಯೂಲ್‌ಗಳು, ಫೈಲ್‌ಸಿಸ್ಟಮ್‌ಗಳು ಇತ್ಯಾದಿಗಳಿಗಾಗಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಹೇಗೆ ಕಾನ್ಫಿಗರ್ ಮಾಡಬಹುದು ಎಂಬುದರ ಕುರಿತು ಒಳನೋಟವನ್ನು ಒದಗಿಸುತ್ತದೆ. ಕಾನ್ಫಿಗರ್ ಮಾಡಬಹುದು ಅಥವಾ ಓದಬಹುದು. ತಾರ್ಕಿಕ ತೀರ್ಮಾನವೆಂದರೆ procfs ಸಹ ಕರ್ನಲ್‌ನ ಸ್ಥಿರ ABI ಯ ಭಾಗವಾಗಿದೆ, ಆದಾಗ್ಯೂ ಇದನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಹೇಳಲಾಗಿಲ್ಲ ದಸ್ತಾವೇಜನ್ನು.

ಲಿನಕ್ಸ್‌ನಲ್ಲಿ ವರ್ಚುವಲ್ ಫೈಲ್ ಸಿಸ್ಟಮ್‌ಗಳು: ಅವು ಏಕೆ ಬೇಕು ಮತ್ತು ಅವು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ? ಭಾಗ 1

ಫೈಲ್‌ಗಳು sysfs ಪ್ರತಿ ಘಟಕಕ್ಕೆ ಒಂದು ನಿರ್ದಿಷ್ಟ ಆಸ್ತಿಯನ್ನು ವಿವರಿಸಿ ಮತ್ತು ಓದಬಲ್ಲ, ಬರೆಯಬಹುದಾದ, ಅಥವಾ ಎರಡೂ ಆಗಿರಬಹುದು. ಫೈಲ್ನಲ್ಲಿ "0" ಎಂದರೆ SSD ಅನ್ನು ತೆಗೆದುಹಾಕಲಾಗುವುದಿಲ್ಲ.

eBPF ಮತ್ತು bcc ಪರಿಕರಗಳನ್ನು ಬಳಸಿಕೊಂಡು VFS ಅನ್ನು ಹೇಗೆ ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುವುದು ಎಂಬುದರ ಕುರಿತು ಅನುವಾದದ ಎರಡನೇ ಭಾಗವನ್ನು ಪ್ರಾರಂಭಿಸೋಣ ಮತ್ತು ಈಗ ನಾವು ನಿಮ್ಮ ಕಾಮೆಂಟ್‌ಗಳಿಗಾಗಿ ಕಾಯುತ್ತಿದ್ದೇವೆ ಮತ್ತು ಸಾಂಪ್ರದಾಯಿಕವಾಗಿ ನಿಮ್ಮನ್ನು ಆಹ್ವಾನಿಸುತ್ತೇವೆ ತೆರೆದ ವೆಬ್ನಾರ್, ಇದು ನಮ್ಮ ಶಿಕ್ಷಕರಿಂದ ಏಪ್ರಿಲ್ 9 ರಂದು ನಡೆಯಲಿದೆ - ವ್ಲಾಡಿಮಿರ್ ಡ್ರೊಜ್ಡೆಟ್ಸ್ಕಿ.

ಮೂಲ: www.habr.com

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