ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್‌ಗಳ ಸಹಿಯನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ರಚಿಸುವ ವ್ಯವಸ್ಥೆ. ಸಾಫ್ಟ್ವೇರ್ ಘಟಕಗಳ ರಚನೆ. ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್‌ಗಳು ಯಾವ ರೀತಿಯ ವಿಸ್ತರಣೆಯನ್ನು ಹೊಂದಿವೆ? ಅತ್ಯಂತ ಸಾಮಾನ್ಯ

2.1 ಫೈಲ್‌ಗಳು

ಮಾಹಿತಿ ಶೇಖರಣಾ ಅವಶ್ಯಕತೆಗಳು:

    ಶೇಖರಣಾ ಸಾಧ್ಯತೆ ದೊಡ್ಡ ಸಂಪುಟಗಳುಡೇಟಾ

    ಪ್ರಕ್ರಿಯೆಯನ್ನು ಮುಕ್ತಾಯಗೊಳಿಸಿದ ನಂತರ ಮಾಹಿತಿಯನ್ನು ಉಳಿಸಿಕೊಳ್ಳಬೇಕು

    ಹಲವಾರು ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಹೊಂದಿರಬೇಕು ಏಕಕಾಲಿಕ ಪ್ರವೇಶಮಾಹಿತಿಗೆ

2.1.1 ಫೈಲ್ ನಾಮಕರಣ

ಫೈಲ್ ಹೆಸರಿನ ಉದ್ದವು 8 (MS-DOS) ನಿಂದ 255 (Windows, LINUX) ಅಕ್ಷರಗಳನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ.

OS ದೊಡ್ಡಕ್ಷರ ಮತ್ತು ನಡುವಿನ ವ್ಯತ್ಯಾಸವನ್ನು ಗುರುತಿಸಬಹುದು ಸಣ್ಣ ಅಕ್ಷರಗಳು. ಉದಾಹರಣೆಗೆ, MS-DOS ಗಾಗಿ WINDOWS ಮತ್ತು ವಿಂಡೋಗಳು ಒಂದೇ ಆಗಿರುತ್ತವೆ, ಆದರೆ UNIX ಗೆ ಅವು ವಿಭಿನ್ನ ಫೈಲ್ಗಳಾಗಿವೆ.

ಅನೇಕ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಂಗಳಲ್ಲಿ, ಫೈಲ್ ಹೆಸರು ಅವಧಿಯಿಂದ ಪ್ರತ್ಯೇಕಿಸಲಾದ ಎರಡು ಭಾಗಗಳನ್ನು ಒಳಗೊಂಡಿದೆ, ಉದಾಹರಣೆಗೆ windows.exe. ಡಾಟ್ ನಂತರದ ಭಾಗವನ್ನು ಕರೆಯಲಾಗುತ್ತದೆ ಫೈಲ್ ವಿಸ್ತರಣೆ. ಫೈಲ್ ಪ್ರಕಾರವನ್ನು ಪ್ರತ್ಯೇಕಿಸಲು ಸಿಸ್ಟಮ್ ಇದನ್ನು ಬಳಸುತ್ತದೆ.

MS-DOS ಗಾಗಿ ವಿಸ್ತರಣೆಯು 3 ಅಕ್ಷರಗಳಾಗಿರುತ್ತದೆ. ಇದನ್ನು ಬಳಸಿಕೊಂಡು, ಸಿಸ್ಟಮ್ ಫೈಲ್ ಪ್ರಕಾರವನ್ನು ಪ್ರತ್ಯೇಕಿಸುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದೇ ಅಥವಾ ಇಲ್ಲವೇ ಎಂಬುದನ್ನು ಗುರುತಿಸುತ್ತದೆ.

UNIX ನಲ್ಲಿ, ವಿಸ್ತರಣೆಯು 255 ಅಕ್ಷರಗಳ ಫೈಲ್ ಹೆಸರಿನ ಗಾತ್ರಕ್ಕೆ ಸೀಮಿತವಾಗಿದೆ, ಮತ್ತು UNIX ಹಲವಾರು ವಿಸ್ತರಣೆಗಳನ್ನು ಹೊಂದಬಹುದು, ಆದರೆ ವಿಸ್ತರಣೆಗಳನ್ನು ಹೆಚ್ಚು ಬಳಸಲಾಗುತ್ತದೆ ಅಪ್ಲಿಕೇಶನ್ ಕಾರ್ಯಕ್ರಮಗಳು OS ಅಲ್ಲ. UNIX ಫೈಲ್ ಅನ್ನು ಅದರ ವಿಸ್ತರಣೆಯ ಆಧಾರದ ಮೇಲೆ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದೇ ಅಥವಾ ಇಲ್ಲವೇ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.

2.1.2 ಫೈಲ್ ರಚನೆ

ಮೂರು ಮುಖ್ಯ ಫೈಲ್ ರಚನೆಗಳು:

    ಬೈಟ್ ಅನುಕ್ರಮ- OS ಫೈಲ್‌ನ ವಿಷಯಗಳಲ್ಲಿ ಆಸಕ್ತಿ ಹೊಂದಿಲ್ಲ, ಅದು ಬೈಟ್‌ಗಳನ್ನು ಮಾತ್ರ ನೋಡುತ್ತದೆ. ಅಂತಹ ವ್ಯವಸ್ಥೆಯ ಮುಖ್ಯ ಪ್ರಯೋಜನವೆಂದರೆ ಅದರ ಬಳಕೆಯ ನಮ್ಯತೆ. ವಿಂಡೋಸ್ ಮತ್ತು UNIX ನಲ್ಲಿ ಬಳಸಲಾಗಿದೆ.

    ದಾಖಲೆಗಳ ಅನುಕ್ರಮ- ಸ್ಥಿರ ಉದ್ದದ ದಾಖಲೆಗಳು (ಉದಾಹರಣೆಗೆ, ಪಂಚ್ ಕಾರ್ಡ್), ಅನುಕ್ರಮವಾಗಿ ಓದಲಾಗುತ್ತದೆ. ಈಗ ಬಳಸುತ್ತಿಲ್ಲ.

    ಪ್ರವೇಶ ಮರ- ಪ್ರತಿ ದಾಖಲೆಯು ಕೀಲಿಯನ್ನು ಹೊಂದಿದೆ, ಕೀಲಿಯನ್ನು ಬಳಸಿಕೊಂಡು ದಾಖಲೆಗಳನ್ನು ಓದಲಾಗುತ್ತದೆ. ಅಂತಹ ವ್ಯವಸ್ಥೆಯ ಮುಖ್ಯ ಪ್ರಯೋಜನವೆಂದರೆ ಹುಡುಕಾಟ ವೇಗ. ಇನ್ನೂ ಮೇನ್‌ಫ್ರೇಮ್‌ಗಳಲ್ಲಿ ಬಳಸಲಾಗುತ್ತದೆ.

ಮೂರು ರೀತಿಯ ಫೈಲ್ ರಚನೆಗಳು.

2.1.3 ಫೈಲ್ ಪ್ರಕಾರಗಳು

ಮುಖ್ಯ ಫೈಲ್ ಪ್ರಕಾರಗಳು:

    ನಿಯಮಿತ- ಬಳಕೆದಾರರ ಮಾಹಿತಿಯನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ. ವಿಂಡೋಸ್ ಮತ್ತು UNIX ನಲ್ಲಿ ಬಳಸಲಾಗಿದೆ.

    ಕ್ಯಾಟಲಾಗ್‌ಗಳು - ಸಿಸ್ಟಮ್ ಫೈಲ್ಗಳು, ಫೈಲ್ ಸಿಸ್ಟಮ್ ರಚನೆಗೆ ಬೆಂಬಲವನ್ನು ಒದಗಿಸುತ್ತದೆ. ವಿಂಡೋಸ್ ಮತ್ತು UNIX ನಲ್ಲಿ ಬಳಸಲಾಗಿದೆ.

    ಪಾತ್ರ- ಇನ್ಪುಟ್-ಔಟ್ಪುಟ್ ಮಾಡೆಲಿಂಗ್ಗಾಗಿ. UNIX ನಲ್ಲಿ ಮಾತ್ರ ಬಳಸಲಾಗಿದೆ.

    ನಿರ್ಬಂಧಿಸಿ- ಮಾಡೆಲಿಂಗ್ ಡಿಸ್ಕ್ಗಳಿಗಾಗಿ. UNIX ನಲ್ಲಿ ಮಾತ್ರ ಬಳಸಲಾಗಿದೆ.

ಸಾಮಾನ್ಯ ಫೈಲ್‌ಗಳ ಮುಖ್ಯ ವಿಧಗಳು:

    ASCII ಫೈಲ್‌ಗಳು- ಪಠ್ಯ ತಂತಿಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ. ಪ್ರತಿಯೊಂದು ಸಾಲು ಕ್ಯಾರೇಜ್ ರಿಟರ್ನ್ (ವಿಂಡೋಸ್), ಲೈನ್ ಫೀಡ್ (UNIX) ಮತ್ತು ಎರಡರಲ್ಲೂ (MS-DOS) ಕೊನೆಗೊಳ್ಳುತ್ತದೆ. ಆದ್ದರಿಂದ, ನೀವು ತೆರೆದರೆ ಪಠ್ಯ ಫೈಲ್ UNIX ನಲ್ಲಿ, ವಿಂಡೋಸ್‌ನಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ, ನಂತರ ಎಲ್ಲಾ ಸಾಲುಗಳು ಒಂದು ದೊಡ್ಡ ಸಾಲಿನಲ್ಲಿ ವಿಲೀನಗೊಳ್ಳುತ್ತವೆ, ಆದರೆ MS-DOS ಅಡಿಯಲ್ಲಿ ಅವು ವಿಲೀನಗೊಳ್ಳುವುದಿಲ್ಲ ( ಇದು ಸಾಕಷ್ಟು ಸಾಮಾನ್ಯ ಪರಿಸ್ಥಿತಿಯಾಗಿದೆ) ASCII ಫೈಲ್‌ಗಳ ಮುಖ್ಯ ಅನುಕೂಲಗಳು:
    - ಪರದೆಯ ಮೇಲೆ ಪ್ರದರ್ಶಿಸಬಹುದು ಮತ್ತು ಪರಿವರ್ತನೆ ಇಲ್ಲದೆ ಪ್ರಿಂಟರ್‌ಗೆ ಔಟ್‌ಪುಟ್ ಮಾಡಬಹುದು
    - ಬಹುತೇಕ ಯಾವುದೇ ಸಂಪಾದಕರಿಂದ ಸಂಪಾದಿಸಬಹುದು

    ಬೈನರಿ ಫೈಲ್‌ಗಳು- ಇತರ ಫೈಲ್‌ಗಳು (ASCII ಅಲ್ಲದ). ನಿಯಮದಂತೆ, ಅವರು ಆಂತರಿಕ ರಚನೆಯನ್ನು ಹೊಂದಿದ್ದಾರೆ.

ಬೈನರಿ ಫೈಲ್‌ಗಳ ಮುಖ್ಯ ವಿಧಗಳು:

    ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ- ಪ್ರೋಗ್ರಾಂಗಳು, ಅವುಗಳನ್ನು ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಮೂಲಕ ಸಂಸ್ಕರಿಸಬಹುದು, ಆದರೂ ಅವುಗಳನ್ನು ಬೈಟ್‌ಗಳ ಅನುಕ್ರಮವಾಗಿ ಬರೆಯಲಾಗಿದೆ.

    ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುವುದಿಲ್ಲ- ಉಳಿದವರೆಲ್ಲರೂ.

ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಮತ್ತು ಕಾರ್ಯಗತಗೊಳಿಸದ ಫೈಲ್‌ಗಳ ಉದಾಹರಣೆಗಳು

"ಮ್ಯಾಜಿಕ್ ಸಂಖ್ಯೆ"- ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್ ಅನ್ನು ಗುರುತಿಸುವುದು.

2.1.4 ಫೈಲ್ ಪ್ರವೇಶ

ಫೈಲ್ ಪ್ರವೇಶದ ಮುಖ್ಯ ವಿಧಗಳು:

    ಸ್ಥಿರ- ಬೈಟ್‌ಗಳನ್ನು ಕ್ರಮವಾಗಿ ಓದಲಾಗುತ್ತದೆ. ಮ್ಯಾಗ್ನೆಟಿಕ್ ಟೇಪ್‌ಗಳು ಇದ್ದಾಗ ಬಳಸಲಾಗಿದೆ.

2.1.5 ಫೈಲ್ ಗುಣಲಕ್ಷಣಗಳು

ಮುಖ್ಯ ಫೈಲ್ ಗುಣಲಕ್ಷಣಗಳು:

    ರಕ್ಷಣೆ - ಯಾರು ಫೈಲ್ ಅನ್ನು ಪ್ರವೇಶಿಸಬಹುದು ಮತ್ತು ಹೇಗೆ (ಬಳಕೆದಾರರು, ಗುಂಪುಗಳು, ಓದುವುದು/ಬರೆಯುವುದು). ವಿಂಡೋಸ್ ಮತ್ತು UNIX ನಲ್ಲಿ ಬಳಸಲಾಗಿದೆ.

    ಪಾಸ್ವರ್ಡ್ - ಫೈಲ್ಗಾಗಿ ಪಾಸ್ವರ್ಡ್

    ಸೃಷ್ಟಿಕರ್ತ - ಯಾರು ಫೈಲ್ ಅನ್ನು ರಚಿಸಿದ್ದಾರೆ

    ಮಾಲೀಕರು - ಫೈಲ್‌ನ ಪ್ರಸ್ತುತ ಮಾಲೀಕರು

    ಓದಲು-ಮಾತ್ರ ಫ್ಲ್ಯಾಗ್ - 0 - ಓದಲು/ಬರೆಯಲು, 1 - ಓದಲು-ಮಾತ್ರ. ವಿಂಡೋಸ್‌ನಲ್ಲಿ ಬಳಸಲಾಗಿದೆ.

    "ಗುಪ್ತ" ಫ್ಲ್ಯಾಗ್ - 0 - ಗೋಚರಿಸುತ್ತದೆ, 1 - ಡೈರೆಕ್ಟರಿ ಫೈಲ್‌ಗಳ ಪಟ್ಟಿಯಲ್ಲಿ ಅದೃಶ್ಯವಾಗಿದೆ (ಡೀಫಾಲ್ಟ್). ವಿಂಡೋಸ್‌ನಲ್ಲಿ ಬಳಸಲಾಗಿದೆ.

    ಫ್ಲ್ಯಾಗ್ "ಸಿಸ್ಟಮ್" - 0 - ಸಾಮಾನ್ಯ, 1 - ಸಿಸ್ಟಮ್. ವಿಂಡೋಸ್‌ನಲ್ಲಿ ಬಳಸಲಾಗಿದೆ.

    "ಆರ್ಕೈವ್" ಫ್ಲ್ಯಾಗ್ - ಆರ್ಕೈವ್ ಮಾಡಲು ಸಿದ್ಧವಾಗಿದೆ ಅಥವಾ ಇಲ್ಲ (ಸಂಕೋಚನದೊಂದಿಗೆ ಗೊಂದಲಕ್ಕೀಡಾಗಬಾರದು). ವಿಂಡೋಸ್‌ನಲ್ಲಿ ಬಳಸಲಾಗಿದೆ.

    ಫ್ಲ್ಯಾಗ್ "ಸಂಕುಚಿತ" - ಫೈಲ್ ಅನ್ನು ಸಂಕುಚಿತಗೊಳಿಸಲಾಗಿದೆ (ಇದಕ್ಕೆ ಹೋಲುತ್ತದೆ zip ದಾಖಲೆಗಳು) ವಿಂಡೋಸ್‌ನಲ್ಲಿ ಬಳಸಲಾಗಿದೆ.

    "ಎನ್‌ಕ್ರಿಪ್ಟೆಡ್" ಫ್ಲ್ಯಾಗ್ - ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಹಾಗೆ ಮಾಡಲು ಅನುಮತಿಯಿಲ್ಲದ ಫೈಲ್ ಅನ್ನು ಯಾರಾದರೂ ಓದಲು ಪ್ರಯತ್ನಿಸಿದರೆ, ಅವರು ಅದನ್ನು ಓದಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ವಿಂಡೋಸ್‌ನಲ್ಲಿ ಬಳಸಲಾಗಿದೆ.

    ASCII/ಬೈನರಿ ಫ್ಲ್ಯಾಗ್ - 0 - ASCII, 1 - ಬೈನರಿ

    ಯಾದೃಚ್ಛಿಕ ಪ್ರವೇಶ ಫ್ಲ್ಯಾಗ್ - 0 - ಅನುಕ್ರಮ ಮಾತ್ರ, 1 - ಯಾದೃಚ್ಛಿಕ ಪ್ರವೇಶ

    ಫ್ಲ್ಯಾಗ್ "ತಾತ್ಕಾಲಿಕ" - 0 - ಸಾಮಾನ್ಯ, 1 - ಪ್ರಕ್ರಿಯೆಯ ಕೊನೆಯಲ್ಲಿ ಫೈಲ್ ಅನ್ನು ಅಳಿಸಲು

    ಫ್ಲಾಗ್ ಅನ್ನು ನಿರ್ಬಂಧಿಸುವುದು - ಫೈಲ್‌ಗೆ ಪ್ರವೇಶವನ್ನು ನಿರ್ಬಂಧಿಸುವುದು. ಅವರು ಸಂಪಾದನೆಯಲ್ಲಿ ನಿರತರಾಗಿದ್ದರೆ.

    ಸೃಷ್ಟಿ ಸಮಯ - ಸೃಷ್ಟಿಯ ದಿನಾಂಕ ಮತ್ತು ಸಮಯ. UNIX ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.

    ಕೊನೆಯ ಪ್ರವೇಶ ಸಮಯ - ಕೊನೆಯ ಪ್ರವೇಶದ ದಿನಾಂಕ ಮತ್ತು ಸಮಯ

    ಸಮಯ ಕೊನೆಯ ಬದಲಾವಣೆ- ಕೊನೆಯ ಬದಲಾವಣೆಯ ದಿನಾಂಕ ಮತ್ತು ಸಮಯ. ವಿಂಡೋಸ್ ಮತ್ತು UNIX ನಲ್ಲಿ ಬಳಸಲಾಗಿದೆ.

    ಪ್ರಸ್ತುತ ಗಾತ್ರವು ಫೈಲ್ ಗಾತ್ರವಾಗಿದೆ. ವಿಂಡೋಸ್ ಮತ್ತು UNIX ನಲ್ಲಿ ಬಳಸಲಾಗಿದೆ.

2.1.6 ಫೈಲ್ ಕಾರ್ಯಾಚರಣೆಗಳು

ಮೂಲಭೂತ ಸಿಸ್ಟಮ್ ಕರೆಗಳುಫೈಲ್ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು:

    ರಚಿಸಿ - ಡೇಟಾ ಇಲ್ಲದೆ ಫೈಲ್ ಅನ್ನು ರಚಿಸುವುದು.

    ಅಳಿಸಿ - ಫೈಲ್ ಅನ್ನು ಅಳಿಸುವುದು.

    ತೆರೆಯಿರಿ - ಫೈಲ್ ತೆರೆಯಿರಿ.

    ಮುಚ್ಚಿ - ಫೈಲ್ ಅನ್ನು ಮುಚ್ಚುವುದು.

    ಓದಿ - ಫೈಲ್‌ನಿಂದ ಓದುವುದು, ಪ್ರಸ್ತುತ ಫೈಲ್ ಸ್ಥಾನದಿಂದ.

    ಬರೆಯಿರಿ - ಫೈಲ್‌ಗೆ ಬರೆಯಿರಿ, ಪ್ರಸ್ತುತ ಫೈಲ್ ಸ್ಥಾನಕ್ಕೆ.

    ಸೇರಿಸು - ಫೈಲ್‌ನ ಅಂತ್ಯಕ್ಕೆ ಸೇರಿಸುವುದು.

    ಸೀಕ್ - ಫೈಲ್ ಪಾಯಿಂಟರ್ ಅನ್ನು ಫೈಲ್‌ನಲ್ಲಿ ನಿರ್ದಿಷ್ಟ ಸ್ಥಾನಕ್ಕೆ ಹೊಂದಿಸುತ್ತದೆ.

    ಗುಣಲಕ್ಷಣಗಳನ್ನು ಪಡೆಯಿರಿ - ಫೈಲ್ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಪಡೆಯುವುದು.

    ಗುಣಲಕ್ಷಣಗಳನ್ನು ಹೊಂದಿಸಿ - ಫೈಲ್ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಹೊಂದಿಸಿ.

    ಮರುಹೆಸರಿಸಿ - ಫೈಲ್ ಅನ್ನು ಮರುಹೆಸರಿಸಿ.

2.1.7 ಫೈಲ್‌ಗಳನ್ನು ಮೆಮೊರಿ ಅಡ್ರೆಸ್ ಸ್ಪೇಸ್‌ಗೆ ಮ್ಯಾಪ್ ಮಾಡಲಾಗಿದೆ

ಕೆಲವೊಮ್ಮೆ ಮೆಮೊರಿಯಲ್ಲಿ ಫೈಲ್ ಅನ್ನು ಪ್ರದರ್ಶಿಸಲು ಅನುಕೂಲಕರವಾಗಿದೆ (ಫೈಲ್ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ನೀವು I / O ಸಿಸ್ಟಮ್ ಕರೆಗಳನ್ನು ಬಳಸಬೇಕಾಗಿಲ್ಲ), ಮತ್ತು ಮೆಮೊರಿಯೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಿ, ತದನಂತರ ಮಾರ್ಪಡಿಸಿದ ಫೈಲ್ ಅನ್ನು ಡಿಸ್ಕ್ಗೆ ಬರೆಯಿರಿ.

ಬಳಸುವಾಗ ಪುಟ ಸಂಘಟನೆಮೆಮೊರಿ, ಸಂಪೂರ್ಣ ಫೈಲ್ ಅನ್ನು ಲೋಡ್ ಮಾಡಲಾಗಿಲ್ಲ, ಆದರೆ ಅಗತ್ಯ ಪುಟಗಳನ್ನು ಮಾತ್ರ ಲೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ.

ಬಳಸುವಾಗ ವಿಭಾಗದ ಸಂಘಟನೆಮೆಮೊರಿ, ಫೈಲ್ ಅನ್ನು ಪ್ರತ್ಯೇಕ ವಿಭಾಗದಲ್ಲಿ ಲೋಡ್ ಮಾಡಲಾಗಿದೆ.

ಮೆಮೊರಿ ಮ್ಯಾಪಿಂಗ್ ಮೂಲಕ ಫೈಲ್ ಅನ್ನು ನಕಲಿಸುವ ಉದಾಹರಣೆ.

ಅಲ್ಗಾರಿದಮ್:

    ಫೈಲ್ 1 ಗಾಗಿ ವಿಭಾಗವನ್ನು ರಚಿಸಲಾಗಿದೆ

    ಫೈಲ್ ಅನ್ನು ಮೆಮೊರಿಯಲ್ಲಿ ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತದೆ

    ಫೈಲ್ 2 ಗಾಗಿ ಒಂದು ವಿಭಾಗವನ್ನು ರಚಿಸಲಾಗಿದೆ

    ವಿಭಾಗ 1 ಅನ್ನು ವಿಭಾಗ 2 ಗೆ ನಕಲಿಸಲಾಗಿದೆ

    ವಿಭಾಗ 2 ಅನ್ನು ಡಿಸ್ಕ್‌ಗೆ ಉಳಿಸಲಾಗಿದೆ

ಈ ವಿಧಾನದ ಅನಾನುಕೂಲಗಳು:

    ಔಟ್‌ಪುಟ್ ಫೈಲ್‌ನ ಉದ್ದವನ್ನು ನಿರ್ಧರಿಸುವುದು ಕಷ್ಟ

    ಒಂದು ಪ್ರಕ್ರಿಯೆಯು ಫೈಲ್ ಅನ್ನು ಮೆಮೊರಿಗೆ ಮ್ಯಾಪ್ ಮಾಡಿದ್ದರೆ ಮತ್ತು ಅದನ್ನು ಮಾರ್ಪಡಿಸಿದರೆ, ಆದರೆ ಫೈಲ್ ಅನ್ನು ಇನ್ನೂ ಉಳಿಸಲಾಗಿಲ್ಲ, ಎರಡನೆಯ ಪ್ರಕ್ರಿಯೆಯು ಅದೇ ಫೈಲ್ ಅನ್ನು ತೆರೆಯುತ್ತದೆ ಮತ್ತು ಹಳೆಯ ಫೈಲ್‌ನೊಂದಿಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ.

    ಫೈಲ್ ದೊಡ್ಡದಾಗಿರಬಹುದು, ವಿಭಾಗ ಅಥವಾ ವರ್ಚುವಲ್ ಸ್ಪೇಸ್‌ಗಿಂತ ದೊಡ್ಡದಾಗಿರಬಹುದು.

2.2 ಡೈರೆಕ್ಟರಿಗಳು

2.2.1 ಏಕ-ಹಂತದ ಕ್ಯಾಟಲಾಗ್ ವ್ಯವಸ್ಥೆಗಳು

ಈ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ, ಎಲ್ಲಾ ಫೈಲ್‌ಗಳು ಒಂದು ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ ಒಳಗೊಂಡಿರುತ್ತವೆ.

ನಾಲ್ಕು ಫೈಲ್‌ಗಳು, ಎರಡು ಫೈಲ್‌ಗಳು ಎ, ಆದರೆ ವಿಭಿನ್ನ ಮಾಲೀಕರನ್ನು ಒಳಗೊಂಡಿರುವ ಏಕ ಡೈರೆಕ್ಟರಿ ಸಿಸ್ಟಮ್

ಸಿಸ್ಟಮ್ ಅನುಕೂಲಗಳು:

    ಸರಳತೆ

    ಫೈಲ್ ಅನ್ನು ತ್ವರಿತವಾಗಿ ಕಂಡುಹಿಡಿಯುವ ಸಾಮರ್ಥ್ಯ, ಡೈರೆಕ್ಟರಿಗಳ ಮೂಲಕ ಏರಲು ಅಗತ್ಯವಿಲ್ಲ

ವ್ಯವಸ್ಥೆಯ ಅನಾನುಕೂಲಗಳು:

    ವಿಭಿನ್ನ ಬಳಕೆದಾರರು ಒಂದೇ ಹೆಸರಿನೊಂದಿಗೆ ಫೈಲ್‌ಗಳನ್ನು ರಚಿಸಬಹುದು.

2.2.2 ಎರಡು ಹಂತದ ಕ್ಯಾಟಲಾಗ್ ವ್ಯವಸ್ಥೆಗಳು

ಪ್ರತಿಯೊಬ್ಬ ಬಳಕೆದಾರರು ತಮ್ಮದೇ ಆದ ಡೈರೆಕ್ಟರಿಯನ್ನು ಹೊಂದಿದ್ದಾರೆ.

ಎರಡು ಹಂತದ ಕ್ಯಾಟಲಾಗ್ ವ್ಯವಸ್ಥೆ

ಬಳಕೆದಾರನು ಸಿಸ್ಟಮ್ಗೆ ಲಾಗ್ ಇನ್ ಮಾಡಿದಾಗ, ಅವನು ತನ್ನ ಡೈರೆಕ್ಟರಿಗೆ ತೆಗೆದುಕೊಂಡು ಅದರೊಂದಿಗೆ ಮಾತ್ರ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಾನೆ. ಇದು ಸಿಸ್ಟಮ್ ಫೈಲ್‌ಗಳ ಬಳಕೆಯನ್ನು ಸಮಸ್ಯಾತ್ಮಕವಾಗಿಸುತ್ತದೆ.

ರಚಿಸುವ ಮೂಲಕ ಈ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸಬಹುದು ಸಿಸ್ಟಮ್ ಡೈರೆಕ್ಟರಿ, ಸಾಮಾನ್ಯ ಪ್ರವೇಶದೊಂದಿಗೆ.

ಒಬ್ಬ ಬಳಕೆದಾರನು ಅನೇಕ ಫೈಲ್‌ಗಳನ್ನು ಹೊಂದಿದ್ದರೆ, ಅವನಿಗೆ ಅದೇ ಹೆಸರಿನ ಫೈಲ್‌ಗಳು ಬೇಕಾಗಬಹುದು.

2.2.3 ಕ್ರಮಾನುಗತ ಕ್ಯಾಟಲಾಗ್ ವ್ಯವಸ್ಥೆಗಳು

ಪ್ರತಿಯೊಬ್ಬ ಬಳಕೆದಾರರು ತನಗೆ ಅಗತ್ಯವಿರುವಷ್ಟು ಡೈರೆಕ್ಟರಿಗಳನ್ನು ರಚಿಸಬಹುದು.

ಕ್ರಮಾನುಗತ ಕ್ಯಾಟಲಾಗ್ ವ್ಯವಸ್ಥೆ

ಬಹುತೇಕ ಎಲ್ಲಾ ಆಧುನಿಕ ಸಾರ್ವತ್ರಿಕ ಕಾರ್ಯಾಚರಣಾ ವ್ಯವಸ್ಥೆಗಳನ್ನು ಈ ರೀತಿಯಲ್ಲಿ ಆಯೋಜಿಸಲಾಗಿದೆ. ವಿಶೇಷ OS ಗೆ ಇದು ಅಗತ್ಯವಿಲ್ಲದಿರಬಹುದು.

2.2.4 ಮಾರ್ಗದ ಹೆಸರು

ಡೈರೆಕ್ಟರಿ ಟ್ರೀ ಅನ್ನು ಸಂಘಟಿಸಲು, ಫೈಲ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು ನಿಮಗೆ ಕೆಲವು ಮಾರ್ಗ ಬೇಕಾಗುತ್ತದೆ.

ಫೈಲ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು ಎರಡು ಮುಖ್ಯ ವಿಧಾನಗಳು:

    ಸಂಪೂರ್ಣ ಮಾರ್ಗದ ಹೆಸರು- ಮೂಲ ಡೈರೆಕ್ಟರಿಯಿಂದ ಮಾರ್ಗವನ್ನು ಸೂಚಿಸುತ್ತದೆ, ಉದಾಹರಣೆಗೆ:
    - ವಿಂಡೋಸ್ \usr\ast\ ಮೇಲ್ಬಾಕ್ಸ್ಗಾಗಿ
    - UNIX /usr/ast/mailbox ಗಾಗಿ
    - MULTICS > usr >ast > ಮೇಲ್ಬಾಕ್ಸ್ಗಾಗಿ

    ಸಂಬಂಧಿತ ಮಾರ್ಗದ ಹೆಸರು- ಪ್ರಸ್ತುತ ಡೈರೆಕ್ಟರಿಯಿಂದ (ಕೆಲಸದ ಡೈರೆಕ್ಟರಿ) ಮಾರ್ಗವನ್ನು ಸೂಚಿಸಲಾಗುತ್ತದೆ, ಉದಾಹರಣೆಗೆ:
    - ವೇಳೆ ಪ್ರಸ್ತುತ ಡೈರೆಕ್ಟರಿ/usr/ ನಂತರ ಸಂಪೂರ್ಣ ಮಾರ್ಗ/usr/ast/mailbox ಅನ್ನು ast/mailbox ಗೆ ಪುನಃ ಬರೆಯಲಾಗುತ್ತದೆ
    - ಪ್ರಸ್ತುತ ಡೈರೆಕ್ಟರಿಯು /usr/ast/ ಆಗಿದ್ದರೆ, ಸಂಪೂರ್ಣ ಮಾರ್ಗ /usr/ast/mailbox ಅನ್ನು ಮೇಲ್ಬಾಕ್ಸ್ನಲ್ಲಿ ತಿದ್ದಿ ಬರೆಯಲಾಗುತ್ತದೆ
    - ಪ್ರಸ್ತುತ ಡೈರೆಕ್ಟರಿಯು /var/log/ ಆಗಿದ್ದರೆ, ಸಂಪೂರ್ಣ ಮಾರ್ಗ /usr/ast/mailbox ಅನ್ನು ../../usr/ast/mailbox ಗೆ ಪುನಃ ಬರೆಯಲಾಗುತ್ತದೆ

./ - ಎಂದರೆ ಪ್ರಸ್ತುತ ಡೈರೆಕ್ಟರಿ

../ - ಎಂದರೆ ಪೋಷಕ ಡೈರೆಕ್ಟರಿ

2.2.5 ಡೈರೆಕ್ಟರಿಗಳೊಂದಿಗೆ ಕಾರ್ಯಾಚರಣೆಗಳು

ಡೈರೆಕ್ಟರಿಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಮೂಲ ಸಿಸ್ಟಮ್ ಕರೆಗಳು:

    ರಚಿಸಿ - ಡೈರೆಕ್ಟರಿಯನ್ನು ರಚಿಸಿ

    ಅಳಿಸಿ - ಡೈರೆಕ್ಟರಿಯನ್ನು ಅಳಿಸಿ

    OpenDir - ಡೈರೆಕ್ಟರಿಯನ್ನು ಮುಚ್ಚಿ

    CloseDir - ಡೈರೆಕ್ಟರಿಯನ್ನು ಮುಚ್ಚಿ

    ಮರುಹೆಸರಿಸಿ - ಡೈರೆಕ್ಟರಿಯನ್ನು ಮರುಹೆಸರಿಸಿ

Typedef struct _IMAGE_FILE_HEADER ( ವರ್ಡ್ ಮೆಷಿನ್ ; ವರ್ಡ್ ನಂಬರ್ ಆಫ್ ಸೆಕ್ಷನ್ಸ್ ; DWORD ಟೈಮ್ ಡೇಟ್ ಸ್ಟ್ಯಾಂಪ್ ; DWORD PointerToSymbolTable ; DWORD ನಂಬರ್ ಆಫ್ ಸಿಂಬಲ್ಸ್ ; ಪದದ ಗಾತ್ರ AGE _ಹೆಡರ್;
ನಾನು ಈ ಕ್ಷೇತ್ರಗಳನ್ನು ಮಾತ್ರ ಶುಷ್ಕವಾಗಿ ವಿವರಿಸುತ್ತೇನೆ, ಏಕೆಂದರೆ... ಹೆಸರುಗಳು ಅರ್ಥಗರ್ಭಿತವಾಗಿವೆ ಮತ್ತು ನೇರ ಅರ್ಥಗಳನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತವೆ, ಮತ್ತು VA, RVA, RAW ಮತ್ತು ಇತರ ಭಯಾನಕ, ಆಸಕ್ತಿದಾಯಕ ವಿಷಯಗಳಲ್ಲ, ಇದುವರೆಗೆ ನಾವು ಹಳೆಯ ಕಡಲ್ಗಳ್ಳರಿಂದ ಮಾತ್ರ ಕೇಳಿದ್ದೇವೆ. ನಾವು ಈಗಾಗಲೇ RAW ಅನ್ನು ಎದುರಿಸಿದ್ದರೂ - ಇವುಗಳು ಫೈಲ್‌ನ ಪ್ರಾರಂಭಕ್ಕೆ ಸಂಬಂಧಿಸಿದಂತೆ ಕೇವಲ ಆಫ್‌ಸೆಟ್‌ಗಳಾಗಿವೆ (ಅವುಗಳನ್ನು ಕಚ್ಚಾ ಪಾಯಿಂಟರ್‌ಗಳು ಅಥವಾ ಫೈಲ್ ಆಫ್‌ಸೆಟ್ ಎಂದೂ ಕರೆಯಲಾಗುತ್ತದೆ). ಅಂದರೆ, ನಾವು RAW ವಿಳಾಸವನ್ನು ಹೊಂದಿದ್ದರೆ, ಇದರರ್ಥ ನಾವು ಫೈಲ್‌ನ ಪ್ರಾರಂಭದಿಂದ RAW ಸ್ಥಾನಗಳಿಗೆ ಹೆಜ್ಜೆ ಹಾಕಬೇಕು ( ptrFile+ ರಾ). ನಂತರ ನೀವು ಮೌಲ್ಯಗಳನ್ನು ಓದಲು ಪ್ರಾರಂಭಿಸಬಹುದು. ಒಂದು ಗಮನಾರ್ಹ ಉದಾಹರಣೆಈ ಪ್ರಕಾರದ e_lfnew- ನಾವು ಡಾಸ್ ಶಿರೋನಾಮೆಯಲ್ಲಿ ಮೇಲೆ ಚರ್ಚಿಸಿದ್ದೇವೆ.

*ಯಂತ್ರ: ವರ್ಡ್ - ಈ ಸಂಖ್ಯೆ (2 ಬೈಟ್‌ಗಳು) ಈ ಅಪ್ಲಿಕೇಶನ್ ರನ್ ಮಾಡಬಹುದಾದ ಪ್ರೊಸೆಸರ್ ಆರ್ಕಿಟೆಕ್ಚರ್ ಅನ್ನು ಸೂಚಿಸುತ್ತದೆ.
ವಿಭಾಗಗಳ ಸಂಖ್ಯೆ: DWORD - ಫೈಲ್‌ನಲ್ಲಿರುವ ವಿಭಾಗಗಳ ಸಂಖ್ಯೆ. ವಿಭಾಗಗಳು (ಇನ್ನು ಮುಂದೆ ನಾವು ಅವುಗಳನ್ನು ವಿಭಾಗಗಳ ಟೇಬಲ್ ಎಂದು ಕರೆಯುತ್ತೇವೆ) ಹೆಡರ್ (PE-ಹೆಡರ್) ನಂತರ ತಕ್ಷಣವೇ ಅನುಸರಿಸುತ್ತದೆ. ವಿಭಾಗಗಳ ಸಂಖ್ಯೆಯನ್ನು 96 ಕ್ಕೆ ಸೀಮಿತಗೊಳಿಸಲಾಗಿದೆ ಎಂದು ದಸ್ತಾವೇಜನ್ನು ಹೇಳುತ್ತದೆ.
ಟೈಮ್‌ಡೇಟ್‌ಸ್ಟ್ಯಾಂಪ್: WORD - ಫೈಲ್ ಅನ್ನು ರಚಿಸಿದ ದಿನಾಂಕ ಮತ್ತು ಸಮಯವನ್ನು ಸಂಗ್ರಹಿಸುವ ಸಂಖ್ಯೆ.
ಪಾಯಿಂಟರ್ ಟು ಸಿಂಬಲ್ ಟೇಬಲ್: DWORD ಎಂಬುದು ಸಂಕೇತ ಕೋಷ್ಟಕಕ್ಕೆ ಆಫ್‌ಸೆಟ್ (RAW) ಆಗಿದೆ ಮತ್ತು SizeOfOptionalHeader ಈ ಕೋಷ್ಟಕದ ಗಾತ್ರವಾಗಿದೆ. ಈ ಟೇಬಲ್ಶೇಖರಣೆಗಾಗಿ ಸೇವೆ ಸಲ್ಲಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ ಡೀಬಗ್ ಮಾಡುವ ಮಾಹಿತಿ, ಆದರೆ ಬೇರ್ಪಡುವಿಕೆ ಸೇವೆಯ ಪ್ರಾರಂಭದಿಂದಲೂ ಹೋರಾಟಗಾರನ ನಷ್ಟವನ್ನು ಗಮನಿಸಲಿಲ್ಲ. ಹೆಚ್ಚಾಗಿ ಈ ಕ್ಷೇತ್ರವನ್ನು ಸೊನ್ನೆಗಳೊಂದಿಗೆ ತೆರವುಗೊಳಿಸಲಾಗುತ್ತದೆ.
SIzeOfOptionHeader: WORD - ಐಚ್ಛಿಕ ಶಿರೋಲೇಖದ ಗಾತ್ರ (ಇದು ತಕ್ಷಣವೇ ಪ್ರಸ್ತುತವನ್ನು ಅನುಸರಿಸುತ್ತದೆ) ಆಬ್ಜೆಕ್ಟ್ ಫೈಲ್‌ಗೆ ಅದನ್ನು 0 ಗೆ ಹೊಂದಿಸಲಾಗಿದೆ ಎಂದು ದಸ್ತಾವೇಜನ್ನು ಹೇಳುತ್ತದೆ.
*ಗುಣಲಕ್ಷಣಗಳು: ವರ್ಡ್ - ಫೈಲ್ ಗುಣಲಕ್ಷಣಗಳು.

* - ಮೌಲ್ಯಗಳ ವ್ಯಾಪ್ತಿಯಿಂದ ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ಕ್ಷೇತ್ರಗಳು. ಸಂಭವನೀಯ ಮೌಲ್ಯಗಳ ಕೋಷ್ಟಕಗಳನ್ನು ಕಚೇರಿಯಲ್ಲಿನ ರಚನೆಯ ವಿವರಣೆಯಲ್ಲಿ ಪ್ರಸ್ತುತಪಡಿಸಲಾಗಿದೆ. ವೆಬ್‌ಸೈಟ್ ಮತ್ತು ಇಲ್ಲಿ ಪಟ್ಟಿ ಮಾಡಲಾಗುವುದಿಲ್ಲ, ಏಕೆಂದರೆ ಸ್ವರೂಪವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಅವರು ವಿಶೇಷವಾಗಿ ಯಾವುದನ್ನೂ ಒಯ್ಯುವುದಿಲ್ಲ.

ಈ ದ್ವೀಪವನ್ನು ಬಿಡೋಣ! ನಾವು ಮುಂದುವರಿಯಬೇಕಾಗಿದೆ. ರೆಫರೆನ್ಸ್ ಪಾಯಿಂಟ್ ಐಚ್ಛಿಕ-ಹೆಡರ್ ಎಂಬ ದೇಶವಾಗಿದೆ.

“ನಕ್ಷೆ ಎಲ್ಲಿದೆ, ಬಿಲ್ಲಿ? ನನಗೆ ನಕ್ಷೆ ಬೇಕು. ”
(ಟ್ರೆಷರ್ ಐಲ್ಯಾಂಡ್)

ಐಚ್ಛಿಕ-ಶೀರ್ಷಿಕೆ (IMAGE_OPTIONAL_HEADER)

ಈ ಖಂಡದ ಶೀರ್ಷಿಕೆ ತುಂಬಾ ಚೆನ್ನಾಗಿಲ್ಲ. ಈ ಹೆಡರ್ ಅಗತ್ಯವಿದೆ ಮತ್ತು 2 ಫಾರ್ಮ್ಯಾಟ್‌ಗಳನ್ನು PE32 ಮತ್ತು PE32+ ಹೊಂದಿದೆ (IMAGE_OPTIONAL_HEADER32 ಮತ್ತು IMAGE_OPTIONAL_HEADER64 ಕ್ರಮವಾಗಿ). ಸ್ವರೂಪವನ್ನು ಕ್ಷೇತ್ರದಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗಿದೆ ಮ್ಯಾಜಿಕ್: ಪದ. ಹೆಡರ್ ಫೈಲ್ ಅನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಅಗತ್ಯವಾದ ಮಾಹಿತಿಯನ್ನು ಒಳಗೊಂಡಿದೆ. ಎಂದಿನಂತೆ:

IMAGE_OPTIONAL_HEADER

typedef struct _IMAGE_OPTIONAL_HEADER ( ವರ್ಡ್ ಮ್ಯಾಜಿಕ್ ; ಬೈಟ್ ಮೇಜರ್ ಲಿಂಕ್ ಆವೃತ್ತಿ ORD ಬೇಸ್‌ಆಫ್‌ಡೇಟಾ; DWORD SizeOfHeapCommit , *PIMAGE_OPTIONAL_HEADER;


*ಯಾವಾಗಲೂ, ಡೌನ್‌ಲೋಡ್ ಅನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಲ್ಲಿ ಮತ್ತು ಫೈಲ್‌ನೊಂದಿಗೆ ಹೇಗೆ ಮುಂದುವರೆಯುವುದು ಎಂಬುದರ ಮೇಲೆ ಹೆಚ್ಚಿನ ಪ್ರಭಾವ ಬೀರುವ ಮುಖ್ಯ ಕ್ಷೇತ್ರಗಳನ್ನು ಮಾತ್ರ ನಾವು ಪರಿಶೀಲಿಸುತ್ತೇವೆ. ಒಪ್ಪಿಕೊಳ್ಳೋಣ - ಈ ರಚನೆಯ ಕ್ಷೇತ್ರಗಳು VA (ವರ್ಚುವಲ್ ವಿಳಾಸ) ಮತ್ತು RVA (ಸಾಪೇಕ್ಷ ವರ್ಚುವಲ್ ವಿಳಾಸ) ವಿಳಾಸಗಳೊಂದಿಗೆ ಮೌಲ್ಯಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತವೆ. ಇವು RAW ವಿಳಾಸಗಳಲ್ಲ, ಮತ್ತು ನೀವು ಅವುಗಳನ್ನು ಓದಲು (ಅಥವಾ ಬದಲಿಗೆ ಎಣಿಸಲು) ಸಾಧ್ಯವಾಗುತ್ತದೆ. ಇದನ್ನು ಹೇಗೆ ಮಾಡಬೇಕೆಂದು ನಾವು ಖಂಡಿತವಾಗಿಯೂ ಕಲಿಯುತ್ತೇವೆ, ಆದರೆ ಮೊದಲು ನಾವು ಗೊಂದಲಕ್ಕೀಡಾಗದಂತೆ ಪರಸ್ಪರ ಅನುಸರಿಸುವ ರಚನೆಗಳನ್ನು ವಿಶ್ಲೇಷಿಸುತ್ತೇವೆ. ಇದೀಗ, ಕೇವಲ ನೆನಪಿಡಿ - ಇವುಗಳು ವಿಳಾಸಗಳು, ಲೆಕ್ಕಾಚಾರಗಳ ನಂತರ, ಫೈಲ್ನಲ್ಲಿ ನಿರ್ದಿಷ್ಟ ಸ್ಥಳವನ್ನು ಸೂಚಿಸುತ್ತವೆ. ನೀವು ಹೊಸ ಪರಿಕಲ್ಪನೆಯನ್ನು ಸಹ ಎದುರಿಸುತ್ತೀರಿ - ಜೋಡಣೆ. ನಾವು ಅದನ್ನು RVA ವಿಳಾಸಗಳ ಜೊತೆಯಲ್ಲಿ ಪರಿಗಣಿಸುತ್ತೇವೆ, ಏಕೆಂದರೆ ಇವುಗಳು ಸಾಕಷ್ಟು ನಿಕಟ ಸಂಬಂಧ ಹೊಂದಿವೆ.

ಅಡ್ರೆಸ್ಆಫ್ ಎಂಟ್ರಿಪಾಯಿಂಟ್: DWORD - ಪ್ರವೇಶ ಬಿಂದುವಿನ RVA ವಿಳಾಸ. ವಿಳಾಸ ಜಾಗದಲ್ಲಿ ಯಾವುದೇ ಬಿಂದುವನ್ನು ಸೂಚಿಸಬಹುದು. .exe ಫೈಲ್‌ಗಳಿಗಾಗಿ, ಪ್ರವೇಶ ಬಿಂದುವು ಪ್ರೋಗ್ರಾಂ ಎಕ್ಸಿಕ್ಯೂಶನ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸುವ ವಿಳಾಸಕ್ಕೆ ಅನುಗುಣವಾಗಿರುತ್ತದೆ ಮತ್ತು ಶೂನ್ಯಕ್ಕೆ ಸಮನಾಗಿರುವುದಿಲ್ಲ!
ಬೇಸ್‌ಆಫ್‌ಕೋಡ್: DWORD - ಪ್ರೋಗ್ರಾಂ ಕೋಡ್‌ನ ಪ್ರಾರಂಭದ RVA (ಕೋಡ್ ವಿಭಾಗ).
ಬೇಸ್ಆಫ್ಡೇಟಾ: DWORD - ಪ್ರೋಗ್ರಾಂ ಕೋಡ್‌ನ ಪ್ರಾರಂಭದ RVA (ಡೇಟಾ ವಿಭಾಗಗಳು).
ಇಮೇಜ್ ಬೇಸ್: DWORD - ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಲೋಡ್ ಮಾಡಲು ಆದ್ಯತೆಯ ಮೂಲ ವಿಳಾಸ. 64kb ಯ ಗುಣಕಗಳಾಗಿರಬೇಕು. ಹೆಚ್ಚಿನ ಸಂದರ್ಭಗಳಲ್ಲಿ ಇದು 0x00400000 ಗೆ ಸಮಾನವಾಗಿರುತ್ತದೆ.
ವಿಭಾಗ ಜೋಡಣೆ: DWORD - ವರ್ಚುವಲ್ ಮೆಮೊರಿಗೆ ಇಳಿಸುವಾಗ ವಿಭಾಗದ ಜೋಡಣೆ ಗಾತ್ರ (ಬೈಟ್‌ಗಳು).
ಫೈಲ್ ಜೋಡಣೆ: DWORD - ಫೈಲ್‌ನ ಒಳಗಿನ ವಿಭಾಗದ ಜೋಡಣೆ ಗಾತ್ರ (ಬೈಟ್‌ಗಳು).
SizeOfImage: DWORD - ಎಲ್ಲಾ ಹೆಡರ್‌ಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ಮೆಮೊರಿಯಲ್ಲಿ ಫೈಲ್ ಗಾತ್ರ (ಬೈಟ್‌ಗಳಲ್ಲಿ). SectionAligment ನ ಬಹುಸಂಖ್ಯೆಯಾಗಿರಬೇಕು.
SizeOf Headers: DWORD - ಫೈಲ್‌ಅಲಿಗ್‌ಮೆಂಟ್‌ಗೆ ಜೋಡಿಸಲಾದ ಎಲ್ಲಾ ಹೆಡರ್‌ಗಳ (DOS, DOS-ಸ್ಟಬ್, PE, ವಿಭಾಗ) ಗಾತ್ರ.
NumberOfRvaAndSizes: DWORD - ಡೈರೆಕ್ಟರಿ ಕೋಷ್ಟಕದಲ್ಲಿನ ಡೈರೆಕ್ಟರಿಗಳ ಸಂಖ್ಯೆ (ಟೇಬಲ್ ಸ್ವತಃ ಕೆಳಗೆ ಇದೆ). ಈ ಸಮಯದಲ್ಲಿ, ಈ ಕ್ಷೇತ್ರವು ಯಾವಾಗಲೂ ಸಾಂಕೇತಿಕ ಸ್ಥಿರ IMAGE_NUMBEROF_DIRECTORY_ENTRIES ಗೆ ಸಮಾನವಾಗಿರುತ್ತದೆ, ಇದು 16 ಕ್ಕೆ ಸಮಾನವಾಗಿರುತ್ತದೆ.
ಡೇಟಾ ಡೈರೆಕ್ಟರಿ: IMAGE_DATA_DIRECTORY - ಡೇಟಾ ಡೈರೆಕ್ಟರಿ. ಸರಳವಾಗಿ ಹೇಳುವುದಾದರೆ, ಇದು ಒಂದು ಶ್ರೇಣಿಯಾಗಿದೆ (ಗಾತ್ರ 16), ಅದರ ಪ್ರತಿಯೊಂದು ಅಂಶವು 2 DWORD ಮೌಲ್ಯಗಳ ರಚನೆಯನ್ನು ಹೊಂದಿರುತ್ತದೆ.

IMAGE_DATA_DIRECTORY ರಚನೆ ಏನೆಂದು ನೋಡೋಣ:

ಟೈಪ್ಡೆಫ್ ರಚನೆ _IMAGE_DATA_DIRECTORY (DWORD ವರ್ಚುವಲ್ ವಿಳಾಸ; DWORD ಗಾತ್ರ; ) IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY;
ನಮ್ಮಲ್ಲಿ ಏನಿದೆ? ನಾವು 16 ಅಂಶಗಳ ಒಂದು ಶ್ರೇಣಿಯನ್ನು ಹೊಂದಿದ್ದೇವೆ, ಪ್ರತಿಯೊಂದು ಅಂಶವು ವಿಳಾಸ ಮತ್ತು ಗಾತ್ರವನ್ನು ಹೊಂದಿರುತ್ತದೆ (ಏನು? ಹೇಗೆ? ಏಕೆ? ಎಲ್ಲವೂ ಒಂದು ನಿಮಿಷದಲ್ಲಿ). ಈ ಗುಣಲಕ್ಷಣಗಳು ನಿಖರವಾಗಿ ಏನು ಎಂಬ ಪ್ರಶ್ನೆ ಉದ್ಭವಿಸುತ್ತದೆ. ಇದಕ್ಕಾಗಿ, ಮೈಕ್ರೋಸಾಫ್ಟ್ ಹೊಂದಾಣಿಕೆಗಾಗಿ ವಿಶೇಷ ಸ್ಥಿರಾಂಕಗಳನ್ನು ಹೊಂದಿದೆ. ರಚನೆಯ ವಿವರಣೆಯ ಕೊನೆಯಲ್ಲಿ ಅವುಗಳನ್ನು ಕಾಣಬಹುದು. ಈ ಮಧ್ಯೆ:

// ಡೈರೆಕ್ಟರಿ ನಮೂದುಗಳು #ಇಮೇಜ್_ಡೈರೆಕ್ಟರಿ_ENTRY_EXPORT 0 ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಿ // ರಫ್ತು ಡೈರೆಕ್ಟರಿ #ಇಮೇಜ್_ಡೈರೆಕ್ಟರಿ_ಪ್ರವೇಶ_ಆಮದು 1 ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಿ // ಆಮದು ಡೈರೆಕ್ಟರಿ #ಇಮೇಜ್_ಡೈರೆಕ್ಟರಿ_ಎಂಟ್ರಿ_ರೀಸೋರ್ಸ್ 2 ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಿ //ಸಂಪನ್ಮೂಲ_ವಾಕ್ ಡೈರೆಕ್ಟರಿಯನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಿ IMAGE_DIRECTORY_ENTRY _SECURITY 4 // ಭದ್ರತಾ ಡೈರೆಕ್ಟರಿಯನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಿ #IMAGE_DIRECTORY_ENTRY_BASERELOC 5 / ವ್ಯಾಖ್ಯಾನಿಸಿ / ಬೇಸ್ ರಿಲೊಕೇಶನ್ ಟೇಬಲ್ #ಇಮೇಜ್_ಡೈರೆಕ್ಟರಿ_ಪ್ರವೇಶ_ಡಿಬಗ್ 6 // ಡಿಬಗ್ ಡೈರೆಕ್ಟರಿ // ಇಮೇಜ್_ಡೈರೆಕ್ಟರಿ_ಎಂಟ್ರಿ_ಕಾಪಿರೈಟ್ 7 // (X86 ಬಳಕೆ) # ಇಮೇಜ್_ಡೈರೆಕ್ಟರಿ_ಪ್ರವೇಶ_ಆರ್ಕಿಟೆಕ್ಚರ್ #ಆರ್ಕಿಟೆಕ್ಚರ್ 7 ಡಿಫೈನ್ ENTRY_GLOBALPTR 8 // GP ಯ RVA # IMAGE_D IRECTORY_ENTRY_TLS 9 ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ // TLS ಡೈರೆಕ್ಟರಿ # IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 10 ಅನ್ನು ಲೋಡ್ ಮಾಡಿ Y_DELAY_IMPORT 13 // ವಿಳಂಬ ಲೋಡ್ ಆಮದು ವಿವರಣೆಗಳು #IMAGE_DIRECTORY_ENTRY_ COM_DESCRIPTOR 14 // COM ರನ್ಟೈಮ್ ವಿವರಣೆಯನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಿ
ಹೌದು! ರಚನೆಯ ಪ್ರತಿಯೊಂದು ಅಂಶವು ಅದಕ್ಕೆ ಲಗತ್ತಿಸಲಾದ ಟೇಬಲ್‌ಗೆ ಕಾರಣವಾಗಿದೆ ಎಂದು ನಾವು ನೋಡುತ್ತೇವೆ. ಆದರೆ ಅಯ್ಯೋ ಮತ್ತು ಆಹ್, ಈ ತೀರಗಳು ನಮಗೆ ಇನ್ನೂ ಪ್ರವೇಶಿಸಲಾಗುವುದಿಲ್ಲ, ಏಕೆಂದರೆ ... VA ಮತ್ತು RVA ವಿಳಾಸಗಳೊಂದಿಗೆ ಹೇಗೆ ಕೆಲಸ ಮಾಡುವುದು ಎಂದು ನಮಗೆ ತಿಳಿದಿಲ್ಲ. ಮತ್ತು ಕಲಿಯಲು, ನಾವು ಯಾವ ವಿಭಾಗಗಳನ್ನು ಅಧ್ಯಯನ ಮಾಡಬೇಕು. ಅವರು ತಮ್ಮ ರಚನೆ ಮತ್ತು ಕೆಲಸದ ಬಗ್ಗೆ ಮಾತನಾಡುತ್ತಾರೆ, ಅದರ ನಂತರ VA, RVA ಮತ್ತು ಜೋಡಣೆಗಳು ಏಕೆ ಬೇಕು ಎಂದು ಸ್ಪಷ್ಟವಾಗುತ್ತದೆ. ಈ ಲೇಖನದಲ್ಲಿ, ನಾವು ರಫ್ತು ಮತ್ತು ಆಮದುಗಳ ಮೇಲೆ ಮಾತ್ರ ಸ್ಪರ್ಶಿಸುತ್ತೇವೆ. ಉಳಿದ ಕ್ಷೇತ್ರಗಳ ಉದ್ದೇಶವನ್ನು ಕಚೇರಿಯಲ್ಲಿ ಕಾಣಬಹುದು. ದಾಖಲೆಗಳು ಅಥವಾ ಪುಸ್ತಕಗಳಲ್ಲಿ. ಹಾಗಾಗಿ ಅದು ಇಲ್ಲಿದೆ. ನಿಜವಾದ ಕ್ಷೇತ್ರಗಳು:

ವರ್ಚುವಲ್ ವಿಳಾಸ: DWORD - ಅರೇ ಅಂಶವು ಅನುರೂಪವಾಗಿರುವ ಟೇಬಲ್‌ಗಾಗಿ RVA.
ಗಾತ್ರ: DWORD - ಬೈಟ್‌ಗಳಲ್ಲಿ ಟೇಬಲ್ ಗಾತ್ರ.

ಆದ್ದರಿಂದ! ಆಮದು, ರಫ್ತು, ಸಂಪನ್ಮೂಲಗಳು ಮತ್ತು ಇತರರ ಕೋಷ್ಟಕಗಳಂತಹ ವಿಲಕ್ಷಣ ತೀರಗಳನ್ನು ಪಡೆಯಲು, ನಾವು ವಿಭಾಗಗಳೊಂದಿಗೆ ಅನ್ವೇಷಣೆಯ ಮೂಲಕ ಹೋಗಬೇಕಾಗಿದೆ. ಸರಿ, ಕ್ಯಾಬಿನ್ ಬಾಯ್, ಸಾಮಾನ್ಯ ನಕ್ಷೆಯನ್ನು ನೋಡೋಣ, ನಾವು ಈಗ ಎಲ್ಲಿದ್ದೇವೆ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಿ ಮತ್ತು ಮುಂದುವರಿಯಿರಿ:

ಮತ್ತು ನಾವು ವಿಭಾಗಗಳ ವಿಶಾಲವಾದ ತೆರೆದ ಸ್ಥಳಗಳ ಮುಂದೆ ನೇರವಾಗಿ ನೆಲೆಗೊಂಡಿದ್ದೇವೆ. ಅವರು ಮರೆಮಾಚುತ್ತಿರುವುದನ್ನು ನಾವು ಖಂಡಿತವಾಗಿ ಕಂಡುಹಿಡಿಯಬೇಕು ಮತ್ತು ಅಂತಿಮವಾಗಿ ಇನ್ನೊಂದು ರೀತಿಯ ವಿಳಾಸವನ್ನು ಕಂಡುಹಿಡಿಯಬೇಕು. ನಾವು ನಿಜವಾದ ಸಾಹಸಗಳನ್ನು ಬಯಸುತ್ತೇವೆ! ಆಮದು ಮತ್ತು ರಫ್ತು ಕೋಷ್ಟಕಗಳಂತಹ ಗಣರಾಜ್ಯಗಳಿಗೆ ನಾವು ತ್ವರಿತವಾಗಿ ಹೋಗಲು ಬಯಸುತ್ತೇವೆ. ಹಳೆಯ ಕಡಲ್ಗಳ್ಳರು ಎಲ್ಲರೂ ಅವರನ್ನು ತಲುಪಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ ಎಂದು ಹೇಳುತ್ತಾರೆ, ಆದರೆ ಚಿನ್ನದೊಂದಿಗೆ ಹಿಂದಿರುಗಿದವರು ಮತ್ತು ಸಮುದ್ರದ ಬಗ್ಗೆ ಪವಿತ್ರ ಜ್ಞಾನವನ್ನು ಹೊಂದಿರುವ ಮಹಿಳೆಯರು. ನಾವು ಹೊರಟೆವು ಮತ್ತು ವಿಭಾಗದ ಹೆಡರ್ ಕಡೆಗೆ ಹೋಗುತ್ತೇವೆ.

"ನೀವು ಪದಚ್ಯುತಗೊಂಡಿದ್ದೀರಿ, ಬೆಳ್ಳಿ! ಬ್ಯಾರೆಲ್ನಿಂದ ಇಳಿಯಿರಿ! ”
(ಟ್ರೆಷರ್ ಐಲ್ಯಾಂಡ್)

ವಿಭಾಗ-ಶೀರ್ಷಿಕೆ (IMAGE_SECTION_HEADER)


ರಚನೆಯ ಹಿಂದೆಯೇ ಡೇಟಾ ಡೈರೆಕ್ಟರಿವಿಭಾಗಗಳು ಪರಸ್ಪರ ಅನುಸರಿಸುತ್ತವೆ. ವಿಭಾಗ ಕೋಷ್ಟಕವು ಸಾರ್ವಭೌಮ ರಾಜ್ಯವನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ, ಇದನ್ನು ವಿಂಗಡಿಸಲಾಗಿದೆ ವಿಭಾಗಗಳ ಸಂಖ್ಯೆನಗರಗಳು. ಪ್ರತಿಯೊಂದು ನಗರವು ತನ್ನದೇ ಆದ ಕರಕುಶಲತೆ, ತನ್ನದೇ ಆದ ಹಕ್ಕುಗಳನ್ನು ಹೊಂದಿದೆ ಮತ್ತು 0x28 ಬೈಟ್‌ಗಳ ಗಾತ್ರವನ್ನು ಹೊಂದಿದೆ. ವಿಭಾಗಗಳ ಸಂಖ್ಯೆಯನ್ನು ಕ್ಷೇತ್ರದಲ್ಲಿ ಸೂಚಿಸಲಾಗುತ್ತದೆ ವಿಭಾಗಗಳ ಸಂಖ್ಯೆ, ಇದನ್ನು ಫೈಲ್-ಹೆಡರ್‌ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗಿದೆ. ಆದ್ದರಿಂದ, ರಚನೆಯನ್ನು ನೋಡೋಣ:

ಟೈಪ್ಡೆಫ್ ರಚನೆ _IMAGE_SECTION_HEADER (ಬೈಟ್ ಹೆಸರು; ಯೂನಿಯನ್ (DWORD ಭೌತಿಕ ವಿಳಾಸ; DWORD ವರ್ಚುವಲ್‌ಸೈಜ್; ) ಇತರೆ; DWORD ವರ್ಚುವಲ್ ವಿಳಾಸ; DWORD SizeOfRawData; DWORD PointerToRawData; ವರ್ಡ್ ನಂಬರ್‌ಆಫ್‌ಲೈನ್‌ನಂಬರ್‌ಗಳು ) IMAGE_SECTION_HEADER;
ಹೆಸರು: BYTE - ವಿಭಾಗದ ಹೆಸರು. ಪ್ರಸ್ತುತ ಇದು 8 ಅಕ್ಷರಗಳನ್ನು ಹೊಂದಿದೆ.
ವರ್ಚುವಲ್ ಗಾತ್ರ: DWORD - ವರ್ಚುವಲ್ ಮೆಮೊರಿಯಲ್ಲಿ ವಿಭಾಗದ ಗಾತ್ರ.
SizeOfRawData: DWORD - ಫೈಲ್‌ನಲ್ಲಿನ ವಿಭಾಗದ ಗಾತ್ರ.
ವರ್ಚುವಲ್ ವಿಳಾಸ: DWORD - RVA ವಿಭಾಗದ ವಿಳಾಸ.
SizeOfRawData: DWORD - ಫೈಲ್‌ನಲ್ಲಿನ ವಿಭಾಗದ ಗಾತ್ರ. ಬಹುಸಂಖ್ಯೆಯಾಗಿರಬೇಕು ಫೈಲ್ ಜೋಡಣೆ.
PointerToRawData: DWORD - ವಿಭಾಗದ ಆರಂಭಕ್ಕೆ RAW ಆಫ್‌ಸೆಟ್. ಬಹುಸಂಖ್ಯೆಯೂ ಆಗಿರಬೇಕು ಫೈಲ್ ಜೋಡಣೆ
ಗುಣಲಕ್ಷಣಗಳು: DWORD - ವಿಭಾಗಕ್ಕೆ ಪ್ರವೇಶ ಗುಣಲಕ್ಷಣಗಳು ಮತ್ತು ಅದನ್ನು ವರ್ಚುವಲ್‌ಗೆ ಲೋಡ್ ಮಾಡುವ ನಿಯಮಗಳು. ಸ್ಮರಣೆ. ಉದಾಹರಣೆಗೆ, ಒಂದು ವಿಭಾಗದ ವಿಷಯಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲು ಒಂದು ಗುಣಲಕ್ಷಣ (ಆರಂಭಿಕ ಡೇಟಾ, ನಾನ್-ಇನಿಶಿಯಲ್ ಡೇಟಾ, ಕೋಡ್). ಅಥವಾ ಪ್ರವೇಶ ಗುಣಲಕ್ಷಣಗಳು - ಓದಲು, ಬರೆಯಲು, ಕಾರ್ಯಗತಗೊಳಿಸಿ. ಇದು ಅವರ ಸಂಪೂರ್ಣ ಶ್ರೇಣಿಯಲ್ಲ. ಗುಣಲಕ್ಷಣಗಳನ್ನು ಅದೇ WINNT.h ನಿಂದ ಸ್ಥಿರಾಂಕಗಳಿಂದ ಹೊಂದಿಸಲಾಗಿದೆ, ಅದು IMAGE_SCN_ ನೊಂದಿಗೆ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ. ವಿಭಾಗಗಳ ಗುಣಲಕ್ಷಣಗಳೊಂದಿಗೆ ನೀವು ಹೆಚ್ಚು ವಿವರವಾಗಿ ಪರಿಚಯ ಮಾಡಿಕೊಳ್ಳಬಹುದು. ಕ್ರಿಸ್ ಕ್ಯಾಸ್ಪರ್ಸ್ಕಿಯ ಪುಸ್ತಕಗಳಲ್ಲಿನ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಸಹ ಚೆನ್ನಾಗಿ ವಿವರಿಸಲಾಗಿದೆ - ಉಲ್ಲೇಖಗಳ ಪಟ್ಟಿಯು ಲೇಖನದ ಕೊನೆಯಲ್ಲಿದೆ.

ಹೆಸರಿಗೆ ಸಂಬಂಧಿಸಿದಂತೆ, ನೀವು ಈ ಕೆಳಗಿನವುಗಳನ್ನು ನೆನಪಿನಲ್ಲಿಟ್ಟುಕೊಳ್ಳಬೇಕು - ಸಂಪನ್ಮೂಲಗಳೊಂದಿಗೆ ವಿಭಾಗವು ಯಾವಾಗಲೂ name.rsrc ಅನ್ನು ಹೊಂದಿರಬೇಕು. ಇಲ್ಲದಿದ್ದರೆ, ಸಂಪನ್ಮೂಲಗಳನ್ನು ಲೋಡ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ. ಉಳಿದ ವಿಭಾಗಗಳಿಗೆ ಸಂಬಂಧಿಸಿದಂತೆ, ಹೆಸರು ಯಾವುದಾದರೂ ಆಗಿರಬಹುದು. ಸಾಮಾನ್ಯವಾಗಿ ಅರ್ಥಪೂರ್ಣ ಹೆಸರುಗಳಿವೆ, ಉದಾಹರಣೆಗೆ .data, .src, ಇತ್ಯಾದಿ... ಆದರೆ ಇದು ಸಂಭವಿಸುತ್ತದೆ:

ವಿಭಾಗಗಳು ವರ್ಚುವಲ್ ಮೆಮೊರಿಗೆ ಇಳಿಸಲಾದ ಪ್ರದೇಶವಾಗಿದೆ ಮತ್ತು ಎಲ್ಲಾ ಕೆಲಸಗಳು ನೇರವಾಗಿ ಈ ಡೇಟಾದೊಂದಿಗೆ ನಡೆಯುತ್ತದೆ. ವರ್ಚುವಲ್ ಮೆಮೊರಿಯಲ್ಲಿರುವ ವಿಳಾಸವನ್ನು ಯಾವುದೇ ಆಫ್‌ಸೆಟ್‌ಗಳಿಲ್ಲದೆ ವರ್ಚುವಲ್ ವಿಳಾಸ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ, ಸಂಕ್ಷಿಪ್ತವಾಗಿ VA. ಅಪ್ಲಿಕೇಶನ್ ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಆದ್ಯತೆಯ ವಿಳಾಸ, ಕ್ಷೇತ್ರದಲ್ಲಿ ಹೊಂದಿಸಲಾಗಿದೆ ಇಮೇಜ್ ಬೇಸ್. ಇದು ವರ್ಚುವಲ್ ಮೆಮೊರಿಯಲ್ಲಿ ಅಪ್ಲಿಕೇಶನ್ ಪ್ರದೇಶವು ಪ್ರಾರಂಭವಾಗುವ ಬಿಂದುವಿನಂತಿದೆ. ಮತ್ತು RVA (ಸಾಪೇಕ್ಷ ವರ್ಚುವಲ್ ವಿಳಾಸ) ಆಫ್‌ಸೆಟ್‌ಗಳನ್ನು ಈ ಹಂತಕ್ಕೆ ಸಂಬಂಧಿಸಿದಂತೆ ಅಳೆಯಲಾಗುತ್ತದೆ. ಅಂದರೆ, VA = ಇಮೇಜ್ ಬೇಸ್+ ಆರ್ವಿಎ; ಇಮೇಜ್ ಬೇಸ್ನಾವು ಯಾವಾಗಲೂ ತಿಳಿದಿರುತ್ತೇವೆ ಮತ್ತು ನಮ್ಮ ವಿಲೇವಾರಿ VA ಅಥವಾ RVA ಅನ್ನು ಹೊಂದಿದ್ದೇವೆ, ನಾವು ಒಂದನ್ನು ಇನ್ನೊಂದರ ಮೂಲಕ ವ್ಯಕ್ತಪಡಿಸಬಹುದು.

ಅವರು ಇಲ್ಲಿಗೆ ಒಗ್ಗಿಕೊಂಡಿರುವಂತೆ ತೋರುತ್ತದೆ. ಆದರೆ ಇದು ವರ್ಚುವಲ್ ಮೆಮೊರಿ! ಮತ್ತು ನಾವು ಭೌತಿಕದಲ್ಲಿದ್ದೇವೆ. ಈಗ ನಮಗೆ ವರ್ಚುವಲ್ ಮೆಮೊರಿಯು ನಾವು ಊಹಿಸಬಹುದಾದ ಇತರ ಗೆಲಕ್ಸಿಗಳಿಗೆ ಪ್ರವಾಸದಂತಿದೆ. ಆದ್ದರಿಂದ ನಾವು ಈ ಕ್ಷಣದಲ್ಲಿ ವರ್ಚುವಲ್ ಮೆಮೊರಿಗೆ ಬರಲು ಸಾಧ್ಯವಿಲ್ಲ, ಆದರೆ ಅಲ್ಲಿ ಏನಿದೆ ಎಂಬುದನ್ನು ನಾವು ಕಂಡುಹಿಡಿಯಬಹುದು, ಏಕೆಂದರೆ ಅದನ್ನು ನಮ್ಮ ಫೈಲ್‌ನಿಂದ ತೆಗೆದುಕೊಳ್ಳಲಾಗಿದೆ.

ಜೋಡಣೆ


ವರ್ಚುವಲ್‌ಗೆ ಅಪ್‌ಲೋಡ್ ಮಾಡುವುದನ್ನು ಸರಿಯಾಗಿ ಪ್ರತಿನಿಧಿಸಲು. ಮೆಮೊರಿ, ಜೋಡಣೆಯಂತಹ ಕಾರ್ಯವಿಧಾನವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಅವಶ್ಯಕ. ಮೊದಲಿಗೆ, ವಿಭಾಗಗಳನ್ನು ಮೆಮೊರಿಗೆ ಹೇಗೆ ಪೇಜ್ ಮಾಡಲಾಗಿದೆ ಎಂಬುದರ ರೇಖಾಚಿತ್ರವನ್ನು ನೋಡೋಣ.

ನೀವು ನೋಡುವಂತೆ, ವಿಭಾಗವು ಅದರ ಗಾತ್ರಕ್ಕೆ ಅನುಗುಣವಾಗಿ ಮೆಮೊರಿಗೆ ಲೋಡ್ ಆಗುವುದಿಲ್ಲ. ಇಲ್ಲಿಯೇ ಜೋಡಣೆಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಇದು ಮೆಮೊರಿಯಲ್ಲಿನ ವಿಭಾಗದ ಗಾತ್ರದ ಬಹುಸಂಖ್ಯೆಯ ಮೌಲ್ಯವಾಗಿದೆ. ನಾವು ರೇಖಾಚಿತ್ರವನ್ನು ನೋಡಿದರೆ, ವಿಭಾಗದ ಗಾತ್ರವು 0x28 ಮತ್ತು ವಿಭಾಗದ ಗಾತ್ರವು 0x50 ಎಂದು ನಾವು ನೋಡುತ್ತೇವೆ. ಇದು ಜೋಡಣೆಯ ಗಾತ್ರದಿಂದಾಗಿ. 0x28 0x50 ಅನ್ನು "ತಲುಪುವುದಿಲ್ಲ" ಮತ್ತು ಇದರ ಪರಿಣಾಮವಾಗಿ, ವಿಭಾಗವನ್ನು ಇಳಿಸಲಾಗುತ್ತದೆ ಮತ್ತು 0x50-0x28 ಗಾತ್ರದಲ್ಲಿ ಉಳಿದಿರುವ ಜಾಗವನ್ನು ಶೂನ್ಯಗೊಳಿಸಲಾಗುತ್ತದೆ. ಮತ್ತು ವಿಭಾಗದ ಗಾತ್ರವಾಗಿದ್ದರೆ ದೊಡ್ಡ ಗಾತ್ರಜೋಡಣೆ, ನಂತರ ಏನು? ಉದಾಹರಣೆಗೆ ವಿಭಾಗದ ಗಾತ್ರ= 0x78, a ವಿಭಾಗ ಜೋಡಣೆ= 0x50, ಅಂದರೆ. ಬದಲಾಗದೆ ಉಳಿಯಿತು. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ವಿಭಾಗವು ಮೆಮೊರಿಯಲ್ಲಿ 0xA0 (0xA0 = 0x28 * 0x04) ಬೈಟ್‌ಗಳನ್ನು ಆಕ್ರಮಿಸುತ್ತದೆ. ಅಂದರೆ, ಬಹುಸಂಖ್ಯೆಯ ಮೌಲ್ಯ ವಿಭಾಗ ಜೋಡಣೆಮತ್ತು ಸಂಪೂರ್ಣವಾಗಿ ಆವರಿಸುತ್ತದೆ ವಿಭಾಗದ ಗಾತ್ರ. ಫೈಲ್ನಲ್ಲಿನ ವಿಭಾಗಗಳನ್ನು ಒಂದೇ ರೀತಿಯಲ್ಲಿ ಜೋಡಿಸಲಾಗಿದೆ ಎಂದು ಗಮನಿಸಬೇಕು, ಗಾತ್ರದಿಂದ ಮಾತ್ರ ಫೈಲ್ ಜೋಡಣೆ. ಅಗತ್ಯ ನೆಲೆಯನ್ನು ಪಡೆದ ನಂತರ, RVA ನಿಂದ RAW ಗೆ ಹೇಗೆ ಪರಿವರ್ತಿಸುವುದು ಎಂದು ನಾವು ಲೆಕ್ಕಾಚಾರ ಮಾಡಬಹುದು.

"ಇದು ಬಯಲು ಪ್ರದೇಶವಲ್ಲ, ಇಲ್ಲಿನ ಹವಾಮಾನ ವಿಭಿನ್ನವಾಗಿದೆ."
(ವಿ.ಎಸ್. ವೈಸೊಟ್ಸ್ಕಿ)

ಸ್ವಲ್ಪ ಅಂಕಗಣಿತದ ಪಾಠ


ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು, ಪ್ರೋಗ್ರಾಂನ ಕೆಲವು ಭಾಗವನ್ನು ಪ್ರೊಸೆಸರ್ನ ವಿಳಾಸದ ಜಾಗಕ್ಕೆ ಕಳುಹಿಸಬೇಕು. ವಿಳಾಸ ಸ್ಥಳವು ಪ್ರೊಸೆಸರ್ ಮೂಲಕ ಭೌತಿಕವಾಗಿ ತಿಳಿಸಲಾದ ಡೇಟಾದ ಪ್ರಮಾಣವಾಗಿದೆ. RAM. ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಇಳಿಸಿದ ವಿಳಾಸ ಜಾಗದಲ್ಲಿ "ತುಂಡು" ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ ವಾಸ್ತವಿಕವಾಗಿ(ವರ್ಚುವಲ್ ಚಿತ್ರ). ಚಿತ್ರವನ್ನು ಬೇಸ್ ಡೌನ್‌ಲೋಡ್ ವಿಳಾಸ (ಇಮೇಜ್ ಬೇಸ್) ಮತ್ತು ಗಾತ್ರ (ಇಮೇಜ್ ಗಾತ್ರ) ಮೂಲಕ ನಿರೂಪಿಸಲಾಗಿದೆ. ಆದ್ದರಿಂದ VA (ವರ್ಚುವಲ್ ವಿಳಾಸ) ಎಂಬುದು ವರ್ಚುವಲ್ ಮೆಮೊರಿಯ ಪ್ರಾರಂಭಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ವಿಳಾಸವಾಗಿದೆ ಮತ್ತು RVA (ಸಾಪೇಕ್ಷ ವರ್ಚುವಲ್ ವಿಳಾಸ) ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಇಳಿಸಿದ ಸ್ಥಳಕ್ಕೆ ಸಂಬಂಧಿಸಿದೆ. ಅಪ್ಲಿಕೇಶನ್‌ನ ಮೂಲ ಡೌನ್‌ಲೋಡ್ ವಿಳಾಸವನ್ನು ಕಂಡುಹಿಡಿಯುವುದು ಹೇಗೆ? ಈ ಉದ್ದೇಶಕ್ಕಾಗಿ ಎಂಬ ಐಚ್ಛಿಕ ಹೆಡರ್‌ನಲ್ಲಿ ಪ್ರತ್ಯೇಕ ಕ್ಷೇತ್ರವಿದೆ ಇಮೇಜ್ ಬೇಸ್. ನಿಮ್ಮ ಸ್ಮರಣೆಯನ್ನು ರಿಫ್ರೆಶ್ ಮಾಡಲು ಇದು ಸ್ವಲ್ಪ ಮುನ್ನುಡಿಯಾಗಿದೆ. ಈಗ ವಿಭಿನ್ನ ವಿಳಾಸಗಳ ಸ್ಕೀಮ್ಯಾಟಿಕ್ ಪ್ರಾತಿನಿಧ್ಯವನ್ನು ನೋಡೋಣ:

ಹಾಗಾದರೆ ಫೈಲ್‌ನಿಂದ ಮಾಹಿತಿಯನ್ನು ವರ್ಚುವಲ್ ಮೆಮೊರಿಗೆ ಡಂಪ್ ಮಾಡದೆಯೇ ನೀವು ಇನ್ನೂ ಹೇಗೆ ಓದಬಹುದು? ಇದನ್ನು ಮಾಡಲು, ನೀವು ವಿಳಾಸಗಳನ್ನು RAW ಸ್ವರೂಪಕ್ಕೆ ಪರಿವರ್ತಿಸಬೇಕು. ನಂತರ ನಾವು ಫೈಲ್‌ನೊಳಗೆ ನಮಗೆ ಅಗತ್ಯವಿರುವ ಪ್ರದೇಶಕ್ಕೆ ಹೆಜ್ಜೆ ಹಾಕಬಹುದು ಮತ್ತು ಅಗತ್ಯ ಡೇಟಾವನ್ನು ಓದಬಹುದು. RVA ಎಂಬುದು ವರ್ಚುವಲ್ ಮೆಮೊರಿ ವಿಳಾಸವಾಗಿದ್ದು, ಫೈಲ್‌ನಿಂದ ಡೇಟಾವನ್ನು ಯೋಜಿಸಲಾಗಿದೆ, ನಾವು ರಿವರ್ಸ್ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಮಾಡಬಹುದು. ಇದನ್ನು ಮಾಡಲು ನಮಗೆ ಒಂಬತ್ತು ಹದಿನಾರು ಸರಳ ಅಂಕಗಣಿತದ ಅಗತ್ಯವಿದೆ. ಇಲ್ಲಿ ಕೆಲವು ಸೂತ್ರಗಳಿವೆ:

VA = ಇಮೇಜ್ ಬೇಸ್ + RVA; RAW = RVA - sectionRVA + rawSection; // rawSection - ಫೈಲ್‌ನ ಆರಂಭದಿಂದ ವಿಭಾಗಕ್ಕೆ ಆಫ್‌ಸೆಟ್ // sectionRVA - ವಿಭಾಗದ RVA (ಈ ಕ್ಷೇತ್ರವನ್ನು ವಿಭಾಗದ ಒಳಗೆ ಸಂಗ್ರಹಿಸಲಾಗಿದೆ)
ನೀವು ನೋಡುವಂತೆ, RAW ಅನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಲು, RVA ಗೆ ಸೇರಿದ ವಿಭಾಗವನ್ನು ನಾವು ನಿರ್ಧರಿಸಬೇಕು. ಇದನ್ನು ಮಾಡಲು, ನೀವು ಎಲ್ಲಾ ವಿಭಾಗಗಳ ಮೂಲಕ ಹೋಗಬೇಕು ಮತ್ತು ಕೆಳಗಿನ ಷರತ್ತುಗಳನ್ನು ಪರಿಶೀಲಿಸಬೇಕು:

RVA >= ವಿಭಾಗ VitualAddress && RVA< ALIGN_UP(sectionVirtualSize, sectionAligment) // sectionAligment - выравнивание для секции. Значение можно узнать в Optional-header. // sectionVitualAddress - RVA секции - хранится непосредственно в секции // ALIGN_UP() - функция, определяющая сколько занимает секция в памяти, учитывая выравнивание
ಎಲ್ಲಾ ಒಗಟುಗಳನ್ನು ಒಟ್ಟುಗೂಡಿಸಿ, ನಾವು ಈ ಪಟ್ಟಿಯನ್ನು ಪಡೆಯುತ್ತೇವೆ:

ಟೈಪ್ಡೆಫ್ uint32_t DWORD; ಟೈಪ್ಡೆಫ್ uint16_t WORD; typedef uint8_t BYTE; ALIGN_DOWN(x, align) (x & ~(align-1)) # ALIGN_UP(x, align) ((x & (align-1))?ALIGN_DOWN(x,align)+align:x) // IMAGE_SECTION_HEADER ವಿಭಾಗಗಳು; // init array ವಿಭಾಗಗಳು int defSection(DWORD rva) (ಇದಕ್ಕಾಗಿ (int i = 0; i< numberOfSection; ++i) { DWORD start = sections[i].VirtualAddress; DWORD end = start + ALIGN_UP(sections[i].VirtualSize, sectionAligment); if(rva >= ಪ್ರಾರಂಭ && rva< end) return i; } return -1; } DWORD rvaToOff(DWORD rva) { int indexSection = defSection(rva); if(indexSection != -1) return rva - sections.VirtualAddress + sections.PointerToRawData; else return 0; }
*ನಾನು ಕೋಡ್‌ನಲ್ಲಿ ಪ್ರಕಾರದ ಘೋಷಣೆ ಅಥವಾ ರಚನೆಯ ಪ್ರಾರಂಭವನ್ನು ಸೇರಿಸಲಿಲ್ಲ, ಆದರೆ ವಿಳಾಸಗಳನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಲು ಸಹಾಯ ಮಾಡುವ ಕಾರ್ಯಗಳನ್ನು ಮಾತ್ರ ಒದಗಿಸಿದೆ. ನೀವು ನೋಡುವಂತೆ, ಕೋಡ್ ತುಂಬಾ ಸಂಕೀರ್ಣವಾಗಿಲ್ಲ. ಸ್ವಲ್ಪ ಗೊಂದಲಮಯವಾಗಿದೆ. ಡಿಸ್ಅಸೆಂಬಲರ್ ಮೂಲಕ .exe ನೊಂದಿಗೆ ಟಿಂಕರ್ ಮಾಡುವುದನ್ನು ನೀವು ಸ್ವಲ್ಪ ಹೆಚ್ಚು ಸಮಯವನ್ನು ಕಳೆದರೆ ಇದು ದೂರ ಹೋಗುತ್ತದೆ.

ಹುರ್ರೇ! ನಾವು ಅದನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಿದೆವು. ಈಗ ನಾವು ಸಂಪನ್ಮೂಲಗಳ ಭೂಮಿಗೆ ಹೋಗಬಹುದು, ಗ್ರಂಥಾಲಯಗಳನ್ನು ಆಮದು ಮತ್ತು ರಫ್ತು ಮಾಡಬಹುದು ಮತ್ತು ಸಾಮಾನ್ಯವಾಗಿ ನಮ್ಮ ಹೃದಯವು ಎಲ್ಲಿ ಬೇಕಾದರೂ ಹೋಗಬಹುದು. ಹೊಸ ರೀತಿಯ ವಿಳಾಸದೊಂದಿಗೆ ಹೇಗೆ ಕೆಲಸ ಮಾಡಬೇಕೆಂದು ನಾವು ಕಲಿತಿದ್ದೇವೆ. ಹೋಗೋಣ!

“ಕೆಟ್ಟದ್ದಲ್ಲ, ಕೆಟ್ಟದ್ದಲ್ಲ! ಆದರೂ, ಅವರು ಇಂದಿನ ಪಡಿತರವನ್ನು ಪಡೆದರು!
(ಟ್ರೆಷರ್ ಐಲ್ಯಾಂಡ್)

ರಫ್ತು ಟೇಬಲ್


ರಚನೆಯ ಮೊದಲ ಅಂಶದಲ್ಲಿ ಡೇಟಾ ಡೈರೆಕ್ಟರಿ RVA ಅನ್ನು ರಫ್ತು ಕೋಷ್ಟಕದಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗಿದೆ, ಇದನ್ನು IMAGE_EXPORT_DIRECTORY ರಚನೆಯಿಂದ ಪ್ರತಿನಿಧಿಸಲಾಗುತ್ತದೆ. ಡೈನಾಮಿಕ್ ಲೈಬ್ರರಿ (.dll) ಫೈಲ್‌ಗಳಿಗೆ ಈ ಟೇಬಲ್ ಸಾಮಾನ್ಯವಾಗಿದೆ. ರಫ್ತು ಮಾಡಿದ ಕಾರ್ಯಗಳನ್ನು ಅವುಗಳ RVA ಗೆ ಸಂಬಂಧಿಸುವುದು ಟೇಬಲ್‌ನ ಮುಖ್ಯ ಉದ್ದೇಶವಾಗಿದೆ. ವಿವರಣೆಯನ್ನು ಕಚೇರಿಯಲ್ಲಿ ಪ್ರಸ್ತುತಪಡಿಸಲಾಗಿದೆ. ವಿಶೇಷಣಗಳು:

Typedef struct _IMAGE_EXPORT_DIRECTORY ( DWORD ಗುಣಲಕ್ಷಣಗಳು; DWORD ಟೈಮ್‌ಡೇಟ್‌ಸ್ಟ್ಯಾಂಪ್; ವರ್ಡ್ ಮೇಜರ್ ಆವೃತ್ತಿ; ವರ್ಡ್ ಮೈನರ್ ಆವೃತ್ತಿ; DWORD ಹೆಸರು; DWORD ಬೇಸ್; DWORD ಸಂಖ್ಯೆ ಕಾರ್ಯಗಳು; DWORD ವಿಳಾಸದ ಸಂಖ್ಯೆ; ames;DWORD AddressOfNameOrdinals ;
ಈ ರಚನೆಯು ಮೂರು ವಿಭಿನ್ನ ಕೋಷ್ಟಕಗಳಿಗೆ ಮೂರು ಪಾಯಿಂಟರ್‌ಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. ಇದು ಹೆಸರುಗಳ (ಕಾರ್ಯಗಳು) ಕೋಷ್ಟಕವಾಗಿದೆ ( ಹೆಸರುಗಳ ವಿಳಾಸ), ಆರ್ಡಿನಲ್‌ಗಳು ( ಹೆಸರುಗಳ ಆರ್ಡಿನಲ್ಸ್ ವಿಳಾಸ), ವಿಳಾಸಗಳು ( ಕಾರ್ಯಗಳ ವಿಳಾಸ) ಹೆಸರು ಕ್ಷೇತ್ರವು ಹೆಸರಿನ RVA ಅನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ ಡೈನಾಮಿಕ್ ಲೈಬ್ರರಿ. ಆರ್ಡಿನಲ್ ಹೆಸರುಗಳ ಕೋಷ್ಟಕ ಮತ್ತು ವಿಳಾಸಗಳ ಕೋಷ್ಟಕದ ನಡುವಿನ ಮಧ್ಯವರ್ತಿಯಂತೆ, ಮತ್ತು ಇದು ಸೂಚಿಕೆಗಳ ಒಂದು ಶ್ರೇಣಿಯಾಗಿದೆ (ಸೂಚ್ಯಂಕ ಗಾತ್ರವು 2 ಬೈಟ್‌ಗಳು). ಹೆಚ್ಚಿನ ಸ್ಪಷ್ಟತೆಗಾಗಿ, ರೇಖಾಚಿತ್ರವನ್ನು ಪರಿಗಣಿಸಿ:

ಒಂದು ಉದಾಹರಣೆಯನ್ನು ನೋಡೋಣ. ಹೆಸರುಗಳ ರಚನೆಯ i-th ಅಂಶವು ಕಾರ್ಯದ ಹೆಸರನ್ನು ಸೂಚಿಸುತ್ತದೆ ಎಂದು ಹೇಳೋಣ. ನಂತರ ವಿಳಾಸ ರಚನೆಯಲ್ಲಿ i-th ಅಂಶವನ್ನು ಪ್ರವೇಶಿಸುವ ಮೂಲಕ ಈ ಕಾರ್ಯದ ವಿಳಾಸವನ್ನು ಪಡೆಯಬಹುದು. ಆ. ನಾನು ಆರ್ಡಿನಲ್.

ಗಮನ!ನೀವು ಆರ್ಡಿನಲ್‌ಗಳ ಕೋಷ್ಟಕದಲ್ಲಿನ 2 ನೇ ಅಂಶವನ್ನು ಉದಾಹರಣೆಗೆ ತೆಗೆದುಕೊಂಡರೆ, ಅದು 2 ಎಂದು ಅರ್ಥವಲ್ಲ - ಇದು ಹೆಸರುಗಳು ಮತ್ತು ವಿಳಾಸಗಳ ಕೋಷ್ಟಕಗಳಿಗೆ ಆರ್ಡಿನಲ್ ಆಗಿದೆ. ಸೂಚ್ಯಂಕವು ಆರ್ಡಿನಲ್‌ಗಳ ರಚನೆಯ ಎರಡನೇ ಅಂಶದಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿರುವ ಮೌಲ್ಯವಾಗಿದೆ.

ಹೆಸರಿನ ಕೋಷ್ಟಕಗಳಲ್ಲಿನ ಮೌಲ್ಯಗಳ ಸಂಖ್ಯೆ ( ಹೆಸರುಗಳ ಸಂಖ್ಯೆ) ಮತ್ತು ಆರ್ಡಿನಲ್‌ಗಳು ಸಮಾನವಾಗಿರುತ್ತವೆ ಮತ್ತು ಯಾವಾಗಲೂ ವಿಳಾಸ ಕೋಷ್ಟಕದಲ್ಲಿನ ಅಂಶಗಳ ಸಂಖ್ಯೆಯೊಂದಿಗೆ ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ ( ಕಾರ್ಯಗಳ ಸಂಖ್ಯೆ).

"ಅವರು ನನಗಾಗಿ ಬಂದರು. ನಿಮ್ಮ ಗಮನಕ್ಕೆ ಧನ್ಯವಾದಗಳು. ಈಗ ಅವರು ಕೊಲ್ಲುತ್ತಿರಬೇಕು!”
(ಟ್ರೆಷರ್ ಐಲ್ಯಾಂಡ್)

ಆಮದು ಟೇಬಲ್


ಆಮದು ಟೇಬಲ್ ಡೈನಾಮಿಕ್ ಲೈಬ್ರರಿಗಳನ್ನು ಬಳಸುವ ಯಾವುದೇ ಅಪ್ಲಿಕೇಶನ್‌ನ ಅವಿಭಾಜ್ಯ ಅಂಗವಾಗಿದೆ. ಡೈನಾಮಿಕ್ ಲೈಬ್ರರಿ ಕಾರ್ಯಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ ವಿಳಾಸಗಳೊಂದಿಗೆ ಕರೆಗಳನ್ನು ಪರಸ್ಪರ ಸಂಬಂಧಿಸಲು ಈ ಕೋಷ್ಟಕವು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಆಮದು ಮೂರು ಸಂಭವಿಸಬಹುದು ವಿವಿಧ ವಿಧಾನಗಳು: ಪ್ರಮಾಣಿತ, ಬೌಂಡ್ ಆಮದು ಮತ್ತು ವಿಳಂಬ ಆಮದು. ಏಕೆಂದರೆ ಆಮದು ವಿಷಯವು ಸಾಕಷ್ಟು ಬಹುಮುಖಿಯಾಗಿದೆ ಮತ್ತು ಪ್ರತ್ಯೇಕ ಲೇಖನಕ್ಕೆ ಅರ್ಹವಾಗಿದೆ, ನಾನು ಪ್ರಮಾಣಿತ ಕಾರ್ಯವಿಧಾನವನ್ನು ಮಾತ್ರ ವಿವರಿಸುತ್ತೇನೆ ಮತ್ತು ಉಳಿದವುಗಳನ್ನು ನಾನು "ಅಸ್ಥಿಪಂಜರ" ಎಂದು ಮಾತ್ರ ವಿವರಿಸುತ್ತೇನೆ.

ಪ್ರಮಾಣಿತ ಆಮದು- ವಿ ಡೇಟಾ ಡೈರೆಕ್ಟರಿಆಮದು ಕೋಷ್ಟಕವನ್ನು IMAGE_DIRECTORY_ENTRY_IMPORT(=1) ಸೂಚ್ಯಂಕ ಅಡಿಯಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗಿದೆ. ಇದು IMAGE_IMPORT_DESCRIPTOR ಪ್ರಕಾರದ ಅಂಶಗಳ ಒಂದು ಶ್ರೇಣಿಯಾಗಿದೆ. ಆಮದು ಕೋಷ್ಟಕವು ಕಾರ್ಯಗಳು/ಆರ್ಡಿನಲ್‌ಗಳ ಹೆಸರುಗಳನ್ನು (ವ್ಯೂಹದಲ್ಲಿ) ಸಂಗ್ರಹಿಸುತ್ತದೆ ಮತ್ತು ಲೋಡರ್ ಈ ಕಾರ್ಯದ ಪರಿಣಾಮಕಾರಿ ವಿಳಾಸವನ್ನು ಎಲ್ಲಿ ಬರೆಯಬೇಕು. ಈ ಕಾರ್ಯವಿಧಾನವು ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿಲ್ಲ, ಏಕೆಂದರೆ ಸ್ಪಷ್ಟವಾಗಿ ಹೇಳುವುದಾದರೆ, ಅಗತ್ಯವಿರುವ ಪ್ರತಿಯೊಂದು ಕಾರ್ಯಕ್ಕಾಗಿ ಸಂಪೂರ್ಣ ರಫ್ತು ಕೋಷ್ಟಕದ ಮೂಲಕ ಹುಡುಕಲು ಇದು ಬರುತ್ತದೆ.

ಬೌಂಡ್ ಆಮದು- ಕ್ಷೇತ್ರಗಳಲ್ಲಿ ಈ ಕೆಲಸದ ಯೋಜನೆಯೊಂದಿಗೆ (ಮೊದಲ ಅಂಶದಲ್ಲಿ ಪ್ರಮಾಣಿತ ಕೋಷ್ಟಕಆಮದು) TimeDateStamp ಮತ್ತು ForwardChain ಅನ್ನು -1 ಗೆ ಹೊಂದಿಸಲಾಗಿದೆ ಮತ್ತು ಬೈಂಡಿಂಗ್ ಮಾಹಿತಿಯನ್ನು ಕೋಶದಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ ಡೇಟಾ ಡೈರೆಕ್ಟರಿ IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT(=11) ಸೂಚ್ಯಂಕದೊಂದಿಗೆ ಅಂದರೆ, ನೀವು ಬೌಂಡ್ ಆಮದನ್ನು ಬಳಸಬೇಕಾದ ಲೋಡರ್‌ಗೆ ಇದು ಒಂದು ರೀತಿಯ ಫ್ಲ್ಯಾಗ್ ಆಗಿದೆ. ಅಲ್ಲದೆ, "ಬೌಂಡ್ ಆಮದು ಸರಪಳಿ" ತನ್ನದೇ ಆದ ರಚನೆಗಳನ್ನು ಹೊಂದಿದೆ. ಆಪರೇಟಿಂಗ್ ಅಲ್ಗಾರಿದಮ್ ಈ ಕೆಳಗಿನಂತಿರುತ್ತದೆ: ಅಪ್ಲಿಕೇಶನ್‌ನ ವರ್ಚುವಲ್ ಮೆಮೊರಿಯನ್ನು ಅನ್‌ಲೋಡ್ ಮಾಡಲಾಗಿದೆ ಅಗತ್ಯವಿರುವ ಗ್ರಂಥಾಲಯಮತ್ತು ಎಲ್ಲಾ ಅಗತ್ಯ ವಿಳಾಸಗಳನ್ನು ಸಂಕಲನ ಹಂತದಲ್ಲಿ "ಬಂಧಿಸಲಾಗಿದೆ". ಅನನುಕೂಲವೆಂದರೆ dll ಅನ್ನು ಮರುಕಂಪೈಲ್ ಮಾಡುವಾಗ, ನೀವು ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಮರುಸಂಕಲಿಸಬೇಕಾಗುತ್ತದೆ, ಏಕೆಂದರೆ ಕಾರ್ಯ ವಿಳಾಸಗಳನ್ನು ಬದಲಾಯಿಸಲಾಗುವುದು.

ಆಮದು ವಿಳಂಬ- ನಲ್ಲಿ ಈ ವಿಧಾನ.dll ಫೈಲ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಒಂದಕ್ಕೆ ಲಗತ್ತಿಸಲಾಗಿದೆ ಎಂದು ಭಾವಿಸಲಾಗಿದೆ, ಆದರೆ ಅದನ್ನು ತಕ್ಷಣವೇ ಮೆಮೊರಿಗೆ ಇಳಿಸಲಾಗುವುದಿಲ್ಲ (ಹಿಂದಿನ ಎರಡು ವಿಧಾನಗಳಂತೆ), ಆದರೆ ಅಪ್ಲಿಕೇಶನ್ ಮೊದಲು ಚಿಹ್ನೆಯನ್ನು ಪ್ರವೇಶಿಸಿದಾಗ ಮಾತ್ರ (ಇದು ಡೈನಾಮಿಕ್ ಲೈಬ್ರರಿಗಳಿಂದ ಅಂಶಗಳನ್ನು ಇಳಿಸುತ್ತದೆ ಕರೆಯಲಾಗುತ್ತದೆ). ಅಂದರೆ, ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಮೆಮೊರಿಯಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಪ್ರಕ್ರಿಯೆಯು ಡೈನಾಮಿಕ್ ಲೈಬ್ರರಿಯಿಂದ ಕಾರ್ಯವನ್ನು ಕರೆಯುವ ಹಂತವನ್ನು ತಲುಪಿದ ತಕ್ಷಣ, ವಿಶೇಷ ಹ್ಯಾಂಡ್ಲರ್ ಅನ್ನು ಕರೆಯಲಾಗುತ್ತದೆ ಅದು dll ಅನ್ನು ಲೋಡ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ಅದರ ಕಾರ್ಯಗಳ ಪರಿಣಾಮಕಾರಿ ವಿಳಾಸಗಳನ್ನು ವಿತರಿಸುತ್ತದೆ. ಮುಂದೂಡಲ್ಪಟ್ಟ ಆಮದುಗಾಗಿ, ಲೋಡರ್ ಡೇಟಾ ಡೈರೆಕ್ಟರಿಯನ್ನು ಸಂಪರ್ಕಿಸುತ್ತದೆ (ಐಟಂ ಸಂಖ್ಯೆ 15).

ಆಮದು ವಿಧಾನಗಳನ್ನು ಸ್ವಲ್ಪಮಟ್ಟಿಗೆ ಆವರಿಸಿದ ನಂತರ, ನೇರವಾಗಿ ಆಮದು ಕೋಷ್ಟಕಕ್ಕೆ ಹೋಗೋಣ.

“ಇವನು ನಾವಿಕ! ಅವನ ಬಟ್ಟೆ ನಾಟಿಕಲ್ ಆಗಿತ್ತು. - ಹೌದು, ಸರಿ? ನೀವು ಇಲ್ಲಿ ಬಿಷಪ್ ಅನ್ನು ಕಂಡುಕೊಳ್ಳುತ್ತೀರಿ ಎಂದು ನೀವು ಭಾವಿಸಿದ್ದೀರಾ?
(ಟ್ರೆಷರ್ ಐಲ್ಯಾಂಡ್ - ಜಾನ್ ಸಿಲ್ವರ್)

ಆಮದು-ವಿವರಣೆ (IMAGE_IMPORT_DESCRIPTOR)


ಆಮದು ಕೋಷ್ಟಕದ ನಿರ್ದೇಶಾಂಕಗಳನ್ನು ಕಂಡುಹಿಡಿಯಲು, ನಾವು ರಚನೆಯನ್ನು ಪ್ರವೇಶಿಸಬೇಕಾಗಿದೆ ಡೇಟಾ ಡೈರೆಕ್ಟರಿ. ಅವುಗಳೆಂದರೆ, IMAGE_DIRECTORY_ENTRY_IMPORT ಅಂಶಕ್ಕೆ (=1). ಮತ್ತು ಮೇಜಿನ RVA ವಿಳಾಸವನ್ನು ಓದಿ. ಇಲ್ಲಿ ಸಾಮಾನ್ಯ ಯೋಜನೆನೀವು ತೆಗೆದುಕೊಳ್ಳಬೇಕಾದ ಮಾರ್ಗ:

ನಂತರ ನಾವು RVA ಯಿಂದ RAW ಅನ್ನು ಪಡೆಯುತ್ತೇವೆ, ಮೇಲೆ ನೀಡಲಾದ ಸೂತ್ರಗಳಿಗೆ ಅನುಗುಣವಾಗಿ, ತದನಂತರ ಫೈಲ್ ಮೂಲಕ "ಹೆಜ್ಜೆ". ಈಗ ನಾವು IMAGE_IMPORT_DESCRIPTOR ಎಂಬ ರಚನೆಗಳ ರಚನೆಯ ಮುಂದೆ ಇದ್ದೇವೆ. ರಚನೆಯ ಅಂತ್ಯವನ್ನು "ಶೂನ್ಯ" ರಚನೆಯಿಂದ ಸೂಚಿಸಲಾಗುತ್ತದೆ.

ಟೈಪ್ಡೆಫ್ ಸ್ಟ್ರಕ್ಟ್ _IMAGE_IMPORT_DESCRIPTOR (ಯೂನಿಯನ್ (DWORD ಗುಣಲಕ್ಷಣಗಳು; DWORD OriginalFirstThunk; ) DUMMYUNIONNAME; DWORD ಟೈಮ್‌ಡೇಟ್‌ಸ್ಟ್ಯಾಂಪ್; DWORD ForwarderChain; DWORD AGEMDE_SK PORT_DESCRIPTOR;
msdn ನಲ್ಲಿ ರಚನೆಯ ವಿವರಣೆಗೆ ಲಿಂಕ್ ಅನ್ನು ಹುಡುಕಲು ನನಗೆ ಸಾಧ್ಯವಾಗಲಿಲ್ಲ, ಆದರೆ ನೀವು ಅದನ್ನು WINNT.h ಫೈಲ್‌ನಲ್ಲಿ ನೋಡಬಹುದು. ಅದನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಲು ಪ್ರಾರಂಭಿಸೋಣ.

OriginalFirstThunk: DWORD - ಆಮದು ಹೆಸರಿನ ಕೋಷ್ಟಕದ RVA (INT).
ಟೈಮ್‌ಡೇಟ್‌ಸ್ಟ್ಯಾಂಪ್: DWORD - ದಿನಾಂಕ ಮತ್ತು ಸಮಯ.
ಫಾರ್ವರ್ಡ್ ಚೈನ್: DWORD - ಮೊದಲ ಫಾರ್ವರ್ಡ್ ಮಾಡಿದ ಅಕ್ಷರದ ಸೂಚ್ಯಂಕ.
ಹೆಸರು: DWORD - ಲೈಬ್ರರಿ ಹೆಸರಿನೊಂದಿಗೆ RVA ಸ್ಟ್ರಿಂಗ್.
ಫಸ್ಟ್ ಥಂಕ್: DWORD - ಆಮದು ವಿಳಾಸ ಕೋಷ್ಟಕದ RVA (IAT).

ಇಲ್ಲಿ ಎಲ್ಲವೂ ರಫ್ತಿಗೆ ಸ್ವಲ್ಪಮಟ್ಟಿಗೆ ಹೋಲುತ್ತದೆ. ಹೆಸರುಗಳ ಕೋಷ್ಟಕ (INT) ಮತ್ತು ಅದರ ಮೇಲೆ ವಿಳಾಸಗಳ ಒಂದು ರಾಗ್ (IAT). ಗ್ರಂಥಾಲಯದ ಹೆಸರಿನ RVA ಕೂಡ. INT ಮತ್ತು IAT ಮಾತ್ರ IMAGE_THUNK_DATA ರಚನೆಗಳ ಒಂದು ಶ್ರೇಣಿಯನ್ನು ಉಲ್ಲೇಖಿಸುತ್ತದೆ. ಇದನ್ನು ಎರಡು ರೂಪಗಳಲ್ಲಿ ಪ್ರಸ್ತುತಪಡಿಸಲಾಗಿದೆ - 64 ಮತ್ತು 32 ವ್ಯವಸ್ಥೆಗಳಿಗೆ ಮತ್ತು ಕ್ಷೇತ್ರಗಳ ಗಾತ್ರದಲ್ಲಿ ಮಾತ್ರ ಭಿನ್ನವಾಗಿರುತ್ತದೆ. x86 ಅನ್ನು ಉದಾಹರಣೆಯಾಗಿ ನೋಡೋಣ:

ಟೈಪ್ಡೆಫ್ ಸ್ಟ್ರಕ್ಟ್ _IMAGE_THUNK_DATA32 (ಯೂನಿಯನ್ (DWORD ForwarderString; DWORD ಫಂಕ್ಷನ್; DWORD ಆರ್ಡಿನಲ್; DWORD AddressOfData; ) u1; ) IMAGE_THUNK_DATA32,*PIMAGE_THUNK_DATA32;
ಅದಕ್ಕೆ ಉತ್ತರಿಸುವುದು ಮುಖ್ಯ ಮುಂದಿನ ಕ್ರಮಗಳುರಚನೆಯ ಅತ್ಯಂತ ಮಹತ್ವದ ಬಿಟ್ ಅನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ. ಅದನ್ನು ಹೊಂದಿಸಿದರೆ, ಉಳಿದ ಬಿಟ್‌ಗಳು ಆಮದು ಮಾಡಲಾದ ಅಕ್ಷರದ ಸಂಖ್ಯೆಯನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತವೆ (ಸಂಖ್ಯೆಯಿಂದ ಆಮದು ಮಾಡಿ). ಇಲ್ಲದಿದ್ದರೆ (ಅತ್ಯಂತ ಮಹತ್ವದ ಬಿಟ್ ಅನ್ನು ತೆರವುಗೊಳಿಸಲಾಗಿದೆ), ಉಳಿದ ಬಿಟ್‌ಗಳು ಆಮದು ಮಾಡಲಾದ ಚಿಹ್ನೆಯ RVA ಅನ್ನು ಸೂಚಿಸುತ್ತವೆ (ಹೆಸರಿನಿಂದ ಆಮದು ಮಾಡಿಕೊಳ್ಳಿ). ನಾವು ಹೆಸರಿನಿಂದ ಆಮದು ಮಾಡಿಕೊಂಡಿದ್ದರೆ, ಪಾಯಿಂಟರ್ ವಿಳಾಸವನ್ನು ಈ ಕೆಳಗಿನ ರಚನೆಗೆ ಸಂಗ್ರಹಿಸುತ್ತದೆ:

ಟೈಪ್ಡೆಫ್ ರಚನೆ _IMAGE_IMPORT_BY_NAME (ಪದ ಸುಳಿವು; BYTE ಹೆಸರು; ) IMAGE_IMPORT_BY_NAME, *PIMAGE_IMPORT_BY_NAME;
ಇಲ್ಲಿ ಸುಳಿವುಕಾರ್ಯ ಸಂಖ್ಯೆ, ಮತ್ತು ಹೆಸರು- ಹೆಸರು.

ಇದೆಲ್ಲ ಯಾವುದಕ್ಕಾಗಿ? ಈ ಎಲ್ಲಾ ರಚನೆಗಳು, ರಚನೆಗಳು... ಸ್ಪಷ್ಟತೆಗಾಗಿ, ಇದರೊಂದಿಗೆ ಅದ್ಭುತವಾದ ರೇಖಾಚಿತ್ರವನ್ನು ಪರಿಗಣಿಸೋಣ

ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಲೋಡರ್ ಮೂಲಕ ಮೆಮೊರಿ ಮತ್ತು ನಂತರ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ. ಆಪರೇಟಿಂಗ್ ಕೋಣೆಯಲ್ಲಿ ವಿಂಡೋಸ್ ಸಿಸ್ಟಮ್ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್ಗಳು ಸಾಮಾನ್ಯವಾಗಿ ".exe" ಮತ್ತು ".dll" ವಿಸ್ತರಣೆಗಳನ್ನು ಹೊಂದಿರುತ್ತವೆ. ".exe" ವಿಸ್ತರಣೆಯು ಬಳಕೆದಾರರಿಂದ ನೇರವಾಗಿ ಪ್ರಾರಂಭಿಸಬಹುದಾದ ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ಸೂಚಿಸುತ್ತದೆ. ".dll" ವಿಸ್ತರಣೆಯು ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ಲಿಂಕ್ ಮಾಡಲಾದ ಲೈಬ್ರರಿಗಳನ್ನು ಹೊಂದಿದೆ ( ಡೈನಾಮಿಕ್ ಲಿಂಕ್ಗ್ರಂಥಾಲಯಗಳು). ಈ ಗ್ರಂಥಾಲಯಗಳು ಇತರ ಕಾರ್ಯಕ್ರಮಗಳು ಬಳಸುವ ಕಾರ್ಯಗಳನ್ನು ರಫ್ತು ಮಾಡುತ್ತವೆ.

ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಬೂಟ್ ಲೋಡರ್ ಅನ್ನು ಸರಿಯಾಗಿ ಲೋಡ್ ಮಾಡಲು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್ಮೆಮೊರಿಗೆ, ಈ ಫೈಲ್‌ನ ವಿಷಯಗಳು ಈ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಂನಲ್ಲಿ ಸ್ವೀಕರಿಸಿದ ಸ್ವರೂಪಕ್ಕೆ ಅನುಗುಣವಾಗಿರಬೇಕು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್ಗಳು. ವಿಭಿನ್ನ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಂಗಳಲ್ಲಿ ವಿವಿಧ ಸಮಯಗಳಲ್ಲಿ ಹಲವು ವಿಭಿನ್ನ ಸ್ವರೂಪಗಳು ಅಸ್ತಿತ್ವದಲ್ಲಿವೆ ಮತ್ತು ಇನ್ನೂ ಅಸ್ತಿತ್ವದಲ್ಲಿವೆ. ಈ ಅಧ್ಯಾಯದಲ್ಲಿ, ನಾವು ಪೋರ್ಟಬಲ್ ಎಕ್ಸಿಕ್ಯೂಟಬಲ್ (PE) ಸ್ವರೂಪವನ್ನು ನೋಡುತ್ತೇವೆ. ವಿಂಡೋಸ್ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಂನಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್‌ಗಳನ್ನು ಸಂಗ್ರಹಿಸಲು PE ಸ್ವರೂಪವು ಪ್ರಾಥಮಿಕ ಸ್ವರೂಪವಾಗಿದೆ. ಅಸೆಂಬ್ಲಿಗಳು. NET ಫೈಲ್‌ಗಳನ್ನು ಸಹ ಈ ಸ್ವರೂಪದಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ.

ಹೆಚ್ಚುವರಿಯಾಗಿ, ಪ್ರತಿನಿಧಿಸಲು PE ಸ್ವರೂಪವನ್ನು ಬಳಸಬಹುದು ಆಬ್ಜೆಕ್ಟ್ ಫೈಲ್‌ಗಳು. ಪ್ರೋಗ್ರಾಂನ ಪ್ರತ್ಯೇಕ ಸಂಕಲನವನ್ನು ಸಂಘಟಿಸಲು ಆಬ್ಜೆಕ್ಟ್ ಫೈಲ್ಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಪ್ರತ್ಯೇಕ ಸಂಕಲನದ ಅಂಶವೆಂದರೆ ಪ್ರೋಗ್ರಾಂನ ಭಾಗಗಳನ್ನು (ಮಾಡ್ಯೂಲ್‌ಗಳು) ಸ್ವತಂತ್ರವಾಗಿ ಆಬ್ಜೆಕ್ಟ್ ಫೈಲ್‌ಗಳಾಗಿ ಸಂಕಲಿಸಲಾಗುತ್ತದೆ, ನಂತರ ಅದನ್ನು ಲಿಂಕರ್‌ನಿಂದ ಒಂದಕ್ಕೆ ಜೋಡಿಸಲಾಗುತ್ತದೆ. ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್.

ಮತ್ತು ಈಗ - ಸ್ವಲ್ಪ ಇತಿಹಾಸ. PE ಸ್ವರೂಪವನ್ನು ವಿಂಡೋಸ್ NT ನ ಅಭಿವರ್ಧಕರು ರಚಿಸಿದ್ದಾರೆ. ಹಿಂದೆ, ವಿಂಡೋಸ್ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್‌ಗಳನ್ನು ಪ್ರತಿನಿಧಿಸಲು ಮತ್ತು ಸಂಗ್ರಹಿಸಲು ಹೊಸ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ (NE) ಮತ್ತು ಲೀನಿಯರ್ ಎಕ್ಸಿಕ್ಯೂಟಬಲ್ (LE) ಸ್ವರೂಪಗಳನ್ನು ಬಳಸಿತು. ಆಬ್ಜೆಕ್ಟ್ ಫೈಲ್‌ಗಳುಆಬ್ಜೆಕ್ಟ್ ಮಾಡ್ಯೂಲ್ ಫಾರ್ಮ್ಯಾಟ್ (OMF) ಅನ್ನು ಬಳಸಲಾಗಿದೆ. NE ಸ್ವರೂಪವನ್ನು 16-ಬಿಟ್‌ಗಾಗಿ ಉದ್ದೇಶಿಸಲಾಗಿದೆ ವಿಂಡೋಸ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು, ಮತ್ತು ಮೂಲತಃ OS/2 ಗಾಗಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾದ LE ಸ್ವರೂಪವು ಈಗಾಗಲೇ 32-ಬಿಟ್ ಆಗಿತ್ತು. ಪ್ರಶ್ನೆ ಉದ್ಭವಿಸುತ್ತದೆ: ಏಕೆ? ವಿಂಡೋಸ್ ಡೆವಲಪರ್‌ಗಳು NT ತ್ಯಜಿಸಲು ನಿರ್ಧರಿಸಿದೆ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಸ್ವರೂಪಗಳು? ಹೆಚ್ಚಿನ ತಂಡವು ಕೆಲಸ ಮಾಡಿದೆ ಎಂಬ ಅಂಶವನ್ನು ನೀವು ಗಮನಿಸಿದರೆ ಉತ್ತರವು ಸ್ಪಷ್ಟವಾಗುತ್ತದೆ ವಿಂಡೋಸ್ ರಚನೆಎನ್‌ಟಿ, ಈ ಹಿಂದೆ ಡಿಜಿಟಲ್ ಎಕ್ವಿಪ್‌ಮೆಂಟ್ ಕಾರ್ಪೊರೇಷನ್‌ನಲ್ಲಿ ಕೆಲಸ ಮಾಡುತ್ತಿದ್ದರು. ಅವರು DEC ಯಲ್ಲಿ VAX/VMS ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್‌ಗಾಗಿ ಪರಿಕರಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುತ್ತಿದ್ದರು ಮತ್ತು ಸ್ವರೂಪದಲ್ಲಿ ಪ್ರಸ್ತುತಪಡಿಸಲಾದ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್‌ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಅವರು ಈಗಾಗಲೇ ಕೌಶಲ್ಯ ಮತ್ತು ಸಿದ್ಧ ಕೋಡ್ ಅನ್ನು ಹೊಂದಿದ್ದರು. ಸಾಮಾನ್ಯ ವಸ್ತುಫೈಲ್ ಫಾರ್ಮ್ಯಾಟ್ (COFF). ಅಂತೆಯೇ, COFF ಸ್ವರೂಪವನ್ನು ಸ್ವಲ್ಪ ಮಾರ್ಪಡಿಸಿದ ರೂಪದಲ್ಲಿ ವಿಂಡೋಸ್ NT ಗೆ ವರ್ಗಾಯಿಸಲಾಯಿತು ಮತ್ತು PE ಎಂಬ ಹೆಸರನ್ನು ಪಡೆಯಿತು.

".NET ಫ್ರೇಮ್‌ವರ್ಕ್ ಗ್ಲಾಸರಿ" PE ಒಂದು ಅನುಷ್ಠಾನವಾಗಿದೆ ಎಂದು ಹೇಳುತ್ತದೆ ಮೈಕ್ರೋಸಾಫ್ಟ್ ಸ್ವರೂಪ COFF. ಅದೇ ಸಮಯದಲ್ಲಿ, PE ಒಂದು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್ ಫಾರ್ಮ್ಯಾಟ್ ಎಂದು ಹೇಳಲಾಗುತ್ತದೆ ಮತ್ತು COFF ಒಂದು ಸ್ವರೂಪವಾಗಿದೆ ಆಬ್ಜೆಕ್ಟ್ ಫೈಲ್‌ಗಳು. ಸಾಮಾನ್ಯವಾಗಿ, ನಾವು ಗೊಂದಲವನ್ನು ಗಮನಿಸಬಹುದು ಮೈಕ್ರೋಸಾಫ್ಟ್ ದಸ್ತಾವೇಜನ್ನುಸ್ವರೂಪದ ಹೆಸರಿನ ಬಗ್ಗೆ. ಕೆಲವು ಸ್ಥಳಗಳಲ್ಲಿ ಅವರು ಇದನ್ನು COFF ಎಂದು ಕರೆಯುತ್ತಾರೆ ಮತ್ತು ಇತರರು ಅದನ್ನು PE ಎಂದು ಕರೆಯುತ್ತಾರೆ. ನಿಜ, ಹೊಸ ಪಠ್ಯಗಳಲ್ಲಿ COFF ಎಂಬ ಹೆಸರನ್ನು ಕಡಿಮೆ ಮತ್ತು ಕಡಿಮೆ ಬಳಸಲಾಗುತ್ತದೆ ಎಂದು ಒಬ್ಬರು ಗಮನಿಸಬಹುದು. ಇದಲ್ಲದೆ, PE ಸ್ವರೂಪವು ನಿರಂತರವಾಗಿ ವಿಕಸನಗೊಳ್ಳುತ್ತಿದೆ. ಉದಾಹರಣೆಗೆ, ಹಲವಾರು ವರ್ಷಗಳ ಹಿಂದೆ ಮೈಕ್ರೋಸಾಫ್ಟ್ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್‌ನಲ್ಲಿ ಡೀಬಗ್ ಮಾಡುವ ಮಾಹಿತಿಯನ್ನು ಸಂಗ್ರಹಿಸುವುದನ್ನು ನಿಲ್ಲಿಸಿತು ಮತ್ತು ಆದ್ದರಿಂದ ಈಗ COFF ಸ್ವರೂಪದ ರಚನೆಗಳಲ್ಲಿನ ಅನೇಕ ಕ್ಷೇತ್ರಗಳನ್ನು ಸರಳವಾಗಿ ಬಳಸಲಾಗುವುದಿಲ್ಲ. ಹೆಚ್ಚುವರಿಯಾಗಿ, COFF ಸ್ವರೂಪವು 32-ಬಿಟ್, ಮತ್ತು ಇತ್ತೀಚಿನ ಆವೃತ್ತಿ PE ಸ್ವರೂಪವನ್ನು (PE32+ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ) 64-ಬಿಟ್ ಹಾರ್ಡ್‌ವೇರ್ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳಲ್ಲಿ ಬಳಸಬಹುದು. ಆದ್ದರಿಂದ, ಸ್ಪಷ್ಟವಾಗಿ, COFF ಹೆಸರನ್ನು ಇನ್ನು ಮುಂದೆ ಬಳಸಲಾಗುವುದಿಲ್ಲ ಎಂಬ ಹಂತಕ್ಕೆ ವಿಷಯಗಳು ಚಲಿಸುತ್ತಿವೆ.

ಲೆಗಸಿ NE ಮತ್ತು LE ಸ್ವರೂಪಗಳಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್‌ಗಳು ಇನ್ನೂ ವಿಂಡೋಸ್‌ನಿಂದ ಬೆಂಬಲಿತವಾಗಿದೆ ಎಂಬುದನ್ನು ಗಮನಿಸುವುದು ಆಸಕ್ತಿದಾಯಕವಾಗಿದೆ. NE ಸ್ವರೂಪದಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್‌ಗಳನ್ನು NTVDM (NT ವರ್ಚುವಲ್ DOS ಯಂತ್ರ) ಅಡಿಯಲ್ಲಿ ಚಲಾಯಿಸಬಹುದು ಮತ್ತು LE ಸ್ವರೂಪವನ್ನು ವರ್ಚುವಲ್ ಸಾಧನ ಡ್ರೈವರ್‌ಗಳಿಗಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ (

ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್ ಸ್ವರೂಪಗಳು

ಪ್ರಕ್ರಿಯೆಯ ವರ್ಚುವಲ್ ಮೆಮೊರಿ ಹಲವಾರು ಒಳಗೊಂಡಿದೆ ವಿಭಾಗಗಳುಅಥವಾ ಪ್ರದೇಶಗಳುಸ್ಮರಣೆ. ಮೆಮೊರಿಯಲ್ಲಿನ ವಿಭಾಗಗಳ ಗಾತ್ರ, ವಿಷಯಗಳು ಮತ್ತು ಸ್ಥಳವನ್ನು ಪ್ರೋಗ್ರಾಂ ಸ್ವತಃ ನಿರ್ಧರಿಸುತ್ತದೆ, ಉದಾಹರಣೆಗೆ, ಲೈಬ್ರರಿಗಳ ಬಳಕೆ, ಕೋಡ್ ಮತ್ತು ಡೇಟಾದ ಗಾತ್ರ ಮತ್ತು ಈ ಪ್ರೋಗ್ರಾಂನ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್‌ನ ಸ್ವರೂಪ. ಹೆಚ್ಚಿನ ಆಧುನಿಕ UNIX ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್‌ಗಳು ಎರಡನ್ನು ಬಳಸುತ್ತವೆ ಪ್ರಮಾಣಿತ ಸ್ವರೂಪಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್‌ಗಳು - COFF (ಸಾಮಾನ್ಯ ವಸ್ತುವಿನ ಫೈಲ್ ಫಾರ್ಮ್ಯಾಟ್) ಮತ್ತು ELF (ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಮತ್ತು ಲಿಂಕ್ ಮಾಡುವ ಸ್ವರೂಪ).

ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್ ಫಾರ್ಮ್ಯಾಟ್‌ಗಳ ವಿವರಣೆಯು ಅನಗತ್ಯವಾಗಿ ಕಾಣಿಸಬಹುದು, ಆದರೆ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಕರ್ನಲ್‌ನ ಮೂಲಭೂತ ಕಾರ್ಯವನ್ನು ವಿವರಿಸಲು ಅವುಗಳ ತಿಳುವಳಿಕೆ ಅಗತ್ಯ. ನಿರ್ದಿಷ್ಟವಾಗಿ ಹೇಳುವುದಾದರೆ, COFF ಮತ್ತು ELF ಸ್ವರೂಪಗಳ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್‌ಗಳಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾದ ಮಾಹಿತಿಯು ಅಪ್ಲಿಕೇಶನ್ ಮತ್ತು ಒಟ್ಟಾರೆಯಾಗಿ ಸಿಸ್ಟಮ್‌ನ ಕಾರ್ಯಾಚರಣೆಗೆ ಬಹಳ ಮುಖ್ಯವಾದ ಹಲವಾರು ಪ್ರಶ್ನೆಗಳಿಗೆ ಉತ್ತರಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ:

ಪ್ರೋಗ್ರಾಂನ ಯಾವ ಭಾಗಗಳನ್ನು ಮೆಮೊರಿಗೆ ಲೋಡ್ ಮಾಡಬೇಕು?

ಪ್ರಾರಂಭಿಸದ ಡೇಟಾಕ್ಕಾಗಿ ಪ್ರದೇಶವನ್ನು ಹೇಗೆ ರಚಿಸಲಾಗಿದೆ?

ಪ್ರಕ್ರಿಯೆಯ ಯಾವ ಭಾಗಗಳನ್ನು ಸ್ವಾಪ್ ಡಿಸ್ಕ್ ಪ್ರದೇಶದಲ್ಲಿ ಸಂಗ್ರಹಿಸಬೇಕು ( ವಿಶೇಷ ಪ್ರದೇಶ ಡಿಸ್ಕ್ ಜಾಗ, ಪ್ರಕ್ರಿಯೆಯ ವಿಳಾಸ ಸ್ಥಳದ ತುಣುಕುಗಳ ತಾತ್ಕಾಲಿಕ ಸಂಗ್ರಹಣೆಗಾಗಿ ಉದ್ದೇಶಿಸಲಾಗಿದೆ), ಉದಾಹರಣೆಗೆ, ಪುಟಗಳನ್ನು ಬದಲಾಯಿಸುವಾಗ, ಮತ್ತು ಅಗತ್ಯವಿದ್ದರೆ ಫೈಲ್‌ನಿಂದ ಯಾವುದನ್ನು ಓದಬಹುದು ಮತ್ತು ಹೀಗಾಗಿ ಉಳಿಸುವ ಅಗತ್ಯವಿಲ್ಲವೇ?

ಮೆಮೊರಿಯಲ್ಲಿ ಪ್ರೋಗ್ರಾಂ ಸೂಚನೆಗಳು ಮತ್ತು ಡೇಟಾ ಎಲ್ಲಿದೆ?

ಕಾರ್ಯಕ್ರಮವನ್ನು ನಡೆಸಲು ಯಾವ ಗ್ರಂಥಾಲಯಗಳು ಬೇಕು?

ಡಿಸ್ಕ್‌ನಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್, ಮೆಮೊರಿಯಲ್ಲಿರುವ ಪ್ರೋಗ್ರಾಂ ಇಮೇಜ್ ಮತ್ತು ಡಿಸ್ಕ್ ಸ್ವಾಪ್ ಪ್ರದೇಶವು ಹೇಗೆ ಸಂಬಂಧಿಸಿದೆ?

ಅಂಜೂರದಲ್ಲಿ. 2.3 ನೀಡಲಾಗಿದೆ ಮೂಲ ರಚನೆಕ್ರಮವಾಗಿ COFF ಮತ್ತು ELF ಸ್ವರೂಪಗಳಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್‌ಗಳಿಂದ ಲೋಡ್ ಮಾಡಲಾದ ಪ್ರಕ್ರಿಯೆಗಳಿಗೆ ಮೆಮೊರಿ. ವಿಭಾಗಗಳ ವಿನ್ಯಾಸವು ಎರಡು ಸ್ವರೂಪಗಳ ನಡುವೆ ಭಿನ್ನವಾಗಿದ್ದರೂ, ಮೂಲ ಘಟಕಗಳು ಒಂದೇ ಆಗಿರುತ್ತವೆ. ಎರಡೂ ಪ್ರಕ್ರಿಯೆಗಳು ಕೋಡ್ (ಪಠ್ಯ), ಡೇಟಾ ಮತ್ತು ಸ್ಟಾಕ್ ವಿಭಾಗಗಳನ್ನು ಹೊಂದಿವೆ. ಚಿತ್ರದಿಂದ ನೀವು ನೋಡುವಂತೆ, ಡೇಟಾ ವಿಭಾಗಗಳ ಗಾತ್ರ ಮತ್ತು ಸ್ಟಾಕ್ ಬದಲಾಗಬಹುದು, ಮತ್ತು ಈ ಬದಲಾವಣೆಯ ದಿಕ್ಕನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್ನ ಸ್ವರೂಪದಿಂದ ನಿರ್ಧರಿಸಲಾಗುತ್ತದೆ. ಸ್ಟಾಕ್ ಗಾತ್ರವು ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್‌ನಿಂದ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಬದಲಾಗುತ್ತದೆ, ಆದರೆ ಡೇಟಾ ವಿಭಾಗದ ಗಾತ್ರವನ್ನು ಅಪ್ಲಿಕೇಶನ್‌ನಿಂದ ನಿಯಂತ್ರಿಸಲಾಗುತ್ತದೆ. ನಾವು ಈ ಅಧ್ಯಾಯದಲ್ಲಿ ನಂತರ "ಮೆಮೊರಿ ಅಲೊಕೇಶನ್" ವಿಭಾಗದಲ್ಲಿ ಈ ಸಮಸ್ಯೆಗಳನ್ನು ವಿವರವಾಗಿ ಚರ್ಚಿಸುತ್ತೇವೆ.

ಅಕ್ಕಿ. 2.3. COFF ಮತ್ತು ELF ಸ್ವರೂಪಗಳಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಪ್ರೋಗ್ರಾಂ ಚಿತ್ರಗಳು

ಡೇಟಾ ವಿಭಾಗವು ಪ್ರಾರಂಭಿಕ ಡೇಟಾವನ್ನು ಒಳಗೊಂಡಿದೆ, ಇದನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್‌ನ ಅನುಗುಣವಾದ ವಿಭಾಗಗಳಿಂದ ಮೆಮೊರಿಗೆ ನಕಲಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಪ್ರಕ್ರಿಯೆಯು ಕಾರ್ಯಗತಗೊಳ್ಳುವ ಮೊದಲು ಸೊನ್ನೆಗಳಿಂದ ತುಂಬಿದ ಅನ್ಇನಿಶಿಯಲೈಸ್ಡ್ ಡೇಟಾ. ಪ್ರಾರಂಭಿಸದ ಡೇಟಾವನ್ನು ಸಾಮಾನ್ಯವಾಗಿ BSS ವಿಭಾಗ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ.

ಫೋಟೋಶಾಪ್ CS2 ಮತ್ತು ಡಿಜಿಟಲ್ ಫೋಟೋಗ್ರಫಿ (ಟ್ಯುಟೋರಿಯಲ್) ಪುಸ್ತಕದಿಂದ. ಅಧ್ಯಾಯಗಳು 1-9 ಲೇಖಕ ಸೊಲೊನಿಟ್ಸಿನ್ ಯೂರಿ

ಬಳಕೆದಾರರ ಪುಸ್ತಕಕ್ಕಾಗಿ Linux ನಿಂದ ಲೇಖಕ ಕೊಸ್ಟ್ರೋಮಿನ್ ವಿಕ್ಟರ್ ಅಲೆಕ್ಸೆವಿಚ್

11.4.2. ಫಾಂಟ್ ಫೈಲ್ ಫಾರ್ಮ್ಯಾಟ್‌ಗಳು ಇತ್ತೀಚಿನ ದಿನಗಳಲ್ಲಿ, ಅಕ್ಷರಶಃ ಪ್ರತಿ ಗ್ರಾಫಿಕ್ ಸಂಪಾದಕಅಥವಾ ಪಬ್ಲಿಷಿಂಗ್ ಪ್ರೋಗ್ರಾಂ ತನ್ನದೇ ಆದ ಫಾಂಟ್ ಫೈಲ್ ಫಾರ್ಮ್ಯಾಟ್ ಅನ್ನು ಬಳಸಿದೆ ಮತ್ತು ನಿಯಮದಂತೆ, ಕೆಲವು ಪ್ರೋಗ್ರಾಂಗಳು ಇತರರ ಸ್ವರೂಪಗಳನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ. ಕಾಲಾನಂತರದಲ್ಲಿ, ವಾಸ್ತವವಾಗಿ ಬಳಸಿದ ಸ್ವರೂಪಗಳ ಸಂಖ್ಯೆ

ಪುಸ್ತಕದಿಂದ ಅಡೋಬ್ ಫೋಟೋಶಾಪ್ CS3 ಲೇಖಕ ಜಾವ್ಗೊರೊಡ್ನಿ ವ್ಲಾಡಿಮಿರ್

ಅಧ್ಯಾಯ 4 ಸ್ವರೂಪಗಳು ಗ್ರಾಫಿಕ್ ಫೈಲ್‌ಗಳುರಾಸ್ಟರ್ ಗ್ರಾಫಿಕ್ಸ್ ಅನ್ನು ಸಂಗ್ರಹಿಸಲು ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ವಿವಿಧ ಫೈಲ್ ಫಾರ್ಮ್ಯಾಟ್‌ಗಳಿವೆ. ಅವುಗಳಲ್ಲಿ ಯಾವುದೇ ನಿರ್ದಿಷ್ಟ ಪ್ರೋಗ್ರಾಂಗೆ ಸಂಬಂಧಿಸದ ಸಾರ್ವತ್ರಿಕ ಸ್ವರೂಪಗಳು ಮತ್ತು ನಿರ್ದಿಷ್ಟ "ವೈಯಕ್ತಿಕ" ರಾಸ್ಟರ್ ಸ್ವರೂಪಗಳು ಇವೆ.

Adobe InDesign CS3 ಪುಸ್ತಕದಿಂದ ಲೇಖಕ ಜಾವ್ಗೊರೊಡ್ನಿ ವ್ಲಾಡಿಮಿರ್

ಗ್ರಾಫಿಕ್ ಫೈಲ್ ಫಾರ್ಮ್ಯಾಟ್‌ಗಳು Adobe InDesign ವಿವಿಧ ಸ್ವರೂಪಗಳ ಗ್ರಾಫಿಕ್ ಫೈಲ್‌ಗಳನ್ನು ಆಮದು ಮಾಡಿಕೊಳ್ಳಬಹುದು - ಅತ್ಯಂತ ಸಾಮಾನ್ಯವಾದ AI, BMP, EPS, GIF, JPEG, PDF, PSD, TIFF, ಮತ್ತು ಹೆಚ್ಚು ಅಪರೂಪದ DCS, EMF, PCX, PICT, PNG, SCT (ScitexCT) ), WMF.All ಗ್ರಾಫಿಕ್ ಸ್ವರೂಪಗಳುಮತ್ತು ಫೈಲ್‌ಗಳನ್ನು ಅವು ಮಾಹಿತಿಯ ಪ್ರಕಾರಕ್ಕೆ ಅನುಗುಣವಾಗಿ ಪ್ರತ್ಯೇಕಿಸಲಾಗುತ್ತದೆ

ಡಾ. ಬಾಬ್ ಅವರಿಂದ ಇಂಟರ್ನೆಟ್ ಪರಿಹಾರಗಳು ಪುಸ್ತಕದಿಂದ ಸ್ವಾರ್ಟ್ ಬಾಬ್ ಅವರಿಂದ

1. ಇಂಟರ್ನೆಟ್ ಫೈಲ್ ಎನ್ಕೋಡಿಂಗ್ ಸ್ವರೂಪಗಳು ಇಂಟರ್ನೆಟ್ ಫೈಲ್ ಫಾರ್ಮ್ಯಾಟ್ಗಳನ್ನು ಹಲವಾರು ಗುಂಪುಗಳಾಗಿ ವಿಂಗಡಿಸಬಹುದು. ಮೊದಲನೆಯದಾಗಿ, FTP ಮೂಲಕ ಫೈಲ್ ವರ್ಗಾವಣೆ ಸ್ವರೂಪಗಳು, ಇದಕ್ಕಾಗಿ uuencode/decode ಯೋಜನೆಯನ್ನು ಬಹಳ ಹಿಂದೆಯೇ ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಯಿತು, ನಂತರ xxencode/decode ಮೂಲಕ ಬದಲಾಯಿಸಲಾಯಿತು. ನಂತರ Base64 ಮತ್ತು MIME ಪರವಾಗಿ ನಿರಾಕರಣೆಯಾಯಿತು,

ಲೇಖಕ ರೇಮಂಡ್ ಎರಿಕ್ ಸ್ಟೀಫನ್

3.1.6. ಬೈನರಿ ಫೈಲ್ ಫಾರ್ಮ್ಯಾಟ್‌ಗಳು ನಿಮ್ಮ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಂ ಸೂಕ್ಷ್ಮ ಡೇಟಾಕ್ಕಾಗಿ ಬೈನರಿ ಫಾರ್ಮ್ಯಾಟ್‌ಗಳನ್ನು ಬಳಸಿದರೆ (ಉದಾಹರಣೆಗೆ ಬಳಕೆದಾರ ಖಾತೆಗಳು), ಇದು ಮಾನವ-ಓದಬಲ್ಲ ಸಂಪ್ರದಾಯವನ್ನು ಬಳಸುವ ಸಾಧ್ಯತೆಯಿದೆ ಪಠ್ಯ ಸ್ವರೂಪಗಳುಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ರಚಿಸಲಾಗುವುದಿಲ್ಲ. ಹೆಚ್ಚಿನ ವಿವರಗಳು

ಫೋಟೋಶಾಪ್ CS3 ಪುಸ್ತಕದಿಂದ: ತರಬೇತಿ ಕೋರ್ಸ್ ಲೇಖಕ ಟಿಮೊಫೀವ್ ಸೆರ್ಗೆಯ್ ಮಿಖೈಲೋವಿಚ್

ಗ್ರಾಫಿಕ್ ಫೈಲ್ ಫಾರ್ಮ್ಯಾಟ್‌ಗಳು ಯಾವುದಾದರೂ ಗ್ರಾಫಿಕ್ ಚಿತ್ರಇದು ವೆಕ್ಟರ್ ಅಥವಾ ರಾಸ್ಟರ್ ಆಗಿರಲಿ, ಅದನ್ನು ಪ್ರತ್ಯೇಕ ಫೈಲ್‌ಗೆ ಬರೆಯುವ ಮೂಲಕ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ ಮಾತ್ರ ಸಂಗ್ರಹಿಸಬಹುದು. ಪ್ರತಿಯೊಂದು ಫೈಲ್ ಯಾವಾಗಲೂ ನಿರ್ದಿಷ್ಟ ಸ್ವರೂಪವನ್ನು ಹೊಂದಿರುತ್ತದೆ

ಯುನಿಕ್ಸ್‌ಗಾಗಿ ಆರ್ಟ್ ಆಫ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಪುಸ್ತಕದಿಂದ ಲೇಖಕ ರೇಮಂಡ್ ಎರಿಕ್ ಸ್ಟೀಫನ್

3.1.6. ಬೈನರಿ ಫೈಲ್ ಫಾರ್ಮ್ಯಾಟ್‌ಗಳು ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಂ ಸೂಕ್ಷ್ಮ ಡೇಟಾಕ್ಕಾಗಿ ಬೈನರಿ ಫಾರ್ಮ್ಯಾಟ್‌ಗಳನ್ನು ಬಳಸಿದರೆ (ಉದಾಹರಣೆಗೆ ಬಳಕೆದಾರ ಖಾತೆಗಳು), ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗೆ ಓದಬಹುದಾದ ಪಠ್ಯ ಸ್ವರೂಪಗಳನ್ನು ಬಳಸುವ ಯಾವುದೇ ಸಂಪ್ರದಾಯ ಇರುವುದಿಲ್ಲ. ಬಗ್ಗೆ ಹೆಚ್ಚಿನ ವಿವರಗಳು

ಪುಸ್ತಕದಿಂದ ನೆಟ್ವರ್ಕ್ ಉಪಕರಣಗಳುಲಿನಕ್ಸ್ ಸ್ಮಿತ್ ರೋಡೆರಿಕ್ ಡಬ್ಲ್ಯೂ ಅವರಿಂದ.

ಫಾಂಟ್ ಫೈಲ್ ಫಾರ್ಮ್ಯಾಟ್‌ಗಳು ಎರಡು ರೀತಿಯ ಫಾಂಟ್‌ಗಳಿವೆ: ಬಿಟ್‌ಮ್ಯಾಪ್ ಮತ್ತು ಔಟ್‌ಲೈನ್ ಫಾಂಟ್‌ಗಳು (ಔಟ್‌ಲೈನ್ ಫಾಂಟ್‌ಗಳನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಸ್ಕೇಲೆಬಲ್ ಫಾಂಟ್‌ಗಳು ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ). ಈ ಫಾಂಟ್ ಪ್ರಕಾರಗಳು ವಿಭಿನ್ನ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಹೊಂದಿವೆ ಮತ್ತು ವಿಭಿನ್ನ ರೀತಿಯಲ್ಲಿ ಸಂಸ್ಕರಿಸಲಾಗುತ್ತದೆ. ಹೆಚ್ಚಿನ ಫಾಂಟ್ ಸರ್ವರ್‌ಗಳನ್ನು ರನ್ ಮಾಡಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ

HTML 5, CSS 3 ಮತ್ತು ವೆಬ್ 2.0 ಪುಸ್ತಕದಿಂದ. ಆಧುನಿಕ ವೆಬ್‌ಸೈಟ್‌ಗಳ ಅಭಿವೃದ್ಧಿ. ಲೇಖಕ ಡ್ರೊನೊವ್ ವ್ಲಾಡಿಮಿರ್

HTML 5, CSS 3 ಮತ್ತು ವೆಬ್ 2.0 ಪುಸ್ತಕದಿಂದ. ಆಧುನಿಕ ವೆಬ್‌ಸೈಟ್‌ಗಳ ಅಭಿವೃದ್ಧಿ ಲೇಖಕ ಡ್ರೊನೊವ್ ವ್ಲಾಡಿಮಿರ್

ಫೈಲ್ ಫಾರ್ಮ್ಯಾಟ್‌ಗಳು ಮತ್ತು ಎನ್‌ಕೋಡಿಂಗ್ ಫಾರ್ಮ್ಯಾಟ್‌ಗಳು ಗ್ರಾಫಿಕ್ ಫೈಲ್ ಫಾರ್ಮ್ಯಾಟ್‌ಗಳಂತೆ ಅನೇಕ ಮಲ್ಟಿಮೀಡಿಯಾ ಫೈಲ್ ಫಾರ್ಮ್ಯಾಟ್‌ಗಳಿವೆ. ಇಂಟರ್ನೆಟ್ ಗ್ರಾಫಿಕ್ಸ್‌ನಂತೆ, ಎಲ್ಲಾ ವೆಬ್ ಬ್ರೌಸರ್‌ಗಳು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ ಮಲ್ಟಿಮೀಡಿಯಾ ಸ್ವರೂಪಗಳು, ಆದರೆ ಕೆಲವೇ ಕೆಲವು. (ನಾನು ಲೇಖಕರನ್ನು ಬಯಸುತ್ತೇನೆ

ಕಂಪ್ಯೂಟರ್ ಸೌಂಡ್ ಪ್ರೊಸೆಸಿಂಗ್ ಪುಸ್ತಕದಿಂದ ಲೇಖಕ ಝಗುಮೆನ್ನೋವ್ ಅಲೆಕ್ಸಾಂಡರ್ ಪೆಟ್ರೋವಿಚ್

ಆಡ್ ಲಿಬ್ ಮಾದರಿ SMP ಆಡಿಯೋ ಫೈಲ್ ಫಾರ್ಮ್ಯಾಟ್‌ಗಳು ಆಡ್ ಲಿಬ್ ಗೋಲ್ಡ್ ಸೌಂಡ್ ಕಾರ್ಡ್‌ನಿಂದ ವಾದ್ಯ ಮಾದರಿಗಳನ್ನು ಲೋಡ್ ಮಾಡಲು ಫಾರ್ಮ್ಯಾಟ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. 8/16-ಬಿಟ್ ಆಡಿಯೊ, ಮೊನೊ/ಸ್ಟಿರಿಯೊ, 4-ಬಿಟ್ ಯಮಹಾ ADPCM ಕಂಪ್ರೆಷನ್ ಅನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ. ಈ ಸ್ವರೂಪದಲ್ಲಿರುವ ಫೈಲ್‌ಗಳು ವಿಸ್ತರಣೆಯನ್ನು ಹೊಂದಿವೆ. smp.Amiga SVX ಈ ಫೈಲ್ ಪ್ರಕಾರವನ್ನು ಬಳಸಲಾಗಿದೆ

ವೈರಸ್ ಮತ್ತು ಆಂಟಿವೈರಸ್ ಅನ್ನು ರಚಿಸುವುದು ಪುಸ್ತಕದಿಂದ ಲೇಖಕ ಗುಲಿವ್ ಇಗೊರ್ ಎ.

ಅನುಬಂಧ A EXE ಫೈಲ್ ಹೆಡರ್ ಫಾರ್ಮ್ಯಾಟ್‌ಗಳು ನಿಯಮಿತ EXE ಫೈಲ್‌ನ ಶಿರೋಲೇಖ ಸ್ವರೂಪ EXE ಫೈಲ್‌ನ ಪ್ರಾರಂಭದಲ್ಲಿ EXE ಫೈಲ್ ಹೆಡರ್‌ನ ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಿದ ಭಾಗವಾಗಿದೆ (ಟೇಬಲ್ A-1) ಮುಂದೆ ದೀರ್ಘ ಪಾಯಿಂಟರ್‌ಗಳನ್ನು ಒಳಗೊಂಡಿರುವ ರಿಲೊಕೇಶನ್ ಟೇಬಲ್ ಬರುತ್ತದೆ (ಆಫ್‌ಸೆಟ್: ವಿಭಾಗ ) ಅವುಗಳ ಮೇಲೆ

ಫೋಟೋಶಾಪ್ CS4 ಪುಸ್ತಕದಿಂದ ಲೇಖಕ ಜ್ವಾಲೆವ್ಸ್ಕಿ ಆಂಡ್ರೆ ವ್ಯಾಲೆಂಟಿನೋವಿಚ್

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

ಪುಸ್ತಕದಿಂದ ಡಿಜಿಟಲ್ ಫೋಟೋಗ್ರಫಿ. ತಂತ್ರಗಳು ಮತ್ತು ಪರಿಣಾಮಗಳು ಲೇಖಕ ಗುರ್ಸ್ಕಿ ಯೂರಿ ಅನಾಟೊಲಿವಿಚ್

ಫೈಲ್ ಫಾರ್ಮ್ಯಾಟ್‌ಗಳು ಇಮೇಜ್ ಮಾಹಿತಿಯನ್ನು ಸಂಗ್ರಹಿಸಲು ಹಲವು ಮಾರ್ಗಗಳಿವೆ ಮತ್ತು ಆದ್ದರಿಂದ ಅನೇಕ ಫೈಲ್ ಫಾರ್ಮ್ಯಾಟ್‌ಗಳಿವೆ. ಗಮನ! ಡೇಟಾ ನಷ್ಟವನ್ನು ತಪ್ಪಿಸಲು, ಚಿತ್ರಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವಾಗ, ಅವುಗಳನ್ನು TIFF ಸ್ವರೂಪದಲ್ಲಿ ಅಥವಾ ಸಂಪಾದಕ ಪ್ರೋಗ್ರಾಂನ "ಸ್ಥಳೀಯ" ಸ್ವರೂಪದಲ್ಲಿ ಉಳಿಸಿ. JPEGВ

ಪುಸ್ತಕದಿಂದ ವಿಂಡೋಸ್ 10. ರಹಸ್ಯಗಳು ಮತ್ತು ಸಾಧನ ಲೇಖಕ ಅಲ್ಮಾಮೆಟೋವ್ ವ್ಲಾಡಿಮಿರ್

ಉಪನ್ಯಾಸ 3. ಫೈಲ್ ರಚನೆ

ಸಾಹಿತ್ಯ

o ಮಾಡರ್ನ್ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಂಗಳು, E. ಟನೆನ್‌ಬಾಮ್, 2002, ಸೇಂಟ್ ಪೀಟರ್ಸ್‌ಬರ್ಗ್, ಸೇಂಟ್ ಪೀಟರ್ಸ್‌ಬರ್ಗ್, 1040 pp., (djvu 10.1 MB ಯಲ್ಲಿ) ಹೆಚ್ಚಿನ ವಿವರಗಳು>>

o ನೆಟ್‌ವರ್ಕ್ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್‌ಗಳು N. A. ಆಲಿಫರ್, V. G. ಆಲಿಫರ್ (ಜಿಪ್ ಆರ್ಕೈವ್ 1.1 MB)

o ನೆಟ್‌ವರ್ಕ್ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಂಗಳು N. A. Olifer, V. G. Olifer, 2001, St. Petersburg, Peter, 544 pp., (djvu 6.3 MB ಯಲ್ಲಿ) ಹೆಚ್ಚಿನ ವಿವರಗಳು>>

ಫೈಲ್‌ಗಳು

ಮಾಹಿತಿ ಶೇಖರಣಾ ಅವಶ್ಯಕತೆಗಳು:

ದೊಡ್ಡ ಪ್ರಮಾಣದ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸುವ ಸಾಮರ್ಥ್ಯ

ಪ್ರಕ್ರಿಯೆಯು ಕೊನೆಗೊಂಡ ನಂತರ ಮಾಹಿತಿಯನ್ನು ಉಳಿಸಿಕೊಳ್ಳಬೇಕು

ಹಲವಾರು ಪ್ರಕ್ರಿಯೆಗಳು ಮಾಹಿತಿಗೆ ಏಕಕಾಲದಲ್ಲಿ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿರಬೇಕು

2.1.1 ಫೈಲ್‌ಗಳನ್ನು ಹೆಸರಿಸುವುದು

ಫೈಲ್ ಹೆಸರಿನ ಉದ್ದವು 8 (MS-DOS) ನಿಂದ 255 (Windows, LINUX) ಅಕ್ಷರಗಳನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ.

OS ಗಳು ದೊಡ್ಡ ಮತ್ತು ಸಣ್ಣ ಅಕ್ಷರಗಳ ನಡುವೆ ವ್ಯತ್ಯಾಸವನ್ನು ಗುರುತಿಸಬಹುದು. ಉದಾಹರಣೆಗೆ, MS-DOS ಗಾಗಿ WINDOWS ಮತ್ತು ವಿಂಡೋಗಳು ಒಂದೇ ಆಗಿರುತ್ತವೆ, ಆದರೆ UNIX ಗೆ ಅವು ವಿಭಿನ್ನ ಫೈಲ್ಗಳಾಗಿವೆ.

ಅನೇಕ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಂಗಳಲ್ಲಿ, ಫೈಲ್ ಹೆಸರು ಅವಧಿಯಿಂದ ಪ್ರತ್ಯೇಕಿಸಲಾದ ಎರಡು ಭಾಗಗಳನ್ನು ಒಳಗೊಂಡಿದೆ, ಉದಾಹರಣೆಗೆ windows.exe. ಡಾಟ್ ನಂತರದ ಭಾಗವನ್ನು ಕರೆಯಲಾಗುತ್ತದೆ ಫೈಲ್ ವಿಸ್ತರಣೆ. ಫೈಲ್ ಪ್ರಕಾರವನ್ನು ಪ್ರತ್ಯೇಕಿಸಲು ಸಿಸ್ಟಮ್ ಇದನ್ನು ಬಳಸುತ್ತದೆ.

MS-DOS ಗಾಗಿ ವಿಸ್ತರಣೆಯು 3 ಅಕ್ಷರಗಳಾಗಿರುತ್ತದೆ. ಇದನ್ನು ಬಳಸಿಕೊಂಡು, ಸಿಸ್ಟಮ್ ಫೈಲ್ ಪ್ರಕಾರವನ್ನು ಪ್ರತ್ಯೇಕಿಸುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದೇ ಅಥವಾ ಇಲ್ಲವೇ ಎಂಬುದನ್ನು ಗುರುತಿಸುತ್ತದೆ.

UNIX ನಲ್ಲಿ, ವಿಸ್ತರಣೆಯು 255 ಅಕ್ಷರಗಳ ಫೈಲ್ ಹೆಸರಿನ ಗಾತ್ರಕ್ಕೆ ಸೀಮಿತವಾಗಿದೆ, ಮತ್ತು UNIX ಹಲವಾರು ವಿಸ್ತರಣೆಗಳನ್ನು ಹೊಂದಬಹುದು, ಆದರೆ ವಿಸ್ತರಣೆಗಳನ್ನು ಅಪ್ಲಿಕೇಶನ್ ಪ್ರೋಗ್ರಾಂಗಳಿಂದ ಹೆಚ್ಚು ಬಳಸಲಾಗುತ್ತದೆ, OS ನಿಂದ ಅಲ್ಲ. UNIX ಫೈಲ್ ಅನ್ನು ಅದರ ವಿಸ್ತರಣೆಯ ಆಧಾರದ ಮೇಲೆ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದೇ ಅಥವಾ ಇಲ್ಲವೇ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.

2.1.2 ಫೈಲ್ ರಚನೆ

ಮೂರು ಮುಖ್ಯ ಫೈಲ್ ರಚನೆಗಳು:

1. ಬೈಟ್ ಅನುಕ್ರಮ- OS ಫೈಲ್‌ನ ವಿಷಯಗಳಲ್ಲಿ ಆಸಕ್ತಿ ಹೊಂದಿಲ್ಲ, ಅದು ಬೈಟ್‌ಗಳನ್ನು ಮಾತ್ರ ನೋಡುತ್ತದೆ. ಅಂತಹ ವ್ಯವಸ್ಥೆಯ ಮುಖ್ಯ ಪ್ರಯೋಜನವೆಂದರೆ ಅದರ ಬಳಕೆಯ ನಮ್ಯತೆ. ವಿಂಡೋಸ್ ಮತ್ತು UNIX ನಲ್ಲಿ ಬಳಸಲಾಗಿದೆ.

2. ದಾಖಲೆಗಳ ಅನುಕ್ರಮ- ಸ್ಥಿರ ಉದ್ದದ ದಾಖಲೆಗಳು (ಉದಾಹರಣೆಗೆ, ಪಂಚ್ ಕಾರ್ಡ್), ಅನುಕ್ರಮವಾಗಿ ಓದಲಾಗುತ್ತದೆ. ಈಗ ಬಳಸುತ್ತಿಲ್ಲ.

3. ಪ್ರವೇಶ ಮರ- ಪ್ರತಿ ದಾಖಲೆಯು ಕೀಲಿಯನ್ನು ಹೊಂದಿದೆ, ಕೀಲಿಯನ್ನು ಬಳಸಿಕೊಂಡು ದಾಖಲೆಗಳನ್ನು ಓದಲಾಗುತ್ತದೆ. ಅಂತಹ ವ್ಯವಸ್ಥೆಯ ಮುಖ್ಯ ಪ್ರಯೋಜನವೆಂದರೆ ಹುಡುಕಾಟ ವೇಗ. ಇನ್ನೂ ಮೇನ್‌ಫ್ರೇಮ್‌ಗಳಲ್ಲಿ ಬಳಸಲಾಗುತ್ತದೆ.

ಮೂರು ರೀತಿಯ ಫೈಲ್ ರಚನೆಗಳು.

2.1.3 ಫೈಲ್ ಪ್ರಕಾರಗಳು

ಮುಖ್ಯ ಫೈಲ್ ಪ್ರಕಾರಗಳು:

o ನಿಯಮಿತ- ಬಳಕೆದಾರರ ಮಾಹಿತಿಯನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ. ವಿಂಡೋಸ್ ಮತ್ತು UNIX ನಲ್ಲಿ ಬಳಸಲಾಗಿದೆ.

o ಕ್ಯಾಟಲಾಗ್‌ಗಳು- ಫೈಲ್ ಸಿಸ್ಟಮ್ ರಚನೆಗೆ ಬೆಂಬಲವನ್ನು ಒದಗಿಸುವ ಸಿಸ್ಟಮ್ ಫೈಲ್ಗಳು. ವಿಂಡೋಸ್ ಮತ್ತು UNIX ನಲ್ಲಿ ಬಳಸಲಾಗಿದೆ.

o ಪಾತ್ರ- ಇನ್ಪುಟ್-ಔಟ್ಪುಟ್ ಮಾಡೆಲಿಂಗ್ಗಾಗಿ. UNIX ನಲ್ಲಿ ಮಾತ್ರ ಬಳಸಲಾಗಿದೆ.

o ನಿರ್ಬಂಧಿಸಿ- ಮಾಡೆಲಿಂಗ್ ಡಿಸ್ಕ್ಗಳಿಗಾಗಿ. UNIX ನಲ್ಲಿ ಮಾತ್ರ ಬಳಸಲಾಗಿದೆ.

ಸಾಮಾನ್ಯ ಫೈಲ್‌ಗಳ ಮುಖ್ಯ ವಿಧಗಳು:

o ASCII ಫೈಲ್‌ಗಳು- ಪಠ್ಯ ತಂತಿಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ. ಪ್ರತಿಯೊಂದು ಸಾಲು ಕ್ಯಾರೇಜ್ ರಿಟರ್ನ್ (ವಿಂಡೋಸ್), ಲೈನ್ ಫೀಡ್ (UNIX) ಮತ್ತು ಎರಡರಲ್ಲೂ (MS-DOS) ಕೊನೆಗೊಳ್ಳುತ್ತದೆ. ಆದ್ದರಿಂದ, ನೀವು ವಿಂಡೋಸ್‌ನಲ್ಲಿ UNIX ನಲ್ಲಿ ಬರೆದ ಪಠ್ಯ ಫೈಲ್ ಅನ್ನು ತೆರೆದರೆ, ಎಲ್ಲಾ ಸಾಲುಗಳು ಒಂದು ದೊಡ್ಡ ಸಾಲಿನಲ್ಲಿ ವಿಲೀನಗೊಳ್ಳುತ್ತವೆ, ಆದರೆ MS-DOS ಅಡಿಯಲ್ಲಿ ಅವು ವಿಲೀನಗೊಳ್ಳುವುದಿಲ್ಲ ( ಇದು ಸಾಕಷ್ಟು ಸಾಮಾನ್ಯ ಪರಿಸ್ಥಿತಿಯಾಗಿದೆ) ASCII ಫೈಲ್‌ಗಳ ಮುಖ್ಯ ಅನುಕೂಲಗಳು:
- ಪರದೆಯ ಮೇಲೆ ಪ್ರದರ್ಶಿಸಬಹುದು ಮತ್ತು ಪರಿವರ್ತನೆ ಇಲ್ಲದೆ ಪ್ರಿಂಟರ್‌ಗೆ ಔಟ್‌ಪುಟ್ ಮಾಡಬಹುದು
- ಬಹುತೇಕ ಯಾವುದೇ ಸಂಪಾದಕರಿಂದ ಸಂಪಾದಿಸಬಹುದು

o ಬೈನರಿ ಫೈಲ್‌ಗಳು- ಇತರ ಫೈಲ್‌ಗಳು (ASCII ಅಲ್ಲದ). ನಿಯಮದಂತೆ, ಅವರು ಆಂತರಿಕ ರಚನೆಯನ್ನು ಹೊಂದಿದ್ದಾರೆ.

ಬೈನರಿ ಫೈಲ್‌ಗಳ ಮುಖ್ಯ ವಿಧಗಳು:

o ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ- ಪ್ರೋಗ್ರಾಂಗಳು, ಅವುಗಳನ್ನು ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಮೂಲಕ ಸಂಸ್ಕರಿಸಬಹುದು, ಆದರೂ ಅವುಗಳನ್ನು ಬೈಟ್‌ಗಳ ಅನುಕ್ರಮವಾಗಿ ಬರೆಯಲಾಗಿದೆ.

o ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುವುದಿಲ್ಲ- ಉಳಿದವರೆಲ್ಲರೂ.

ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಮತ್ತು ಕಾರ್ಯಗತಗೊಳಿಸದ ಫೈಲ್‌ಗಳ ಉದಾಹರಣೆಗಳು

"ಮ್ಯಾಜಿಕ್ ಸಂಖ್ಯೆ"- ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್ ಅನ್ನು ಗುರುತಿಸುವುದು.

2.1.4 ಫೈಲ್ ಪ್ರವೇಶ

ಫೈಲ್ ಪ್ರವೇಶದ ಮುಖ್ಯ ವಿಧಗಳು:

o ಸ್ಥಿರ- ಬೈಟ್‌ಗಳನ್ನು ಕ್ರಮವಾಗಿ ಓದಲಾಗುತ್ತದೆ. ಮ್ಯಾಗ್ನೆಟಿಕ್ ಟೇಪ್‌ಗಳು ಇದ್ದಾಗ ಬಳಸಲಾಗಿದೆ.

2.1.5 ಫೈಲ್ ಗುಣಲಕ್ಷಣಗಳು

ಮುಖ್ಯ ಫೈಲ್ ಗುಣಲಕ್ಷಣಗಳು:

o ರಕ್ಷಣೆ - ಯಾರು ಫೈಲ್ ಅನ್ನು ಪ್ರವೇಶಿಸಬಹುದು ಮತ್ತು ಹೇಗೆ (ಬಳಕೆದಾರರು, ಗುಂಪುಗಳು, ಓದುವುದು/ಬರೆಯುವುದು). ವಿಂಡೋಸ್ ಮತ್ತು UNIX ನಲ್ಲಿ ಬಳಸಲಾಗಿದೆ.

o ಪಾಸ್ವರ್ಡ್ - ಫೈಲ್ಗಾಗಿ ಪಾಸ್ವರ್ಡ್

o ಕ್ರಿಯೇಟರ್ - ಯಾರು ಫೈಲ್ ಅನ್ನು ರಚಿಸಿದ್ದಾರೆ

ಓ ಮಾಲೀಕರು - ಫೈಲ್‌ನ ಪ್ರಸ್ತುತ ಮಾಲೀಕರು

o ಓದಲು-ಮಾತ್ರ ಫ್ಲ್ಯಾಗ್ - 0 - ಓದಲು/ಬರೆಯಲು, 1 - ಓದಲು-ಮಾತ್ರ. ವಿಂಡೋಸ್‌ನಲ್ಲಿ ಬಳಸಲಾಗಿದೆ.

o "ಗುಪ್ತ" ಧ್ವಜ - 0 - ಗೋಚರ, 1 - ಡೈರೆಕ್ಟರಿ ಫೈಲ್‌ಗಳ ಪಟ್ಟಿಯಲ್ಲಿ ಅದೃಶ್ಯ (ಡೀಫಾಲ್ಟ್). ವಿಂಡೋಸ್‌ನಲ್ಲಿ ಬಳಸಲಾಗಿದೆ.

o ಫ್ಲಾಗ್ "ಸಿಸ್ಟಮ್" - 0 - ಸಾಮಾನ್ಯ, 1 - ಸಿಸ್ಟಮ್. ವಿಂಡೋಸ್‌ನಲ್ಲಿ ಬಳಸಲಾಗಿದೆ.

o ಫ್ಲ್ಯಾಗ್ "ಆರ್ಕೈವ್" - ಆರ್ಕೈವ್ ಮಾಡಲು ಸಿದ್ಧವಾಗಿದೆ ಅಥವಾ ಇಲ್ಲ (ಸಂಕೋಚನದೊಂದಿಗೆ ಗೊಂದಲಕ್ಕೀಡಾಗಬಾರದು). ವಿಂಡೋಸ್‌ನಲ್ಲಿ ಬಳಸಲಾಗಿದೆ.

o ಫ್ಲ್ಯಾಗ್ "ಸಂಕುಚಿತ" - ಫೈಲ್ ಅನ್ನು ಸಂಕುಚಿತಗೊಳಿಸಲಾಗಿದೆ (ಜಿಪ್ ಆರ್ಕೈವ್‌ಗಳಂತೆಯೇ). ವಿಂಡೋಸ್‌ನಲ್ಲಿ ಬಳಸಲಾಗಿದೆ.

o ಫ್ಲ್ಯಾಗ್ "ಎನ್ಕ್ರಿಪ್ಟ್" - ಎನ್ಕ್ರಿಪ್ಶನ್ ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಹಾಗೆ ಮಾಡಲು ಅನುಮತಿಯಿಲ್ಲದ ಫೈಲ್ ಅನ್ನು ಯಾರಾದರೂ ಓದಲು ಪ್ರಯತ್ನಿಸಿದರೆ, ಅವರು ಅದನ್ನು ಓದಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ವಿಂಡೋಸ್‌ನಲ್ಲಿ ಬಳಸಲಾಗಿದೆ.

o ASCII/ಬೈನರಿ ಫ್ಲ್ಯಾಗ್ - 0 - ASCII, 1 - ಬೈನರಿ

o ಯಾದೃಚ್ಛಿಕ ಪ್ರವೇಶ ಫ್ಲ್ಯಾಗ್ - 0 - ಅನುಕ್ರಮ ಮಾತ್ರ, 1 - ಯಾದೃಚ್ಛಿಕ ಪ್ರವೇಶ

o ಫ್ಲ್ಯಾಗ್ "ತಾತ್ಕಾಲಿಕ" - 0 - ಸಾಮಾನ್ಯ, 1 - ಪ್ರಕ್ರಿಯೆಯ ಕೊನೆಯಲ್ಲಿ ಫೈಲ್ ಅನ್ನು ಅಳಿಸಲು

ಫ್ಲಾಗ್ ಅನ್ನು ನಿರ್ಬಂಧಿಸುವುದು - ಫೈಲ್‌ಗೆ ಪ್ರವೇಶವನ್ನು ನಿರ್ಬಂಧಿಸುವುದು. ಅವರು ಸಂಪಾದನೆಯಲ್ಲಿ ನಿರತರಾಗಿದ್ದರೆ.

ಸೃಷ್ಟಿ ಸಮಯ - ಸೃಷ್ಟಿಯ ದಿನಾಂಕ ಮತ್ತು ಸಮಯ. UNIX ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.

o ಕೊನೆಯ ಪ್ರವೇಶ ಸಮಯ - ಕೊನೆಯ ಪ್ರವೇಶದ ದಿನಾಂಕ ಮತ್ತು ಸಮಯ

o ಕೊನೆಯ ಬದಲಾವಣೆಯ ಸಮಯ - ಕೊನೆಯ ಬದಲಾವಣೆಯ ದಿನಾಂಕ ಮತ್ತು ಸಮಯ. ವಿಂಡೋಸ್ ಮತ್ತು UNIX ನಲ್ಲಿ ಬಳಸಲಾಗಿದೆ.

o ಪ್ರಸ್ತುತ ಗಾತ್ರ - ಫೈಲ್ ಗಾತ್ರ. ವಿಂಡೋಸ್ ಮತ್ತು UNIX ನಲ್ಲಿ ಬಳಸಲಾಗಿದೆ.

2.1.6 ಫೈಲ್‌ಗಳೊಂದಿಗೆ ಕಾರ್ಯಾಚರಣೆಗಳು

ಫೈಲ್ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಮೂಲ ಸಿಸ್ಟಮ್ ಕರೆಗಳು:

o ರಚಿಸಿ - ಡೇಟಾ ಇಲ್ಲದೆ ಫೈಲ್ ಅನ್ನು ರಚಿಸುವುದು.

o ಅಳಿಸಿ - ಫೈಲ್ ಅನ್ನು ಅಳಿಸಿ.

o ತೆರೆಯಿರಿ - ಫೈಲ್ ತೆರೆಯಿರಿ.

o ಮುಚ್ಚಿ - ಫೈಲ್ ಅನ್ನು ಮುಚ್ಚುವುದು.

o ಓದಿ - ಫೈಲ್‌ನಿಂದ ಓದುವುದು, ಪ್ರಸ್ತುತ ಫೈಲ್ ಸ್ಥಾನದಿಂದ.

o ಬರೆಯಿರಿ - ಫೈಲ್‌ಗೆ ಬರೆಯಿರಿ, ಪ್ರಸ್ತುತ ಫೈಲ್ ಸ್ಥಾನಕ್ಕೆ.

o ಸೇರಿಸು - ಕಡತದ ಅಂತ್ಯಕ್ಕೆ ಸೇರಿಸುವುದು.

o ಸೀಕ್ - ಫೈಲ್ ಪಾಯಿಂಟರ್ ಅನ್ನು ಫೈಲ್‌ನಲ್ಲಿ ನಿರ್ದಿಷ್ಟ ಸ್ಥಾನಕ್ಕೆ ಹೊಂದಿಸುತ್ತದೆ.

o ಗುಣಲಕ್ಷಣಗಳನ್ನು ಪಡೆಯಿರಿ - ಫೈಲ್ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಪಡೆಯುವುದು.

o ಗುಣಲಕ್ಷಣಗಳನ್ನು ಹೊಂದಿಸಿ - ಫೈಲ್ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಹೊಂದಿಸಿ.

o ಮರುಹೆಸರಿಸು - ಫೈಲ್ ಅನ್ನು ಮರುಹೆಸರಿಸಿ.