Binary File Descriptor library
ಬೈನರಿ ಫೈಲ್ ಡಿಸ್ಕ್ರಿಪ್ಟರ್ ಲೈಬ್ರರಿಯು (ಬಿ. ಎಫ್. ಡಿ.) ವಿವಿಧ ಸ್ವರೂಪಗಳಲ್ಲಿ ಆಬ್ಜೆಕ್ಟ್ ಫೈಲ್ಗಳ ಪೋರ್ಟಬಲ್ ಕುಶಲತೆಗಾಗಿ ಜಿ. ಎನ್. ಯು ಪ್ರಾಜೆಕ್ಟ್ನ ಮುಖ್ಯ ಕಾರ್ಯವಿಧಾನವಾಗಿದೆ. ಇದು ಸುಮಾರು 25 ಇನ್ಸ್ಟ್ರಕ್ಷನ್ ಸೆಟ್ ಆರ್ಕಿಟೆಕ್ಚರ್ಗಳಿಗೆ ಸುಮಾರು 50 ಫೈಲ್ ಫಾರ್ಮ್ಯಾಟ್ಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ. ಸಿಗ್ನಸ್ ಸಪೋರ್ಟ್ನ ಡೇವಿಡ್ ಹೆನ್ಕೆಲ್-ವ್ಯಾಲೇಸ್ ಅವರು ಕಂಪನಿಗೆ ಹೊಸ ವ್ಯಾಪಾರ ಅವಕಾಶಗಳನ್ನು ತೆರೆಯುವ ಮಾರ್ಗವಾಗಿ ಗ್ರಂಥಾಲಯವನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ಪ್ರಸ್ತಾಪಿಸಿದಾಗ, ಅದು ಕಷ್ಟ ಎಂದು ರಿಚರ್ಡ್ ಸ್ಟಾಲ್ಮನ್ ಹೇಳಿದರು; ಇದು ಅಂತಹ "ಬಿಗ್ ಫಕಿಂಗ್ ಡೀಲ್" ಅಲ್ಲ ಎಂಬುದು ಡೇವಿಡ್ ಅವರ ಪ್ರತಿಕ್ರಿಯೆಯಾಗಿತ್ತು. "ಬಿ. ಎಫ್. ಡಿ". ಎಂದು ಸಂಕ್ಷಿಪ್ತಗೊಳಿಸಲಾದ ಇದು ಗ್ರಂಥಾಲಯದ ಹೆಸರಾಯಿತು. "ಬೈನರಿ ಫೈಲ್ ಡಿಸ್ಕ್ರಿಪ್ಟರ್" ಅನ್ನು ನಂತರ "ಬಿ. ಎಫ್. ಡಿ". ಗೆ ಬ್ಯಾಕ್ರೋನಿಂ ಆಗಿ ಕಂಡುಹಿಡಿಯಲಾಯಿತು. ವಿನ್ಯಾಸ ಬಿ. ಎಫ್. ಡಿ. ಯು ಆಬ್ಜೆಕ್ಟ್ ಫೈಲ್ಗಳ ಸಾಮಾನ್ಯ ಅಮೂರ್ತ ನೋಟವನ್ನು ಪ್ರಸ್ತುತಪಡಿಸುವ ಮೂಲಕ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಒಂದು ಆಬ್ಜೆಕ್ಟ್ ಕಡತವು ವಿವರಣಾತ್ಮಕ ಮಾಹಿತಿಯೊಂದಿಗೆ "ಹೆಡರ್" ಅನ್ನು ಹೊಂದಿರುತ್ತದೆ; ಪ್ರತಿಯೊಂದೂ ಹೆಸರು, ಕೆಲವು ಗುಣಲಕ್ಷಣಗಳು ಮತ್ತು ದತ್ತಾಂಶದ ಬ್ಲಾಕ್ ಅನ್ನು ಹೊಂದಿರುವ "ವಿಭಾಗಗಳ" ವೇರಿಯೇಬಲ್ ಸಂಖ್ಯೆ; ಸಂಕೇತ ಕೋಷ್ಟಕ; ಸ್ಥಳಾಂತರ ನಮೂದುಗಳು; ಇತ್ಯಾದಿ. ಆಂತರಿಕವಾಗಿ, ಬಿ. ಎಫ್. ಡಿ ಡೇಟಾವನ್ನು ಅಮೂರ್ತ ನೋಟದಿಂದ ಗುರಿ ಪ್ರೊಸೆಸರ್ ಮತ್ತು ಫೈಲ್ ಸ್ವರೂಪಕ್ಕೆ ಅಗತ್ಯವಿರುವ ಬಿಟ್/ಬೈಟ್ ವಿನ್ಯಾಸದ ವಿವರಗಳಿಗೆ ಅನುವಾದಿಸುತ್ತದೆ. ಇದರ ಪ್ರಮುಖ ಸೇವೆಗಳಲ್ಲಿ ಲಿಟ್ಲ್-ಎಂಡಿಯನ್ ಹೋಸ್ಟ್ ಮತ್ತು ಬಿಗ್-ಎಂಡಿಯನ್ ಗುರಿಯ ನಡುವಿನ ಬೈಟ್ ಆರ್ಡರ್ ವ್ಯತ್ಯಾಸಗಳನ್ನು ನಿರ್ವಹಿಸುವುದು, 32-ಬಿಟ್ ಮತ್ತು 64-ಬಿಟ್ ಡೇಟಾದ ನಡುವಿನ ಸರಿಯಾದ ಪರಿವರ್ತನೆ ಮತ್ತು ಸ್ಥಳಾಂತರ ನಮೂದುಗಳಿಂದ ನಿರ್ದಿಷ್ಟಪಡಿಸಲಾದ ವಿಳಾಸ ಅಂಕಗಣಿತದ ವಿವರಗಳು ಸೇರಿವೆ. ಬಿ. ಎಫ್. ಡಿ. ಗ್ರಂಥಾಲಯವನ್ನು ತಾರ್ಕಿಕವಾಗಿ ಎರಡು ಭಾಗಗಳಾಗಿ ವಿಂಗಡಿಸಬಹುದು. ಮುಂಭಾಗ ಮತ್ತು ಹಿಂಭಾಗ. ಮುಂಭಾಗದ ತುದಿಯು ಆಧಾರವಾಗಿರುವ ಆಬ್ಜೆಕ್ಟ್ ಫೈಲ್ ವೀಕ್ಷಣೆಯಿಂದ ಸ್ವತಂತ್ರವಾದ ಸಾಮಾನ್ಯ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ನೀಡುತ್ತದೆ. ಬಳಕೆದಾರರು ಈ ಇಂಟರ್ಫೇಸ್ನೊಂದಿಗೆ ಆಬ್ಜೆಕ್ಟ್ ಫೈಲ್ಗಳೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸುತ್ತಾರೆ. ಆಬ್ಜೆಕ್ಟ್ ಕಡತಗಳ ವಿನ್ಯಾಸವು ಬಳಕೆದಾರರಿಗೆ ತಿಳಿದಿಲ್ಲದಿದ್ದರೂ ಸಹ, ಬಳಕೆದಾರರು ಇನ್ನೂ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಬಳಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ. ವಿವರಗಳ ಈ ಮರೆಮಾಚುವಿಕೆಯನ್ನು ಹಿಂಭಾಗದ ತುದಿಯ ಸಹಾಯದಿಂದ ಮಾಡಲಾಗುತ್ತದೆ. ಫ್ರಂಟ್-ಎಂಡ್ ಇಂಟರ್ಫೇಸ್ ಆಬ್ಜೆಕ್ಟ್ ಫೈಲ್ಗಳ ವಿನ್ಯಾಸದೊಂದಿಗೆ ಹೇಗೆ ಸಂವಹನ ನಡೆಸುತ್ತದೆ ಎಂಬುದನ್ನು ಬ್ಯಾಕ್-ಎಂಡ್ ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ. ಹೊಸ ಆಬ್ಜೆಕ್ಟ್ ಫೈಲ್ ಪ್ರಕಾರವನ್ನು ಪರಿಚಯಿಸಿದಾಗಲೆಲ್ಲಾ ಬ್ಯಾಕ್-ಎಂಡ್ ಪ್ರಕಾರವನ್ನು ನೋಂದಾಯಿಸಬೇಕಾಗುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಬಿ. ಎಫ್. ಡಿ ಅಪ್ಲಿಕೇಶನ್ನಿಂದ ಬೆಂಬಲಿಸಬೇಕಾದರೆ ಅದನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬೇಕಾಗುತ್ತದೆ. ಬಿ. ಎಫ್. ಡಿ. ಯನ್ನು ಮೂಲತಃ ವಿವಿಧ ಸಾಧನಗಳಿಂದ ಬಳಸಬಹುದಾದ ಸಾಮಾನ್ಯ ಗ್ರಂಥಾಲಯವಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದ್ದರೂ, ಹೊಸ ವ್ಯವಸ್ಥೆಗಳ ಸಾಮರ್ಥ್ಯಗಳಿಗೆ ಅನುಗುಣವಾಗಿ ಎ. ಪಿ. ಐ. ಯೊಂದಿಗೆ ಟಿಂಕರ್ ಮಾಡುವ ಆಗಾಗ್ಗೆ ಅಗತ್ಯತೆಯು ಅದರ ಬಳಕೆಯನ್ನು ಸೀಮಿತಗೊಳಿಸುತ್ತದೆ; ಬಿ. ಎಫ್. ಡಿ. ಯ ಮುಖ್ಯ ಗ್ರಾಹಕರೆಂದರೆ ಜಿ. ಎನ್. ಯು. ಅಸೆಂಬ್ಲರ್ (ಜಿ. ಎ. ಎಸ್), ಜಿ. ಎನ್. ಯು. ಲಿಂಕರ್ (ಜಿ. ಎಲ್. ಡಿ), ಮತ್ತು ಇತರ ಜಿ. ಎನ್. ಯು. ಬೈನರಿ ಯುಟಿಲಿಟಿಗಳು ("ಬಿನುಟಿಲ್ಸ್") ಉಪಕರಣಗಳು, ಮತ್ತು ಜಿ. ಎನ್. ಯು. ಡೀಬಗ್ಗರ್ (ಜಿ. ಡಿ. ಬಿ). ಇದರ ಪರಿಣಾಮವಾಗಿ, ಬಿ. ಎಫ್. ಡಿ. ಯನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ವಿತರಿಸಲಾಗುವುದಿಲ್ಲ, ಆದರೆ ಯಾವಾಗಲೂ ಬಿನುಟಿಲ್ಗಳು ಮತ್ತು ಜಿ. ಡಿ. ಬಿ. ಗಳ ಬಿಡುಗಡೆಯೊಂದಿಗೆ ಸೇರಿಸಲಾಗುತ್ತದೆ. ಅದೇನೇ ಇದ್ದರೂ, ಅಂತರ್ನಿರ್ಮಿತ ವ್ಯವಸ್ಥೆಗಳ ಅಭಿವೃದ್ಧಿಗೆ ಗ್ನೂ ಉಪಕರಣಗಳ ಬಳಕೆಯಲ್ಲಿ ಬಿ. ಎಫ್. ಡಿ ಒಂದು ನಿರ್ಣಾಯಕ ಅಂಶವಾಗಿದೆ. ಬಿ. ಎಫ್. ಡಿ. ಗ್ರಂಥಾಲಯವನ್ನು ಕೋರ್ ಡಂಪ್ನಿಂದ ರಚನಾತ್ಮಕ ದತ್ತಾಂಶವನ್ನು ಓದಲು ಬಳಸಬಹುದು. ಬಿ. ಎಫ್. ಡಿ. ಗ್ರಂಥಾಲಯದ ಬಳಕೆ ಉದಾಃ ಬಿ. ಎಫ್. ಡಿ. ಗ್ರಂಥಾಲಯದ ಎ. ಪಿ. ಐ. ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಆಬ್ಜೆಕ್ಟ್ ಕಡತದ ಗಾತ್ರವನ್ನು ಮುದ್ರಿಸಿ. #include "bfd.h" #include <stdio.h> ಪೂರ್ಣಾಂಕ ಮುಖ್ಯ () {bfd * abfd = bfd _ openr ("a. o", nuLL); ಪ್ರಿಂಟಫ್ ("% llu\n", bfd _ Get _ size (abfd)); ರಿಟರ್ನ್ 0;} ಬಿಲ್ಡ್ ಕಮಾಂಡ್ಃ gcc main.c-lbfd-o ಔಟ್ಪುಟ್./ಔಟ್ಪುಟ್ #ಗಾತ್ರದ ಉಲ್ಲೇಖಗಳನ್ನು ಮುದ್ರಿಸುತ್ತದೆ ಬಿನುಟಿಲ್ ಪುಟದ ಬಾಹ್ಯ ಕೊಂಡಿಗಳು, ಪ್ರಸ್ತುತ BFD ಮೂಲಗಳಿಗೆ ಪ್ರವೇಶದೊಂದಿಗೆ ಒಬ್ಜ್ಡಂಪ್ ಅನುಷ್ಠಾನ, ಅನೇಕ BFD ಅಪಿಸ್ ಸಿ (ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆ) ಗ್ರಂಥಾಲಯಗಳನ್ನು ಬಳಸುತ್ತದೆ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಕಡತ ಸ್ವರೂಪಗಳು ಉಚಿತ ಕಂಪ್ಯೂಟರ್ ಗ್ರಂಥಾಲಯಗಳು ಗ್ನೂ ಪ್ರಾಜೆಕ್ಟ್ ಸಾಫ್ಟ್ವೇರ್