Π‘Π»Π΅Π΄ ΡΠ΅ΡΡΠΌΠ΅ΡΠ΅ΡΠ½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, Π±Π΅ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π° Π²Π΅ΡΡΠΈΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° GNU C Library (glibc) 2.36, ΠΊΠΎΡΡΠΎ ΠΈΠ·ΡΡΠ»ΠΎ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠΈΡΠ΅ ISO C11 ΠΈ POSIX.1-2017. ΠΠΎΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π²ΠΊΠ»ΡΡΠ²Π° ΠΏΠΎΠΏΡΠ°Π²ΠΊΠΈ ΠΎΡ 59 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ.
Π‘ΡΠ΅Π΄ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡΡΠ°, ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π² Glibc 2.36, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΡΠ±Π΅Π»Π΅ΠΆΠΈΠΌ:
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π½ΠΎΠ²ΠΈΡ ΡΠΎΡΠΌΠ°Ρ Π·Π° ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»Π½ΠΈ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π°Π½ΠΈΡ Π½Π° Π°Π΄ΡΠ΅ΡΠΈ DT_RELR (ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»Π½Π° ΡΠ΅Π»ΠΎΠΊΠ°ΡΠΈΡ), ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π°Π½ΠΈΡ Π² ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈ Π² ΡΠ΅ΠΆΠΈΠΌ PIE (Position-independent executables). ΠΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ»Π΅ΡΠΎ DT_RELR Π² ELF ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΎΠΏΡΠΈΡΡΠ° "-z pack-relative-relocs" Π² ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ°, ΠΏΠΎΡΠ²ΠΈΠ»Π° ΡΠ΅ Π² Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° Π½Π°Π±ΠΎΡΠ° binutils 2.38.
- ΠΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Linux ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ pidfd_open, pidfd_getfd ΠΈ pidfd_send_signal, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ° Π½Π° pidfd, ΠΏΠΎΠΌΠ°Π³Π°ΡΠ° Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠΈΡΡΠ°ΡΠΈΠΈ Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° PID Π·Π° ΠΏΠΎ-ΡΠΎΡΠ½Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π°Ρ Ρ Π½Π°Π±Π»ΡΠ΄Π°Π²Π°Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ (pidfd Π΅ ΡΠ²ΡΡΠ·Π°Π½ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ ΠΈ Π½Π΅ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Ρ, Π΄ΠΎΠΊΠ°ΡΠΎ PID ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ²ΡΡΠ·Π°Π½ Ρ Π΄ΡΡΠ³ ΠΏΡΠΎΡΠ΅Ρ ΡΠ»Π΅Π΄ Π·Π°Π²ΡΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅ΠΊΡΡΠΈΡ ΠΏΡΠΎΡΠ΅Ρ, Π°ΡΠΎΡΠΈΠΈΡΠ°Π½ Ρ ΡΠΎΠ·ΠΈ PID).
- ΠΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Linux Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° process_madvise(), ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° Π΅Π΄ΠΈΠ½ ΠΏΡΠΎΡΠ΅Ρ Π΄Π° ΠΈΠ·Π²ΡΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΠ΅Π½ ΠΏΠΎΠ²ΠΈΠΊ madvise() ΠΎΡ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π΄ΡΡΠ³ ΠΏΡΠΎΡΠ΅Ρ, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°ΠΉΠΊΠΈ ΡΠ΅Π»Π΅Π²ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ ΡΡΠ΅Π· pidfd. Π§ΡΠ΅Π· madvise() ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠΈΡΠ° ΡΠ΄ΡΠΎΡΠΎ Π·Π° ΠΎΡΠΎΠ±Π΅Π½ΠΎΡΡΠΈΡΠ΅ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ°; Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΡΠ΅Π΄Π°Π΄Π΅Π½Π°ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΠ΄ΡΠΎΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ½ΠΈΡΠΈΠΈΡΠ° ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π° ΠΏΠ°ΠΌΠ΅Ρ. ΠΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ Π½Π° madvise() ΠΎΡ Π΄ΡΡΠ³ ΠΏΡΠΎΡΠ΅Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π² ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ°, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ, Π½Π΅ Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½Π° Π½Π° ΡΠ΅ΠΊΡΡΠΈΡ ΠΏΡΠΎΡΠ΅Ρ ΠΈ ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½ΠΈΡΠ° ΠΎΡ ΠΎΡΠ΄Π΅Π»Π΅Π½ ΡΠΎΠ½ΠΎΠ² ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Π½ ΠΏΡΠΎΡΠ΅Ρ, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»Π½ΠΎ Π΄Π° ΠΈΠ½ΠΈΡΠΈΠΈΡΠ° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ Π½Π° Π½Π΅ΡΠΏΠΎΡΡΠ΅Π±ΡΠ²Π°Π½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ ΠΎΡ ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅.
- ΠΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Linux Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° process_mrelease(), ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΠΎ-Π±ΡΡΠ·ΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ°, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠΈΠΊΠ»ΡΡΠ²Π° ΡΠ²ΠΎΡΡΠ° ΡΠ°Π±ΠΎΡΠ°. ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅ΡΡΡΡΠΈ ΠΈ Π·Π°Π²ΡΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π΅ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°Ρ Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ ΠΈ ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΈΡΠΈΠ½ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π·Π°Π±Π°Π²ΡΡ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠ΅ΡΠΈ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ Π·Π° ΡΠ°Π½Π½ΠΎ ΡΠ΅Π°Π³ΠΈΡΠ°Π½Π΅ Π½Π° Π½Π΅Π΄ΠΎΡΡΠΈΠ³Π° Π½Π° ΠΏΠ°ΠΌΠ΅Ρ, ΠΊΠ°ΡΠΎ oomd (ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΠ΅ Π² systemd). Π§ΡΠ΅Π· ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ Π½Π° process_mrelease ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΌΠΎΠ³Π°Ρ ΠΏΠΎ-ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎ Π΄Π° ΠΈΠ½ΠΈΡΠΈΠΈΡΠ°Ρ Π²ΡΡΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΎΡ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»Π½ΠΎ Π·Π°Π²ΡΡΡΠ²Π°Π½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ.
- ΠΠ³ΡΠ°Π΄Π΅Π½ΠΈΡΡ DNS ΡΠ΅Π·ΠΎΠ»Π²Π΅Ρ Π²Π΅ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΎΠΏΡΠΈΡΡΠ° Β«no-aaaaΒ», ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π·Π° ΡΠ»Π΅ΡΠ½ΡΠ²Π°Π½Π΅ Π½Π° Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π΄Π° Π±ΡΠ΄Π΅ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ΡΠΎ Π½Π° DNS Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ Π·Π° AAAA Π·Π°ΠΏΠΈΡΠΈ (ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° IPv6 Π°Π΄ΡΠ΅Ρ ΠΏΠΎ ΠΈΠΌΠ΅ Π½Π° Ρ ΠΎΡΡ), Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΡΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° NSS ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π° getaddrinfo(). ΠΠΏΡΠΈΡΡΠ° Π½Π΅ Π²Π»ΠΈΡΠ΅ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° IPv6 Π°Π΄ΡΠ΅ΡΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π² /etc/hosts, ΠΈ Π½Π° ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½ΠΈΡΡΠ° Π½Π° getaddrinfo() Ρ ΡΠ»Π°Π³ AI_PASSIVE.
- ΠΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Linux ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ fsopen, fsmount, move_mount, fsconfig, fspick, open_tree ΠΈ mount_setattr, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡΠΈ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π½ΠΎΠ² API Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Ρ ΠΎΠ³Π»Π΅Π΄ Π½Π° ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΎΡ ΠΈΠΌΠ΅Π½Π° Π½Π° ΡΠΎΡΠΊΠΈ Π½Π° ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅ (mount namespaces). ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΠΎΡΠ΄Π΅Π»Π½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π΅ΡΠ°ΠΏΠΈ Π½Π° ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅ (ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΡΠΏΠ΅ΡΠ±Π»ΠΎΠΊΠ°, ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅, ΠΏΡΠΈΠΊΠ°ΡΠ²Π°Π½Π΅ ΠΊΡΠΌ ΡΠΎΡΠΊΠ° Π½Π° ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅), ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅Π΄ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π° Ρ ΠΎΠ±ΡΠ°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ mount(). ΠΡΠ΄Π΅Π»Π½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π°Π²Π°Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎ-ΡΠ»ΠΎΠΆΠ½ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π½Π° ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅ ΠΈ Π·Π° ΠΎΡΠ΄Π΅Π»Π½ΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΊΠ°ΡΠΎ ΠΏΡΠ΅Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° ΡΡΠΏΠ΅ΡΠ±Π»ΠΎΠΊΠ°, Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΡΠΈΠΈ, ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΡΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅ ΠΈ ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΠ½Π΅ Π² Π΄ΡΡΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π°. Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, ΠΎΡΠ΄Π΅Π»Π½Π°ΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠΎΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΏΡΠΈΡΠΈΠ½ΠΈΡΠ΅ Π·Π° ΠΊΠΎΠ΄ΠΎΠ²Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΈ Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈ Π·Π° ΠΌΠ½ΠΎΠ³ΠΎΡΠ»ΠΎΠΉΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ, ΠΊΠ°ΡΠΎ overlayfs.
- Π localedef Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π° Π»ΠΎΠΊΠ°Π»ΠΈ, Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈ Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° UTF-8 Π²ΠΌΠ΅ΡΡΠΎ ASCII.
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡΠΎΠ²ΠΈ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ mbrtoc8 ΠΈ c8rtomb, ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡΠΈ Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈΡΠ΅ ISO C2X N2653 ΠΈ C++20 P0482R6.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠΈΠΏΠ° char8_t, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π² ΡΠ΅ΡΠ½ΠΎΠ²ΠΈΠΊΠ° Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ° ISO C2X N2653.
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ arc4random, arc4random_buf ΠΈ arc4random_uniform, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡΠΈ ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ Π½Π°Π΄ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡ ΠΏΠΎΠ²ΠΈΠΊ getrandom ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° /dev/urandom, Π²ΡΡΡΠ°ΡΠΈ ΠΏΡΠ΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΠΈ ΡΠΈΡΠ»Π° Ρ Π²ΠΈΡΠΎΠΊΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ.
- ΠΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Linux Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° Π½Π°Π±ΠΎΡ ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ LoongArch, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π² ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈΡΠ΅ Loongson 3 5000 ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ° Π½ΠΎΠ² RISC ISA, ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° MIPS ΠΈ RISC-V. Π ΡΠ΅ΠΊΡΡΠΈΡ Π²ΠΈΠ΄ Π΅ Π½Π°Π»ΠΈΡΠ½Π° ΡΠ°ΠΌΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° 64-Π±ΠΈΡΠΎΠ²ΠΈΡ Π²Π°ΡΠΈΠ°Π½Ρ LoongArch (LA64). ΠΠ° ΡΠ°Π±ΠΎΡΠ° Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Π²Π΅ΡΡΠΈΠΈ binutils 2.38, GCC 12 ΠΈ ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux 5.19.
- ΠΠ±ΡΠ²Π΅Π½ Π΅ Π·Π° ΠΎΡΡΠ°ΡΡΠ» ΠΈ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°Ρ Π² ΡΠ»Π΅Π΄Π²Π°ΡΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡΡ prelink, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΡΠ²ΡΡΠ·Π°Π½ΠΈΡΠ΅ Ρ Π½Π΅Π³ΠΎ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° LD_TRACE_PRELINKING ΠΈ LD_USE_LOAD_BIAS ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ°.
- ΠΠΎΠ΄ΡΡ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° LD_ASSUME_KERNEL Π΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°Ρ. ΠΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΡΠ΄ΡΠΎΡΠΎ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° Glibc ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΡΡΠ΅Π· ELF ΠΏΠΎΠ»Π΅ΡΠΎ NT_GNU_ABI_TAG.
- ΠΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Linux Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° LD_LIBRARY_VERSION.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
