ಆರು ತಿಂಗಳ ಅಭಿವೃದ್ಧಿಯ ನಂತರ, GNU C ಲೈಬ್ರರಿ (glibc) 2.36 ಸಿಸ್ಟಮ್ ಲೈಬ್ರರಿಯನ್ನು ಬಿಡುಗಡೆ ಮಾಡಲಾಗಿದೆ, ಇದು ISO C11 ಮತ್ತು POSIX.1-2017 ಮಾನದಂಡಗಳ ಅವಶ್ಯಕತೆಗಳನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಅನುಸರಿಸುತ್ತದೆ. ಹೊಸ ಬಿಡುಗಡೆಯು 59 ಡೆವಲಪರ್ಗಳಿಂದ ಪರಿಹಾರಗಳನ್ನು ಒಳಗೊಂಡಿದೆ.
Glibc 2.36 ನಲ್ಲಿ ಅಳವಡಿಸಲಾದ ಕೆಲವು ಸುಧಾರಣೆಗಳು ಸೇರಿವೆ:
- ಹೊಸ DT_RELR (ಸಾಪೇಕ್ಷ ಸ್ಥಳಾಂತರ) ಸ್ವರೂಪಕ್ಕೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಇದು ಹಂಚಿಕೆಯ ವಸ್ತುಗಳು ಮತ್ತು ಸ್ಥಾನ-ಸ್ವತಂತ್ರ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ (PIE) ಮೋಡ್ನಲ್ಲಿ ಲಿಂಕ್ ಮಾಡಲಾದ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದವುಗಳಲ್ಲಿನ ಸಾಪೇಕ್ಷ ಸ್ಥಳಾಂತರಗಳ ಗಾತ್ರವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ. ELF ಫೈಲ್ಗಳಲ್ಲಿ DT_RELR ಕ್ಷೇತ್ರವನ್ನು ಬಳಸುವುದಕ್ಕೆ "-z ಪ್ಯಾಕ್-ಸಾಪೇಕ್ಷ-ರಿಲೊಕ್ಸ್" ಲಿಂಕರ್ ಆಯ್ಕೆಗೆ ಬೆಂಬಲದ ಅಗತ್ಯವಿದೆ, ಇದನ್ನು ಬೈನುಟಿಲ್ಸ್ 2.38 ರಲ್ಲಿ ಪರಿಚಯಿಸಲಾಯಿತು.
- ವೇದಿಕೆಗಾಗಿ Linux pidfd_open, pidfd_getfd, ಮತ್ತು pidfd_send_signal ಕಾರ್ಯಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗಿದೆ, ಇದು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಲಾದ ಫೈಲ್ಗಳನ್ನು ಪ್ರವೇಶಿಸುವ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಹೆಚ್ಚು ನಿಖರವಾಗಿ ಗುರುತಿಸಲು PID ಮರುಬಳಕೆಯೊಂದಿಗೆ ಸಂದರ್ಭಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಸಹಾಯ ಮಾಡುವ pidfd ಕಾರ್ಯನಿರ್ವಹಣೆಗೆ ಪ್ರವೇಶವನ್ನು ಒದಗಿಸುತ್ತದೆ (pidfd ಒಂದು ನಿರ್ದಿಷ್ಟ ಪ್ರಕ್ರಿಯೆಯೊಂದಿಗೆ ಸಂಬಂಧಿಸಿದೆ ಮತ್ತು ಬದಲಾಗುವುದಿಲ್ಲ, ಆದರೆ ಈ PID ಗೆ ಸಂಬಂಧಿಸಿದ ಪ್ರಸ್ತುತ ಪ್ರಕ್ರಿಯೆಯು ಕೊನೆಗೊಂಡ ನಂತರ PID ಅನ್ನು ಮತ್ತೊಂದು ಪ್ರಕ್ರಿಯೆಯೊಂದಿಗೆ ಸಂಯೋಜಿಸಬಹುದು).
- ವೇದಿಕೆಗಾಗಿ Linux process_madvise() ಕಾರ್ಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಇದು ಒಂದು ಪ್ರಕ್ರಿಯೆಯು ಮತ್ತೊಂದು ಪ್ರಕ್ರಿಯೆಯ ಪರವಾಗಿ madvise() ಸಿಸ್ಟಮ್ ಕರೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ, pidfd ಬಳಸಿ ಗುರಿ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಗುರುತಿಸುತ್ತದೆ. ಪ್ರಕ್ರಿಯೆಯ ಮೆಮೊರಿ ನಿರ್ವಹಣೆಯನ್ನು ಅತ್ಯುತ್ತಮವಾಗಿಸಲು ಮೆಮೊರಿ ಬಳಕೆಯ ವಿವರಗಳ ಬಗ್ಗೆ ಕರ್ನಲ್ಗೆ ತಿಳಿಸಲು madvise() ಅನ್ನು ಬಳಸಬಹುದು; ಉದಾಹರಣೆಗೆ, ಹೆಚ್ಚುವರಿ ಉಚಿತ ಮೆಮೊರಿಯ ಬಿಡುಗಡೆಯನ್ನು ಪ್ರಾರಂಭಿಸಲು ಕರ್ನಲ್ ಒದಗಿಸಿದ ಮಾಹಿತಿಯನ್ನು ಬಳಸಬಹುದು. ಆಪ್ಟಿಮೈಸೇಶನ್ಗೆ ಅಗತ್ಯವಿರುವ ಮಾಹಿತಿಯು ಪ್ರಸ್ತುತ ಪ್ರಕ್ರಿಯೆಗೆ ತಿಳಿದಿಲ್ಲದ ಮತ್ತು ಪ್ರತ್ಯೇಕ ಹಿನ್ನೆಲೆ ನಿಯಂತ್ರಣ ಪ್ರಕ್ರಿಯೆಯಿಂದ ಸಂಯೋಜಿಸಲ್ಪಟ್ಟ ಸಂದರ್ಭಗಳಲ್ಲಿ ಮತ್ತೊಂದು ಪ್ರಕ್ರಿಯೆಯಿಂದ madvise() ಅನ್ನು ಕರೆಯುವುದು ಅಗತ್ಯವಾಗಬಹುದು, ಇದು ಪ್ರಕ್ರಿಯೆಗಳಿಂದ ಬಳಕೆಯಾಗದ ಮೆಮೊರಿಯ ಬಿಡುಗಡೆಯನ್ನು ಸ್ವತಂತ್ರವಾಗಿ ಪ್ರಾರಂಭಿಸಬಹುದು.
- ವೇದಿಕೆಗಾಗಿ Linux ಮುಕ್ತಾಯ ಪ್ರಕ್ರಿಯೆಯಿಂದ ಮೆಮೊರಿಯ ಬಿಡುಗಡೆಯನ್ನು ವೇಗಗೊಳಿಸಲು process_mrelease() ಕಾರ್ಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ. ಸಾಮಾನ್ಯ ಪರಿಸ್ಥಿತಿಗಳಲ್ಲಿ, ಸಂಪನ್ಮೂಲ ಬಿಡುಗಡೆ ಮತ್ತು ಪ್ರಕ್ರಿಯೆಯ ಮುಕ್ತಾಯವು ತಕ್ಷಣವೇ ಆಗುವುದಿಲ್ಲ ಮತ್ತು ವಿವಿಧ ಕಾರಣಗಳಿಗಾಗಿ ವಿಳಂಬವಾಗಬಹುದು, ಇದು oomd (systemd ನಿಂದ ಒದಗಿಸಲಾಗಿದೆ) ನಂತಹ ಬಳಕೆದಾರ-ಸ್ಥಳ ಮೆಮೊರಿ ಒತ್ತಡ ಎಚ್ಚರಿಕೆ ವ್ಯವಸ್ಥೆಗಳೊಂದಿಗೆ ಹಸ್ತಕ್ಷೇಪ ಮಾಡುತ್ತದೆ. process_mrelease ಗೆ ಕರೆ ಮಾಡುವ ಮೂಲಕ, ಅಂತಹ ವ್ಯವಸ್ಥೆಗಳು ಬಲವಂತವಾಗಿ ಮುಕ್ತಾಯಗೊಂಡ ಪ್ರಕ್ರಿಯೆಗಳಿಂದ ಮೆಮೊರಿ ಪುನಃಸ್ಥಾಪನೆಯನ್ನು ಹೆಚ್ಚು ಊಹಿಸಬಹುದಾದ ರೀತಿಯಲ್ಲಿ ಪ್ರಾರಂಭಿಸಬಹುದು.
- ಅಂತರ್ನಿರ್ಮಿತ DNS ಪರಿಹಾರಕ ಅನುಷ್ಠಾನವು ಈಗ "no-aaaa" ಆಯ್ಕೆಯನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ. ಈ ಆಯ್ಕೆಯು getaddrinfo() ನಂತಹ NSS ಕಾರ್ಯಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವಾಗ ಸೇರಿದಂತೆ, ದೋಷನಿವಾರಣೆಯನ್ನು ಸರಳಗೊಳಿಸಲು AAAA ದಾಖಲೆಗಳಿಗಾಗಿ (ಹೋಸ್ಟ್ ಹೆಸರನ್ನು ಆಧರಿಸಿದ IPv6 ವಿಳಾಸ ರೆಸಲ್ಯೂಶನ್) DNS ಪ್ರಶ್ನೆಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಈ ಆಯ್ಕೆಯು AI_PASSIVE ಫ್ಲ್ಯಾಗ್ನೊಂದಿಗೆ /etc/hosts ಅಥವಾ getaddrinfo() ಕರೆಗಳಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾದ IPv6 ವಿಳಾಸ ಬೈಂಡಿಂಗ್ಗಳ ಪ್ರಕ್ರಿಯೆಯ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುವುದಿಲ್ಲ.
- ವೇದಿಕೆಗಾಗಿ Linux fsopen, fsmount, move_mount, fsconfig, fspick, open_tree, ಮತ್ತು mount_setattr ಕಾರ್ಯಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಇದು ಮೌಂಟ್ ನೇಮ್ಸ್ಪೇಸ್ಗಳಿಗೆ ಸಂಬಂಧಿಸಿದಂತೆ ಫೈಲ್ಸಿಸ್ಟಮ್ ಆರೋಹಣವನ್ನು ನಿರ್ವಹಿಸಲು ಹೊಸ ಕರ್ನಲ್ API ಗೆ ಪ್ರವೇಶವನ್ನು ಒದಗಿಸುತ್ತದೆ. ಈ ಕಾರ್ಯಗಳು ವಿವಿಧ ಆರೋಹಣ ಹಂತಗಳ ಪ್ರತ್ಯೇಕ ಸಂಸ್ಕರಣೆಯನ್ನು ಅನುಮತಿಸುತ್ತದೆ (ಸೂಪರ್ಬ್ಲಾಕ್ ಅನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವುದು, ಫೈಲ್ಸಿಸ್ಟಮ್ ಮಾಹಿತಿಯನ್ನು ಪಡೆಯುವುದು, ಆರೋಹಿಸುವುದು ಮತ್ತು ಮೌಂಟ್ ಪಾಯಿಂಟ್ಗೆ ಲಗತ್ತಿಸುವುದು), ಇವುಗಳನ್ನು ಹಿಂದೆ ಸಾಮಾನ್ಯ ಮೌಂಟ್() ಕಾರ್ಯವನ್ನು ಬಳಸಿಕೊಂಡು ನಿರ್ವಹಿಸಲಾಗುತ್ತಿತ್ತು. ಈ ಪ್ರತ್ಯೇಕ ಕಾರ್ಯಗಳು ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾದ ಆರೋಹಣ ಸನ್ನಿವೇಶಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತವೆ ಮತ್ತು ಸೂಪರ್ಬ್ಲಾಕ್ ಅನ್ನು ಮರುಸಂರಚಿಸುವುದು, ಆಯ್ಕೆಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವುದು, ಮೌಂಟ್ ಪಾಯಿಂಟ್ ಅನ್ನು ಬದಲಾಯಿಸುವುದು ಮತ್ತು ಬೇರೆ ನೇಮ್ಸ್ಪೇಸ್ಗೆ ಚಲಿಸುವಂತಹ ಪ್ರತ್ಯೇಕ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಅನುಮತಿಸುತ್ತದೆ. ಇದಲ್ಲದೆ, ಪ್ರತ್ಯೇಕ ಸಂಸ್ಕರಣೆಯು ದೋಷ ಸಂಕೇತಗಳ ಕಾರಣಗಳನ್ನು ನಿಖರವಾಗಿ ನಿರ್ಧರಿಸಲು ಮತ್ತು ಓವರ್ಲೇಫ್ಗಳಂತಹ ಬಹುಪದರದ ಫೈಲ್ಸಿಸ್ಟಮ್ಗಳಿಗೆ ಬಹು ಮೂಲಗಳ ನಿರ್ದಿಷ್ಟತೆಯನ್ನು ಅನುಮತಿಸುತ್ತದೆ.
- ASCII ಬದಲಿಗೆ UTF-8 ಎನ್ಕೋಡಿಂಗ್ನಲ್ಲಿ ಒದಗಿಸಲಾದ ಲೊಕೇಲ್ ವ್ಯಾಖ್ಯಾನಗಳೊಂದಿಗೆ ಫೈಲ್ಗಳನ್ನು ಸಂಸ್ಕರಿಸಲು localedef ಬೆಂಬಲವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ.
- ISO C2X N2653 ಮತ್ತು C++20 P0482R6 ವಿಶೇಷಣಗಳಿಗೆ ಅನುಗುಣವಾಗಿ ಮಲ್ಟಿಬೈಟ್ ಎನ್ಕೋಡಿಂಗ್ಗಳನ್ನು mbrtoc8 ಮತ್ತು c8rtomb ಆಗಿ ಪರಿವರ್ತಿಸಲು ಕಾರ್ಯಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
- ISO C2X ಡ್ರಾಫ್ಟ್ ಸ್ಟ್ಯಾಂಡರ್ಡ್ N2653 ನಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾದ char8_t ಪ್ರಕಾರಕ್ಕೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
- arc4random, arc4random_buf, ಮತ್ತು arc4random_uniform ಕಾರ್ಯಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಇದು getrandom ಸಿಸ್ಟಮ್ ಕಾಲ್ ಮತ್ತು /dev/urandom ಇಂಟರ್ಫೇಸ್ ಸುತ್ತಲೂ ಹೊದಿಕೆಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ, ಅದು ಉತ್ತಮ-ಗುಣಮಟ್ಟದ ಸೂಡೊ-ರ್ಯಾಂಡಮ್ ಸಂಖ್ಯೆಗಳನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ.
- ವೇದಿಕೆಯಲ್ಲಿ ಕೆಲಸ ಮಾಡುವಾಗ Linux ಲೂಂಗ್ಸನ್ 3 5000 ಪ್ರೊಸೆಸರ್ಗಳಲ್ಲಿ ಬಳಸಲಾಗುವ ಲೂಂಗ್ಆರ್ಚ್ ಇನ್ಸ್ಟ್ರಕ್ಷನ್ ಸೆಟ್ ಆರ್ಕಿಟೆಕ್ಚರ್ (ISA) ಗೆ ಬೆಂಬಲವನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ. ಈ ಆರ್ಕಿಟೆಕ್ಚರ್ MIPS ಮತ್ತು RISC-V ಗೆ ಹೋಲುವ ಹೊಸ RISC ISA ಅನ್ನು ಅಳವಡಿಸುತ್ತದೆ. ಪ್ರಸ್ತುತ, ಲೂಂಗ್ಆರ್ಚ್ (LA64) ನ 64-ಬಿಟ್ ಆವೃತ್ತಿಗೆ ಮಾತ್ರ ಬೆಂಬಲ ಲಭ್ಯವಿದೆ. ಇದಕ್ಕೆ ಕನಿಷ್ಠ binutils 2.38, GCC 12 ಮತ್ತು ಕರ್ನಲ್ ಅಗತ್ಯವಿದೆ. Linux 5.19.
- ಸಂಬಂಧಿತ LD_TRACE_PRELINKING ಮತ್ತು LD_USE_LOAD_BIAS ಪರಿಸರ ವೇರಿಯೇಬಲ್ಗಳು ಮತ್ತು ಲಿಂಕರ್ ವೈಶಿಷ್ಟ್ಯಗಳೊಂದಿಗೆ ಪ್ರಿಲಿಂಕ್ ಕಾರ್ಯವಿಧಾನವನ್ನು ಅಸಮ್ಮತಿಸಲಾಗಿದೆ ಮತ್ತು ಭವಿಷ್ಯದ ಬಿಡುಗಡೆಯಲ್ಲಿ ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ.
- ಕರ್ನಲ್ ಆವೃತ್ತಿಯನ್ನು ಪರಿಶೀಲಿಸಲು ಕೋಡ್ ತೆಗೆದುಹಾಕಲಾಗಿದೆ. Linux ಮತ್ತು LD_ASSUME_KERNEL ಪರಿಸರ ವೇರಿಯೇಬಲ್ ಅನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲಾಗುತ್ತಿದೆ. Glibc ಸಂಕಲನದ ಸಮಯದಲ್ಲಿ ಬೆಂಬಲಿಸುವ ಕನಿಷ್ಠ ಕರ್ನಲ್ ಆವೃತ್ತಿಯನ್ನು NT_GNU_ABI_TAG ELF ಕ್ಷೇತ್ರದ ಮೂಲಕ ನಿರ್ಧರಿಸಲಾಗುತ್ತದೆ.
- ವೇದಿಕೆಯಲ್ಲಿ Linux LD_LIBRARY_VERSION ಪರಿಸರ ವೇರಿಯೇಬಲ್ಗೆ ಬೆಂಬಲವನ್ನು ನಿಲ್ಲಿಸಲಾಗಿದೆ.
ಮೂಲ: opennet.ru
