ಕೀತ್ ಪ್ಯಾಕರ್ಡ್, ಸಕ್ರಿಯ ಡೆವಲಪರ್ Debian, X.Org ಯೋಜನೆಯ ನಾಯಕ ಮತ್ತು XRender, XComposite, ಮತ್ತು XRandR ಸೇರಿದಂತೆ ಹಲವು X ವಿಸ್ತರಣೆಗಳ ಸೃಷ್ಟಿಕರ್ತ, ಹೊಸ ಪ್ರಮಾಣಿತ ಸಿ ಗ್ರಂಥಾಲಯದ ಬಿಡುಗಡೆ , ಸೀಮಿತ ಶಾಶ್ವತ ಸಂಗ್ರಹಣೆ ಮತ್ತು RAM ಹೊಂದಿರುವ ಎಂಬೆಡೆಡ್ ಸಾಧನಗಳಲ್ಲಿ ಬಳಸಲು ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಗಿದೆ. ಅಭಿವೃದ್ಧಿಯ ಸಮಯದಲ್ಲಿ, ಕೋಡ್ನ ಭಾಗವನ್ನು ಗ್ರಂಥಾಲಯದಿಂದ ಎರವಲು ಪಡೆಯಲಾಗಿದೆ ಸಿಗ್ವಿನ್ ಯೋಜನೆಯಿಂದ ಮತ್ತು , Atmel AVR ಮೈಕ್ರೋಕಂಟ್ರೋಲರ್ಗಳಿಗಾಗಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಗಿದೆ. PicoLibc ಕೋಡ್ BSD ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ. ARM (32-ಬಿಟ್), i386, RISC-V, x86_64 ಮತ್ತು PowerPC ಆರ್ಕಿಟೆಕ್ಚರ್ಗಳಿಗೆ ಲೈಬ್ರರಿ ಅಸೆಂಬ್ಲಿ ಬೆಂಬಲಿತವಾಗಿದೆ.
ಸೀಮಿತ RAM ಹೊಂದಿರುವ ಎಂಬೆಡೆಡ್ ಸಾಧನಗಳಿಗೆ ಸೂಕ್ತವಾದ Libc ಅನುಷ್ಠಾನವನ್ನು ಕಂಡುಹಿಡಿಯುವಲ್ಲಿ ವಿಫಲವಾದ ನಂತರ ಕೀತ್ ಪ್ಯಾಕರ್ಡ್ libc ಗ್ರಂಥಾಲಯವನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ಪ್ರಾರಂಭಿಸಿದರು. ಈ ಯೋಜನೆಯು ಕಳೆದ ವರ್ಷದಿಂದ ಅಭಿವೃದ್ಧಿಯಲ್ಲಿದೆ. ಆರಂಭದಲ್ಲಿ, ಇದು ನ್ಯೂಲಿಬ್ನ ರೂಪಾಂತರವಾಗಿದ್ದು, stdio ಕಾರ್ಯಗಳನ್ನು avrlibc ಯಿಂದ ಕಾಂಪ್ಯಾಕ್ಟ್ ಆವೃತ್ತಿಯೊಂದಿಗೆ ಬದಲಾಯಿಸಿತು (ನ್ಯೂಲಿಬ್ನ stdio ಅದರ ಸಂಪನ್ಮೂಲ ಬಳಕೆಯಿಂದಾಗಿ ಅತೃಪ್ತಿಕರವಾಗಿತ್ತು). ಕೀತ್ನ ಪ್ರಸ್ತುತ ಕೆಲಸವು RISC-V ವಾಸ್ತುಶಿಲ್ಪದೊಂದಿಗೆ ನಿರಂತರ ಕೆಲಸ ಮತ್ತು ಎಂಬೆಡೆಡ್ ಸಾಧನಗಳಿಗೆ ಟೂಲ್ಚೈನ್ಗಳ ಅಭಿವೃದ್ಧಿಯನ್ನು ಒಳಗೊಂಡಿರುವುದರಿಂದ, ಅವರು ಇತ್ತೀಚೆಗೆ libc ಅನುಷ್ಠಾನಗಳ ಸ್ಥಿತಿಯನ್ನು ಪರಿಶೀಲಿಸಿದರು ಮತ್ತು ಕೆಲವು ಸಣ್ಣ ಪರಿಷ್ಕರಣೆಯೊಂದಿಗೆ, newlib ಮತ್ತು avrlibc ಸಂಯೋಜನೆಯು ಉತ್ತಮ ಸಾರ್ವತ್ರಿಕ ಪರಿಹಾರವಾಗಬಹುದು ಎಂದು ತೀರ್ಮಾನಿಸಿದರು. ಈ ಯೋಜನೆಯನ್ನು ಆರಂಭದಲ್ಲಿ "newlib-nano" ಎಂಬ ಹೆಸರಿನಲ್ಲಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಯಿತು, ಆದರೆ ನ್ಯೂಲಿಬ್ ಗ್ರಂಥಾಲಯದೊಂದಿಗೆ ಗೊಂದಲವನ್ನು ತಪ್ಪಿಸಲು, ಇದನ್ನು PicoLibc ಎಂದು ಮರುನಾಮಕರಣ ಮಾಡಲಾಯಿತು.
ಅದರ ಪ್ರಸ್ತುತ ರೂಪದಲ್ಲಿ, Picolibc ಅನ್ನು ಈಗಾಗಲೇ ಎಲ್ಲಾ BSD-ಪರವಾನಗಿ ಪಡೆಯದ ಕೋಡ್ಗಳಿಂದ ತೆಗೆದುಹಾಕಲಾಗಿದೆ (ಈ ಕೋಡ್ ಅನ್ನು ಎಂಬೆಡೆಡ್ ಸಾಧನಗಳ ನಿರ್ಮಾಣದಲ್ಲಿ ಬಳಸಲಾಗಿಲ್ಲ), ಇದು ಯೋಜನೆಯ ಪರವಾನಗಿ ಪರಿಸ್ಥಿತಿಯನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಸರಳಗೊಳಿಸುತ್ತದೆ. ಸ್ಥಳೀಯ ಥ್ರೆಡ್ಗಳ ಅನುಷ್ಠಾನವನ್ನು 'struct _reent' ನಿಂದ TLS ಕಾರ್ಯವಿಧಾನಕ್ಕೆ ಸ್ಥಳಾಂತರಿಸಲಾಗಿದೆ (). avrlibc ಲೈಬ್ರರಿ ಕೋಡ್ನಿಂದ ಎರವಲು ಪಡೆದ ಕಾಂಪ್ಯಾಕ್ಟ್ stdio ರೂಪಾಂತರವನ್ನು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ (ATmel-ನಿರ್ದಿಷ್ಟ ಅಸೆಂಬ್ಲಿ ಕೋಡ್ ಅನ್ನು C ನಲ್ಲಿ ಪುನಃ ಬರೆಯಲಾಗಿದೆ). Meson ಟೂಲ್ಚೈನ್ ಅನ್ನು ನಿರ್ಮಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ, ನ್ಯೂಲಿಬ್ ಬಿಲ್ಡ್ ಸ್ಕ್ರಿಪ್ಟ್ಗಳ ಮೇಲಿನ ಅವಲಂಬನೆಯ ಅಗತ್ಯವನ್ನು ನಿವಾರಿಸುತ್ತದೆ ಮತ್ತು ನ್ಯೂಲಿಬ್ನಿಂದ ಬದಲಾವಣೆಗಳ ವಲಸೆಯನ್ನು ಸರಳಗೊಳಿಸುತ್ತದೆ. ಸರಳೀಕೃತ ಇನಿಶಿಯಲೈಸೇಶನ್ ಕೋಡ್ (crt0) ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದಕ್ಕೆ ಲಗತ್ತಿಸಲಾಗಿದೆ ಮತ್ತು ನಿಯಂತ್ರಣವನ್ನು main() ಕಾರ್ಯಕ್ಕೆ ವರ್ಗಾಯಿಸುವ ಮೊದಲು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ.
ಪಿಕೋಲಿಬ್ ಆವೃತ್ತಿ 1.1 ರಲ್ಲಿ:
- "ತಂತ್ರಜ್ಞಾನವನ್ನು ಬೆಂಬಲಿಸಲು ಸಹಾಯಕ ಗ್ರಂಥಾಲಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ"", ಇದು ಡೀಬಗರ್ ಅಥವಾ ಎಮ್ಯುಲೇಟರ್ ಪರಿಸರದಲ್ಲಿ ಚಾಲನೆಯಲ್ಲಿರುವ ಕೋಡ್ ಅನ್ನು ಹೋಸ್ಟ್ ಸಿಸ್ಟಮ್ನ I/O ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಬಳಸಲು ಅನುಮತಿಸುತ್ತದೆ;
- ಸಿಸ್ಟಮ್ ಕರೆಗಳನ್ನು ತೆರೆಯುವುದು, ಮುಚ್ಚುವುದು, ಓದುವುದು ಮತ್ತು ಬರೆಯುವುದನ್ನು ಬೆಂಬಲಿಸುವ ಸಿಸ್ಟಮ್ಗಳಿಗಾಗಿ, tinystdio ಪ್ರಮಾಣೀಕೃತ POSIX stdio I/O ಇಂಟರ್ಫೇಸ್ಗಳನ್ನು ಸೇರಿಸುತ್ತದೆ, ಇದರಲ್ಲಿ fopen ಮತ್ತು fdopen ಕಾರ್ಯಗಳು ಸೇರಿವೆ, ಮತ್ತು stdin/stdout/stderr ಅನ್ನು POSIX-ವ್ಯಾಖ್ಯಾನಿತ ಫೈಲ್ ಡಿಸ್ಕ್ರಿಪ್ಟರ್ಗಳಿಗೆ ಬಂಧಿಸುತ್ತದೆ;
- ನ್ಯೂಲಿಬ್ ಕೋಡ್ಬೇಸ್ನಿಂದ ಇತ್ತೀಚಿನ ಬದಲಾವಣೆಗಳನ್ನು ಪೋರ್ಟ್ ಮಾಡಲಾಗಿದೆ. ಇದರಲ್ಲಿ libm ಸ್ಟಬ್ಗಳ ಸೇರ್ಪಡೆ ಸೇರಿದೆ , ಇದನ್ನು ಫ್ಲೋಟಿಂಗ್-ಪಾಯಿಂಟ್ ಬೆಂಬಲವಿಲ್ಲದ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಬಳಸಬಹುದು;
- ARM ಮತ್ತು RISC-V ವ್ಯವಸ್ಥೆಗಳಿಗಾಗಿ picolibc ನೊಂದಿಗೆ "ಹಲೋ ವರ್ಲ್ಡ್" ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ನಿರ್ಮಿಸುವ ಉದಾಹರಣೆಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ;
- ಬಳಕೆಯಾಗದ ಪ್ರಾಯೋಗಿಕ ಕೋಡ್ ಅನ್ನು ಒಳಗೊಂಡಿರುವ newlib, libm, ಮತ್ತು mathfp ಡೈರೆಕ್ಟರಿಗಳನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ.
ಮೂಲ: opennet.ru
